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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1f8
mov ebx, dword [ebp + 8]
mov dword [esp + 0xfc], edx
mov edi, ecx
lea esi, [esp + 0x150]
mov ecx, esi
mov edx, dword [ebx]
push 0
push 0x64
push 0
push 0
call fcn.004454b0
add esp, 0x10
cmp dword [esi], 1
jne 0x419b6e
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
mov dword [edi + 4], ecx
mov dword [edi + 8], eax
mov dword [edi], 1
jmp 0x41a5c7
lea esi, [esp + 0x150]
mov edx, ebx
mov dword [esp + 0x30], edi
mov ecx, esi
call fcn.0040f835
cmp byte [esi], 1
jne 0x419baa
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x154]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov dword [edx], 1
jmp 0x41a5c7
lea edi, [esp + 0x150]
movzx ecx, byte [edi + 1]
call fcn.0041c473
movzx ecx, al
mov edx, 0x45abf0
call fcn.004066fa
mov esi, ebx
mov ebx, eax
movzx edx, al
mov ecx, edi
mov dword [esp + 4], edx
push esi
call fcn.0041c49c
pop eax
mov esi, dword [edi + 8]
cmp dword [edi], 1
jne 0x419bff
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x154]
mov dword [ecx + 4], eax
mov dword [ecx + 8], esi
mov dword [ecx], 1
jmp 0x41a5c7
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x15c]
mov edx, dword [ebp + 8]
lea ecx, [esp + 0x138]
shr eax, 0x10
push eax
call fcn.0041bca4
pop eax
and dword [esp + 0x48], 0
and dword [esp + 0x50], 0
xor esi, 1
jne 0x419c3c
dec edi
lea ecx, [esp + 0x48]
mov edx, edi
call fcn.004093ab
mov al, 1
cmp bl, 3
mov dword [esp + 0xac], eax
je 0x419ce2
cmp dword [esp + 4], 2
jne 0x419d0d
mov ebx, dword [esp + 0x138]
mov edi, dword [esp + 0x140]
mov eax, dword [esp + 0x13c]
lea ecx, [ebx + edi*2]
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], ebx
add ebx, 2
add edi, edi
mov dword [esp + 4], ecx
mov dword [esp + 0x1cc], ecx
test edi, edi
je 0x419cef
mov esi, dword [ebp + 8]
movzx eax, word [ebx - 2]
lea ecx, [esp + 0x150]
mov edx, dword [esi]
push 0
push eax
push 0
push 0
call fcn.004454b0
add esp, 0x10
cmp dword [esp + 0x150], 1
je 0x41a503
mov ecx, esi
call fcn.0041bd1b
lea edx, [eax - 1]
lea ecx, [esp + 0x48]
call fcn.004093ab
add ebx, 2
add edi, 0xfffffffe
jmp 0x419c96
lea ecx, [esp + 0x48]
xor edx, edx
call fcn.004093ab
jmp 0x419d0d
mov eax, dword [esp + 4]
lea ecx, [esp + 0x1c0]
mov dword [ecx + 8], eax
call fcn.00405151
mov dword [esp + 0xac], 0
push 4
pop ebx
lea esi, [esp + 0x1c0]
lea edx, [esp + 0x48]
mov ecx, esi
mov dword [esp + 0x38], ebx
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
call fcn.004030c7
push 9
pop ecx
lea eax, [esp + 0x150]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x10]
lea ecx, [edi + ebx]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xdc], ecx
mov ecx, eax
call fcn.00402cb4
test eax, eax
je 0x41a5d9
mov eax, dword [eax]
mov edx, dword [ebx]
mov ecx, eax
imul ecx, dword [esp + 0xfc]
test eax, eax
lea esi, [ecx + 0x64]
mov dword [esp + 0xf4], ecx
cmovne esi, ecx
mov ecx, edi
push 0
push esi
push 0
push 0
call fcn.004454b0
add esp, 0x10
cmp dword [esp + 0x10], 1
je 0x41a5cf
mov ecx, edi
mov edx, ebx
call fcn.0040f835
cmp byte [esp + 0x10], 1
je 0x41a5cf
movzx ecx, byte [esp + 0x11]
call fcn.0041c473
cmp al, 4
movzx eax, al
push 0xb
pop ecx
cmove eax, ecx
movzx esi, al
je 0x41a794
mov ecx, edi
mov edx, esi
push ebx
call fcn.0041c49c
pop eax
cmp dword [esp + 0x10], 1
je 0x41a5cf
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x1a4]
mov edx, ebx
shr eax, 0x10
push eax
call fcn.0041bca4
pop eax
mov ecx, dword [esp + 0x1a4]
mov esi, dword [esp + 0x1ac]
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, esi
lea edx, [ecx + esi*2]
mov dword [esp + 0xa4], ecx
add ecx, 2
add eax, esi
mov dword [esp + 0xd8], edx
mov dword [esp + 0xa8], edx
test eax, eax
je 0x41a4a6
mov dword [esp + 0x34], eax
movzx eax, word [ecx - 2]
mov edx, dword [ebx]
mov dword [esp + 0xc], ecx
mov ecx, edi
add eax, dword [esp + 0xf4]
push 0
push eax
push 0
push 0
call fcn.004454b0
add esp, 0x10
cmp dword [esp + 0x10], 1
je 0x41a4cc
xor esi, esi
and dword [esp + 0x14], 0
lea eax, [esp + 0x54]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x18], ebx
lea ecx, [esp + 0x60]
mov edx, edi
inc esi
mov dword [esp + 0x54], esi
and dword [esp + 0x58], 0
and dword [esp + 0x5c], 0
push eax
call fcn.004083f3
pop eax
cmp dword [esp + 0x60], esi
je 0x41a4e4
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
call fcn.0041cec2
mov esi, ebx
movzx ebx, cl
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea ecx, [esp + 0x54]
mov edx, ebx
push 0x45ac00
call fcn.0040b26d
pop ecx
mov ecx, eax
call fcn.0041cec2
movzx eax, cl
mov edx, dword [esi]
mov ecx, edi
add eax, ebx
mov ebx, 0
add eax, 0xfffffff0
adc ebx, 0xffffffff
push ebx
push eax
push 0
push 2
call fcn.004454b0
add esp, 0x10
cmp dword [esp + 0x10], 1
je 0x41a4ee
mov eax, dword [esp + 8]
xor ebx, ebx
lea ecx, [esp + 0x60]
mov edx, edi
inc ebx
mov dword [esp + 0xcc], ebx
and dword [esp + 0xd0], 0
and dword [esp + 0xd4], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xcc]
mov dword [esp + 0x18], esi
push eax
call fcn.004083f3
pop eax
cmp dword [esp + 0x60], ebx
je 0x41a547
mov eax, dword [esp + 0xd4]
movsd xmm0, qword [esp + 0xcc]
lea edi, [esp + 0xb8]
lea ecx, [esp + 0xb0]
mov dword [edi + 8], eax
movsd qword [edi], xmm0
and dword [esp + 0xb4], 0
and dword [esp + 0xb0], 0
call fcn.0041ce40
movzx edx, cl
mov esi, eax
mov ecx, edi
push eax
call fcn.0040b288
pop ecx
lea ecx, [esp + 0xb8]
mov edi, edx
mov ebx, eax
mov edx, esi
push 0x45ac20
call fcn.0040b26d
pop ecx
mov dword [esp + 0x1b8], ebx
mov dword [esp + 0x1bc], edi
and dword [esp + 0x1b4], 0
and dword [esp + 0x1b0], 0
lea esi, [esp + 0x1b0]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov ecx, esi
call fcn.0041ce81
mov ecx, esi
mov edi, eax
mov ebx, edx
call fcn.0041ce81
mov ecx, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0xf8], edx
call fcn.0041ce81
mov ecx, esi
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], edx
call fcn.0041ce81
mov ecx, esi
call fcn.0041ce81
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe8], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
and dword [esp + 0x8c], 0
and dword [esp + 0x88], 0
lea ecx, [esp + 0x10]
lea edx, [esp + 0x88]
push ebx
push edi
call fcn.0041cd00
pop eax
pop ecx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x10], 1
mov dword [esp + 4], ecx
jne 0x41a08a
lea ebx, [esp + 0x54]
jmp 0x41a141
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x144], esi
mov dword [esp + 0x148], ecx
mov dword [esp + 8], esi
lea ecx, [esp + 0x10]
lea edx, [esp + 0x88]
mov dword [esp + 0x14c], eax
push dword [esp + 0xf8]
push dword [esp + 0x48]
call fcn.0041cd00
pop eax
pop ecx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x10], 1
lea ebx, [esp + 0x54]
je 0x41a12f
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], esi
lea ecx, [esp + 0x10]
lea edx, [esp + 0x88]
mov dword [esp + 0x108], eax
push dword [esp + 0xec]
push dword [esp + 0xf4]
call fcn.0041cd00
pop eax
pop ecx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x10], 1
jne 0x41a33b
lea ecx, [esp + 0x100]
call fcn.00435706
lea ecx, [esp + 0x144]
call fcn.00435706
mov dword [esp + 4], esi
mov esi, edi
xor edi, edi
inc edi
mov eax, dword [esp + 0x78]
movsd xmm1, qword [esp + 0x68]
movsd xmm0, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x60]
lea ecx, [esp + 0xb8]
mov dword [esp + 0x130], eax
movsd qword [esp + 0x120], xmm1
movsd xmm1, qword [esp + 0x198]
mov eax, dword [esp + 0x1a0]
movsd qword [esp + 0x128], xmm0
movsd qword [esp + 0x118], xmm2
movsd qword [esp + 0x188], xmm1
mov dword [esp + 0x190], eax
call fcn.00435706
mov ecx, ebx
call fcn.00435706
movsd xmm1, qword [esp + 0x120]
mov eax, dword [esp + 0x130]
mov ebx, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x118]
movsd xmm2, qword [esp + 0x128]
movsd qword [esp + 0x18], xmm1
mov dword [esp + 0x28], eax
movsd xmm1, qword [esp + 0x188]
mov eax, dword [esp + 0x190]
cmp ebx, dword [esp + 0x3c]
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 0x20], xmm2
movsd qword [esp + 0x88], xmm1
mov dword [esp + 0x90], eax
jne 0x41a264
mov ecx, ebx
mov dword [esp + 8], edi
inc ecx
je 0x41a7e8
lea eax, [ebx + ebx]
mov edi, esi
cmp eax, ecx
cmova ecx, eax
push 4
pop eax
cmp ecx, eax
cmovbe ecx, eax
xor esi, esi
mov eax, ecx
push 0x38
pop ecx
mul ecx
mov ecx, eax
jo 0x41a247
push 4
pop edx
call fcn.00406437
mov esi, edx
test ebx, ebx
je 0x41a26e
mov edx, dword [esp + 0x38]
imul ecx, ebx, 0x38
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], 4
jmp 0x41a273
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 4]
jmp 0x41a2be
and dword [esp + 0x60], 0
mov edx, eax
lea ecx, [esp + 0xb0]
lea eax, [esp + 0x60]
push eax
push esi
call fcn.00435478
pop eax
pop ecx
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xb0], 1
je 0x41a7f7
xor edx, edx
mov dword [esp + 0x38], ecx
push 0x38
pop esi
div esi
mov esi, edi
mov edx, dword [esp + 4]
mov edi, dword [esp + 8]
mov dword [esp + 0x3c], eax
imul eax, ebx, 0x38
mov ebx, dword [ebp + 8]
mov dword [ecx + eax], edi
mov dword [ecx + eax + 4], esi
mov dword [ecx + eax + 8], edx
lea edi, [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd qword [ecx + eax + 0xc], xmm0
movsd qword [ecx + eax + 0x14], xmm1
movsd xmm0, qword [esp + 0x20]
movsd qword [ecx + eax + 0x1c], xmm0
mov edx, dword [esp + 0x28]
mov dword [ecx + eax + 0x24], edx
mov edx, dword [esp + 0xe0]
mov dword [ecx + eax + 0x28], edx
movsd xmm0, qword [esp + 0x88]
movsd qword [ecx + eax + 0x2c], xmm0
mov edx, dword [esp + 0x90]
mov dword [ecx + eax + 0x34], edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
inc dword [esp + 0x40]
add ecx, 2
add eax, 0xfffffffe
jmp 0x419e38
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x88]
mov dword [esp + 0x10c], edi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], eax
call fcn.0041ce81
mov dword [esp + 0x7c], 1
and dword [esp + 0x80], 0
and dword [esp + 0x84], 0
mov edx, eax
push 0xd
pop eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe4]
cmp eax, esi
mov eax, 0
sbb eax, edi
lea eax, [esp + 0x88]
jae 0x41a406
add esi, 0xfffffff3
mov dword [esp + 0x44], edx
lea ecx, [esp + 0x10]
mov edx, eax
adc edi, 0xffffffff
push edi
push esi
call fcn.0041cd00
pop eax
pop ecx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x10], 1
jne 0x41a3df
lea ecx, [esp + 0x7c]
call fcn.00435706
lea ecx, [esp + 0x10c]
call fcn.00435706
jmp 0x41a123
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x7c]
call fcn.00435706
mov edx, dword [esp + 0x44]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
lea ebx, [esp + 0x54]
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0xdc]
movsd xmm0, qword [esp + 0x100]
mov esi, dword [esp + 8]
xor edi, edi
mov dword [esp + 0xe0], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x108]
movsd qword [ecx], xmm0
movsd xmm0, qword [esp + 0x10c]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x114]
lea ecx, [esp + 0x10]
movsd qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
movsd xmm1, qword [esp + 0x18]
mov eax, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x10]
movsd xmm2, qword [esp + 0x20]
movsd qword [esp + 0x68], xmm1
mov dword [esp + 0x78], eax
movsd xmm1, qword [esp + 0x7c]
mov eax, dword [esp + 0x84]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x198], xmm1
mov dword [esp + 0x1a0], eax
jmp 0x41a144
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0x9c]
mov dword [esp + 0xa4], eax
call fcn.00405151
lea eax, [esp + 0x150]
jmp 0x419d4f
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xa4], eax
jmp 0x41a56f
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
jmp 0x41a4f6
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
jmp 0x41a566
mov eax, dword [esp + 0x158]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x154]
lea ecx, [esp + 0x1c0]
mov dword [ecx + 8], ebx
mov dword [esi + 8], eax
mov dword [esi + 4], edx
mov dword [esi], 1
call fcn.00405151
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
push dword [esp + 0x50]
call fcn.00404e56
pop eax
jmp 0x41a5c7
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0xcc]
mov dword [esp + 0xa4], eax
call fcn.00435706
lea ecx, [esp + 0x54]
call fcn.00435706
lea ecx, [esp + 0x9c]
call fcn.00405151
lea edi, [esp + 0x38]
mov ecx, dword [edi]
mov edx, dword [edi + 8]
call fcn.004051c5
mov ecx, edi
call fcn.004054f7
mov ecx, dword [esp + 0x30]
xor eax, eax
inc eax
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebx
mov dword [ecx], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
push dword [esp + 0x50]
call fcn.00404e56
pop eax
cmp byte [esp + 0xac], 0
je 0x41a5c7
lea ecx, [esp + 0x138]
call fcn.0044b074
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x41a57b
mov eax, dword [esp + 0x38]
imul esi, dword [esp + 0x40], 0x38
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x60]
add esi, eax
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
lea esi, [esp + 0x1c0]
mov ecx, esi
call fcn.00402974
cmp dword [esi], 0
je 0x41a7c4
push 0xd
pop ecx
lea edi, [esp + 0x150]
lea esi, [esp + 0x1c0]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
inc ecx
mov dword [esp + 4], ecx
call fcn.004064e3
test edx, edx
je 0x41a806
mov ebx, eax
test eax, eax
js 0x41a806
mov ecx, ebx
mov edi, edx
call fcn.0040aa6b
mov esi, eax
test eax, eax
je 0x41a816
mov eax, edx
push 0x34
pop ebx
xor edx, edx
div ebx
mov dword [esp + 0xc], eax
push ebx
lea eax, [esp + 0x154]
push eax
push esi
call fcn.0044b854
add esp, 0xc
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
lea eax, [esp + 0x10]
lea edi, [esp + 0x1c0]
mov dword [esp + 0x34], ebx
mov dword [esp + 8], esi
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov ecx, edi
lea edx, [esp + 0x10]
call fcn.00402974
cmp dword [esp + 0x1c0], 0
je 0x41a7a1
push 0xd
pop ecx
mov esi, edi
lea edi, [esp + 0x150]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0xc]
cmp edi, eax
jne 0x41a715
mov ecx, eax
inc ecx
je 0x41a7f3
add eax, eax
cmp eax, ecx
cmova ecx, eax
push 4
pop eax
cmp ecx, eax
cmovbe ecx, eax
call fcn.004064e3
mov ecx, dword [esp + 0xc]
mov esi, edx
test ecx, ecx
je 0x41a71b
mov edx, dword [esp + 8]
imul ecx, ecx, 0x34
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], 4
jmp 0x41a723
mov ecx, dword [esp + 8]
jmp 0x41a760
and dword [esp + 0x118], 0
mov edx, eax
lea ecx, [esp + 0xb0]
lea eax, [esp + 0x118]
push eax
push esi
call fcn.00435478
pop eax
pop ecx
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xb0], 1
je 0x41a802
xor edx, edx
div ebx
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x34]
mov dword [esp + 8], ecx
lea eax, [ecx + esi]
push ebx
lea ecx, [esp + 0x154]
push ecx
push eax
call fcn.0044b854
add esp, 0xc
inc edi
add esi, ebx
mov dword [esp + 4], edi
mov dword [esp + 0x34], esi
lea edi, [esp + 0x1c0]
jmp 0x41a699
shl esi, 8
xor ebx, ebx
or esi, 1
jmp 0x41a57b
lea ecx, [esp + 0x1c0]
call fcn.00405b77
lea ecx, [esp + 0x10]
call fcn.004059cd
mov edx, dword [esp + 4]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 8]
jmp 0x41a7d4
lea ecx, [esp + 0x60]
call fcn.004059cd
xor edx, edx
xor edi, edi
push 4
pop eax
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edx
jmp 0x41a59d
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
xor eax, eax
jmp 0x41a802
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa4], edx
test eax, eax
jne 0x41a80d
call fcn.0042e8c0
ud2
mov edx, eax
call fcn.0042e8b0
ud2
mov ecx, ebx
mov edx, edi
jmp 0x41a80f