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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x78]
push edi
test eax, eax
mov dword [esp + 0x28], ebx
jne 0x555a51
mov ecx, dword [ebx + 0x1c]
lea eax, [esp + 0x50]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov eax, ecx
mov ebp, esi
sub eax, edx
sub ebp, edi
cmp eax, ebp
jge 0x5556d2
mov eax, edx
push 0
sub eax, ecx
lea ecx, [esp + 0x54]
sub eax, edi
add eax, esi
cdq
sub eax, edx
sar eax, 1
neg eax
push eax
push ecx
jmp 0x5556e9
mov eax, ecx
sub eax, edx
sub eax, esi
add eax, edi
cdq
sub eax, edx
lea edx, [esp + 0x50]
sar eax, 1
neg eax
push eax
push 0
push edx
call dword [sym.imp.USER32.dll_InflateRect]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
mov ecx, esi
mov eax, 0x4ec4ec4f
sub ecx, edi
push 0x48
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ecx
add eax, edx
cdq
sub eax, edx
mov ebp, eax
lea eax, [esi + edi]
cdq
sub eax, edx
mov edi, eax
sar ebp, 1
sar edi, 1
mov dword [esp + 0x40], ebp
mov dword [esp + 0x28], edi
call fcn.00596900
mov esi, eax
add esp, 4
test esi, esi
je 0x5557ed
mov ecx, dword [ebx + 0x64]
mov edx, dword [esp + 0x10]
push 0
push 0xff
mov dword [esp + 0x3c], ecx
mov dword [esi], method.CCommandLineInfo.virtual_0
mov dword [esi + 0x3c], ebp
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], edx
call fcn.00555450
push 0
push 0xff
mov edi, eax
call fcn.00555450
push 0
push 0xff
mov dword [esp + 0x50], eax
call fcn.00555450
xor ecx, ecx
and edi, 0xff
mov ch, al
add esp, 0x18
mov cl, byte [esp + 0x38]
shl ecx, 8
mov eax, ecx
or eax, edi
mov dword [esi + 0x34], eax
mov ecx, dword [0x64ab58]
cmp ecx, 8
jne 0x5557d0
mov edx, dword [esp + 0x34]
push 0xffffff
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.GDI32.dll_GetNearestPaletteIndex]
and eax, 0xffff
or eax, 0x1000000
mov edx, dword [esp + 0x10]
lea ecx, [esi + 4]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x40]
push ecx
mov ecx, dword [esi + 0x3c]
push edx
push eax
push ecx
mov ecx, esi
call fcn.005554b0
jmp 0x5557ef
xor esi, esi
mov edx, dword [ebx + 0x78]
lea ecx, [ebx + 0x70]
push esi
push edx
call fcn.00592e9c
fild dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], 1
add ebp, eax
mov dword [esp + 0x14], 6
fstp dword [esp + 0x18]
mov dword [esp + 0x20], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], esi
fld dword [esp + 0x18]
fmul dword [esi + 0x5f7740]
call fcn.004f6200
fld dword [esp + 0x18]
fmul dword [esi + 0x5f7758]
mov dword [esp + 0x48], eax
call fcn.004f6200
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
cmp eax, 7
jge 0x555a19
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov edx, ebp
sub edx, eax
mov eax, edi
sub eax, ecx
push edx
push eax
mov ecx, ebx
call fcn.00554f40
push 0x48
mov dword [esp + 0x44], eax
call fcn.00596900
mov esi, eax
add esp, 4
test esi, esi
je 0x5559e3
fild dword [esp + 0x14]
push 0x3ff00000
push 0
sub esp, 8
fmul qword [0x5f79e0]
sub esp, 8
fadd qword [0x5df0c0]
fstp qword [esp + 8]
fild dword [esp + 0x58]
fstp qword [esp]
call fcn.00554b10
mov ecx, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x28]
push 0x10
mov edx, dword [ecx + 0x64]
mov ecx, ebx
and ecx, 0xff
mov dword [esp + 0x60], edx
push ecx
mov dword [esi], method.CCommandLineInfo.virtual_0
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], ebp
mov dword [esi + 0x44], eax
call fcn.00555450
xor edx, edx
push 0x10
mov dl, bh
mov edi, eax
and edx, 0xff
push edx
call fcn.00555450
mov dword [esp + 0x68], eax
mov eax, ebx
shr eax, 0x10
and eax, 0xff
push 0x10
push eax
call fcn.00555450
xor ecx, ecx
and edi, 0xff
mov ch, al
add esp, 0x30
mov cl, byte [esp + 0x40]
shl ecx, 8
mov eax, ecx
or eax, edi
mov dword [esi + 0x34], eax
mov ecx, dword [0x64ab58]
cmp ecx, 8
jne 0x555966
mov edx, dword [esp + 0x44]
push ebx
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.GDI32.dll_GetNearestPaletteIndex]
and eax, 0xffff
or eax, 0x1000000
fld dword [esp + 0x18]
fmul dword [0x5f79dc]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esi + 0x40]
mov ebp, dword [esi + 0x3c]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
call fcn.004f6200
cdq
sub eax, edx
mov edx, ebx
sar eax, 1
sub edx, eax
mov ecx, ebp
mov dword [esp + 0x44], edx
mov dword [esi + 8], edx
mov edx, ebx
sub ecx, edi
sub edx, edi
add eax, ebx
mov dword [esi + 0x10], edx
lea edx, [edi + ebp]
mov dword [esp + 0x40], edx
mov dword [esi + 0x14], edx
mov edx, dword [esp + 0x44]
add edi, ebx
mov ebx, dword [esp + 0x28]
mov dword [esi + 0x18], edx
mov edx, dword [esp + 0x40]
mov dword [esi + 0xc], ebp
mov dword [esi + 0x24], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + 0x28], edi
mov edi, dword [esp + 0x2c]
mov dword [esi + 4], ecx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], eax
jmp 0x5559e5
xor esi, esi
mov eax, dword [ebx + 0x78]
lea ecx, [ebx + 0x70]
push esi
push eax
call fcn.00592e9c
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
add edi, edx
add ebp, ecx
dec eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], eax
jne 0x55586f
mov esi, dword [esp + 0x38]
add esi, 4
cmp esi, 0x18
mov dword [esp + 0x38], esi
jl 0x555834
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
inc edi
add esi, ecx
dec eax
mov dword [esp + 0x1c], edi
test eax, eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
jg 0x55581e
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret