Function at 0x416d80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push r14
push r13
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x50
mov edi, dword [rdx + 0x38]
mov r13d, dword [rdx + 0x28]
mov rbx, rcx
mov rsi, rdx
cmp edi, 0xa
je 0x416ec5
cmp edi, 6
je 0x416ec5
mov eax, edi
cmp eax, 8
je 0x416f70
mov edx, dword [rbx + 0xd0]
test edx, edx
jle 0x416ddf
cmp eax, 3
jne 0x416f8b
cmp edx, 1
jne 0x416f8b
mov rcx, qword [rbx]
call fcn.00419650
cmp byte [rbx + 0x3d], 0
je 0x416def
cmp dword [rsi + 0x38], 6
je 0x417020
mov ecx, dword [rsi + 0x3c]
test ecx, ecx
jne 0x416ee2
mov r9d, dword [rsi + 0x38]
cmp edi, 6
je 0x417140
add dword [rbx + 0xd0], 1
cmp r9d, 3
je 0x417102
cmp r9d, 4
je 0x4170f0
movsxd rax, r9d
add dword [rbx + rax*4 + 8], 1
cmp byte [rbx + 0x74], 0
mov r12, qword [rsi]
jne 0x417040
lea rax, [rsi + 0x28]
mov rcx, qword [rbx]
mov rdx, rsi
mov qword [rsi + 0x30], 0
mov qword [rsi + 0x18], rax
lea rax, [rsi + 0x30]
mov qword [rsi + 0x20], rax
call fcn.004181b0
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x88]
mov rcx, qword [rbx]
call fcn.00419430
mov rdx, rsi
mov rcx, rbx
call fcn.004161e0
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x90]
mov rcx, qword [rbx]
call fcn.00417b30
mov rcx, qword [rbx]
call fcn.00419650
mov edx, dword [rsi + 0x38]
mov rcx, rbx
call fcn.00416bd0
mov qword [rsi], r12
mov qword [rsi + 0x30], 0
mov eax, 1
sub dword [rbx + 0xd0], 1
mov rsp, rbp
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
cmp byte [rbx + 0x81], 0
je 0x416fc0
xor eax, eax
mov rsp, rbp
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop rbp
ret
cmp ecx, dword [rbx + 0x7c]
je 0x416dfa
mov rdx, qword [rbx + 0xa8]
call qword [rbx + 0xa0]
test eax, eax
je 0x416ed2
mov r12d, dword [rbx + 0x58]
test r12d, r12d
jle 0x417169
sub r12d, 1
jmp 0x416f2e
mov eax, dword [rax + 4]
test eax, eax
je 0x417164
cmp dword [rsi + 0x3c], eax
je 0x417164
sub r12d, 1
js 0x417169
mov rdx, qword [rbx + 0x50]
movsxd rax, r12d
mov rcx, qword [0x004dbba0]
lea rax, [rax + rax*2]
mov r8d, r13d
mov edx, dword [rdx + rax*4]
lea r14, [rax*4]
call fcn.0041bfb0
test eax, eax
js 0x416f24
mov rax, r14
add rax, qword [rbx + 0x50]
mov r9d, dword [rax + 8]
cmp r9d, 0xe
jne 0x416f10
mov r12d, dword [rax + 4]
jmp 0x416f24
cmp byte [rbx + 0xd4], 0
jne 0x416ed2
mov edx, dword [rbx + 0xd0]
test edx, edx
jle 0x416ddf
cmp edx, 2
jg 0x416f98
mov rcx, qword [rbx]
call fcn.00419650
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Internal_compiler_error:_Error_reporting_routines_re_entered._n
lea rcx, [rax + 0x60]
call fcn.004168d0
mov edx, 3
mov rcx, rbx
call fcn.00416bd0
call sub.msvcrt.dll_abort
mov ecx, r13d
call fcn.0041a530
mov rcx, qword [0x004dbba0]
mov edx, eax
call fcn.0041bde0
test eax, eax
je 0x416fe7
cmp byte [rbx + 0x82], 0
je 0x416ed2
mov eax, dword [rsi + 0x38]
cmp eax, 0xa
jne 0x416db2
cmp byte [rbx + 0x77], 1
mov edx, dword [rbx + 0xd0]
sbb edi, edi
and edi, 2
add edi, 4
test edx, edx
mov dword [rsi + 0x38], edi
mov eax, edi
jg 0x416dc5
jmp 0x416ddf
cmp byte [rbx + 0x3e], 0
jne 0x416def
mov dword [rsi + 0x38], 4
jmp 0x416def
mov r8d, edi
mov edx, dword [rsi + 0x3c]
mov rcx, rbx
call qword [rbx + 0xb0]
test rax, rax
mov rdi, rax
je 0x416e37
mov rcx, qword [rsi]
lea rax, [0x004c21fc]
lea r8, [0x004c21f8]
lea rdx, [0x004c21fa]
mov qword [rsp + 0x28], 0
mov r9, rdi
mov qword [rsp + 0x20], rax
call fcn.004387c0
lea edx, [rax + 1]
lea rax, [rdx + 0x1e]
shr rax, 4
shl rax, 4
call fcn.00459890
mov rcx, qword [rsi]
lea r8, [0x004c21f8]
lea rdx, [0x004c21fa]
sub rsp, rax
mov r9, rdi
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], 0
mov qword [0x004dd390], rax
lea rax, [0x004c21fc]
mov qword [rsp + 0x20], rax
call fcn.00438880
mov rcx, rdi
mov qword [rsi], rax
call sub.msvcrt.dll_free
jmp 0x416e37
cmp edi, 6
jne 0x416e22
nop dword [rax]
jmp 0x417155
mov edx, dword [rbx + 0x18]
test edx, edx
jle 0x4171a3
cmp byte [rbx + 0x75], 0
je 0x4171b5
mov rax, qword [rbx + 0x98]
test rax, rax
je 0x416e22
mov rdx, qword [rsi]
mov r8, qword [rsi + 8]
mov rcx, rbx
call rax
mov r9d, dword [rsi + 0x38]
jmp 0x416e18
cmp r9d, 4
jne 0x416e07
add dword [rbx + 0xd0], 1
mov byte [rbx + 0x3c], 1
add dword [rbx + 0x38], 1
mov r9d, 4
jmp 0x416e2a
test r9d, r9d
jne 0x417180
movsxd rdx, dword [rsi + 0x3c]
mov rax, qword [rbx + 0x48]
mov r9d, dword [rax + rdx*4]
test r9d, r9d
je 0x417190
cmp r9d, 4
je 0x417186
mov dword [rsi + 0x38], r9d
jmp 0x417194
cmp byte [rbx + 0x3e], 0
je 0x417180
nop dword [rax]
mov r9d, dword [rsi + 0x38]
cmp r9d, 1
jne 0x416dfe
jmp 0x416ed2
mov eax, dword [rbx + 0x1c]
test eax, eax
jg 0x41710d
nop
jmp 0x417117
mov edx, dword [rsi + 0x28]
lea rcx, [rbp - 0x20]
call fcn.0041a6b0
mov esi, dword [rbp - 0x18]
mov rbx, qword [rbp - 0x20]
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str._s:_d:_confused_by_earlier_errors__bailing_out_n
lea rcx, [rax + 0x60]
mov r9d, esi
mov r8, rbx
call fcn.004168d0
mov ecx, 4
call sub.msvcrt.dll_exit
nop
nop
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
mov ebx, ecx
lea rax, [rsp + 0xc0]
mov ecx, edx
cmp ebx, 0xb
mov edi, r8d
mov rdx, r9
mov qword [rsp + 0x38], rax
je 0x417250
lea rsi, [rsp + 0x40]
lea r8, [rsp + 0x38]
mov r9d, ecx
mov dword [rsp + 0x20], ebx
mov rcx, rsi
call fcn.00416180
cmp ebx, 0xa
jne 0x4172a0
mov dword [rsp + 0x7c], edi
mov rcx, qword [0x00471940]
mov rdx, rsi
call fcn.00416d80
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
ret
mov rax, qword [0x00471940]
lea rsi, [rsp + 0x40]
lea r8, [rsp + 0x38]
mov r9d, ecx
mov rcx, rsi
cmp byte [rax + 0x78], 1
sbb eax, eax
and eax, 0xfffffffe
add eax, 6
mov dword [rsp + 0x20], eax
call fcn.00416180
mov rcx, qword [0x00471940]
mov rdx, rsi
mov eax, dword [rcx + 0x7c]
mov dword [rsp + 0x7c], eax
call fcn.00416d80
sub rsp, 0xffffffffffffff80
pop rbx
pop rsi
pop rdi
ret
cmp ebx, 6
je 0x417231
jmp 0x417235