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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x134
xor esi, esi
mov ecx, dword [0x5ed270]
push esi
push 0x5beb20
push 0x5beb24
mov ebx, dword [ebp + 8]
lea eax, [ecx + 1]
imul ecx, eax
mov eax, 0x5beb28
push eax
push eax
mov edx, ecx
shr edx, 0x1f
push 0x5e1148
push 0xa
add ecx, edx
sar ecx, 1
push 0x5bed00
mov dword [ebx], esi
mov dword [0x5e1148], ecx
call fcn.0045ac90
mov edi, eax
test edi, edi
jge 0x43866f
mov dword [ebx], 0xfffffffc
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
push 0
mov eax, 0x5beb20
mov edx, 0x5beb28
push eax
push eax
push edx
push edx
push 0x5ecf88
push 0xa
push 0x5bed0c
call fcn.0045ac90
mov dword [0x5e1148], eax
test eax, eax
jge 0x4386ae
mov dword [ebx], 0xfffffffc
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
call fcn.00460810
test byte [0x5ed03c], 1
je 0x4386f0
mov ecx, dword [0x5ecf7c]
mov edx, dword [0x5ed05c]
lea esi, [edx + ecx*4]
cmp eax, esi
jge 0x4386f0
push 0x1b
push 0x5bed18
call fcn.0045b2d0
mov dword [ebx], 0xfffffffc
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bed34
call fcn.0045dc50
mov dword [esp + 0x118], eax
mov edx, 0x5beb28
push 0
push 0x5beb2c
push 0x5beb20
push edx
push edx
push 0x5ecf7c
push 0xa
push 0x5bed40
mov dword [0x5e114c], eax
call fcn.0045ac90
mov dword [esp + 0x5c], eax
xor edx, edx
push edx
push edx
push edx
push edx
push edx
push 0xa
push 0x5bed4c
mov dword [0x5e1150], eax
call fcn.0045dc50
mov dword [esp + 0x58], eax
mov esi, eax
mov ecx, dword [0x5d9c90]
mov dword [0x5e1154], esi
mov edx, dword [0x5d9cb0]
shl edx, 3
lea eax, [ecx + esi*8]
mov esi, dword [esp + 0x5c]
sub eax, edx
lea ecx, [ecx + esi*8]
sub ecx, edx
push ecx
push eax
call fcn.00469880
cmp dword [0x5ed268], 0
jle 0x4387e4
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bed58
call fcn.0045dc50
mov dword [esp + 0x114], eax
xor edx, edx
push edx
push edx
push edx
push edx
push edx
push 0xa
push 0x5bed64
mov dword [0x5e1158], eax
call fcn.0045dc50
mov dword [esp + 0x110], eax
xor edx, edx
push edx
push edx
push edx
push edx
push edx
push 0xa
push 0x5bed70
mov dword [0x5e115c], eax
call fcn.0045dc50
mov dword [esp + 0x68], eax
mov dword [0x5e1160], eax
jmp 0x43880a
mov eax, 1
mov dword [esp + 0x114], eax
mov dword [0x5e1158], eax
mov dword [esp + 0x110], eax
mov dword [0x5e115c], eax
mov dword [esp + 0x68], eax
mov dword [0x5e1160], eax
call fcn.00460820
mov dword [ebx], eax
test eax, eax
jl 0x439806
cmp dword [0x5ecf78], 0xd
je 0x439aaf
movsd xmm0, qword [0x5ecff8]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
mov eax, dword [0x5ed2a0]
mov dword [0x5e1168], 1
lea esi, [eax + eax]
jne 0x43884e
jp 0x43884e
mov esi, eax
test esi, esi
jle 0x43970a
mov edx, dword [0x5e1164]
mov eax, 1
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa8], edi
mov edi, dword [eax*4 + 0x5ed5fc]
test edi, edi
jle 0x4396fc
mov edx, dword [0x5ed2a0]
cmp eax, edx
jle 0x4388a8
push ebx
push 1
push 0x5bed88
push 0x5e116c
push 0x5beb30
sub eax, edx
mov dword [0x5e116c], eax
call fcn.00462110
jmp 0x4388bf
push ebx
push 1
push 0x5bed8c
push 0x5e1168
push 0x5beb30
call fcn.00462110
cmp dword [ebx], 0
jl 0x439806
mov dword [0x5e116c], 1
mov dword [esp + 0x10c], edi
mov dword [esp + 0xd4], esi
mov eax, dword [0x5e1168]
cmp eax, dword [0x5ed2a0]
jg 0x438901
push dword [ebp + 8]
push 0x5ed29c
push 0x5beb30
call fcn.0042ce80
jmp 0x43896c
push dword [ebp + 8]
push 0x5ed1e8
push 0x5beb30
call fcn.0042e9f0
mov ebx, dword [0x5ed068]
lea esi, [esp + 0xf4]
mov eax, dword [0x5d9700]
shl eax, 3
neg eax
lea edx, [ebx + 1]
imul ebx, edx
add eax, dword [0x5d96e0]
mov ecx, ebx
shr ecx, 0x1f
add ebx, ecx
movsd xmm0, qword [eax + 8]
mulsd xmm0, qword [0x5ecff8]
sar ebx, 1
mov dword [esp + 0xf4], ebx
push esi
push 0x5e1140
push dword [0x5d9708]
movsd qword [0x5e1140], xmm0
call fcn.00474650
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jl 0x439806
cmp dword [0x5ecf78], 0xd
je 0x439a7f
mov eax, dword [0x5d9c90]
mov edx, dword [esp + 0x118]
mov ecx, dword [0x5d9cb0]
shl ecx, 3
lea ebx, [eax + edx*8]
sub ebx, ecx
push ebx
push 0x5ed068
push dword [0x5d9750]
call fcn.004697e0
mov esi, dword [0x5d9c90]
mov ebx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov ecx, dword [0x5d9cb0]
shl ecx, 3
lea ebx, [esi + ebx*8]
mov dword [esp + 0x120], esi
lea edi, [esi + edx*8]
mov dword [esp + 0x124], ecx
sub ebx, ecx
mov esi, dword [0x5ed268]
sub edi, ecx
mov ecx, dword [0x5ed068]
test ecx, ecx
mov edx, dword [0x5ed278]
mov eax, dword [0x5d9750]
mov dword [esp + 0x11c], edi
mov dword [0x5e12e0], ecx
mov dword [0x5e12e4], esi
mov dword [esp + 0x108], edx
mov dword [0x5e12e8], edx
jle 0x439a70
mov edi, dword [0x5ed284]
mov edx, dword [0x5ed288]
mov dword [esp + 0x104], edx
mov edx, dword [0x5ed294]
mov dword [esp], edx
mov dword [esp + 0x12c], edi
shl edi, 2
mov edx, dword [0x5ed298]
neg edi
mov dword [esp + 0x128], edx
xor edx, edx
mov dword [esp + 0xe4], edx
add edi, ebx
mov dword [esp + 0xf8], esi
mov dword [esp + 0x100], ecx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xfc], ebx
mov esi, edx
mov ecx, dword [esp]
inc edx
mov ebx, dword [eax + edx*4 - 4]
cmp ecx, ebx
jge 0x4395d7
cmp ebx, dword [esp + 0x128]
jg 0x4395d7
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
mov dword [0x5e139c], edx
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x120]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x78], 0
lea edi, [edx + edi*8]
sub edi, eax
mov dword [esp + 0x88], edi
mov edi, dword [0x5e1148]
mov dword [0x5e1304], esi
mov dword [esp + 0xf8], esi
mov dword [0x5e12fc], ecx
lea edx, [edx + edi*8]
sub edx, eax
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x108]
mov dword [0x5e1308], edx
mov edx, dword [esp + 0x12c]
mov eax, dword [0x5ecf7c]
mov edi, dword [0x5ed27c]
mov dword [0x5e12f8], eax
mov eax, dword [0x5ecf88]
mov dword [esp + 0xdc], edi
lea edi, [edx*4]
mov dword [0x5e1300], eax
sub ebx, edi
mov eax, dword [0x5ed280]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x78]
mov dword [esp + 0xfc], ebx
mov ebx, edx
mov dword [esp + 0x100], ecx
mov edx, dword [eax + esi*4]
cmp edx, dword [esp + 0xdc]
jle 0x438ba5
cmp edx, dword [esp + 0xc8]
jg 0x438ba5
mov ecx, dword [esp + 0x88]
mov edi, dword [ecx + edx*4 - 4]
mov edx, dword [esp + 0x8c]
mov dword [edx + edi*4 - 4], 1
jmp 0x438c67
cmp ebx, edx
jge 0x438c67
cmp edx, dword [esp + 0x104]
jg 0x438c67
mov edi, dword [esp + 0xfc]
mov dword [0x5e130c], edx
mov ecx, dword [edi + edx*4 - 4]
mov edx, dword [edi + edx*4]
mov dword [esp + 0x80], edx
lea edx, [edx - 1]
mov edi, edx
sub edi, ecx
inc edi
mov dword [esp + 0x84], edi
cmp edx, ecx
jl 0x439a65
mov edi, dword [esp + 0x11c]
xor edx, edx
mov dword [esp + 0x78], esi
mov dword [esp + 0xe8], eax
lea ecx, [edi + ecx*4]
mov esi, edx
mov edi, dword [esp + 0x84]
mov ebx, dword [esp + 0xdc]
mov eax, dword [ecx + esi*4 - 4]
cdq
xor eax, edx
sub eax, edx
cmp ebx, eax
jge 0x438c43
cmp eax, dword [esp + 0xc8]
jg 0x438c43
mov edx, dword [esp + 0x88]
mov edx, dword [edx + eax*4 - 4]
mov eax, dword [esp + 0x8c]
mov dword [eax + edx*4 - 4], 1
inc esi
cmp esi, edi
jb 0x438c13
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x12c]
mov dword [0x5e1310], edx
lea edx, [esi + 2]
inc esi
cmp esi, dword [esp + 0x100]
jb 0x438b71
mov dword [0x5e1314], edx
mov edx, dword [0x5d9c90]
mov ebx, edx
mov ecx, dword [0x5d9cb0]
shl ecx, 3
sub ebx, ecx
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xe8], eax
mov esi, dword [esp + 0xf8]
mov dword [esp + 0xbc], 1
lea eax, [ebx + edi*8]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x74], eax
mov edi, dword [esp + 0x68]
mov dword [0x5e131c], esi
lea eax, [edx + ebx*8]
mov ebx, dword [0x5ed270]
sub eax, ecx
mov dword [esp + 0x6c], ebx
mov dword [0x5e1318], ebx
mov ebx, dword [0x5ed288]
mov dword [esp + 0xac], ebx
mov ebx, dword [0x5ed294]
mov dword [esp + 0x64], eax
lea eax, [edx + edi*8]
mov dword [esp + 0xcc], ebx
sub eax, ecx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x60], eax
mov eax, dword [0x5ed284]
mov edi, dword [esp + 0x108]
lea edx, [edx + ebx*8]
sub edx, ecx
mov dword [0x5e1320], edi
lea ecx, [eax*4]
sub edx, ecx
mov dword [esp + 0x7c], edx
mov edx, dword [0x5d9728]
shl edx, 3
mov ecx, dword [0x5d9770]
neg edx
mov edi, dword [0x5ed280]
shl ecx, 2
mov dword [esp + 0xc4], edi
neg ecx
mov edi, dword [0x5ed298]
add edx, dword [0x5d9708]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xe8]
add eax, ecx
mov ecx, dword [esp + 0xbc]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xa0], edi
mov dword [esp + 0x70], edx
mov edx, dword [eax + ecx*4]
cmp ebx, edx
mov dword [0x5e1324], edx
jge 0x438da2
cmp edx, dword [esp + 0xc4]
jle 0x4395aa
cmp edx, dword [esp + 0xd0]
jle 0x439206
cmp edx, dword [esp + 0xac]
jg 0x439206
mov edi, dword [esp + 0x7c]
mov esi, dword [edi + edx*4 - 4]
mov edx, dword [edi + edx*4]
dec edx
mov dword [esp + 0xd8], edx
cmp edx, esi
jl 0x439879
mov dword [0x5e1328], ecx
lea edi, [ecx - 1]
imul edi, ecx
mov edx, edi
shr edx, 0x1f
add edi, edx
sar edi, 1
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edi
mov dword [esp + 0xe8], eax
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + esi*4 - 4]
cdq
xor eax, edx
sub eax, edx
mov dword [0x5e1330], eax
cmp ebx, eax
jge 0x438e24
cmp eax, dword [esp + 0xc4]
jle 0x4391df
cmp eax, dword [esp + 0xcc]
jle 0x4391df
cmp eax, dword [esp + 0xa0]
jg 0x4391df
mov edx, dword [esp + 0x6c]
mov dword [0x5e1334], edx
mov edi, dword [esp + 0xf8]
mov edx, dword [esp + 0x108]
sub eax, dword [esp + 0xcc]
mov dword [0x5e1338], edi
mov dword [0x5e133c], edx
mov dword [0x5e1340], eax
cmp dword [esp + 0xbc], 0
jle 0x43986a
mov dword [esp + 0x44], 1
lea edi, [eax - 1]
imul edi, eax
mov edx, edi
shr edx, 0x1f
add edi, edx
sar edi, 1
mov dword [0x5e132c], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xc0]
mov edx, dword [eax + ebx*4]
mov eax, ebx
cmp edx, dword [esp + 0xdc]
lea esi, [ecx + ebx]
jle 0x438ed5
cmp edx, dword [esp + 0xc4]
jle 0x439187
cmp edx, dword [esp + 0xd0]
jle 0x439085
cmp edx, dword [esp + 0xac]
jg 0x439085
mov ecx, dword [esp + 0x7c]
mov edi, dword [ecx + edx*4 - 4]
mov ecx, dword [ecx + edx*4]
dec ecx
mov dword [esp + 0xb8], edi
cmp ecx, edi
jl 0x43985d
sub ecx, edi
inc ecx
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x30], 0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], esi
lea ecx, [ecx + edi*4]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
lea edi, [ecx + edi*8]
mov dword [esp + 0x54], edi
mov esi, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esi + ebx*4 - 4]
cdq
xor eax, edx
add ecx, ebx
sub eax, edx
cmp eax, dword [esp + 0xdc]
jle 0x438f78
cmp eax, dword [esp + 0xc4]
jle 0x439053
cmp eax, dword [esp + 0xcc]
jle 0x439053
cmp eax, dword [esp + 0xa0]
jg 0x439053
sub eax, dword [esp + 0xcc]
cmp eax, dword [esp + 0x4c]
jge 0x438fc1
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x4c]
mov dword [0x5e1350], edx
lea edx, [eax + edi]
mov dword [0x5e1354], esi
mov dword [0x5e1358], eax
jmp 0x438feb
mov edx, dword [esp + 0x6c]
mov dword [0x5e1344], edx
lea edx, [eax - 1]
imul edx, eax
mov esi, edx
shr esi, 0x1f
add edx, esi
mov edi, dword [esp + 0x4c]
sar edx, 1
mov dword [0x5e1348], eax
add edx, edi
mov dword [0x5e134c], edi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x50]
mov dword [0x5e135c], edx
cmp eax, dword [esp + 0x4c]
movsd xmm0, qword [esi + edi*8]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x60]
mulsd xmm0, qword [esi + ebx*8 - 8]
mov esi, dword [esp + 0x48]
mulsd xmm0, qword [edi + esi*8 - 8]
mov edi, dword [esp + 0x74]
movsd xmm1, qword [edi + edx*8 - 8]
addsd xmm1, xmm0
jne 0x43904b
mov esi, dword [esp + 0x44]
cmp esi, dword [esp + 0xbc]
jne 0x43903d
cmp ecx, dword [esp + 0x48]
je 0x43904b
mov esi, edi
addsd xmm1, xmm0
movsd qword [esi + edx*8 - 8], xmm1
jmp 0x439053
mov esi, edi
movsd qword [esi + edx*8 - 8], xmm1
inc ebx
cmp ebx, dword [esp + 0xb0]
jb 0x438f49
inc ecx
mov edi, eax
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
mov dword [0x5e1360], edi
mov dword [0x5e13b0], ecx
jmp 0x439187
cmp edx, dword [esp + 0xcc]
jle 0x439187
cmp edx, dword [esp + 0xa0]
jg 0x439187
mov ecx, edx
sub ecx, dword [esp + 0xcc]
mov dword [esp + 0x18], ecx
mov dword [0x5e1360], ecx
cmp ecx, dword [esp + 0x4c]
jge 0x4390e2
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x4c]
mov dword [0x5e1370], ecx
mov dword [0x5e1374], edi
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
mov dword [0x5e1378], ecx
add ecx, edi
mov dword [esp + 0x1c], ecx
jmp 0x43911b
mov edi, dword [esp + 0x6c]
mov dword [0x5e1364], edi
mov edi, ecx
mov dword [esp + 0x50], esi
mov dword [0x5e1368], edi
mov ecx, dword [esp + 0x4c]
lea esi, [edi - 1]
imul esi, edi
mov edi, esi
shr edi, 0x1f
add esi, edi
sar esi, 1
add esi, ecx
mov dword [esp + 0x1c], esi
mov dword [0x5e136c], ecx
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x50], esi
mov ecx, dword [esp + 0x1c]
movsd xmm0, qword [edi + esi*8]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x48]
mov dword [0x5e135c], ecx
mulsd xmm0, qword [esi + edi*8 - 8]
mov esi, dword [esp + 0x74]
movsd xmm1, qword [esi + ecx*8 - 8]
mov ecx, dword [esp + 0x18]
addsd xmm1, xmm0
mov esi, dword [esp + 0x50]
cmp ecx, dword [esp + 0x4c]
jne 0x439179
cmp ebx, dword [esp + 0xbc]
je 0x439179
mov ecx, dword [esp + 0x74]
addsd xmm1, xmm0
mov edi, dword [esp + 0x1c]
movsd qword [ecx + edi*8 - 8], xmm1
jmp 0x439187
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x1c]
movsd qword [ecx + edi*8 - 8], xmm1
inc ebx
cmp ebx, dword [esp + 0xbc]
jle 0x438ea9
mov dword [0x5e13b8], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], ebx
mov dword [0x5e13bc], eax
mov dword [0x5e13c4], edx
mov edi, esi
mov eax, dword [esp + 0x100]
mov edx, ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0xdc]
mov dword [0x5e13b4], edi
mov dword [0x5e13c0], eax
mov dword [0x5e12f0], edx
inc esi
cmp esi, dword [esp + 0xd8]
jle 0x438e05
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xbc]
mov dword [0x5e132c], esi
jmp 0x4395aa
cmp edx, dword [esp + 0xcc]
jle 0x4395aa
cmp edx, dword [esp + 0xa0]
jg 0x4395aa
mov esi, dword [esp + 0x6c]
mov dword [0x5e1334], esi
mov edi, dword [esp + 0xf8]
mov esi, dword [esp + 0x108]
sub edx, dword [esp + 0xcc]
mov dword [0x5e1338], edi
test ecx, ecx
mov dword [0x5e133c], esi
mov dword [0x5e1340], edx
jle 0x439890
mov dword [esp + 0x24], 1
lea edi, [ecx - 1]
imul edi, ecx
mov esi, edi
shr esi, 0x1f
add edi, esi
sar edi, 1
mov dword [esp + 0x9c], edi
lea edi, [edx - 1]
imul edi, edx
mov esi, edi
shr esi, 0x1f
add edi, esi
sar edi, 1
mov dword [0x5e1328], ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0xe8], eax
mov dword [esp + 0xbc], ecx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0xe8]
mov esi, ebx
mov eax, dword [esp + 0x9c]
mov edx, dword [edx + ebx*4]
cmp edx, dword [esp + 0xdc]
lea edi, [eax + ebx]
jle 0x4392d2
cmp edx, dword [esp + 0xc4]
jle 0x439552
cmp edx, dword [esp + 0xd0]
jle 0x43946f
cmp edx, dword [esp + 0xac]
jg 0x43946f
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + edx*4 - 4]
mov eax, dword [eax + edx*4]
dec eax
mov dword [esp + 0x98], ecx
cmp eax, ecx
jl 0x439884
sub eax, ecx
inc eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], edi
lea eax, [eax + ecx*4]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
lea ecx, [eax + ecx*8]
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov eax, dword [esi + ebx*4 - 4]
cdq
xor eax, edx
add ecx, ebx
sub eax, edx
cmp eax, dword [esp + 0xdc]
jle 0x439375
cmp eax, dword [esp + 0xc4]
jle 0x439440
cmp eax, dword [esp + 0xcc]
jle 0x439440
cmp eax, dword [esp + 0xa0]
jg 0x439440
sub eax, dword [esp + 0xcc]
cmp eax, dword [esp + 0x34]
jge 0x4393be
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov dword [0x5e1350], edx
lea edx, [eax + edi]
mov dword [0x5e1354], esi
mov dword [0x5e1358], eax
jmp 0x4393e8
mov edx, dword [esp + 0x6c]
mov dword [0x5e1344], edx
lea edx, [eax - 1]
imul edx, eax
mov esi, edx
shr esi, 0x1f
add edx, esi
mov edi, dword [esp + 0x34]
sar edx, 1
mov dword [0x5e1348], eax
add edx, edi
mov dword [0x5e134c], edi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x38]
mov dword [0x5e135c], edx
cmp eax, dword [esp + 0x34]
movsd xmm0, qword [esi + edi*8]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x74]
mulsd xmm0, qword [esi + ebx*8 - 8]
movsd xmm1, qword [edi + edx*8 - 8]
addsd xmm1, xmm0
jne 0x439438
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0xbc]
jne 0x43942a
test ecx, ecx
je 0x439438
mov esi, edi
addsd xmm0, xmm1
movsd qword [esi + edx*8 - 8], xmm0
jmp 0x439440
mov esi, edi
movsd qword [esi + edx*8 - 8], xmm1
inc ebx
cmp ebx, dword [esp + 0x90]
jb 0x439346
inc ecx
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov dword [0x5e1360], eax
mov dword [0x5e13b0], ecx
jmp 0x439552
cmp edx, dword [esp + 0xcc]
jle 0x439552
cmp edx, dword [esp + 0xa0]
jg 0x439552
mov eax, edx
sub eax, dword [esp + 0xcc]
mov dword [esp + 4], eax
mov dword [0x5e1360], eax
cmp eax, dword [esp + 0x34]
jge 0x4394c9
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
mov dword [0x5e1370], eax
mov dword [0x5e1374], ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x20]
mov dword [0x5e1378], eax
add eax, ecx
mov dword [esp + 8], eax
jmp 0x439501
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x6c]
mov dword [0x5e1364], edi
mov edi, eax
mov dword [0x5e1368], edi
mov eax, dword [esp + 0x34]
mov dword [0x5e136c], eax
lea ecx, [edi - 1]
imul ecx, edi
mov edi, ecx
shr edi, 0x1f
add ecx, edi
sar ecx, 1
add ecx, eax
mov dword [esp + 8], ecx
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 8]
mov dword [0x5e135c], eax
movsd xmm0, qword [ecx + edi*8]
mov ecx, dword [esp + 0x74]
movsd xmm1, qword [ecx + eax*8 - 8]
mov eax, dword [esp + 4]
addsd xmm1, xmm0
cmp eax, dword [esp + 0x34]
jne 0x439546
cmp ebx, dword [esp + 0xbc]
je 0x439546
mov eax, ecx
addsd xmm0, xmm1
mov ecx, dword [esp + 8]
movsd qword [eax + ecx*8 - 8], xmm0
jmp 0x439552
mov eax, ecx
mov ecx, dword [esp + 8]
movsd qword [eax + ecx*8 - 8], xmm1
inc ebx
cmp ebx, dword [esp + 0xbc]
jle 0x4392a6
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], ebx
mov dword [0x5e13b8], esi
mov dword [0x5e13c4], edx
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x100]
mov edx, ebx
mov eax, dword [esp + 0xe8]
mov ebx, dword [esp + 0xdc]
mov dword [0x5e13b4], edi
mov dword [0x5e13bc], ecx
mov dword [0x5e13c0], esi
mov dword [0x5e12f0], edx
inc ecx
cmp ecx, dword [esp + 0x100]
jle 0x438d88
mov dword [esp + 0xbc], ecx
mov edx, dword [ebp + 8]
mov eax, ecx
mov dword [0x5e1328], eax
cmp dword [edx], 0
jl 0x439806
jmp 0x4396cb
cmp ebx, dword [esp + 0x12c]
jle 0x439845
cmp ebx, dword [esp + 0x104]
jg 0x43982f
mov edi, dword [esp + 0xf0]
mov dword [esp + 0xe8], eax
mov dword [0x5e12ec], ebx
mov eax, dword [edi + ebx*4 - 4]
mov ebx, dword [edi + ebx*4]
dec eax
dec ebx
mov dword [esp + 0xec], eax
cmp eax, ebx
mov eax, dword [esp + 0xe8]
jge 0x439a40
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe0], edx
mov edi, dword [esp + 0xec]
mov esi, dword [esp + 0x11c]
inc edi
mov eax, dword [esi + edi*4 - 4]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jge 0x439822
cmp eax, dword [esp + 0x128]
jg 0x439815
mov dword [esp + 0xec], edi
mov esi, 1
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
cmp ebx, dword [esp + 0xec]
jle 0x4399aa
mov ecx, dword [esp + 0x100]
cmp edx, ecx
mov dword [esp + 0xe4], esi
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov dword [0x5e12f4], edi
mov dword [0x5e139c], edx
jge 0x438aba
cmp dword [esp + 0xe4], 1
je 0x438aba
mov eax, dword [0x5e116c]
inc eax
mov dword [0x5e116c], eax
cmp eax, dword [esp + 0x10c]
jle 0x4388e0
mov esi, dword [esp + 0xd4]
push 0x5beb30
mov ebx, dword [ebp + 8]
call fcn.004618e0
mov eax, dword [0x5e1168]
inc eax
mov dword [0x5e1168], eax
cmp eax, esi
jle 0x43886f
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bed90
call fcn.0045dc50
mov dword [0x5e1148], eax
cmp dword [0x5ed03c], 1
je 0x439958
sub eax, dword [0x5d9cb0]
mov edx, dword [0x5d9c90]
push ebx
push 0x5beb40
lea eax, [edx + eax*8]
push eax
call fcn.00472e80
cmp dword [ebx], 0
jle 0x439806
cmp dword [0x5ed03c], 1
je 0x4398ba
mov ebx, dword [0x5d9c90]
mov edx, dword [esp + 0x58]
mov esi, dword [0x5e1148]
mov eax, dword [0x5d9cb0]
shl eax, 3
lea ecx, [ebx + edx*8]
mov edx, dword [esp + 0x5c]
lea edi, [ebx + esi*8]
sub ecx, eax
sub edi, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edi
lea ebx, [ebx + edx*8]
push 0x5ecf7c
sub ebx, eax
mov eax, dword [0x5ecf88]
mov ecx, dword [0x5ecf7c]
push ebx
mov dword [0x5e1384], eax
mov dword [0x5e1388], ecx
call fcn.00461390
mov esi, dword [0x5ecf88]
xor edx, edx
test esi, esi
jle 0x43989f
xor eax, eax
mov dword [esp + 0x20], edx
xor edi, edi
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x24]
cmp dword [edx + edi*4], 1
je 0x4398c9
inc edi
cmp edi, esi
jb 0x4397d4
mov edx, dword [esp + 0x20]
inc esi
mov dword [0x5e1380], edx
mov dword [0x5e137c], esi
mov dword [0x5f12d4], eax
cmp dword [0x5ed03c], 1
je 0x439acc
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp edi, ebx
jl 0x439647
jmp 0x439a1f
cmp edi, ebx
jl 0x439647
jmp 0x439a1f
lea esi, [esi]
cmp edx, dword [esp + 0x100]
jl 0x438a85
jmp 0x439852
cmp edx, dword [esp + 0x100]
jl 0x438a85
mov dword [0x5e139c], edx
jmp 0x4396cb
mov ecx, edi
mov dword [0x5e13b0], ecx
jmp 0x439187
mov dword [0x5e12f0], 1
jmp 0x4391df
mov dword [0x5e132c], esi
jmp 0x4395aa
mov eax, ecx
mov dword [0x5e13b0], eax
jmp 0x439552
mov dword [0x5e12f0], 1
jmp 0x4395aa
mov dword [0x5e137c], 1
xor eax, eax
mov dword [0x5e1380], 0
jmp 0x4397f4
push 0x5beb3c
call fcn.004618e0
jmp 0x439760
mov dword [esp + 0x18], eax
lea ecx, [eax + 1]
mov dword [edx + edi*4], ecx
mov ecx, dword [esp + 0x28]
mov ebx, dword [ecx + edi*4]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0x14], ebx
lea eax, [ebx + 1]
mov ebx, ecx
sub ebx, eax
inc ebx
mov dword [esp + 0x10], eax
cmp ecx, eax
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x18]
jl 0x439949
mov ebx, dword [esp + 0x14]
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], edi
lea ebx, [ebx*4 + 4]
add ebx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
mov esi, dword [esp + 0xc]
lea edi, [eax + 1]
mov dword [ebx + edx*4 - 4], edi
inc edx
mov eax, edi
cmp edx, esi
jb 0x439920
mov dword [esp + 0x20], edi
inc ecx
mov edi, dword [esp]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x24]
mov dword [0x5e138c], ecx
jmp 0x4397de
mov ecx, dword [esp + 0x10]
mov dword [0x5e138c], ecx
jmp 0x4397de
push ebx
mov esi, 0x5beb34
push esi
push 0x5ed064
push esi
push 0x5beb38
push 3
push 0x5bed9c
push 0x5beb3c
call fcn.004627d0
cmp dword [ebx], 0
jl 0x439806
push 0
mov eax, 0x5beb40
push eax
push eax
push esi
push esi
push 0x5ed050
push 0xa
push 0x5beda0
call fcn.0045ac90
mov eax, dword [0x5e1148]
jmp 0x43972f
mov ebx, edi
mov dword [0x5e12f4], ebx
cmp edx, dword [esp + 0x100]
jge 0x4399ea
test esi, esi
je 0x438a85
mov dword [esp + 0xe4], esi
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
mov dword [0x5e139c], edx
jmp 0x4396bd
mov dword [esp + 0xe4], esi
mov ebx, dword [esp + 0xfc]
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
mov dword [0x5e139c], edx
cmp dword [esp + 0xe4], 1
je 0x438aba
jmp 0x4396cb
mov dword [esp + 0xec], edi
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xe4]
jmp 0x4399aa
mov ebx, dword [esp + 0xec]
mov dword [0x5e12f4], ebx
cmp edx, dword [esp + 0x100]
jl 0x438a85
mov dword [0x5e139c], edx
jmp 0x4396cb
mov dword [0x5e1310], ecx
jmp 0x438c67
mov dword [0x5e139c], 0
jmp 0x4396cb
mov eax, dword [0x5d9c90]
mov edx, dword [esp + 0xa4]
mov ecx, dword [0x5d9cb0]
shl ecx, 3
lea ebx, [eax + edx*8]
sub ebx, ecx
push ebx
push 0x5ed068
push dword [0x5d9750]
call fcn.0046ac60
jmp 0x438985
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bed7c
call fcn.0045dc50
mov dword [0x5e1164], eax
jmp 0x438826
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bedac
call fcn.0045dc50
mov ebx, eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push 0xa
push 0x5bedb8
call fcn.0045dc50
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [0x5e1154], edx
mov edx, dword [0x5d9c90]
mov ecx, dword [0x5d9cb0]
mov eax, edx
shl ecx, 3
sub eax, ecx
mov esi, dword [0x5e1148]
mov dword [esp + 0x10], ecx
mov edi, dword [0x5ecf88]
mov dword [0x5e1394], edi
lea ebx, [eax + ebx*8]
mov dword [esp + 0x18], ebx
lea ebx, [edx + esi*8]
mov eax, dword [0x5ed04c]
sub ebx, ecx
mov ecx, dword [0x5ed050]
test ecx, ecx
mov dword [0x5e1390], ecx
mov dword [0x5e1398], eax
jle 0x439c9d
mov eax, dword [0x5ed044]
mov esi, dword [esp + 0x18]
mov dword [esp], eax
and esi, 0xf
mov dword [esp + 0xc], esi
je 0x439b81
test byte [esp + 0xc], 3
jne 0x439c96
mov eax, esi
neg eax
add eax, 0x10
shr eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
lea esi, [eax + 4]
cmp ecx, esi
jl 0x439c96
mov eax, ecx
mov esi, dword [esp + 0xc]
sub eax, esi
and eax, 3
neg eax
add eax, ecx
test esi, esi
jbe 0x439bcb
mov dword [esp + 8], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov dword [edi + edx*4], 0
inc edx
cmp edx, esi
jb 0x439bb7
mov dword [esp + 0xc], esi
mov edx, dword [esp + 4]
mov edi, dword [esp + 0x18]
pxor xmm0, xmm0
movdqa xmmword [edi + esi*4], xmm0
add esi, 4
cmp esi, eax
jb 0x439bd3
cmp eax, ecx
jae 0x439bf3
mov esi, dword [esp + 0x18]
mov dword [esi + eax*4], 0
inc eax
cmp eax, ecx
jb 0x439be7
mov esi, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebx
lea esi, [edx + esi*8]
mov edx, dword [esp]
sub esi, dword [esp + 0x10]
shl edx, 4
add esi, edx
mov edx, eax
mov dword [esp + 0x1c], esi
mov ecx, edx
mov edi, eax
shl ecx, 4
mov esi, eax
mov eax, dword [esp + 0x1c]
lea ebx, [edi + 1]
mov eax, dword [eax + ecx]
mov ecx, eax
sub ecx, edi
cmp eax, edi
jle 0x439c64
xor ebx, ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 4]
mov dword [esp], eax
mov eax, dword [esp + 8]
lea ebx, [ebx + edi*4]
mov edi, dword [esp + 0x18]
cmp dword [ebx + eax*4], 0
jle 0x439c56
mov dword [edi + edx*4], 1
inc eax
cmp eax, ecx
jb 0x439c49
lea esi, [esi]
mov eax, dword [esp]
lea ebx, [eax + 1]
inc edx
cmp edx, dword [esp + 0xc]
jb 0x439c16
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [0x5e13a0], ebx
mov dword [0x5e13a4], esi
mov dword [0x5e13a8], eax
mov dword [0x5e13ac], ecx
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
xor eax, eax
jmp 0x439bdf
mov dword [0x5e13ac], 1
mov dword [0x5e13a8], 0
add esp, 0x134
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4