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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
mov ebx, edx
mov ecx, edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x20], esi
call fcn.00404000
mov ecx, dword [0x4b0a50]
xor eax, eax
and ecx, 0xff
mov dword [esp + 0xc], eax
dec ecx
mov dword [esp + 0x10], eax
je 0x40419b
dec ecx
jne 0x40420c
mov eax, dword [0x4b0a58]
mov edx, dword [0x4b0a4c]
mov ecx, eax
imul eax, esi
imul ecx, dword [0x4b0a54]
shr ecx, 3
imul ecx, ebx
shr eax, 3
add edx, ecx
add eax, edx
jmp 0x404202
mov eax, dword [0x4b0a48]
mov cl, byte [eax + 0x10]
test cl, cl
je 0x4041d1
mov edx, dword [0x51da28]
lea ecx, [esp + 0xc]
push ecx
push edx
call dword [sym.imp.USER32.dll_ClientToScreen]
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, eax
jge 0x4041c7
mov dword [esp + 0xc], eax
cmp dword [esp + 0x10], eax
jge 0x4041d1
mov dword [esp + 0x10], eax
mov ecx, dword [0x4b0a48]
call fcn.0044c6c0
test eax, eax
je 0x40420c
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
add ecx, esi
add edx, ebx
imul ecx, dword [0x4b0a58]
imul edx, dword [0x4b0a54]
shr ecx, 3
add edx, eax
lea eax, [edx + ecx]
mov dword [0x4b0a5c], 1
mov edx, dword [0x4b6098]
mov ecx, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [0x51ba3c]
sub edx, ecx
mov ecx, dword [0x51ba28]
add ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x34], ecx
mov ecx, eax
sub ecx, ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
fild qword [esp + 0x14]
sub ecx, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], ecx
add edx, esi
fstp dword [esp + 0x3c]
fild qword [esp + 0x14]
mov ecx, ebx
cmp ebx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x24], ecx
fstp dword [esp + 0x4c]
jae 0x40466c
jmp 0x40427a
mov ebx, dword [esp + 0x50]
mov eax, ecx
mov dword [esp + 0xb4], 0
and eax, 3
shl eax, 2
mov dword [esp + 0x88], eax
mov eax, ecx
sub eax, ebx
mov ebx, esi
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 8]
fild qword [esp + 0xb0]
cmp esi, eax
mov dword [esp + 0x1c], ebx
fdiv dword [esp + 0x3c]
fld dword [0x491434]
fsub st(1)
fld st(0)
fmul dword [edi + 0x10]
fld st(2)
fmul dword [edi + 0x28]
faddp st(1)
fstp dword [esp + 0x40]
fld st(0)
fmul dword [edi + 0x1c]
fld st(2)
fmul dword [edi + 0x34]
faddp st(1)
fstp dword [esp + 0x44]
fld st(0)
fmul dword [edi + 0x14]
fld st(2)
fmul dword [edi + 0x2c]
faddp st(1)
fstp dword [esp + 0x48]
fmul dword [edi + 0x20]
fxch st(1)
fmul dword [edi + 0x38]
faddp st(1)
fstp dword [esp + 0x60]
jae 0x404651
jmp 0x40430b
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ecx, ebx
mov dword [esp + 0x9c], 0
sub ecx, esi
sub esp, 8
mov dword [esp + 0xa0], ecx
fild qword [esp + 0xa0]
fdiv dword [esp + 0x54]
fld dword [0x491434]
fsub st(1)
fld st(1)
fmul dword [esp + 0x4c]
fld st(1)
fmul dword [esp + 0x48]
faddp st(1)
fstp dword [esp + 0xc0]
fxch st(1)
fmul dword [esp + 0x68]
fxch st(1)
fmul dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0xc0]
fmul dword [0x491444]
fadd dword [0x491440]
fstp dword [esp + 0x1c]
fmul dword [0x491444]
fadd dword [0x491440]
fstp dword [esp + 0x20]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.0047e185
call fcn.0044eaa0
fld dword [esp + 0x20]
mov edi, eax
fstp qword [esp]
and edi, 0x3ff
call fcn.0047e185
add esp, 8
call fcn.0044eaa0
mov edx, dword [esp + 0x88]
and ebx, 3
add ebx, edx
mov esi, eax
and esi, 0x3ff
fld dword [ebx*4 + 0x4b1020]
call fcn.0044eaa0
mov edx, dword [esp + 0x34]
mov dword [esp + 0xa8], esi
shl esi, 0xa
add esi, edi
mov ebx, eax
mov eax, esi
mov dword [esp + 0xac], 0
fild qword [esp + 0xa8]
lea ecx, [edx + eax*2]
xor edx, edx
mov dl, byte [eax + ecx]
add eax, ecx
inc eax
xor ecx, ecx
mov dword [esp + 0x30], edx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
inc eax
mov dword [esp + 0x2c], ecx
inc eax
xor ecx, ecx
mov dword [esp + 0x28], edx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
inc eax
mov dword [esp + 0x84], ecx
fsubr dword [esp + 0x18]
inc eax
xor ecx, ecx
mov dword [esp + 0x80], edx
mov cl, byte [eax]
add eax, 0xbfb
mov dword [esp + 0x7c], ecx
xor edx, edx
mov dl, byte [eax]
inc eax
fmul dword [0x49143c]
xor ecx, ecx
mov dword [esp + 0x5c], edx
mov cl, byte [eax]
inc eax
fld st(0)
fld dword [0x49143c]
xor edx, edx
mov dword [esp + 0x58], ecx
mov dl, byte [eax]
inc eax
fsub st(1)
mov dword [esp + 0x54], edx
xor ecx, ecx
fild dword [esp + 0x54]
mov cl, byte [eax]
inc eax
mov dword [esp + 0x6c], ecx
xor edx, edx
fmul st(2)
fild dword [esp + 0x28]
mov dl, byte [eax]
xor ecx, ecx
mov cl, byte [eax + 1]
mov dword [esp + 0x68], edx
fmul st(2)
mov dword [esp + 0x64], ecx
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x58]
mov dword [esp + 0x70], eax
fmul st(2)
fild dword [esp + 0x2c]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x5c]
mov dword [esp + 0x74], eax
fmul st(2)
fild dword [esp + 0x30]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fstp st(0)
fstp st(0)
fld dword [0x49143c]
fsub st(1)
fild dword [esp + 0x64]
mov dword [esp + 0x78], eax
fmul st(2)
fild dword [esp + 0x7c]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x68]
mov dword [esp + 0x8c], eax
fmul st(2)
fild dword [esp + 0x80]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x6c]
mov dword [esp + 0x90], eax
fmul st(2)
fild dword [esp + 0x84]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fstp st(0)
fstp st(0)
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], 0
fild qword [esp + 0xa0]
mov dword [esp + 0x94], eax
fsubr dword [esp + 0x14]
fmul dword [0x49143c]
fld dword [0x49143c]
fsub st(1)
fild dword [esp + 0x8c]
fmul st(2)
fild dword [esp + 0x70]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x90]
mov esi, eax
fmul st(2)
fild dword [esp + 0x74]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
fild dword [esp + 0x94]
mov edi, eax
fmul st(2)
fild dword [esp + 0x78]
fmul st(2)
faddp st(1)
fmul dword [0x491438]
call fcn.0044eaa0
mov edx, esi
mov ecx, edi
mov dword [esp + 0x30], eax
add eax, ebx
fstp st(0)
add edx, ebx
add ecx, ebx
cmp eax, 0xff
fstp st(0)
jle 0x4045f3
mov eax, 0xff
cmp edx, 0xff
jle 0x404600
mov edx, 0xff
cmp ecx, 0xff
jle 0x40460d
mov ecx, 0xff
sub esp, 0xc
mov esi, esp
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
call dword [0x4b0a60]
mov ecx, dword [esp + 0xc]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
add ecx, 2
inc eax
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 8]
cmp eax, ecx
mov dword [esp + 0x1c], eax
jb 0x404303
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
inc ecx
mov dword [esp + 0x24], ecx
lea eax, [eax + edx*2]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
cmp ecx, eax
jb 0x404276
mov eax, dword [0x4b0a50]
and eax, 0xff
dec eax
jne 0x40468d
mov eax, dword [0x4b0a5c]
test eax, eax
je 0x40468d
mov ecx, dword [0x4b0a48]
call fcn.0044c780
pop edi
pop esi
mov dword [0x4b0a5c], 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc