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

Disassembly:
sub esp, 0x74
push esi
push edi
mov edi, dword [esp + 0x80]
xor esi, esi
test edi, edi
jne 0x41382b
pop edi
lea eax, [esi - 0x66]
pop esi
add esp, 0x74
ret
mov ecx, dword [edi + 0x58]
add ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x5c]
adc eax, dword [edi + 0x4c]
push 0
push eax
push ecx
push dword [edi + 0x30]
push edi
call fcn.004165f0
add esp, 0x14
test eax, eax
je 0x413850
or esi, 0xffffffff
jmp 0x41387a
lea eax, [esp + 0x10]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412660
add esp, 0xc
test eax, eax
je 0x41386a
or esi, 0xffffffff
jmp 0x41387a
cmp dword [esp + 0x10], 0x2014b50
mov eax, 0xffffff99
cmovne esi, eax
push ebx
push ebp
lea eax, [esp + 0x2c]
push eax
push dword [edi + 0x30]
push edi
call fcn.004125c0
or ebx, 0xffffffff
test eax, eax
lea eax, [esp + 0x3c]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x4c]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x5c]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x6c]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.00412660
test eax, eax
lea eax, [esp + 0xa8]
push eax
push 0
push dword [esp + 0x80]
cmovne esi, ebx
call fcn.00413790
add esp, 0x48
lea eax, [esp + 0x40]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412660
test eax, eax
lea eax, [esp + 0x1c]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.00412660
test eax, eax
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
cmovne esi, ebx
lea eax, [esp + 0x28]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412660
test eax, eax
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x70], eax
cmovne esi, ebx
lea eax, [esp + 0x78]
push eax
push dword [edi + 0x30]
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x88]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x98]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
add esp, 0x48
test eax, eax
lea eax, [esp + 0x60]
cmovne esi, ebx
push eax
push dword [edi + 0x30]
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x70]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.004125c0
test eax, eax
lea eax, [esp + 0x80]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.00412660
test eax, eax
lea eax, [esp + 0x34]
push eax
push dword [edi + 0x30]
cmovne esi, ebx
push edi
call fcn.00412660
mov ebp, dword [esp + 0x84]
add esp, 0x30
test eax, eax
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x10]
cmovne esi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
test esi, esi
jne 0x413ae9
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x413a53
mov eax, dword [esp + 0x98]
cmp ebp, eax
jae 0x413a25
mov byte [ecx + ebp], 0
mov ebx, ebp
jmp 0x413a27
mov ebx, eax
test ebp, ebp
je 0x413a49
test eax, eax
je 0x413a49
mov eax, dword [edi + 4]
push ebx
push ecx
push dword [edi + 0x30]
push dword [edi + 0x1c]
call eax
add esp, 0x10
cmp eax, ebx
mov eax, 0xffffffff
cmovne esi, eax
sub ebp, ebx
test esi, esi
jne 0x413ae9
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x413ae9
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x10], ebx
cmp ebx, eax
jb 0x413a79
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x413aa9
push 1
mov eax, ebp
cdq
push edx
push eax
push dword [edi + 0x30]
push edi
call fcn.004165f0
mov ecx, dword [esp + 0xb0]
add esp, 0x14
test eax, eax
mov eax, dword [esp + 0xa0]
jne 0x413aa6
xor ebp, ebp
jmp 0x413aa9
or esi, 0xffffffff
test ebx, ebx
je 0x413add
test eax, eax
je 0x413add
push dword [esp + 0x10]
mov eax, dword [edi + 4]
push ecx
push dword [edi + 0x30]
push dword [edi + 0x1c]
call eax
mov ecx, dword [esp + 0x20]
add esp, 0x10
xor edx, edx
cmp eax, ecx
jne 0x413ad2
test edx, edx
je 0x413ae1
mov eax, ebx
or esi, 0xffffffff
sub eax, ecx
add ebp, eax
jmp 0x413aef
mov ecx, dword [esp + 0x10]
mov eax, ebx
sub eax, ecx
add ebp, eax
jmp 0x413aef
mov ebx, dword [esp + 0x58]
add ebp, ebx
test esi, esi
jne 0x413d47
test ebx, ebx
je 0x413c57
sub ebp, ebx
mov dword [esp + 0x18], ebp
je 0x413b29
push 1
mov eax, ebp
cdq
push edx
push eax
push dword [edi + 0x30]
push edi
call fcn.004165f0
add esp, 0x14
test eax, eax
jne 0x413b26
xor ebp, ebp
mov dword [esp + 0x18], ebp
jmp 0x413b29
or esi, 0xffffffff
test ebx, ebx
je 0x413c4f
xor ebp, ebp
lea eax, [esp + 0x1c]
push eax
push dword [edi + 0x30]
push edi
call fcn.004125c0
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
lea eax, [esp + 0x1c]
push eax
push dword [edi + 0x30]
push edi
call fcn.004125c0
add esp, 0x18
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
cmp dword [esp + 0x1c], 1
jne 0x413c1c
cmp dword [esp + 0x4c], eax
jne 0x413b9d
cmp dword [esp + 0x50], 0
jne 0x413b9d
lea eax, [esp + 0x4c]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412780
mov ebx, dword [esp + 0x64]
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
cmp dword [esp + 0x44], 0xffffffff
jne 0x413bca
cmp dword [esp + 0x48], 0
jne 0x413bca
lea eax, [esp + 0x44]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412780
mov ebx, dword [esp + 0x64]
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
cmp dword [esp + 0x14], 0xffffffff
jne 0x413bfb
cmp dword [esp + 0x28], 0
jne 0x413bfb
lea eax, [esp + 0x24]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412780
add esp, 0xc
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x60], 0xffffffff
jne 0x413c3a
lea eax, [esp + 0x20]
push eax
push dword [edi + 0x30]
push edi
call fcn.00412660
add esp, 0xc
test eax, eax
je 0x413c3a
or esi, 0xffffffff
jmp 0x413c3a
push 1
push 0
push dword [esp + 0x18]
push dword [edi + 0x30]
push edi
call fcn.004165f0
add esp, 0x14
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0x10]
add eax, 4
add ebp, eax
cmp ebp, ebx
jb 0x413b33
mov ebp, dword [esp + 0x18]
test esi, esi
jne 0x413d47
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x413ce3
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0xa8]
cmp ebx, eax
jae 0x413c7f
mov byte [ebx + ecx], 0
mov dword [esp + 0x18], ebx
jmp 0x413c83
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x413cb2
push 1
mov eax, ebp
cdq
push edx
push eax
push dword [edi + 0x30]
push edi
call fcn.004165f0
mov ecx, dword [esp + 0xb8]
add esp, 0x14
test eax, eax
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0xa8]
test ebx, ebx
je 0x413cdf
test eax, eax
je 0x413cdf
mov ebx, dword [esp + 0x18]
mov eax, dword [edi + 4]
push ebx
push ecx
push dword [edi + 0x30]
push dword [edi + 0x1c]
call eax
add esp, 0x10
cmp eax, ebx
je 0x413cdf
pop ebp
pop ebx
or esi, 0xffffffff
pop edi
mov eax, esi
pop esi
add esp, 0x74
ret
test esi, esi
jne 0x413d47
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x413d2f
movdqu xmm0, xmmword [esp + 0x2c]
movdqu xmmword [eax], xmm0
movdqu xmm0, xmmword [esp + 0x3c]
movdqu xmmword [eax + 0x10], xmm0
movdqu xmm0, xmmword [esp + 0x4c]
movdqu xmmword [eax + 0x20], xmm0
movdqu xmm0, xmmword [esp + 0x5c]
movdqu xmmword [eax + 0x30], xmm0
movdqu xmm0, xmmword [esp + 0x6c]
movdqu xmmword [eax + 0x40], xmm0
movq xmm0, qword [esp + 0x7c]
movq qword [eax + 0x50], xmm0
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x413d47
mov eax, dword [esp + 0x14]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 4], eax
pop ebp
pop ebx
pop edi
mov eax, esi
pop esi
add esp, 0x74
ret