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

Disassembly:
push rbp
mov eax, 0x1090
mov rbp, rsp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
call fcn.00411700
sub rsp, rax
mov r15, rcx
xor ecx, ecx
movss dword [rbp + 0x18], xmm1
movss dword [rbp + 0x20], xmm2
mov r14d, r9d
mov r13, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x40]
call fcn.00414090
mov r12d, eax
call fcn.00409580
mov rbx, rax
mov rax, qword [0x0041cc10]
cmp qword [rax], 0
je 0x403e70
test r13, r13
je 0x403e78
cmp qword [r13], 0
je 0x403e4c
mov rdx, r15
mov rcx, rbx
call fcn.004093a0
cmp dword [rbp + 0x48], 6
je 0x403aef
test r14d, r14d
jns 0x403e98
mov eax, dword [rbx + 0x60]
mov dword [rbp + 0x38], eax
mov edx, dword [rbp + 0x38]
mov rcx, rbx
call fcn.00408fd0
lea r9, [rbp + 0x20]
lea r8, [rbp + 0x18]
mov edx, r14d
mov qword [rsp + 0x28], 0
mov rcx, rbx
mov qword [rsp + 0x20], 0
call fcn.00409120
lea rax, [rsp + 0x8c]
mov rcx, rbx
movss xmm2, dword [rbp + 0x20]
mov qword [rsp + 0x20], rax
movss xmm1, dword [rbp + 0x18]
lea r9, [rsp + 0x88]
call fcn.00409040
call fcn.004080c0
test rdi, rdi
je 0x403ef0
cmp dword [rdi], 7
je 0x404180
movzx eax, byte [rdi]
mov esi, eax
and esi, 7
je 0x403eb0
movzx edx, word [rdi + 2]
shr al, 3
add rdi, 4
movzx eax, al
lea r14d, [rdx - 1]
movzx edx, byte [rdi - 3]
shl rdx, 5
or eax, edx
imul eax, esi
mov r15d, eax
mov edx, dword [rsp + 0x8c]
mov eax, dword [rbx + 0x34]
lea ecx, [rdx + r14]
cmp ecx, eax
jle 0x403e40
add eax, dword [rbx + 0x3c]
cmp edx, eax
jge 0x403e40
cmp dword [rbx + 0x14], esi
jne 0x403ec0
cmp r15d, 3
jle 0x403ec0
test r14d, r14d
jle 0x403ec0
cmp byte [rdi], 0
jne 0x403ec0
movzx r10d, byte [rdi + 1]
movzx r11d, byte [rdi + 2]
cmp r10d, r11d
jle 0x403beb
mov eax, r10d
mov r10d, r11d
mov r11d, eax
mov rax, qword [0x0041cf60]
lea r9, [rsp + 0x90]
xor edx, edx
mov dword [rsp + 0x64], r11d
mov rcx, r9
mov dword [rsp + 0x68], r10d
mov r8d, 0x1000
mov qword [rsp + 0x70], r9
call qword [rax]
mov edx, dword [rbx + 0x34]
mov ecx, dword [rsp + 0x8c]
movsxd rax, r15d
add rax, rdi
mov r9, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x68]
cmp edx, ecx
mov qword [rsp + 0x78], rax
mov r11d, dword [rsp + 0x64]
jle 0x403c62
mov r8d, edx
mov dword [rsp + 0x8c], edx
sub r8d, ecx
mov ecx, r8d
sub r14d, r8d
imul ecx, r15d
movsxd rcx, ecx
add rax, rcx
mov ecx, edx
mov qword [rsp + 0x78], rax
add edx, dword [rbx + 0x3c]
lea r8d, [r14 + rcx]
mov eax, edx
sub eax, ecx
cmp r8d, edx
cmovg r14d, eax
cmp r10d, r11d
jg 0x4041ab
mov r8d, r11d
mov rax, qword [rsp + 0x78]
lea rcx, [rdi + 3]
movsxd rdx, r10d
shl rdx, 4
sub r8d, r10d
lea rdx, [r9 + rdx + 8]
lea r11, [rdi + r8 + 4]
xor r9d, r9d
movzx r8d, byte [rcx]
add rcx, 1
mov qword [rdx], rax
add rdx, 0x10
mov r10d, r8d
mov dword [rdx - 0x18], r8d
add r9d, r8d
imul r10d, esi
add rax, r10
cmp r11, rcx
jne 0x403ca0
mov rax, qword [0x0041cc10]
mov r8, qword [rax]
mov eax, r15d
cdq
idiv dword [r8 + 0x2c]
cmp eax, r9d
jl 0x403ec0
mov rax, qword [r13 + 8]
test eax, eax
jle 0x403e11
mov dword [rsp + 0x78], r15d
xor edi, edi
mov r15, rax
mov dword [rsp + 0x70], r12d
jmp 0x403dbf
mov r8d, dword [rsp + r8 + 0x90]
lea r9d, [rax + r8]
mov r11d, r8d
cmp edx, r9d
jg 0x403da8
cmp edx, eax
jle 0x403d38
mov r11d, edx
sub r11d, eax
mov r9d, r11d
sub r8d, r11d
imul r9d, esi
movsxd r9, r9d
add r10, r9
lea r9d, [rax + r8]
mov eax, edx
mov edx, r9d
mov r11d, r8d
sub edx, ecx
sub r11d, edx
cmp ecx, r9d
mov rcx, qword [rbx + 8]
movsxd r9, dword [rsp + 0x8c]
cmovl r8d, r11d
imul eax, esi
shl r12, 4
movsxd rdx, eax
mov rax, qword [rbp + 0x60]
add rdx, qword [rcx + r9*8]
mov r9d, r14d
mov rcx, r10
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x58]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x38]
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 0x18]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call qword [rbp + 0x50]
mov r11d, dword [rsp + r12 + 0x90]
mov eax, dword [rsp + 0x88]
mov r15, qword [r13 + 8]
add eax, r11d
mov dword [rsp + 0x88], eax
add rdi, 1
cmp r15d, edi
jle 0x404197
mov edx, dword [rbx + 0x30]
mov ecx, dword [rbx + 0x38]
mov eax, dword [rsp + 0x88]
add ecx, edx
cmp ecx, eax
jle 0x404197
mov r8, qword [r13]
movzx r12d, byte [r8 + rdi]
mov r8, r12
shl r8, 4
mov r10, qword [rsp + r8 + 0x98]
test r10, r10
jne 0x403d00
add eax, r14d
mov dword [rsp + 0x88], eax
jmp 0x403db2
mov r14d, dword [rsp + 0x78]
mov r12d, dword [rsp + 0x60]
mov r13, qword [rbp + 0x30]
mov rax, qword [rbx + 8]
mov rax, qword [rax]
cmp qword [r8 + 0x18], rax
jne 0x403e40
mov rax, qword [0x0041cf60]
movsxd rcx, dword [rsp + 0x8c]
mov edx, 1
add rcx, qword [r8 + 0x50]
movsxd r8, r14d
call qword [rax]
nop dword [rax + rax]
xor edx, edx
mov ecx, 1
call fcn.00408110
mov rcx, r13
call fcn.00403050
test r12d, r12d
jne 0x403e85
lea rsp, [rbp - 0x38]
mov eax, r12d
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r13, r13
jne 0x403e4c
nop dword [rax]
xor ecx, ecx
mov r12d, 1
call fcn.00403050
mov ecx, r12d
call fcn.00414090
mov r12d, eax
jmp 0x403e59
mov ecx, dword [rbx + 0x14]
mov edx, dword [rbp + 0x38]
call fcn.00404dc0
mov dword [rbp + 0x38], eax
jmp 0x403aef
mov esi, dword [rbx + 0x14]
jmp 0x403b6b
xor edx, edx
mov ecx, 1
mov r12d, 1
call fcn.00408110
mov rcx, r13
call fcn.00403050
mov ecx, r12d
call fcn.00414090
mov r12d, eax
jmp 0x403e59
mov rax, qword [0x0041cc10]
mov r11, qword [r13 + 8]
mov ecx, dword [rsp + 0x88]
mov r9d, dword [rbx + 0x30]
mov r8, qword [rax]
mov dword [rsp + 0x78], r11d
mov rax, qword [r8 + 0x80]
mov r10d, dword [rax]
mov r14d, r10d
imul r14d, r11d
lea esi, [r14 + rcx]
cmp esi, r9d
jle 0x403e40
mov r15d, dword [rbx + 0x38]
add r15d, r9d
cmp ecx, r15d
jge 0x403e40
mov r14d, dword [rax + 4]
mov edx, dword [rsp + 0x8c]
lea eax, [rdx + r14]
mov dword [rsp + 0x70], eax
mov edi, eax
mov eax, dword [rbx + 0x34]
cmp edi, eax
jle 0x403e40
mov edi, dword [rbx + 0x3c]
add edi, eax
mov dword [rsp + 0x68], edi
cmp edx, edi
jge 0x403e40
lea edi, [r10 + 0xe]
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x64], edi
mov edi, r10d
add edi, 7
cmovs edi, dword [rsp + 0x64]
sar edi, 3
mov dword [rsp + 0x64], edi
cmp edx, eax
jge 0x403fb5
mov edi, eax
mov dword [rsp + 0x8c], eax
sub edi, edx
mov edx, edi
mov edi, dword [rsp + 0x64]
sub r14d, edx
imul edi, edx
add eax, r14d
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x58], edi
mov eax, dword [rsp + 0x70]
mov edi, dword [rsp + 0x68]
mov edx, r14d
sub eax, edi
sub edx, eax
cmp edi, dword [rsp + 0x70]
mov dword [rsp + 0x70], 0
cmovl r14d, edx
cmp ecx, r9d
jge 0x404003
mov eax, r9d
mov edi, r11d
sub eax, ecx
cdq
idiv r10d
mov edx, eax
mov dword [rsp + 0x70], eax
imul eax, r10d
sub edi, edx
add ecx, eax
mov eax, edi
imul eax, r10d
mov dword [rsp + 0x88], ecx
lea esi, [rax + rcx]
cmp r15d, esi
jge 0x40401a
mov eax, esi
mov edi, r11d
sub eax, r15d
cdq
idiv r10d
sub edi, eax
mov dword [rsp + 0x78], edi
mov eax, dword [rsp + 0x70]
mov edi, dword [rsp + 0x78]
cmp eax, edi
jge 0x403e11
movsxd rdx, eax
not eax
mov dword [rsp + 0x60], r12d
mov r12d, dword [rbp + 0x38]
lea eax, [rax + rdi]
mov qword [rsp + 0x70], rdx
lea rax, [rdx + rax + 1]
mov qword [rbp + 0x30], r13
mov edx, r9d
mov r13d, r10d
mov qword [rsp + 0x68], rax
movsxd rax, dword [rsp + 0x58]
mov r9d, ecx
mov dword [rsp + 0x78], r14d
mov qword [rsp + 0x58], rax
jmp 0x404093
add qword [rsp + 0x70], 1
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x88], eax
cmp qword [rsp + 0x68], rcx
je 0x403e03
mov edx, dword [rbx + 0x30]
mov r9d, eax
lea eax, [r13 + r9]
cmp eax, edx
jle 0x404070
add edx, dword [rbx + 0x38]
cmp edx, r9d
jle 0x403e03
mov rcx, qword [rbp + 0x30]
mov rdx, qword [r8 + 0x80]
xor r15d, r15d
mov r11, qword [rcx]
mov rcx, qword [rsp + 0x70]
movzx edi, byte [r11 + rcx]
imul edi, dword [rsp + 0x64]
imul edi, dword [rdx + 4]
movsxd rdi, edi
add rdi, qword [rsp + 0x58]
add rdi, qword [rdx + 8]
mov edx, dword [rsp + 0x78]
test edx, edx
jle 0x404070
mov eax, r15d
mov r15, rbx
mov ebx, eax
nop dword [rax + rax]
xor esi, esi
test r13d, r13d
jle 0x40415c
nop word [rax + rax]
movzx eax, byte [rdi]
mov r14d, esi
and r14d, 7
bt eax, r14d
jae 0x404148
mov eax, dword [r15 + 0x30]
lea edx, [rsi + r9]
cmp edx, eax
jl 0x404148
add eax, dword [r15 + 0x38]
cmp edx, eax
jge 0x404148
mov r8d, dword [rsp + 0x8c]
mov r9d, r12d
mov rcx, r15
add r8d, ebx
call qword [r15 + 0x68]
mov r9d, dword [rsp + 0x88]
nop dword [rax]
xor eax, eax
cmp r14d, 7
sete al
add esi, 1
add rdi, rax
cmp r13d, esi
jne 0x404100
add ebx, 1
cmp dword [rsp + 0x78], ebx
jne 0x4040f0
mov rcx, qword [0x0041cc10]
mov rbx, r15
lea eax, [r13 + r9]
mov r8, qword [rcx]
jmp 0x404070
mov eax, dword [rdi + 0xc]
mov esi, dword [rdi + 4]
add rdi, 0x20
mov r15d, dword [rdi - 0x10]
lea r14d, [rax - 1]
jmp 0x403b8d
mov rax, qword [0x0041cc10]
mov r12d, dword [rsp + 0x70]
mov r8, qword [rax]
jmp 0x403e11
xor r9d, r9d
jmp 0x403cc5