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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
movzx eax, byte [edx + 0x67]
add ax, word [edx + 0x1b4]
add ax, word [edx + 0x168]
add ax, word [edx + 0x104]
add ax, word [edx + 0xfc]
add ax, word [edx + 0x68]
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 0x46aa24
mov esi, ebx
jmp 0x46aa2c
xor eax, eax
test si, si
cmovs esi, eax
movzx eax, byte [edx + 0x66]
add ax, word [edx + 0x1b6]
add ax, word [edx + 0x16a]
add ax, word [edx + 0x106]
add ax, word [edx + 0xfe]
add ax, word [edx + 0x6a]
movzx ecx, ax
cmp cx, bx
jle 0x46aa5c
mov ecx, ebx
jmp 0x46aa64
xor eax, eax
test cx, cx
cmovs ecx, eax
movzx eax, byte [edx + 0x65]
add ax, word [edx + 0x1b8]
add ax, word [edx + 0x16c]
add ax, word [edx + 0x108]
add ax, word [edx + 0x100]
add ax, word [edx + 0x6c]
movzx eax, ax
cmp ax, bx
jle 0x46aa95
mov dword [ebp - 0x10], ebx
jmp 0x46aaa0
xor edi, edi
test ax, ax
cmovs eax, edi
mov dword [ebp - 0x10], eax
movzx eax, byte [edx + 0x64]
add ax, word [edx + 0x1ba]
add ax, word [edx + 0x16e]
add ax, word [edx + 0x10a]
add ax, word [edx + 0x102]
add ax, word [edx + 0x6e]
movzx ebx, ax
mov eax, 0xff
cmp bx, ax
jle 0x46aad5
mov ebx, eax
jmp 0x46aadd
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 + 0x64], ecx
movss xmm0, dword [edx + 0x54]
addss xmm0, dword [edx + 0x5c]
addss xmm0, dword [edx + 0xec]
addss xmm0, dword [edx + 0xf4]
addss xmm0, dword [edx + 0x164]
addss xmm0, dword [edx + 0x1b0]
movss dword [ebx + 0x54], xmm0
movss xmm0, dword [edx + 0x58]
addss xmm0, dword [edx + 0x60]
addss xmm0, dword [edx + 0xf0]
addss xmm0, dword [edx + 0xf8]
addss xmm0, dword [edx + 0x164]
addss xmm0, dword [edx + 0x1b0]
movss dword [ebx + 0x58], xmm0
mov eax, dword [edx + 0xb0]
add eax, dword [edx + 0xa4]
add eax, dword [edx + 0x1c]
add eax, dword [edx + 0x10]
add eax, dword [edx + 0x13c]
add eax, dword [edx + 0x188]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0xb4]
add eax, dword [edx + 0xa8]
add eax, dword [edx + 0x20]
add eax, dword [edx + 0x14]
add eax, dword [edx + 0x140]
add eax, dword [edx + 0x18c]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x190]
add eax, dword [edx + 0x144]
add eax, dword [edx + 0xb8]
add eax, dword [edx + 0xac]
add eax, dword [edx + 0x24]
add eax, dword [edx + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [edx + 0x194]
add eax, dword [edx + 0x148]
add eax, dword [edx + 0xd0]
add eax, dword [edx + 0xc4]
add eax, dword [edx + 0x34]
add eax, dword [edx + 0x28]
mov dword [ebx + 0x28], eax
mov eax, dword [edx + 0x198]
add eax, dword [edx + 0x14c]
add eax, dword [edx + 0xd4]
add eax, dword [edx + 0xc8]
add eax, dword [edx + 0x38]
add eax, dword [edx + 0x2c]
mov dword [ebx + 0x2c], eax
mov eax, dword [edx + 0x19c]
add eax, dword [edx + 0x150]
add eax, dword [edx + 0xd8]
add eax, dword [edx + 0xcc]
add eax, dword [edx + 0x3c]
add eax, dword [edx + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [edx + 0x70]
mov dword [ebx + 0x70], eax
movss xmm0, dword [edx + 0x80]
addss xmm0, dword [edx + 0x74]
addss xmm0, dword [edx + 0x10c]
addss xmm0, dword [edx + 0x118]
addss xmm0, dword [edx + 0x170]
addss xmm0, dword [edx + 0x1bc]
movss dword [ebx + 0x74], xmm0
movss xmm0, dword [edx + 0x78]
addss xmm0, dword [edx + 0x84]
addss xmm0, dword [edx + 0x110]
addss xmm0, dword [edx + 0x11c]
addss xmm0, dword [edx + 0x174]
addss xmm0, dword [edx + 0x1c0]
movss dword [ebx + 0x78], xmm0
movss xmm0, dword [edx + 0x88]
addss xmm0, dword [edx + 0x7c]
addss xmm0, dword [edx + 0x114]
addss xmm0, dword [edx + 0x120]
addss xmm0, dword [edx + 0x178]
addss xmm0, dword [edx + 0x1c4]
movss dword [ebx + 0x7c], xmm0
movss xmm0, dword [edx + 0x98]
addss xmm0, dword [edx + 0x8c]
addss xmm0, dword [edx + 0x124]
addss xmm0, dword [edx + 0x130]
addss xmm0, dword [edx + 0x17c]
addss xmm0, dword [edx + 0x1c8]
movss dword [ebx + 0x8c], xmm0
movss xmm0, dword [edx + 0x9c]
addss xmm0, dword [edx + 0x90]
addss xmm0, dword [edx + 0x128]
addss xmm0, dword [edx + 0x134]
addss xmm0, dword [edx + 0x180]
addss xmm0, dword [edx + 0x1cc]
movss dword [ebx + 0x90], xmm0
movss xmm0, dword [edx + 0xa0]
addss xmm0, dword [edx + 0x94]
addss xmm0, dword [edx + 0x12c]
addss xmm0, dword [edx + 0x138]
addss xmm0, dword [edx + 0x184]
addss xmm0, dword [edx + 0x1d0]
movss dword [ebx + 0x94], xmm0
movss xmm2, dword [edx + 0x54]
addss xmm2, dword [edx + 0x5c]
movss xmm1, dword [edx + 0x164]
movss xmm0, dword [edx + 0x1b0]
mov eax, dword [ebx + 0x188]
add eax, dword [ebx + 0x13c]
addss xmm2, dword [edx + 0xec]
add eax, dword [ebx + 0xb0]
add eax, dword [ebx + 0xa4]
add eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x10]
addss xmm2, dword [edx + 0xf4]
mov esi, dword [edx + 0xb0]
add esi, dword [edx + 0xa4]
mov edi, dword [edx + 0xb4]
add edi, dword [edx + 0xa8]
addss xmm2, xmm1
add esi, dword [edx + 0x1c]
add edi, dword [edx + 0x20]
add esi, dword [edx + 0x10]
add edi, dword [edx + 0x14]
add esi, dword [edx + 0x13c]
addss xmm2, xmm0
add edi, dword [edx + 0x140]
add esi, dword [edx + 0x188]
add edi, dword [edx + 0x18c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x18c]
movss dword [ebp - 0x2c], xmm2
movss xmm2, dword [edx + 0x58]
addss xmm2, dword [edx + 0x60]
add eax, dword [ebx + 0x140]
add eax, dword [ebx + 0xb4]
add eax, dword [ebx + 0xa8]
add eax, dword [ebx + 0x20]
addss xmm2, dword [edx + 0xf0]
add eax, dword [ebx + 0x14]
mov dword [ebp - 0x14], eax
addss xmm2, dword [edx + 0xf8]
addss xmm2, xmm1
addss xmm2, xmm0
movss xmm0, dword [edx + 0x80]
addss xmm0, dword [edx + 0x74]
movss dword [ebp - 0x30], xmm2
addss xmm0, dword [edx + 0x10c]
addss xmm0, dword [edx + 0x118]
addss xmm0, dword [edx + 0x170]
addss xmm0, dword [edx + 0x1bc]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [edx + 0x78]
addss xmm0, dword [edx + 0x84]
push dword [edx]
addss xmm0, dword [edx + 0x110]
addss xmm0, dword [edx + 0x11c]
addss xmm0, dword [edx + 0x174]
addss xmm0, dword [edx + 0x1c0]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebx + 0x80]
addss xmm0, dword [ebx + 0x74]
addss xmm0, dword [ebx + 0x10c]
addss xmm0, dword [ebx + 0x118]
addss xmm0, dword [ebx + 0x170]
addss xmm0, dword [ebx + 0x1bc]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebx + 0x84]
addss xmm0, dword [ebx + 0x78]
addss xmm0, dword [ebx + 0x110]
addss xmm0, dword [ebx + 0x11c]
addss xmm0, dword [ebx + 0x174]
addss xmm0, dword [ebx + 0x1c0]
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]
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
push dword [esi]
call dword [sym.imp.PAL.dll_PalSpriteGetHeight]
mov ecx, dword [ebp - 0xc]
add esp, 0x20
movss xmm1, dword [ebp - 0x1c]
cdq
sub eax, edx
movss xmm2, dword [ebp - 0x10]
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, dword [ebp - 0x2c]
cvttss2si eax, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
sub ecx, eax
add dword [esi + 0x10], ecx
mulss xmm0, dword [ebp - 0x30]
cvttss2si eax, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [ebp - 0x2c]
sub edi, eax
add dword [esi + 0x14], edi
pop edi
subss xmm2, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [ebp - 0x30]
addss xmm2, dword [esi + 0x74]
subss xmm1, xmm0
movss dword [esi + 0x74], xmm2
addss xmm1, dword [esi + 0x78]
movss dword [esi + 0x78], xmm1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret