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

Disassembly:
sub esp, 0x160
push ebp
push esi
push edi
push str.RenderMenu__
call fcn.10054cbb
mov eax, dword fs:[0x2c]
pop ecx
mov ecx, dword [0x103fa1c8]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x103f9c44]
cmp eax, dword [esi + 4]
jg 0x10048c77
mov eax, dword [0x103f9c4c]
cmp eax, dword [esi + 4]
jg 0x10048cce
mov esi, str.always_all_best___
lea edi, [esp + 0x6c]
push 0xed
xor ebp, ebp
lea eax, [esp + 0x83]
push ebp
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
call fcn.10058770
mov edi, dword [0x10167660]
add esp, 0xc
test edi, edi
je 0x10048c6d
mov ecx, edi
mov edx, dword [ecx]
test edx, edx
je 0x100486b7
mov eax, dword [edx]
mov ecx, edx
mov edx, eax
test eax, eax
jne 0x100486ad
mov eax, dword [ecx + 0xc]
test eax, eax
js 0x1004870e
cmp eax, dword [ecx + 8]
jge 0x1004870e
imul esi, eax, 0x18
add esi, dword [ecx + 0x14]
cmp dword [esi], ebp
je 0x1004870e
cmp ecx, edi
je 0x1004870e
lea ecx, [esp + 0x6c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100486d8
push dword [esi + 8]
sub ecx, edx
mov eax, 0x100
sub eax, ecx
push str.____s
push eax
lea eax, [esp + 0x78]
add eax, ecx
push eax
call fcn.10008bf2
mov ecx, dword [esi]
add esp, 0x10
test ecx, ecx
je 0x1004870e
mov edi, dword [0x10167660]
jmp 0x100486b7
mov edi, dword [0x103f4354]
lea eax, [esp + 0x6c]
sub edi, dword [0x103f9c48]
sub edi, dword [0x103f9c40]
mov ecx, dword [0x103f44b4]
sub edi, 0x18
push ebx
mov ebx, dword [0x103f4350]
push ebp
shr ebx, 1
push eax
sub ebx, 0xc8
call fcn.100447d6
fsub dword [0x10091640]
lea eax, [ebx - 0x2d]
movd xmm0, eax
lea eax, [esp + 0x28]
push eax
cvtdq2ps xmm0, xmm0
push ecx
and dword [esp], ebp
lea eax, [esp + 0x38]
push ebp
push ebp
push ecx
and dword [esp], ebp
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x10091644]
push ebp
push eax
fstp dword [esp + 0x2c]
movss dword [esp + 0x48], xmm0
call sub.d3dx9_43.dll_D3DXMatrixTransformation2D
mov eax, dword [0x103f4464]
push 0x10
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov eax, dword [0x103f4464]
lea edx, [esp + 0x30]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [0x103f4464]
push 0xffffffffffffffff
push ebp
push ebp
mov ecx, dword [eax]
push ebp
push dword [0x103f4460]
push eax
call dword [ecx + 0x24]
mov eax, dword [0x103f4464]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
movss xmm0, dword [esp + 0x10]
lea eax, [esp + 0x70]
maxss xmm0, dword [0x1007f174]
push ebp
push ecx
mov ecx, dword [0x103f44b4]
movss dword [esp], xmm0
push eax
call fcn.10044bba
mov ebp, eax
test ebp, ebp
jle 0x100487f5
inc ebp
mov edx, dword [0x100dc864]
mov ecx, dword [edx + 4]
movzx esi, byte [edx + 8]
movzx eax, byte [edx + 0xc]
shl ecx, 8
or esi, ecx
mov ecx, dword [0x103f44b0]
shl esi, 8
or esi, eax
movzx eax, byte [edx + 0x10]
shl esi, 8
or esi, eax
mov eax, dword [0x103f9c40]
push esi
push 0xdf5b5b5b
add eax, 2
push eax
push 0x190
push edi
push ebx
call fcn.100444c2
lea eax, [esp + 0x70]
add eax, ebp
push eax
lea eax, [edi + 1]
movd xmm0, eax
lea eax, [ebx + 1]
cvtdq2ps xmm0, xmm0
push 0xfffafafa
push ecx
push ecx
mov ecx, dword [0x103f44b4]
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.100459b6
mov ecx, dword [0x100dc868]
mov ebx, dword [0x103f4354]
mov esi, dword [0x103f9c48]
sub ebx, esi
mov ebp, dword [0x103f4350]
sub ebx, 0x15
mov eax, dword [ecx + 4]
movzx edx, byte [ecx + 8]
shl eax, 8
or edx, eax
shr ebp, 1
movzx eax, byte [ecx + 0xc]
sub ebp, 0xc8
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x10]
mov ecx, dword [0x103f44b0]
shl edx, 8
or edx, eax
push edx
push 0xdf3f3f3f
push esi
push 0x190
push ebx
push ebp
call fcn.100444c2
mov edx, dword [0x10167660]
mov esi, dword [edx + 0xc]
mov edi, esi
mov dword [esp + 0x10], esi
lea eax, [esi - 0xc]
cmp eax, dword [edx + 0x10]
lea ecx, [esi - 0xb]
cmovl ecx, dword [edx + 0x10]
cmp esi, ecx
cmovge edi, ecx
test edi, edi
jns 0x100488f7
xor edi, edi
jmp 0x10048901
mov eax, dword [edx + 8]
cmp edi, eax
jl 0x10048901
lea edi, [eax - 1]
movd xmm0, ebx
lea eax, [edi + 0xc]
mov dword [edx + 0x10], edi
mov dword [esp + 0x20], eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x14], xmm0
cmp edi, eax
jge 0x10048c6c
mov ecx, dword [0x10167660]
imul eax, edi, 0x18
mov dword [esp + 0x1c], eax
test edi, edi
js 0x10048c43
cmp edi, dword [ecx + 8]
jge 0x10048c43
mov ebx, dword [ecx + 0x14]
add ebx, eax
push ebx
push 0
call dword [ecx + 0x18]
mov dword [esp + 0x20], eax
pop ecx
pop ecx
cmp edi, esi
jne 0x100489ef
movss xmm4, dword [esp + 0x14]
movss xmm3, dword [0x1008ef8c]
movaps xmm0, xmm4
movss xmm1, dword [0x1008ef88]
andps xmm3, xmm4
mov edx, dword [0x100dc86c]
xorps xmm0, xmm3
cmpltss xmm0, xmm1
movaps xmm2, xmm4
push 0
mov ecx, dword [edx + 4]
movzx esi, byte [edx + 8]
movzx eax, byte [edx + 0xc]
andps xmm1, xmm0
orps xmm1, xmm3
shl ecx, 8
addss xmm2, xmm1
or esi, ecx
mov ecx, dword [0x103f44b0]
shl esi, 8
or esi, eax
movzx eax, byte [edx + 0x10]
shl esi, 8
subss xmm2, xmm1
or esi, eax
movss xmm1, dword [0x1007f18c]
mov eax, dword [0x103f9c40]
push esi
inc eax
movaps xmm0, xmm2
subss xmm0, xmm4
push eax
push 0x18f
cmpnless xmm0, xmm3
andps xmm0, xmm1
subss xmm2, xmm0
cvttss2si eax, xmm2
inc eax
push eax
lea eax, [ebp + 1]
push eax
call fcn.1004450e
cmp edi, dword [0x100dbff0]
jne 0x10048a98
movss xmm4, dword [esp + 0x14]
movss xmm3, dword [0x1008ef8c]
movaps xmm0, xmm4
movss xmm1, dword [0x1008ef88]
andps xmm3, xmm4
mov esi, dword [0x100dc86c]
xorps xmm0, xmm3
cmpltss xmm0, xmm1
movaps xmm2, xmm4
push 0
mov eax, dword [esi + 4]
movzx ecx, byte [esi + 8]
andps xmm1, xmm0
cdq
orps xmm1, xmm3
sub eax, edx
addss xmm2, xmm1
sar eax, 1
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0xc]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + 0x10]
subss xmm2, xmm1
shl eax, 8
movss xmm1, dword [0x1007f18c]
or eax, ecx
mov ecx, dword [0x103f44b0]
push eax
mov eax, dword [0x103f9c40]
movaps xmm0, xmm2
inc eax
subss xmm0, xmm4
push eax
push 0x18f
cmpnless xmm0, xmm3
andps xmm0, xmm1
subss xmm2, xmm0
cvttss2si eax, xmm2
inc eax
push eax
lea eax, [ebp + 1]
push eax
call fcn.1004450e
mov esi, dword [ebx + 8]
cmp byte [esi], 9
jne 0x10048b70
movss xmm0, dword [esp + 0x14]
lea eax, [esi + 1]
push eax
push dword [ebx + 0x10]
lea esi, [ebp + 2]
push ecx
push ecx
mov ecx, dword [0x103f44b4]
movss dword [esp + 4], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.100459b6
mov eax, dword [ebx + 8]
mov ecx, dword [0x103f44b4]
inc eax
push 0
push eax
call fcn.100447d6
push ecx
push ecx
fstp qword [esp]
call fcn.10065ab0
movss xmm4, dword [esp + 0x1c]
movss xmm3, dword [0x1008ef8c]
movaps xmm0, xmm4
movss xmm1, dword [0x1008ef88]
andps xmm3, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltss xmm0, xmm1
pop ecx
pop ecx
fstp dword [esp + 0x18]
cvttss2si eax, dword [esp + 0x18]
push 0
push 0xbf7f7f7f
push 1
andps xmm1, xmm0
orps xmm1, xmm3
addss xmm2, xmm1
push eax
mov eax, dword [0x103f9c40]
dec eax
subss xmm2, xmm1
movss xmm1, dword [0x1007f18c]
movaps xmm0, xmm2
subss xmm0, xmm4
cmpnless xmm0, xmm3
andps xmm0, xmm1
subss xmm2, xmm0
cvttss2si ecx, xmm2
add eax, ecx
mov ecx, dword [0x103f44b0]
push eax
push esi
call fcn.1004450e
jmp 0x10048bc7
cmp dword [esp + 0x18], 0
je 0x10048b9a
mov ecx, dword [0x100dc870]
mov edx, dword [ecx + 8]
movzx eax, byte [ecx + 0xc]
or edx, 0xffffff00
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x10]
shl edx, 8
or edx, eax
jmp 0x10048b9d
mov edx, dword [ebx + 0x10]
movss xmm0, dword [esp + 0x14]
push esi
push edx
push ecx
push ecx
mov ecx, dword [0x103f44b4]
lea esi, [ebp + 2]
movss dword [esp + 4], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.100459b6
cmp dword [ebx], 0
movss xmm0, dword [esp + 0x14]
je 0x10048c35
mov ebx, 0x1008f988
push ebx
push 0xbf7f7f7f
push ecx
mov ecx, dword [0x103f44b4]
movss dword [esp], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push 0
push ebx
addss xmm0, dword [0x10091640]
movss dword [esp + 0x2c], xmm0
call fcn.100447d6
movss xmm0, dword [esp + 0x24]
fstp dword [esp + 0x30]
subss xmm0, dword [esp + 0x30]
push ecx
mov ecx, dword [0x103f44b4]
subss xmm0, dword [0x100915b4]
movss dword [esp], xmm0
call fcn.100459b6
movss xmm0, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x10167660]
add eax, 0x18
inc edi
mov dword [esp + 0x1c], eax
mov eax, dword [0x103f44b4]
addss xmm0, dword [eax + 0xe45]
mov eax, dword [esp + 0x1c]
movss dword [esp + 0x14], xmm0
cmp edi, dword [esp + 0x20]
jl 0x1004892d
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x160
ret
mov edi, 0x103f9c44
push edi
call fcn.1005612b
cmp dword [0x103f9c44], 0xffffffff
pop ecx
jne 0x1004865e
mov eax, dword [0x103f44b4]
push ecx
push ecx
movss xmm0, dword [eax + 0xe45]
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
fstp qword [esp]
call fcn.10065ab0
fstp dword [esp + 0x14]
cvttss2si eax, dword [esp + 0x14]
push edi
mov dword [0x103f9c40], eax
call fcn.100560e1
add esp, 0xc
jmp 0x1004865e
mov esi, 0x103f9c4c
push esi
call fcn.1005612b
cmp dword [0x103f9c4c], 0xffffffff
pop ecx
jne 0x1004866f
mov eax, dword [0x103f44b4]
push ecx
push ecx
movss xmm0, dword [eax + 0xe45]
mulss xmm0, dword [0x10085134]
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
fstp qword [esp]
call fcn.10065ab0
fstp dword [esp + 0x14]
cvttss2si eax, dword [esp + 0x14]
push esi
add eax, 2
mov dword [0x103f9c48], eax
call fcn.100560e1
add esp, 0xc
jmp 0x1004866f