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

Disassembly:
sub esp, 0xc4
push ebx
push ebp
push esi
push edi
mov edi, eax
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x47a109
cmp dword [eax + 0x4fc], 0
je 0x47a109
mov eax, dword [eax + 0x508]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
jne 0x47985e
cmp dword [edi + 0x80], 0
je 0x47a109
mov ecx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x70]
push eax
push ecx
call esi
mov eax, dword [edi + 0x80]
mov ecx, dword [eax + 0x20]
lea edx, [esp + 0x44]
push edx
push ecx
call esi
fld qword [0x5ae4c0]
mov edx, dword [esp + 0x50]
fmul qword [0x5851f8]
sub edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push 1
mov eax, ebx
push edx
sub eax, esi
push eax
call fcn.005261c0
fld qword [0x5ae4b8]
fmul qword [0x584e18]
push eax
call fcn.005261c0
mov ecx, dword [edi + 0x80]
sub esi, eax
sub esi, ebx
add esi, dword [esp + 0x88]
push esi
call fcn.00501909
mov eax, dword [edi + 0x80]
test eax, eax
je 0x47925a
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x44]
push ecx
push edx
call ebp
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.005039ae
mov ecx, dword [edi + 0x7c]
fld qword [0x5ae4b8]
test dword [ecx + 0xc], 0x80000
je 0x4792c8
fld qword [0x584f70]
fmul st(1)
call fcn.005261c0
fadd st(0), st(0)
push eax
call fcn.005261c0
push eax
lea edx, [esp + 0x78]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [edi + 0x12ac], 0
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], eax
je 0x4792e8
fld qword [0x5ae4b8]
fld qword [0x5851c0]
fmul st(1)
call fcn.005261c0
fmul qword [0x5851b8]
add eax, eax
mov esi, eax
call fcn.005261c0
sub eax, esi
add dword [esp + 0x70], eax
jmp 0x4792e8
fmul qword [0x584f70]
call fcn.005261c0
push eax
push eax
lea edx, [esp + 0x78]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x50]
push 1
lea esi, [edi + 0x88]
push esi
lea eax, [esp + 0x78]
mov dword [esp + 0x84], ecx
call fcn.0047c0f0
mov eax, esi
call fcn.0043d660
mov edx, dword [edi + 0xa8]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [edi + 0x80]
test eax, eax
je 0x47933a
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x44]
push ecx
push edx
call ebp
lea eax, [esp + 0x44]
push eax
mov ecx, edi
call fcn.005039ae
mov edx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x70]
push ecx
push edx
call esi
mov ecx, dword [edi + 0x1f0]
lea eax, [esp + 0x34]
push eax
push ecx
call esi
fld qword [0x5ae4c0]
mov edx, dword [esp + 0x40]
fmul qword [0x585360]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
push 1
sub edx, ebx
push edx
sub eax, esi
push eax
lea ebp, [edi + 0x1d0]
call fcn.005261c0
fld qword [0x5ae4b8]
fmul qword [0x584e18]
sub ebx, eax
sub ebx, dword [esp + 0x4c]
push ebx
call fcn.005261c0
sub esi, eax
sub esi, dword [esp + 0x5c]
mov ecx, ebp
add esi, dword [esp + 0x88]
push esi
call fcn.00501909
test ebp, ebp
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
je 0x4793d6
mov edx, dword [ebp + 0x20]
lea ecx, [esp + 0x34]
push ecx
push edx
call ebx
lea eax, [esp + 0x34]
push eax
mov ecx, edi
call fcn.005039ae
fld qword [0x5ae4c0]
push 1
fld qword [0x584f48]
push 0
fmul st(1), st(0)
push 0
fxch st(1)
lea esi, [edi + 0x170]
call fcn.005261c0
fmul qword [0x5ae4b8]
mov ecx, dword [esp + 0x44]
sub ecx, eax
push ecx
call fcn.005261c0
mov edx, dword [esp + 0x44]
sub edx, eax
push edx
push ebp
mov ecx, esi
call fcn.00501b56
fld qword [0x5ae4b8]
fld qword [0x584e18]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fmul qword [0x5ae4c0]
mov dword [esp + 0x20], eax
call fcn.005261c0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
mov ecx, esi
call fcn.00476680
mov esi, edi
call fcn.0047a120
push 0
lea eax, [esp + 0xc4]
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x479ef0
lea ecx, [esp + 0xc0]
push ecx
lea edx, [esp + 0x84]
push edx
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [edi + 0x20]
lea eax, [esp + 0x90]
push eax
push ecx
call ebx
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x34]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x9c]
sub ecx, dword [esp + 0x84]
sub edx, dword [esp + 0x94]
cmp edx, ecx
jle 0x479546
mov eax, dword [edi + 0x7c]
test dword [eax + 8], 0x1000
jne 0x479546
push 1
mov ecx, edi
call fcn.005017ab
test eax, eax
je 0x4794e7
push 0
mov ecx, eax
call fcn.00501947
mov edx, dword [edi + 0x280]
lea ecx, [esp + 0xb0]
push ecx
push edx
call ebx
fld qword [0x5ae4b8]
fmul qword [0x585338]
push 0x16
call fcn.005261c0
mov ecx, dword [esp + 0xc0]
cdq
sub eax, edx
mov edx, dword [esp + 0x9c]
sub edx, dword [esp + 0x94]
sar eax, 1
sub ecx, eax
sub ecx, dword [esp + 0x98]
push ecx
push edx
push 0
push 0
push 0
mov ecx, edi
call fcn.00501b56
push 0
mov ecx, edi
call fcn.004fd27a
mov ecx, dword [edi + 0x20]
lea eax, [esp + 0x90]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x34]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
fld qword [0x5ae4c0]
mov ebx, dword [esp + 0x9c]
fld st(0)
fld qword [0x584f48]
sub ebx, dword [esp + 0x94]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fmul qword [0x5ae4b8]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x98]
sub ecx, eax
sub ecx, dword [esp + 0x84]
xor edx, edx
cmp ebx, ecx
setg dl
sub esi, dword [esp + 0x90]
mov ebp, edx
call fcn.005261c0
mov ecx, dword [esp + 0x88]
sub ecx, eax
sub ecx, dword [esp + 0x80]
xor edx, edx
cmp esi, ecx
setg dl
test ebp, ebp
mov dword [esp + 0x1c], edx
jne 0x4795e5
test edx, edx
je 0x479eee
mov eax, dword [esp + 0x8c]
fmul qword [0x585408]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
call fcn.005261c0
cmp dword [esp + 0x20], eax
jl 0x479612
mov dword [edi + 0x12d0], 1
test ebp, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
je 0x479646
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jne 0x47964d
cmp dword [edi + 0x12d0], 0
jne 0x479671
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, esi
mov dword [esp + 0x18], eax
jmp 0x479671
cmp dword [esp + 0x1c], 0
je 0x479671
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0x80]
test ebp, ebp
mov dword [esp + 0x18], eax
jne 0x479671
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, ebx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push 0x16
push ecx
push edx
push 0
push 0
push 0
mov ecx, edi
call fcn.00501b56
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0x34]
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0x20]
push edx
push eax
mov dword [esp + 0xb4], ecx
call dword [sym.imp.USER32.dll_GetClientRect]
test ebp, ebp
je 0x47978e
cmp dword [edi + 0x12d0], 0
jne 0x47978e
mov ecx, dword [edi + 0x20]
push 1
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [edi + 0x12c8], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], 0x1c
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], eax
je 0x479720
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
fld qword [0x5ae4c0]
mov dword [esp + 0x20], eax
fld qword [0x585338]
fmul st(1)
call fcn.005261c0
fmul qword [0x584f70]
mov edx, dword [esp + 0x38]
fnstcw word [esp + 0x14]
sub edx, eax
sub edx, dword [esp + 0x40]
movzx eax, word [esp + 0x14]
sub edx, ebx
add edx, dword [esp + 0xac]
or eax, 0xc00
add edx, dword [esp + 0x20]
mov dword [esp + 0x20], eax
push 1
fldcw word [esp + 0x24]
lea ecx, [esp + 0x58]
push ecx
push 1
mov ecx, edi
mov dword [esp + 0x6c], edx
fistp qword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x70], eax
fldcw word [esp + 0x20]
call fcn.004fba67
cmp dword [esp + 0x1c], 0
je 0x479854
mov edx, dword [edi + 0x20]
push 1
xor ebx, ebx
push ebx
push edx
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
cmp ebp, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [edi + 0x12cc], 1
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], 0x1c
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], ebx
je 0x4797ee
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
fld qword [0x5ae4b8]
fld qword [0x585338]
fmul st(1)
call fcn.005261c0
fmul qword [0x584f70]
sub esi, eax
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
sub esi, dword [esp + 0x3c]
or eax, 0xc00
sub esi, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
push 1
fldcw word [esp + 0x24]
add esi, ebx
add esi, dword [esp + 0x38]
lea ecx, [esp + 0x58]
push ecx
push 0
fistp qword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
fldcw word [esp + 0x20]
call fcn.004fba67
call fcn.00478ba0
jmp 0x479ef0
cmp eax, 1
jne 0x479ef0
cmp dword [edi + 0x80], 0
je 0x47a109
mov eax, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [esp + 0x70]
push edx
push eax
call esi
mov edx, dword [edi + 0x80]
mov eax, dword [edx + 0x20]
lea ecx, [esp + 0x44]
push ecx
push eax
call esi
fld qword [0x5ae4b8]
mov ebp, dword [edi + 0x7c]
mov ebx, dword [esp + 0x4c]
mov eax, dword [ebp + 0x230]
sub ebx, dword [esp + 0x44]
test eax, 0x400
je 0x4798ba
test byte [ebp + 0x4b], 1
je 0x4798d9
test eax, 0x4000
je 0x4798ca
test dword [ebp + 0x48], 0x2000000
je 0x4798d9
fld qword [0x585400]
fmul st(1)
call fcn.005261c0
mov ebx, eax
fld qword [0x585260]
fmul st(1)
call fcn.005261c0
fld qword [0x5ae4c0]
fld qword [0x5853f8]
mov dword [esp + 0x18], eax
fmul st(1)
call fcn.005261c0
fmul qword [0x585328]
mov esi, eax
call fcn.005261c0
sub esi, eax
test dword [ebp + 0xc], 0x80000
je 0x479942
cmp dword [edi + 0x12ac], 0
je 0x479942
fld qword [0x5851c0]
fmul st(1)
call fcn.005261c0
fmul qword [0x5851b8]
add eax, eax
mov ebp, eax
call fcn.005261c0
sub eax, ebp
add dword [esp + 0x18], eax
jmp 0x479944
fstp st(0)
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
push 1
push ecx
mov ecx, dword [edi + 0x80]
push ebx
push esi
push edx
call fcn.00501909
mov eax, dword [edi + 0x80]
lea esi, [esp + 0x44]
call fcn.00423b20
fld qword [0x5ae4c0]
fld qword [0x585260]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fmul qword [0x5ae4b8]
push eax
call fcn.005261c0
push eax
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
fld qword [0x5ae4b8]
fld qword [0x5853f0]
fmul st(1)
call fcn.005261c0
mov esi, dword [esp + 0x70]
mov ecx, dword [edi + 0x7c]
sub esi, eax
mov dword [esp + 0x78], esi
test dword [ecx + 0xc], 0x80000
je 0x4799f9
cmp dword [edi + 0x12ac], 0
je 0x4799f9
fld qword [0x5851c0]
fmul st(1)
call fcn.005261c0
fmul qword [0x5851b8]
mov ebx, eax
add ebx, ebx
call fcn.005261c0
sub eax, ebx
add dword [esp + 0x70], eax
add esi, eax
mov dword [esp + 0x78], esi
jmp 0x4799fb
fstp st(0)
mov edx, dword [esp + 0x48]
push 1
lea esi, [edi + 0x88]
push esi
lea eax, [esp + 0x78]
mov dword [esp + 0x84], edx
call fcn.0047c0f0
mov eax, esi
call fcn.0043d660
mov eax, dword [edi + 0xa8]
push eax
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [edi + 0x80]
lea esi, [esp + 0x44]
call fcn.00423b20
mov edx, dword [edi + 0x1f0]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
fld qword [0x5ae4b8]
mov eax, dword [esp + 0x50]
fmul qword [0x5853f0]
mov esi, dword [esp + 0x48]
sub eax, esi
push 1
push eax
lea ebp, [edi + 0x1d0]
call fcn.005261c0
mov ecx, dword [esp + 0x4c]
sub ecx, eax
mov eax, dword [esp + 0x54]
sub ecx, eax
push ecx
push esi
push eax
mov ecx, ebp
call fcn.00501909
lea esi, [esp + 0x34]
mov eax, ebp
call fcn.00423b20
fld qword [0x5ae4c0]
fld st(0)
push 0
fld qword [0x584e18]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fld qword [0x5ae4b8]
mov edx, dword [esp + 0x44]
fld st(0)
mov esi, dword [esp + 0x3c]
fmulp st(2)
sub edx, eax
fxch st(1)
sub edx, esi
push edx
call fcn.005261c0
fld qword [0x584f48]
mov ecx, dword [esp + 0x44]
fmul st(2), st(0)
mov ebx, dword [esp + 0x3c]
fxch st(2)
sub ecx, eax
sub ecx, ebx
push ecx
call fcn.005261c0
fmulp st(1)
sub esi, eax
push esi
call fcn.005261c0
sub ebx, eax
push ebx
lea esi, [edi + 0x170]
push ebp
mov ecx, esi
call fcn.00501b56
fld qword [0x5ae4b8]
fld qword [0x584e18]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fmul qword [0x5ae4c0]
mov dword [esp + 0x20], eax
call fcn.005261c0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
mov ecx, esi
call fcn.00476680
mov esi, edi
call fcn.0047a120
lea eax, [edi + 0x43c]
lea esi, [esp + 0x44]
call fcn.00423b20
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x2d
call ebp
fld qword [0x5ae4b8]
fld qword [0x585328]
mov esi, eax
fmul st(1)
call fcn.005261c0
fmul qword [0x5853f0]
sub esi, eax
add esi, esi
mov ebx, esi
call fcn.005261c0
push 0x2e
sub ebx, eax
call ebp
push 4
mov esi, eax
call ebp
fld qword [0x5ae4c0]
fmul qword [0x585328]
add esi, eax
call fcn.005261c0
mov edx, dword [esp + 0x50]
sub edx, eax
mov eax, dword [edi + 0x7c]
add esi, edx
test dword [eax + 0xc], 0x80000
je 0x479bdb
cmp dword [edi + 0x12ac], 0
je 0x479bdb
fld qword [0x5ae4b8]
fld qword [0x5851c0]
fmul st(1)
call fcn.005261c0
fmul qword [0x5851b8]
add eax, eax
mov ebp, eax
call fcn.005261c0
sub eax, ebp
add ebx, eax
push 0x16
push esi
push ebx
push 0
push 0
push 0
mov ecx, edi
call fcn.00501b56
push 0
lea ecx, [esp + 0xb4]
push ecx
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x479ee3
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov edx, dword [edi + 0x20]
lea ecx, [esp + 0xa0]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [edi + 0x20]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
fld qword [0x5ae4c0]
fld qword [0x584f48]
mov ebx, dword [esp + 0xac]
sub ebx, dword [esp + 0xa4]
fmul st(1), st(0)
fxch st(1)
call fcn.005261c0
fmul qword [0x5ae4b8]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0xa8]
sub edx, eax
sub edx, dword [esp + 0x84]
xor eax, eax
cmp ebx, edx
setg al
sub esi, dword [esp + 0xa0]
mov ebp, eax
call fcn.005261c0
mov ecx, eax
mov eax, dword [esp + 0x88]
mov edx, eax
sub edx, ecx
sub edx, dword [esp + 0x80]
xor ecx, ecx
cmp esi, edx
setg cl
test ebp, ebp
mov dword [esp + 0x1c], ecx
jne 0x479cbf
test ecx, ecx
je 0x479ee3
test ebp, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
je 0x479cf0
mov ecx, dword [esp + 0x8c]
sub ecx, dword [esp + 0x84]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
jne 0x479cf7
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, esi
jmp 0x479d18
cmp dword [esp + 0x1c], 0
je 0x479d14
sub eax, dword [esp + 0x80]
test ebp, ebp
mov dword [esp + 0x18], eax
jne 0x479d14
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 6
push edx
push eax
push 0
push 0
push 0
mov ecx, edi
call fcn.00501b56
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x98], ecx
mov ecx, dword [edi + 0x20]
push eax
push ecx
mov dword [esp + 0xa4], edx
call dword [sym.imp.USER32.dll_GetClientRect]
test ebp, ebp
je 0x479e1f
mov edx, dword [edi + 0x20]
push 1
push 1
push edx
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], 0x1c
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], eax
je 0x479db7
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
jmp 0x479db9
xor esi, esi
fld qword [0x5ae4c0]
fld qword [0x585338]
fmul st(1)
call fcn.005261c0
fmul qword [0x584f70]
sub esi, eax
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
sub esi, dword [esp + 0x40]
or eax, 0xc00
mov dword [esp + 0x20], eax
sub esi, ebx
fldcw word [esp + 0x20]
add esi, dword [esp + 0x38]
push 1
add esi, dword [esp + 0xa0]
lea ecx, [esp + 0x58]
push ecx
fistp qword [esp + 0x28]
mov eax, dword [esp + 0x28]
push 1
mov ecx, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
fldcw word [esp + 0x20]
call fcn.004fba67
cmp dword [esp + 0x1c], 0
je 0x479ee3
mov edx, dword [edi + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_ShowScrollBar]
xor eax, eax
test ebp, ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], 0x1c
mov dword [esp + 0x58], 3
mov dword [esp + 0x5c], eax
je 0x479e76
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
jmp 0x479e78
xor esi, esi
fld qword [0x5ae4b8]
fld qword [0x585338]
fmul st(1)
call fcn.005261c0
fmul qword [0x584f70]
sub esi, eax
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
sub esi, dword [esp + 0x3c]
or eax, 0xc00
sub esi, dword [esp + 0x90]
mov dword [esp + 0x20], eax
add esi, dword [esp + 0x98]
fldcw word [esp + 0x20]
push 1
add esi, dword [esp + 0x38]
lea ecx, [esp + 0x58]
push ecx
push 0
fistp qword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
fldcw word [esp + 0x20]
call fcn.004fba67
push 0
mov ecx, edi
call fcn.004fd27a
jmp 0x479ef0
fstp st(0)
lea ebp, [edi + 0x88]
test ebp, ebp
je 0x479f15
mov eax, dword [ebp + 0x20]
lea edx, [esp + 0x34]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
call fcn.005039ae
fld qword [0x5ae4c0]
fmul qword [0x585370]
call fcn.005261c0
fld qword [0x5ae4b8]
fmul qword [0x5853e8]
mov esi, eax
call fcn.005261c0
mov ecx, eax
mov eax, dword [esp + 0x40]
sub eax, esi
push 0x10
push esi
mov esi, dword [esp + 0x40]
sub eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, esi
push ecx
push eax
mov eax, dword [esp + 0x4c]
sub eax, ecx
mov ecx, dword [esp + 0x44]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
push eax
push ebp
lea ecx, [edi + 0x5a8]
call fcn.00501b56
mov edx, dword [edi + 0x7c]
test dword [edx + 0xc], 0x80000
je 0x47a109
cmp dword [edi + 0x12ac], 0
jne 0x47a097
mov ecx, dword [edi + 0x20]
lea eax, [esp + 0xa0]
push eax
push ecx
mov dword [edi + 0x12ac], 1
call dword [sym.imp.USER32.dll_GetWindowRect]
fld qword [0x5ae4b8]
mov edx, dword [esp + 0xac]
fld qword [0x5851c0]
sub edx, dword [esp + 0xa4]
fmul st(1)
push 6
push edx
call fcn.005261c0
fmul qword [0x5851b8]
add eax, eax
mov esi, eax
call fcn.005261c0
sub eax, esi
sub eax, dword [esp + 0xa8]
mov ecx, edi
add eax, dword [esp + 0xb0]
push eax
push 0
push 0
push 0
call fcn.00501b56
push 5
mov ecx, edi
call fcn.004297f0
mov ebx, eax
test ebx, ebx
je 0x47a097
mov ecx, ebx
call fcn.005018ee
cmp eax, 0x551
je 0x47a07b
cmp eax, 0x552
je 0x47a07b
cmp eax, 0x643
je 0x47a07b
cmp eax, 0x553
je 0x47a07b
lea esi, [esp + 0x20]
mov eax, ebx
call fcn.00423b20
fld qword [0x5ae4b8]
fld qword [0x5851c0]
mov eax, dword [esp + 0x24]
push 5
fmul st(1)
push 0
push 0
push eax
call fcn.005261c0
fmul qword [0x5851b8]
add eax, eax
mov esi, eax
call fcn.005261c0
sub eax, esi
add eax, dword [esp + 0x30]
mov ecx, ebx
push eax
push 0
call fcn.00501b56
mov ecx, dword [ebx + 0x20]
push 2
push ecx
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call fcn.004fd874
mov ebx, eax
test ebx, ebx
jne 0x47a010
test ebp, ebp
je 0x47a0b6
mov eax, dword [ebp + 0x20]
lea edx, [esp + 0x20]
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.005039ae
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push 1
sub edx, eax
push edx
mov edx, dword [esp + 0x30]
sub edx, ecx
push edx
push eax
push ecx
lea ecx, [edi + 0x6e0]
call fcn.00501909
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x28]
sub edx, ecx
push edx
push eax
push ecx
lea ecx, [edi + 0xba8]
call fcn.00501909
push 0
mov ecx, edi
call fcn.004fd27a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc4
ret