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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x54
xor ebx, ebx
mov edi, edx
mov ebp, 1
mov edx, dword [eax]
mov esi, 8
mov dword [0x6337e0], ebx
xor eax, eax
mov dword [0x6337e4], ebx
test edx, edx
mov dword [0x63d420], ebx
jle 0x403903
movss xmm0, dword [0x4767c8]
mov ebx, 1
mov dword [esp + 0x44], ecx
xor ecx, ecx
comiss xmm0, dword [edi + ebx*4 - 4]
jbe 0x4038d9
test eax, eax
jne 0x4038d1
mov dword [esi + 0x6337d8], ebx
mov eax, ebx
mov dword [esi + 0x6337dc], ebx
jmp 0x4038fa
test eax, eax
je 0x4038fa
inc ebp
mov eax, ecx
mov dword [ebp*4 + 0x63d41c], eax
lea esi, [ebp*8]
mov dword [esi + 0x6337d8], eax
mov dword [esi + 0x6337dc], eax
inc ebx
cmp ebx, edx
jle 0x4038be
mov ecx, dword [esp + 0x44]
test eax, eax
lea edx, [ebp - 1]
mov ebx, dword [esp + 0x74]
cmove ebp, edx
test ebp, ebp
jle 0x403d87
movss xmm3, dword [0x4767d4]
mov eax, 1
movss xmm1, dword [0x4767d8]
mov dword [esp + 0x50], edi
mov dword [esp + 0x44], ecx
cmp ebp, eax
lea ebx, [eax + 1]
mov edx, ebx
mov ecx, edx
jle 0x403d6f
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ebp
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov ebp, dword [ebx*8 + 0x6337d8]
mov ebx, dword [edx*8 + 0x6337d8]
movss xmm0, dword [eax + ebp*4 - 4]
movss xmm2, dword [eax + ebx*4 - 4]
subss xmm0, xmm2
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403b74
mov eax, dword [esp + 0x44]
movss xmm0, dword [eax + ebp*4 - 4]
subss xmm0, dword [eax + ebx*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403b74
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
movss xmm4, dword [edi + ebp*4 - 4]
mov eax, dword [eax*8 + 0x6337dc]
subss xmm4, dword [edi + ebx*4 - 4]
andps xmm4, xmmword [0x476530]
lea ecx, [eax*4]
movss xmm0, dword [esi + ecx - 4]
comiss xmm3, xmm4
jbe 0x403b90
mov edi, dword [edx*8 + 0x6337dc]
movaps xmm4, xmm0
mov dword [esp + 0x1c], edi
subss xmm4, dword [esi + edi*4 - 4]
andps xmm4, xmmword [0x476530]
comiss xmm3, xmm4
jbe 0x403b90
mov esi, dword [esp + 0x44]
movss xmm4, dword [esi + ecx - 4]
subss xmm4, dword [esi + edi*4 - 4]
andps xmm4, xmmword [0x476530]
comiss xmm3, xmm4
jbe 0x403b90
mov esi, dword [esp + 0x74]
movss xmm4, dword [esi + ecx - 4]
subss xmm4, dword [esi + edi*4 - 4]
andps xmm4, xmmword [0x476530]
comiss xmm3, xmm4
jbe 0x403b90
neg ebp
add ebp, eax
cvtsi2ss xmm4, ebp
mulss xmm4, xmm1
cvttss2si ebp, xmm4
add ebp, ebx
mov esi, dword [esp + 0x50]
movss xmm4, dword [0x4767dc]
lea edi, [esi + ebp*4 - 4]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
dec edi
lea ebp, [esi + ebp*4 - 4]
mov dword [esp + 0x1c], edi
cmp edi, ebx
jl 0x403b5e
movss dword [esp + 0xc], xmm4
mov dword [esp + 8], edx
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
lea esi, [edi + ebx*4]
lea edi, [esp + 0x28]
push edi
lea edi, [esp + 0x28]
push edi
lea edx, [eax + ebx*4]
push edx
push esi
lea eax, [edx - 4]
push eax
lea ecx, [esi - 4]
push ecx
push ebp
push dword [esp + 0x34]
lea edx, [esp + 0x40]
push edx
call fcn.00405610
cmp dword [esp + 0x20], 0
jne 0x403ae1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov edx, dword [eax + ebx*4 - 4]
mov esi, dword [ecx + ebx*4 - 4]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], esi
lea eax, [esp + 0x2c]
push eax
push ebp
push dword [esp + 0x20]
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x34]
push ecx
call fcn.00405560
movss xmm1, dword [esp + 0x2c]
inc ebx
movss xmm0, dword [esp + 0xc]
cmp ebx, dword [esp + 0x1c]
minss xmm1, xmm0
movss dword [esp + 0xc], xmm1
jle 0x403a91
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x50]
mov eax, dword [eax*8 + 0x6337dc]
mov ebx, dword [edx*8 + 0x6337d8]
movss xmm4, dword [esp + 0xc]
movss xmm1, dword [0x4767d8]
lea ecx, [eax*4]
movss xmm3, dword [0x4767d4]
movss xmm0, dword [ebp + ecx - 4]
movss xmm2, dword [ebp + ebx*4 - 4]
comiss xmm3, xmm4
jbe 0x403b90
mov ebp, dword [esp + 0x4c]
mov dword [ebp*4 + 0x63d41c], 1
jmp 0x403b90
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
mov eax, dword [eax*8 + 0x6337dc]
lea ecx, [eax*4]
movss xmm0, dword [ebp + ecx - 4]
subss xmm0, xmm2
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
mov ebp, dword [esp + 0x44]
movss xmm0, dword [ebp + ecx - 4]
subss xmm0, dword [ebp + ebx*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
mov ebp, dword [esp + 0x74]
movss xmm0, dword [ecx + ebp - 4]
subss xmm0, dword [ebp + ebx*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov edi, dword [edx*8 + 0x6337dc]
mov ebp, dword [ecx*8 + 0x6337d8]
mov dword [esp + 0x40], edi
movss xmm0, dword [esi + ebp*4 - 4]
subss xmm0, dword [esi + edi*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
mov ecx, ebp
mov ebp, dword [esp + 0x44]
mov esi, edi
movss xmm0, dword [ebp + ecx*4 - 4]
subss xmm0, dword [ebp + esi*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
mov ebp, dword [esp + 0x74]
movss xmm0, dword [ebp + ecx*4 - 4]
subss xmm0, dword [ebp + esi*4 - 4]
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d59
sub eax, ecx
cvtsi2ss xmm0, eax
mulss xmm0, xmm1
cvttss2si ebp, xmm0
add ecx, ebp
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x44]
dec edi
lea ebp, [eax + ecx*4 - 4]
mov dword [esp + 0x40], edi
lea eax, [esi + ecx*4 - 4]
movss xmm0, dword [0x4767dc]
cmp edi, ebx
jl 0x403d45
movss dword [esp + 0x10], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
lea esi, [edi + ebx*4]
lea edi, [esp + 0x38]
push edi
lea edi, [esp + 0x38]
push edi
lea edx, [eax + ebx*4]
push edx
push esi
lea eax, [edx - 4]
push eax
lea ecx, [esi - 4]
push ecx
push dword [esp + 0x2c]
push ebp
lea edx, [esp + 0x50]
push edx
call fcn.00405610
cmp dword [esp + 0x30], 0
jne 0x403cf1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
mov edx, dword [eax + ebx*4 - 4]
mov esi, dword [ecx + ebx*4 - 4]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], esi
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x18]
push ebp
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x44]
push ecx
call fcn.00405560
movss xmm1, dword [esp + 0x3c]
inc ebx
movss xmm0, dword [esp + 0x10]
cmp ebx, dword [esp + 0x40]
minss xmm1, xmm0
movss dword [esp + 0x10], xmm1
jle 0x403ca1
movss xmm0, dword [esp + 0x10]
mov edx, dword [esp + 8]
movss xmm1, dword [0x4767d8]
movss xmm3, dword [0x4767d4]
comiss xmm3, xmm0
jbe 0x403d59
mov eax, dword [esp + 0x4c]
mov dword [eax*4 + 0x63d41c], 1
inc edx
cmp edx, dword [esp + 0x48]
jle 0x403952
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x48]
mov eax, ecx
cmp ebx, ebp
jle 0x403934
mov ebx, dword [esp + 0x74]
test ebp, ebp
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
movss xmm3, dword [0x4767d0]
mov edx, 0
mov eax, 0x47c34f80
jle 0x403dbc
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x48]
mov eax, 1
cmp dword [eax*4 + 0x63d41c], 0
je 0x403deb
inc eax
cmp eax, ebp
jle 0x403da8
mov eax, 0x47c34f80
inc edx
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
mov dword [ecx], edx
mov dword [ebx + edx*4 - 4], eax
mov dword [ebp + edx*4 - 4], eax
mov dword [esi + edx*4 - 4], eax
add esp, 0x54
pop ebp
pop ebx
pop edi
pop esi
ret 0x20
test eax, eax
je 0x403db7
inc edx
mov esi, 0x47c34f80
mov ebp, dword [esp + 0x7c]
movss xmm5, dword [0x4767cc]
mov dword [eax*4 + 0x63d41c], 1
movaps xmm4, xmm5
mov dword [ebp + edx*4 - 4], esi
movaps xmm6, xmm5
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x18], edx
mov dword [ebp + edx*4 - 4], esi
mov ebp, dword [esp + 0x84]
mov dword [ebp + edx*4 - 4], esi
mov esi, dword [eax*8 + 0x6337d8]
mov eax, dword [eax*8 + 0x6337dc]
mov ebp, dword [edi + esi*4 - 4]
mov dword [esp], ebp
mov ebp, dword [ecx + esi*4 - 4]
mov dword [esp + 4], ebp
movss xmm2, dword [edi + esi*4 - 4]
movss xmm1, dword [ecx + esi*4 - 4]
movss xmm0, dword [ebx + esi*4 - 4]
mov ebp, dword [ebx + esi*4 - 4]
mov dword [esp + 8], ebp
mov ebp, 1
movss dword [esp + 0xc], xmm0
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x14], xmm2
jmp 0x403f2d
mov ebp, dword [edx*8 + 0x6337d8]
movaps xmm0, xmm5
movaps xmm1, xmm4
movaps xmm2, xmm6
mov esi, dword [edx*8 + 0x6337dc]
movaps xmm7, xmm4
mov eax, ebp
subss xmm0, dword [edi + ebp*4 - 4]
subss xmm1, dword [ecx + ebp*4 - 4]
subss xmm2, dword [ebx + ebp*4 - 4]
subss xmm7, dword [ecx + esi*4 - 4]
andps xmm0, xmmword [0x476530]
andps xmm1, xmmword [0x476530]
andps xmm2, xmmword [0x476530]
addss xmm0, xmm1
movaps xmm1, xmm6
addss xmm0, xmm2
subss xmm1, dword [ebx + esi*4 - 4]
cvtss2sd xmm0, xmm0
movaps xmm2, xmm5
andps xmm7, xmmword [0x476530]
andps xmm1, xmmword [0x476530]
mov dword [edx*4 + 0x63d41c], 1
subss xmm2, dword [edi + esi*4 - 4]
andps xmm2, xmmword [0x476530]
addss xmm2, xmm7
addss xmm2, xmm1
cvtss2sd xmm2, xmm2
comisd xmm2, xmm0
cmpltsd xmm0, xmm2
cmova eax, esi
cmova esi, ebp
movd ebp, xmm0
and ebp, 2
dec ebp
sub eax, esi
add eax, ebp
cdq
idiv ebp
test eax, eax
jle 0x403f92
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0x18]
inc edx
dec eax
mov ebp, dword [esp + 0x7c]
mov ebx, dword [edi + esi*4 - 4]
movss xmm5, dword [edi + esi*4 - 4]
mov dword [ebp + edx*4 - 4], ebx
mov ebp, dword [esp + 0x80]
mov ebx, dword [ecx + esi*4 - 4]
movss xmm4, dword [ecx + esi*4 - 4]
mov dword [ebp + edx*4 - 4], ebx
mov ebx, dword [esp + 0x74]
movss xmm6, dword [ebx + esi*4 - 4]
mov ebp, dword [ebx + esi*4 - 4]
mov ebx, dword [esp + 0x84]
add esi, dword [esp + 0x1c]
test eax, eax
mov dword [ebx + edx*4 - 4], ebp
jg 0x403f40
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x74]
movss xmm1, dword [0x4767cc]
xor edx, edx
mov ebp, dword [esp + 0x48]
mov eax, 1
cmp dword [eax*4 + 0x63d41c], 0
jne 0x404048
mov esi, dword [eax*8 + 0x6337d8]
movaps xmm2, xmm5
movaps xmm7, xmm4
movaps xmm0, xmm6
subss xmm2, dword [edi + esi*4 - 4]
subss xmm7, dword [ecx + esi*4 - 4]
subss xmm0, dword [ebx + esi*4 - 4]
andps xmm2, xmmword [0x476530]
andps xmm7, xmmword [0x476530]
mov esi, dword [eax*8 + 0x6337dc]
addss xmm2, xmm7
andps xmm0, xmmword [0x476530]
movaps xmm7, xmm4
addss xmm2, xmm0
movaps xmm0, xmm5
subss xmm0, dword [edi + esi*4 - 4]
subss xmm7, dword [ecx + esi*4 - 4]
andps xmm0, xmmword [0x476530]
andps xmm7, xmmword [0x476530]
addss xmm0, xmm7
movaps xmm7, xmm6
subss xmm7, dword [ebx + esi*4 - 4]
andps xmm7, xmmword [0x476530]
addss xmm0, xmm7
movaps xmm7, xmm1
minss xmm2, xmm0
movaps xmm0, xmm1
comiss xmm7, xmm2
movaps xmm1, xmm2
cmova edx, eax
minss xmm1, xmm0
inc eax
cmp eax, ebp
jle 0x403fa5
comiss xmm3, xmm1
ja 0x403e83
movss xmm2, dword [esp + 0x14]
movss xmm0, dword [esp + 0xc]
subss xmm2, xmm5
andps xmm2, xmmword [0x476530]
movss xmm1, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
comiss xmm3, xmm2
jbe 0x403d9f
subss xmm1, xmm4
andps xmm1, xmmword [0x476530]
comiss xmm3, xmm1
jbe 0x403d9f
subss xmm0, xmm6
andps xmm0, xmmword [0x476530]
comiss xmm3, xmm0
jbe 0x403d9f
mov ebx, dword [esp + 0x80]
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 4]
mov dword [ebx + edx*4], eax
mov eax, dword [esp + 0x84]
mov esi, dword [esp]
mov dword [ebp + edx*4], esi
mov esi, dword [esp + 8]
mov dword [eax + edx*4], esi
mov esi, 0x47c34f80
add edx, 2
mov dword [ebx + edx*4 - 4], esi
mov dword [ebp + edx*4 - 4], esi
mov dword [eax + edx*4 - 4], esi
mov ebx, dword [esp + 0x74]
jmp 0x403d9f