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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rsi, rdx
mov rbx, rcx
xor edx, edx
mov rcx, rsi
call fcn.00409bb0
mov edi, dword [rsi + 0x38]
lea r8d, [rdi - 6]
mov ecx, edi
and r8d, 0xfffffffb
je 0x403c50
cmp ecx, 0xa
je 0x403ce4
cmp ecx, 8
je 0x403d80
mov eax, dword [rbx + 0xd8]
test eax, eax
jle 0x403acc
cmp ecx, 3
jne 0x403d00
cmp eax, 1
jne 0x403d09
mov rcx, qword [rbx]
call fcn.0040a7f0
cmp byte [rbx + 0x40], 0
je 0x403adc
cmp dword [rsi + 0x38], 6
je 0x403c61
mov ecx, dword [rsi + 0x3c]
test ecx, ecx
je 0x403b90
cmp dword [rbx + 0x7c], ecx
je 0x403b90
mov rdx, qword [rbx + 0xb0]
call qword [rbx + 0xa8]
test eax, eax
je 0x403c5d
mov r8d, dword [rbx + 0x58]
test r8d, r8d
jle 0x403f44
xor edx, edx
mov rcx, rsi
call fcn.00409bb0
mov ebp, dword [rbx + 0x58]
mov r13d, eax
sub ebp, 1
js 0x403f44
mov r12, qword [0x0046cf00]
jmp 0x403b51
mov edx, dword [rdx + 4]
test edx, edx
je 0x403f40
cmp edx, dword [rsi + 0x3c]
je 0x403f40
sub ebp, 1
js 0x403f44
mov rdx, qword [rbx + 0x50]
movsxd rax, ebp
mov rcx, qword [r12]
lea rax, [rax + rax*2]
mov r8d, r13d
mov edx, dword [rdx + rax*4]
lea r14, [rax*4]
call fcn.00427a20
test eax, eax
js 0x403b48
mov rdx, r14
add rdx, qword [rbx + 0x50]
movsxd rax, dword [rdx + 8]
cmp eax, 0xf
jne 0x403b34
mov ebp, dword [rdx + 4]
jmp 0x403b48
movsxd rax, dword [rsi + 0x38]
cmp eax, 8
jne 0x403c73
add dword [rbx + 0xd8], 1
add dword [rbx + rax*4 + 8], 1
lea rax, [rsi + 0x30]
mov rcx, qword [rbx]
mov rdx, rsi
mov qword [rsi + 0x30], 0
mov qword [rsi + 0x18], rax
call fcn.0040a930
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x88]
mov rcx, qword [rbx]
call fcn.0040a6f0
cmp byte [rbx + 0x77], 0
jne 0x403da0
mov rdx, rsi
mov rcx, rbx
call qword [rbx + 0x98]
cmp byte [rbx + 0xdf], 0
jne 0x403e40
mov edx, dword [rsi + 0x38]
mov rcx, rbx
call fcn.004034b0
mov rcx, qword [rbx + 0xe0]
mov qword [rsi + 0x30], 0
test rcx, rcx
je 0x403c2b
mov rdx, qword [rsi + 0x28]
cmp byte [rdx + 0x81], 0
je 0x403f33
sub dword [rbx + 0xd8], 1
mov eax, 1
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rbx + 0x81], 0
je 0x403d40
xor eax, eax
jmp 0x403c37
mov ecx, dword [rsi + 0x3c]
mov dword [rsi + 0x38], 4
test ecx, ecx
jne 0x403ae7
xor edx, edx
mov rcx, rbx
call fcn.00403450
movsxd rax, dword [rsi + 0x38]
add dword [rbx + 0xd8], 1
cmp eax, 0xd
je 0x403cb0
cmp eax, 3
je 0x403cb0
cmp eax, 4
jne 0x403ba4
cmp edi, 6
jne 0x403ba4
add dword [rbx + 0x38], 1
jmp 0x403ba9
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jle 0x403d70
cmp byte [rbx + 0x78], 0
je 0x403f75
mov r9, qword [rbx + 0xa0]
test r9, r9
je 0x403c92
mov r8, qword [rsi + 8]
mov rdx, qword [rsi]
mov rcx, rbx
call r9
movsxd rax, dword [rsi + 0x38]
jmp 0x403c92
cmp byte [rbx + 0x7a], 1
sbb edi, edi
and edi, 2
add edi, 4
mov dword [rsi + 0x38], edi
mov ecx, edi
jmp 0x403aa8
cmp ecx, 0xd
je 0x403abb
cmp eax, 2
jg 0x403d16
mov rcx, qword [rbx]
call fcn.0040a7f0
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.00403420
mov edx, 3
mov rcx, rbx
call fcn.004034b0
call sub.msvcrt.dll_abort
nop
mov r12, qword [0x0046cf00]
mov edx, eax
mov rcx, qword [r12]
call fcn.00427660
test eax, eax
je 0x403d63
cmp byte [rbx + 0x82], 0
je 0x403c5d
mov ecx, dword [rsi + 0x38]
jmp 0x403a96
mov edx, dword [rbx + 0x1c]
test edx, edx
jg 0x403cbb
jmp 0x403cc5
cmp byte [rbx + 0xdc], 0
jne 0x403c5d
mov eax, dword [rbx + 0xd8]
test eax, eax
jle 0x403acc
jmp 0x403d09
mov edx, dword [rsi + 0x3c]
mov r9d, dword [rsi + 0x38]
mov r8d, edi
mov rcx, rbx
call qword [rbx + 0xb8]
test rax, rax
mov rbp, rax
je 0x403be2
mov rdi, qword [rbx]
lea rdx, [0x0045d2c0]
mov rcx, rdi
call fcn.0040a6b0
movsxd rdx, dword [rsi + 0x38]
lea rax, [0x0045d640]
mov r12, qword [rax + rdx*8]
mov rcx, r12
call sub.msvcrt.dll_strlen
movzx ecx, byte [rdi + 0x43]
mov r8, rax
mov rdx, r12
call fcn.00404cf0
mov rcx, rdi
mov rdx, rax
call fcn.0040a6b0
mov rdx, rbp
mov rcx, rdi
call fcn.0040a6b0
movzx ecx, byte [rdi + 0x43]
call fcn.00404d60
mov rcx, rdi
mov rdx, rax
call fcn.0040a6b0
mov rcx, rdi
mov edx, 0x5d
call fcn.0040a170
mov rcx, rbp
call sub.msvcrt.dll_free
jmp 0x403be2
mov rdi, qword [rbx]
mov r15, qword [rsi + 0x28]
test rdi, rdi
je 0x403fd2
test r15, r15
je 0x403fba
mov eax, dword [r15 + 0x58]
test eax, eax
je 0x403f26
lea rax, [r15 + 0x58]
xor ebp, ebp
lea r14, [rsp + 0x60]
lea r13, [rsp + 0x40]
mov qword [rsp + 0x38], rax
jmp 0x403f08
mov rcx, qword [r15 + 0x78]
lea rdx, [rcx + rdx*8 - 0x10]
mov r12, qword [rdx]
mov rcx, r13
add ebp, 1
mov edx, dword [r12]
call fcn.0040dd50
lea rdx, str.fix_it:
mov rcx, rdi
call fcn.0040a6b0
mov rdx, qword [rsp + 0x40]
mov rcx, rdi
call fcn.00403910
mov edx, dword [r12 + 4]
mov rcx, r14
call fcn.0040dd50
mov edx, dword [rsp + 0x6c]
mov r9d, dword [rsp + 0x4c]
mov rcx, rdi
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x68]
mov dword [rsp + 0x20], edx
lea rdx, str.:_i:_i__i:_i:
call fcn.0040bd60
mov rdx, qword [r12 + 8]
mov rcx, rdi
call fcn.00403910
mov rcx, rdi
call fcn.0040a110
cmp dword [r15 + 0x58], ebp
jbe 0x403f23
cmp ebp, 1
movsxd rdx, ebp
jg 0x403e80
mov rax, qword [rsp + 0x38]
lea rdx, [rax + rdx*8 + 8]
jmp 0x403e89
mov rdi, qword [rbx]
mov rcx, rdi
call fcn.00409dd0
jmp 0x403bfb
call fcn.004084f0
jmp 0x403c2b
test eax, eax
jne 0x403f70
movsxd rdx, dword [rsi + 0x3c]
mov rax, qword [rbx + 0x48]
movsxd rax, dword [rax + rdx*4]
test eax, eax
jne 0x403f70
movsxd rax, dword [rsi + 0x38]
cmp eax, 1
jne 0x403b94
xor eax, eax
jmp 0x403c37
mov dword [rsi + 0x38], eax
jmp 0x403f58
mov rcx, rsi
xor edx, edx
call fcn.00409bb0
lea rcx, [rsp + 0x60]
mov edx, eax
call fcn.0040dd50
mov esi, dword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
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.00403420
mov ecx, 4
call sub.msvcrt.dll_exit
lea r8, str.print_parseable_fixits
lea rcx, [0x0045d190]
mov edx, 0x30c
call fcn.00459e70
lea r8, str.print_parseable_fixits
lea rcx, [0x0045d190]
mov edx, 0x30b
call fcn.00459e70
nop
nop dword [rax + rax]