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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5cf3e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x298]
mov ecx, edi
call fcn.004b70c0
test al, al
jne 0x48797b
call fcn.0042fc10
mov ecx, eax
add ecx, 0xc
call fcn.0042eac0
mov ecx, edi
call fcn.0042ea40
mov ecx, esi
call fcn.0048b230
mov edi, eax
xor ebp, ebp
mov dword [esp + 0x2c], edi
mov eax, dword [edi + 8]
test eax, eax
jle 0x4879bc
mov ebx, dword [edi + 4]
mov ecx, dword [ebx]
xor eax, eax
mov edx, dword [ecx - 8]
test edx, edx
jle 0x4879b1
mov edx, ecx
cmp word [edx], 0x80
jae 0x4879bc
inc eax
add edx, 2
cmp eax, dword [ecx - 8]
jl 0x4879a1
mov eax, dword [edi + 8]
inc ebp
add ebx, 4
cmp ebp, eax
jl 0x487994
mov ecx, dword [esi + 0xd4]
call fcn.004d2f90
mov ebx, eax
mov eax, dword [esi + 0x178]
push eax
mov ecx, ebx
call fcn.004d2100
mov ecx, dword [esi + 0x17c]
fstp qword [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.004d2100
mov edx, dword [esi + 0x184]
mov ecx, ebx
fstp qword [esp + 0x4c]
push edx
call fcn.004d2100
mov eax, dword [esi + 0x184]
mov ecx, ebx
fstp qword [esp + 0x5c]
sub eax, 4
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x180]
push eax
call fcn.004d2100
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x78]
fstp qword [esp + 0x64]
push ecx
push edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x40000000
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
call dword [sym.imp.user32.dll_GetClientRect]
lea eax, [esp + 0x54]
lea ecx, [esp + 0x44]
push eax
push ecx
push 0
push 0
push 0x40000000
push 0
mov ecx, ebx
call fcn.004d22e0
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x7c]
lea edx, [esp + 0x3c]
sub ecx, ebp
lea eax, [esp + 0x34]
push edx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
mov ecx, dword [esp + 0x7c]
push eax
sub esp, 8
sub edx, ecx
mov dword [esp + 0x38], edx
mov ecx, ebx
fstp qword [esp]
fild dword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.004d22e0
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], 0xffffffff
call sub.mfc42u.dll_CString::CString_3
fld qword [esp + 0x54]
fsub qword [esp + 0x6c]
mov ebx, dword [esi + 0x178]
mov ebp, dword [esi + 0x184]
mov dword [esp + 0x90], 0
add ebx, ebp
fsub qword [esp + 0x5c]
fstp qword [esp + 0x3c]
mov ecx, dword [esi + 0x18c]
mov eax, dword [edi + 0x30]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jge 0x487f77
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov dword [esp + 0x28], ecx
fld qword [esp + 0x44]
fadd qword [esp + 0x64]
mov ecx, dword [esi + 0x180]
mov ebp, dword [esi + 0x188]
add ecx, 2
mov byte [esp + 0x12], 0
mov dword [esp + 0x14], ecx
mov byte [esp + 0x13], 0
fstp qword [esp + 0x34]
mov eax, dword [edi + 0x30]
test eax, eax
je 0x487b61
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + 8]
jmp 0x487b63
xor eax, eax
cmp ebp, eax
jge 0x487caf
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x28]
mov eax, dword [eax + edx + 4]
mov edi, dword [eax + ebp*4]
test edi, edi
jne 0x487b9c
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
mov eax, dword [esi + 0x17c]
mov edi, dword [esp + 0x2c]
add ecx, eax
inc ebp
mov dword [esp + 0x14], ecx
fstp qword [esp + 0x34]
jmp 0x487b52
push 0
mov ecx, edi
call fcn.005012b0
test al, al
je 0x487c0b
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x12], 1
cmp eax, ebp
jg 0x487bba
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x18]
push ecx
push 0
push edi
mov ecx, esi
call fcn.0048a260
fld qword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
fmul qword [0x5e7968]
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x40]
fadd qword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esi + 0xd4]
push edx
sub esp, 8
fstp qword [esp]
call fcn.004d32b0
mov eax, dword [esp + 0x14]
push edi
push ebx
push eax
push ebp
mov ecx, esi
call fcn.0048abc0
push 1
mov ecx, edi
call fcn.005012b0
test al, al
je 0x487c89
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x12], 1
cmp eax, ebp
jg 0x487c29
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x18]
push ecx
push 1
push edi
mov ecx, esi
call fcn.0048a260
fld qword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
fmul qword [0x5e7ed0]
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x40]
fadd qword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esi + 0xd4]
push edx
sub esp, 8
fstp qword [esp]
call fcn.004d32b0
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x14]
cdq
sub eax, edx
push edi
sar eax, 1
push ebx
lea edx, [eax + ecx + 1]
mov ecx, esi
push edx
push ebp
call fcn.0048abc0
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x14], ecx
inc ebp
fstp qword [esp + 0x34]
jmp 0x487b52
mov al, byte [esp + 0x12]
test al, al
je 0x487d2e
push 0x3fcccccc
push 0xcccccccd
push 0x3fe80000
push 0
push 0x3feeb851
push 0xeb851eb8
call dword [sym.imp.opengl32.dll_glColor3d]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
fld qword [esp + 0x5c]
fmul qword [0x5e2790]
lea eax, [ecx + edx*4]
mov ecx, dword [esp + 0x20]
push eax
push ecx
fadd qword [esp + 0x44]
sub esp, 8
mov ecx, dword [esi + 0xd4]
sub esp, 8
fstp qword [esp + 8]
fld qword [esp + 0x7c]
fmul qword [0x5e2790]
fadd qword [esp + 0x5c]
fstp qword [esp]
call fcn.004d3240
fld qword [esp + 0x3c]
fsub qword [esp + 0x5c]
add ebx, dword [esi + 0x184]
fstp qword [esp + 0x3c]
fld qword [esp + 0x44]
fadd qword [esp + 0x64]
mov eax, dword [esi + 0x180]
mov ebp, dword [esi + 0x188]
add eax, 0xa
mov dword [esp + 0x14], eax
fstp qword [esp + 0x34]
mov eax, dword [edi + 0x30]
test eax, eax
je 0x487d5c
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + 8]
jmp 0x487d5e
xor eax, eax
cmp ebp, eax
jge 0x487e9e
mov edx, dword [edi + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [edx + eax + 4]
mov edi, dword [ecx + ebp*4]
test edi, edi
jne 0x487d8b
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
inc ebp
fstp qword [esp + 0x34]
jmp 0x487d4d
push 2
mov ecx, edi
call fcn.005012b0
test al, al
je 0x487dfa
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x13], 1
cmp eax, ebp
jg 0x487da9
mov dword [esp + 0x1c], ebp
lea edx, [esp + 0x18]
mov ecx, esi
push edx
push 2
push edi
call fcn.0048a260
fld qword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
fmul qword [0x5e7968]
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x40]
fadd qword [esp + 0x38]
push ecx
mov ecx, dword [esi + 0xd4]
push edx
push eax
sub esp, 8
fstp qword [esp]
call fcn.004d32b0
mov ecx, dword [esp + 0x14]
push edi
push ebx
push ecx
push ebp
mov ecx, esi
call fcn.0048abc0
push 3
mov ecx, edi
call fcn.005012b0
test al, al
je 0x487e78
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x13], 1
cmp eax, ebp
jg 0x487e18
mov dword [esp + 0x1c], ebp
lea edx, [esp + 0x18]
mov ecx, esi
push edx
push 3
push edi
call fcn.0048a260
fld qword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
fmul qword [0x5e7ed0]
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x40]
fadd qword [esp + 0x38]
push ecx
mov ecx, dword [esi + 0xd4]
push edx
push eax
sub esp, 8
fstp qword [esp]
call fcn.004d32b0
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x14]
cdq
sub eax, edx
push edi
sar eax, 1
push ebx
lea edx, [eax + ecx + 1]
mov ecx, esi
push edx
push ebp
call fcn.0048abc0
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x14], ecx
inc ebp
fstp qword [esp + 0x34]
jmp 0x487d4d
mov al, byte [esp + 0x13]
test al, al
je 0x487f58
push 0x3fcccccc
push 0xcccccccd
push 0x3fe80000
push 0
push 0x3feeb851
push 0xeb851eb8
call dword [sym.imp.opengl32.dll_glColor3d]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x24]
push 0x61d834
lea eax, [ecx + edx*4]
lea ecx, [esp + 0x34]
push eax
push ecx
call sub.mfc42u.dll_operator
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 1
call sub.mfc42u.dll_CString::operator_2
lea ecx, [esp + 0x30]
mov byte [esp + 0x90], 0
call sub.mfc42u.dll_CString::CString
fld qword [esp + 0x5c]
fmul qword [0x5e2790]
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x18]
push edx
push eax
fadd qword [esp + 0x44]
sub esp, 8
mov ecx, dword [esi + 0xd4]
sub esp, 8
fstp qword [esp + 8]
fld qword [esp + 0x7c]
fmul qword [0x5e2790]
fadd qword [esp + 0x5c]
fstp qword [esp]
call fcn.004d3240
fld qword [esp + 0x3c]
fsub qword [esp + 0x5c]
add ebx, dword [esi + 0x184]
fstp qword [esp + 0x3c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + 0x30]
inc eax
add edx, 0x14
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
jl 0x487b29
mov eax, dword [edi + 0x30]
test eax, eax
je 0x488131
mov eax, dword [esi + 0x40]
lea ecx, [eax + 0x2e0]
call fcn.004d6740
test eax, eax
je 0x488131
mov eax, dword [esi + 0x178]
lea eax, [eax + eax*2]
lea ecx, [eax + eax*4]
mov eax, 0x51eb851f
shl ecx, 2
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebx, edx
mov dword [esp + 0x28], ebx
call fcn.0042fc10
mov ecx, eax
add ecx, 0xc
call fcn.0042eac0
mov eax, dword [esi + 0x40]
cmp byte [eax + 0xa48], 3
je 0x4880b3
lea ecx, [eax + 0xa48]
call fcn.004b4320
test eax, eax
mov eax, dword [esi + 0x40]
lea ecx, [eax + 0x2e0]
je 0x488055
call fcn.004dfab0
mov edx, dword [eax + 0xfc]
mov eax, dword [edx]
push eax
push 0
lea eax, [esp + 0x38]
push 0x61d824
push eax
call fcn.0046c5e0
add esp, 0x10
fild dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push eax
push ebx
fsubr qword [esp + 0x5c]
sub esp, 8
mov byte [esp + 0xa0], 2
fstp qword [esp]
push ecx
mov ecx, dword [esi + 0xd4]
push edx
call fcn.004d32b0
mov byte [esp + 0x90], 0
lea ecx, [esp + 0x30]
jmp 0x48812c
call fcn.004dfab0
mov eax, dword [eax + 0xfc]
lea ecx, [esp + 0x30]
mov eax, dword [eax + 4]
push eax
push 0
push 0x61d814
push ecx
call fcn.0046c5e0
add esp, 0x10
fild dword [esp + 0x28]
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0xd4]
fsubr qword [esp + 0x58]
push ebx
mov byte [esp + 0x98], 3
sub esp, 8
fstp qword [esp]
push edx
push eax
call fcn.004d32b0
mov byte [esp + 0x90], 0
lea ecx, [esp + 0x30]
jmp 0x48812c
lea ecx, [eax + 0x2e0]
call fcn.004dfab0
mov ecx, dword [eax + 0xfc]
mov eax, dword [esi + 0x40]
mov ebp, dword [ecx + 4]
lea ecx, [eax + 0x2e0]
call fcn.004dfab0
mov edx, dword [eax + 0xfc]
push ebp
mov eax, dword [edx]
push eax
push 0
lea eax, [esp + 0x3c]
push 0x61d804
push eax
call fcn.0046c5e0
add esp, 0x14
fild dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push eax
push ebx
fsubr qword [esp + 0x5c]
sub esp, 8
mov byte [esp + 0xa0], 4
fstp qword [esp]
push ecx
mov ecx, dword [esi + 0xd4]
push edx
call fcn.004d32b0
mov byte [esp + 0x90], 0
lea ecx, [esp + 0x30]
call sub.mfc42u.dll_CString::CString
call fcn.0042fc10
mov ecx, eax
add ecx, 0x3c
call fcn.0042eac0
fld qword [esp + 0x6c]
fmul qword [0x5e2790]
mov ebx, dword [esi + 0x188]
fsubr qword [esp + 0x54]
fstp qword [esp + 0x3c]
fld qword [esp + 0x4c]
fmul qword [0x5e2790]
fadd qword [esp + 0x44]
fadd qword [esp + 0x64]
fstp qword [esp + 0x34]
mov eax, dword [edi + 0x30]
test eax, eax
je 0x48817d
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + 8]
jmp 0x48817f
xor eax, eax
cmp ebx, eax
jge 0x4881b9
mov ecx, dword [esi + 0x188]
mov edx, dword [esp + 0x3c]
mov eax, ebx
push ebx
sub eax, ecx
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
mov ecx, esi
call fcn.00486c60
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
inc ebx
fstp qword [esp + 0x34]
jmp 0x48816e
mov eax, dword [esi + 0x40]
xor edi, edi
mov ecx, dword [eax + 0xaa4]
test ecx, ecx
jle 0x48820b
mov edx, dword [eax + 0xaa0]
mov eax, dword [edx + edi*4]
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + 0x148]
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00486ac0
fld qword [esp + 0x34]
fadd qword [esp + 0x4c]
mov eax, dword [esi + 0x40]
inc edi
fstp qword [esp + 0x34]
cmp edi, dword [eax + 0xaa4]
jl 0x4881c8
lea ecx, [esp + 0x18]
mov byte [esi + 0x290], 0
mov dword [esp + 0x90], 0xffffffff
call sub.mfc42u.dll_CString::CString
mov ecx, dword [esp + 0x88]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret