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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
movzx eax, byte [edx + 0x5f]
add ax, word [edx + 0x1a4]
add ax, word [edx + 0x158]
add ax, word [edx + 0xf4]
add ax, word [edx + 0xec]
add ax, word [edx + 0x60]
push ebx
push esi
movzx esi, ax
mov ebx, 0xff
mov dword [ebp - 8], edx
mov dword [ebp - 4], ecx
push edi
cmp si, bx
jle 0x464424
mov esi, ebx
jmp 0x46442c
xor eax, eax
test si, si
cmovs esi, eax
movzx eax, byte [edx + 0x5e]
add ax, word [edx + 0x1a6]
add ax, word [edx + 0x15a]
add ax, word [edx + 0xf6]
add ax, word [edx + 0xee]
add ax, word [edx + 0x62]
movzx ecx, ax
cmp cx, bx
jle 0x46445c
mov ecx, ebx
jmp 0x464464
xor eax, eax
test cx, cx
cmovs ecx, eax
movzx eax, byte [edx + 0x5d]
add ax, word [edx + 0x1a8]
add ax, word [edx + 0x15c]
add ax, word [edx + 0xf8]
add ax, word [edx + 0xf0]
add ax, word [edx + 0x64]
movzx eax, ax
cmp ax, bx
jle 0x464495
mov dword [ebp - 0x10], ebx
jmp 0x4644a0
xor edi, edi
test ax, ax
cmovs eax, edi
mov dword [ebp - 0x10], eax
movzx eax, byte [edx + 0x5c]
add ax, word [edx + 0x1aa]
add ax, word [edx + 0x15e]
add ax, word [edx + 0xfa]
add ax, word [edx + 0xf2]
add ax, word [edx + 0x66]
movzx ebx, ax
mov eax, 0xff
cmp bx, ax
jle 0x4644d5
mov ebx, eax
jmp 0x4644dd
xor eax, eax
test bx, bx
cmovs ebx, eax
movzx ecx, cl
movsx eax, si
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0x10]
movzx eax, al
shl ecx, 8
or ecx, eax
movzx eax, bl
mov ebx, dword [ebp - 4]
shl ecx, 8
or ecx, eax
mov dword [ebx + 0x5c], ecx
movss xmm0, dword [edx + 0x54]
addss xmm0, dword [edx + 0x58]
addss xmm0, dword [edx + 0xe4]
addss xmm0, dword [edx + 0xe8]
addss xmm0, dword [edx + 0x154]
addss xmm0, dword [edx + 0x1a0]
movss dword [ebx + 0x54], xmm0
mov eax, dword [edx + 0x12c]
add eax, dword [edx + 0x178]
add eax, dword [edx + 0xa8]
add eax, dword [edx + 0x9c]
add eax, dword [edx + 0x1c]
add eax, dword [edx + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x130]
add eax, dword [edx + 0x17c]
add eax, dword [edx + 0xac]
add eax, dword [edx + 0xa0]
add eax, dword [edx + 0x20]
add eax, dword [edx + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x180]
add eax, dword [edx + 0x134]
add eax, dword [edx + 0xb0]
add eax, dword [edx + 0xa4]
add eax, dword [edx + 0x24]
add eax, dword [edx + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x184]
add eax, dword [edx + 0x138]
add eax, dword [edx + 0xc8]
add eax, dword [edx + 0xbc]
add eax, dword [edx + 0x34]
add eax, dword [edx + 0x28]
mov dword [ebx + 0x28], eax
mov eax, dword [edx + 0x188]
add eax, dword [edx + 0x13c]
add eax, dword [edx + 0xcc]
add eax, dword [edx + 0xc0]
add eax, dword [edx + 0x38]
add eax, dword [edx + 0x2c]
mov dword [ebx + 0x2c], eax
mov eax, dword [edx + 0x18c]
add eax, dword [edx + 0x140]
add eax, dword [edx + 0xd0]
add eax, dword [edx + 0xc4]
add eax, dword [edx + 0x3c]
add eax, dword [edx + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [edx + 0x68]
mov dword [ebx + 0x68], eax
movss xmm0, dword [edx + 0x6c]
addss xmm0, dword [edx + 0x78]
addss xmm0, dword [edx + 0xfc]
addss xmm0, dword [edx + 0x108]
addss xmm0, dword [edx + 0x160]
addss xmm0, dword [edx + 0x1ac]
movss dword [ebx + 0x6c], xmm0
movss xmm0, dword [edx + 0x70]
addss xmm0, dword [edx + 0x7c]
addss xmm0, dword [edx + 0x100]
addss xmm0, dword [edx + 0x10c]
addss xmm0, dword [edx + 0x164]
addss xmm0, dword [edx + 0x1b0]
movss dword [ebx + 0x70], xmm0
movss xmm0, dword [edx + 0x80]
addss xmm0, dword [edx + 0x74]
addss xmm0, dword [edx + 0x104]
addss xmm0, dword [edx + 0x110]
addss xmm0, dword [edx + 0x168]
addss xmm0, dword [edx + 0x1b4]
movss dword [ebx + 0x74], xmm0
movss xmm0, dword [edx + 0x90]
addss xmm0, dword [edx + 0x84]
addss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x120]
addss xmm0, dword [edx + 0x16c]
addss xmm0, dword [edx + 0x1b8]
movss dword [ebx + 0x84], xmm0
movss xmm0, dword [edx + 0x94]
addss xmm0, dword [edx + 0x88]
addss xmm0, dword [edx + 0x118]
addss xmm0, dword [edx + 0x124]
addss xmm0, dword [edx + 0x170]
addss xmm0, dword [edx + 0x1bc]
movss dword [ebx + 0x88], xmm0
movss xmm0, dword [edx + 0x98]
addss xmm0, dword [edx + 0x8c]
addss xmm0, dword [edx + 0x11c]
addss xmm0, dword [edx + 0x128]
addss xmm0, dword [edx + 0x174]
addss xmm0, dword [edx + 0x1c0]
movss dword [ebx + 0x8c], xmm0
movss xmm0, dword [edx + 0x54]
addss xmm0, dword [edx + 0x58]
mov eax, dword [ebx + 0x178]
add eax, dword [ebx + 0x12c]
add eax, dword [ebx + 0xa8]
add eax, dword [ebx + 0x9c]
addss xmm0, dword [edx + 0xe4]
add eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x10]
mov esi, dword [edx + 0x12c]
add esi, dword [edx + 0x178]
addss xmm0, dword [edx + 0xe8]
mov edi, dword [edx + 0x130]
add edi, dword [edx + 0x17c]
add esi, dword [edx + 0xa8]
add edi, dword [edx + 0xac]
addss xmm0, dword [edx + 0x154]
add esi, dword [edx + 0x9c]
add edi, dword [edx + 0xa0]
add esi, dword [edx + 0x1c]
add edi, dword [edx + 0x20]
addss xmm0, dword [edx + 0x1a0]
add esi, dword [edx + 0x10]
add edi, dword [edx + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x17c]
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [edx + 0x6c]
addss xmm0, dword [edx + 0x78]
add eax, dword [ebx + 0x130]
add eax, dword [ebx + 0xac]
add eax, dword [ebx + 0xa0]
add eax, dword [ebx + 0x20]
addss xmm0, dword [edx + 0xfc]
add eax, dword [ebx + 0x14]
mov dword [ebp - 0x14], eax
addss xmm0, dword [edx + 0x108]
addss xmm0, dword [edx + 0x160]
addss xmm0, dword [edx + 0x1ac]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [edx + 0x70]
addss xmm0, dword [edx + 0x7c]
addss xmm0, dword [edx + 0x100]
addss xmm0, dword [edx + 0x10c]
addss xmm0, dword [edx + 0x164]
addss xmm0, dword [edx + 0x1b0]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebx + 0x78]
addss xmm0, dword [ebx + 0x6c]
addss xmm0, dword [ebx + 0xfc]
addss xmm0, dword [ebx + 0x108]
addss xmm0, dword [ebx + 0x160]
addss xmm0, dword [ebx + 0x1ac]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebx + 0x7c]
addss xmm0, dword [ebx + 0x70]
addss xmm0, dword [ebx + 0x100]
push dword [edx]
addss xmm0, dword [ebx + 0x10c]
addss xmm0, dword [ebx + 0x164]
addss xmm0, dword [ebx + 0x1b0]
mov ebx, dword [sym.imp.PAL.dll_PalSpriteGetWidth]
movss dword [ebp - 0x28], xmm0
call ebx
sar eax, 1
add eax, esi
mov esi, dword [sym.imp.PAL.dll_PalSpriteGetHeight]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
push dword [eax]
call esi
sar eax, 1
add eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
push dword [eax]
call ebx
mov edi, eax
mov eax, dword [ebp - 4]
sar edi, 1
add edi, dword [ebp - 0x10]
push dword [eax]
call esi
mov esi, eax
mov eax, dword [ebp - 8]
sar esi, 1
add esi, dword [ebp - 0x14]
push dword [eax]
call ebx
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
mov eax, dword [ebp - 8]
cvtdq2ps xmm0, xmm0
push dword [eax]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x10], xmm0
call dword [sym.imp.PAL.dll_PalSpriteGetHeight]
sub dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x20]
cdq
sub edi, esi
mov esi, dword [ebp - 4]
sub eax, edx
sar eax, 1
push dword [esi]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x1c], xmm0
call ebx
movss xmm1, dword [ebp - 0x10]
push dword [esi]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x24]
subss xmm1, xmm0
movss dword [ebp - 0x10], xmm1
call dword [sym.imp.PAL.dll_PalSpriteGetHeight]
mov ecx, dword [ebp - 0xc]
add esp, 0x20
movss xmm1, dword [ebp - 0x1c]
cdq
movss xmm3, dword [ebp - 0x2c]
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x28]
subss xmm1, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
movss xmm2, dword [ebp - 0x10]
cvttss2si eax, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
sub ecx, eax
add dword [esi + 0x10], ecx
mulss xmm0, xmm3
cvttss2si eax, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm3
sub edi, eax
add dword [esi + 0x14], edi
pop edi
subss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm3
addss xmm2, dword [esi + 0x6c]
subss xmm1, xmm0
movss dword [esi + 0x6c], xmm2
addss xmm1, dword [esi + 0x70]
movss dword [esi + 0x70], xmm1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret