Function at 0x46faa0
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 0x470a29
cmp dword [eax + 0x514], 0
je 0x470a29
mov eax, dword [eax + 0x528]
test eax, eax
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
jne 0x47017e
cmp dword [edi + 0x80], 0
je 0x470a29
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 [0x5b65b8]
mov edx, dword [esp + 0x50]
fmul qword [0x58c018]
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.005296d0
fld qword [0x5b65b0]
fmul qword [0x58bc38]
push eax
call fcn.005296d0
mov ecx, dword [edi + 0x80]
sub esi, eax
sub esi, ebx
add esi, dword [esp + 0x88]
push esi
call fcn.005053d6
mov eax, dword [edi + 0x80]
test eax, eax
je 0x46fb7a
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.0050743c
mov ecx, dword [edi + 0x7c]
fld qword [0x5b65b0]
test dword [ecx + 0xc], 0x80000
je 0x46fbe8
fld qword [0x58bd90]
fmul st(1)
call fcn.005296d0
fadd st(0), st(0)
push eax
call fcn.005296d0
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 0x46fc08
fld qword [0x5b65b0]
fld qword [0x58bfe0]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bfd8]
add eax, eax
mov esi, eax
call fcn.005296d0
sub eax, esi
add dword [esp + 0x70], eax
jmp 0x46fc08
fmul qword [0x58bd90]
call fcn.005296d0
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.00472a00
mov eax, esi
call fcn.00431470
mov edx, dword [edi + 0xa8]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [edi + 0x80]
test eax, eax
je 0x46fc5a
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.0050743c
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 [0x5b65b8]
mov edx, dword [esp + 0x40]
fmul qword [0x58c190]
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.005296d0
fld qword [0x5b65b0]
fmul qword [0x58bc38]
sub ebx, eax
sub ebx, dword [esp + 0x4c]
push ebx
call fcn.005296d0
sub esi, eax
sub esi, dword [esp + 0x5c]
mov ecx, ebp
add esi, dword [esp + 0x88]
push esi
call fcn.005053d6
test ebp, ebp
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
je 0x46fcf6
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.0050743c
fld qword [0x5b65b8]
push 1
fld qword [0x58bd68]
push 0
fmul st(1), st(0)
push 0
fxch st(1)
lea esi, [edi + 0x170]
call fcn.005296d0
fmul qword [0x5b65b0]
mov ecx, dword [esp + 0x44]
sub ecx, eax
push ecx
call fcn.005296d0
mov edx, dword [esp + 0x44]
sub edx, eax
push edx
push ebp
mov ecx, esi
call fcn.00505623
fld qword [0x5b65b0]
fld qword [0x58bc38]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fmul qword [0x5b65b8]
mov dword [esp + 0x20], eax
call fcn.005296d0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
mov ecx, esi
call fcn.0046cfa0
mov esi, edi
call fcn.00470a40
push 0
lea eax, [esp + 0xc4]
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x470810
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 0x46fe66
mov eax, dword [edi + 0x7c]
test dword [eax + 8], 0x1000
jne 0x46fe66
push 1
mov ecx, edi
call fcn.00505278
test eax, eax
je 0x46fe07
push 0
mov ecx, eax
call fcn.00505414
mov edx, dword [edi + 0x280]
lea ecx, [esp + 0xb0]
push ecx
push edx
call ebx
fld qword [0x5b65b0]
fmul qword [0x58c168]
push 0x16
call fcn.005296d0
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.00505623
push 0
mov ecx, edi
call fcn.00500cc1
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 [0x5b65b8]
mov ebx, dword [esp + 0x9c]
fld st(0)
fld qword [0x58bd68]
sub ebx, dword [esp + 0x94]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fmul qword [0x5b65b0]
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.005296d0
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 0x46ff05
test edx, edx
je 0x47080e
mov eax, dword [esp + 0x8c]
fmul qword [0x58c248]
sub eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
call fcn.005296d0
cmp dword [esp + 0x20], eax
jl 0x46ff32
mov dword [edi + 0x12d0], 1
test ebp, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
je 0x46ff66
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jne 0x46ff6d
cmp dword [edi + 0x12d0], 0
jne 0x46ff91
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, esi
mov dword [esp + 0x18], eax
jmp 0x46ff91
cmp dword [esp + 0x1c], 0
je 0x46ff91
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0x80]
test ebp, ebp
mov dword [esp + 0x18], eax
jne 0x46ff91
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.00505623
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 0x4700ae
cmp dword [edi + 0x12d0], 0
jne 0x4700ae
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 0x470040
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
fld qword [0x5b65b8]
mov dword [esp + 0x20], eax
fld qword [0x58c168]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bd90]
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.004ff4b2
cmp dword [esp + 0x1c], 0
je 0x470174
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 0x47010e
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, eax
fld qword [0x5b65b0]
fld qword [0x58c168]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bd90]
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.004ff4b2
call fcn.0046f4c0
jmp 0x470810
cmp eax, 1
jne 0x470810
cmp dword [edi + 0x80], 0
je 0x470a29
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 [0x5b65b0]
mov ebp, dword [edi + 0x7c]
mov ebx, dword [esp + 0x4c]
mov eax, dword [ebp + 0x230]
sub ebx, dword [esp + 0x44]
test eax, 0x400
je 0x4701da
test byte [ebp + 0x4b], 1
je 0x4701f9
test eax, 0x4000
je 0x4701ea
test dword [ebp + 0x48], 0x2000000
je 0x4701f9
fld qword [0x58c240]
fmul st(1)
call fcn.005296d0
mov ebx, eax
fld qword [0x58c080]
fmul st(1)
call fcn.005296d0
fld qword [0x5b65b8]
fld qword [0x58c238]
mov dword [esp + 0x18], eax
fmul st(1)
call fcn.005296d0
fmul qword [0x58c150]
mov esi, eax
call fcn.005296d0
sub esi, eax
test dword [ebp + 0xc], 0x80000
je 0x470262
cmp dword [edi + 0x12ac], 0
je 0x470262
fld qword [0x58bfe0]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bfd8]
add eax, eax
mov ebp, eax
call fcn.005296d0
sub eax, ebp
add dword [esp + 0x18], eax
jmp 0x470264
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.005053d6
mov eax, dword [edi + 0x80]
lea esi, [esp + 0x44]
call fcn.00423e00
fld qword [0x5b65b8]
fld qword [0x58c080]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fmul qword [0x5b65b0]
push eax
call fcn.005296d0
push eax
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
fld qword [0x5b65b0]
fld qword [0x58c230]
fmul st(1)
call fcn.005296d0
mov esi, dword [esp + 0x70]
mov ecx, dword [edi + 0x7c]
sub esi, eax
mov dword [esp + 0x78], esi
test dword [ecx + 0xc], 0x80000
je 0x470319
cmp dword [edi + 0x12ac], 0
je 0x470319
fld qword [0x58bfe0]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bfd8]
mov ebx, eax
add ebx, ebx
call fcn.005296d0
sub eax, ebx
add dword [esp + 0x70], eax
add esi, eax
mov dword [esp + 0x78], esi
jmp 0x47031b
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.00472a00
mov eax, esi
call fcn.00431470
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.00423e00
mov edx, dword [edi + 0x1f0]
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
fld qword [0x5b65b0]
mov eax, dword [esp + 0x50]
fmul qword [0x58c230]
mov esi, dword [esp + 0x48]
sub eax, esi
push 1
push eax
lea ebp, [edi + 0x1d0]
call fcn.005296d0
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.005053d6
lea esi, [esp + 0x34]
mov eax, ebp
call fcn.00423e00
fld qword [0x5b65b8]
fld st(0)
push 0
fld qword [0x58bc38]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fld qword [0x5b65b0]
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.005296d0
fld qword [0x58bd68]
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.005296d0
fmulp st(1)
sub esi, eax
push esi
call fcn.005296d0
sub ebx, eax
push ebx
lea esi, [edi + 0x170]
push ebp
mov ecx, esi
call fcn.00505623
fld qword [0x5b65b0]
fld qword [0x58bc38]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fmul qword [0x5b65b8]
mov dword [esp + 0x20], eax
call fcn.005296d0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
mov ecx, esi
call fcn.0046cfa0
mov esi, edi
call fcn.00470a40
lea eax, [edi + 0x43c]
lea esi, [esp + 0x44]
call fcn.00423e00
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x2d
call ebp
fld qword [0x5b65b0]
fld qword [0x58c150]
mov esi, eax
fmul st(1)
call fcn.005296d0
fmul qword [0x58c230]
sub esi, eax
add esi, esi
mov ebx, esi
call fcn.005296d0
push 0x2e
sub ebx, eax
call ebp
push 4
mov esi, eax
call ebp
fld qword [0x5b65b8]
fmul qword [0x58c150]
add esi, eax
call fcn.005296d0
mov edx, dword [esp + 0x50]
sub edx, eax
mov eax, dword [edi + 0x7c]
add esi, edx
test dword [eax + 0xc], 0x80000
je 0x4704fb
cmp dword [edi + 0x12ac], 0
je 0x4704fb
fld qword [0x5b65b0]
fld qword [0x58bfe0]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bfd8]
add eax, eax
mov ebp, eax
call fcn.005296d0
sub eax, ebp
add ebx, eax
push 0x16
push esi
push ebx
push 0
push 0
push 0
mov ecx, edi
call fcn.00505623
push 0
lea ecx, [esp + 0xb4]
push ecx
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x470803
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 [0x5b65b8]
fld qword [0x58bd68]
mov ebx, dword [esp + 0xac]
sub ebx, dword [esp + 0xa4]
fmul st(1), st(0)
fxch st(1)
call fcn.005296d0
fmul qword [0x5b65b0]
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.005296d0
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 0x4705df
test ecx, ecx
je 0x470803
test ebp, ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebx
je 0x470610
mov ecx, dword [esp + 0x8c]
sub ecx, dword [esp + 0x84]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
jne 0x470617
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, esi
jmp 0x470638
cmp dword [esp + 0x1c], 0
je 0x470634
sub eax, dword [esp + 0x80]
test ebp, ebp
mov dword [esp + 0x18], eax
jne 0x470634
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.00505623
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 0x47073f
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 0x4706d7
push 3
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
jmp 0x4706d9
xor esi, esi
fld qword [0x5b65b8]
fld qword [0x58c168]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bd90]
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.004ff4b2
cmp dword [esp + 0x1c], 0
je 0x470803
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 0x470796
push 2
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
jmp 0x470798
xor esi, esi
fld qword [0x5b65b0]
fld qword [0x58c168]
fmul st(1)
call fcn.005296d0
fmul qword [0x58bd90]
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.004ff4b2
push 0
mov ecx, edi
call fcn.00500cc1
jmp 0x470810
fstp st(0)
lea ebp, [edi + 0x88]
test ebp, ebp
je 0x470835
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.0050743c
fld qword [0x5b65b8]
fmul qword [0x58c1a8]
call fcn.005296d0
fld qword [0x5b65b0]
fmul qword [0x58c228]
mov esi, eax
call fcn.005296d0
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.00505623
mov edx, dword [edi + 0x7c]
test dword [edx + 0xc], 0x80000
je 0x470a29
cmp dword [edi + 0x12ac], 0
jne 0x4709b7
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 [0x5b65b0]
mov edx, dword [esp + 0xac]
fld qword [0x58bfe0]
sub edx, dword [esp + 0xa4]
fmul st(1)
push 6
push edx
call fcn.005296d0
fmul qword [0x58bfd8]
add eax, eax
mov esi, eax
call fcn.005296d0
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.00505623
push 5
mov ecx, edi
call fcn.0042a0d0
mov ebx, eax
test ebx, ebx
je 0x4709b7
mov ecx, ebx
call fcn.005053bb
cmp eax, 0x551
je 0x47099b
cmp eax, 0x552
je 0x47099b
cmp eax, 0x643
je 0x47099b
cmp eax, 0x553
je 0x47099b
lea esi, [esp + 0x20]
mov eax, ebx
call fcn.00423e00
fld qword [0x5b65b0]
fld qword [0x58bfe0]
mov eax, dword [esp + 0x24]
push 5
fmul st(1)
push 0
push 0
push eax
call fcn.005296d0
fmul qword [0x58bfd8]
add eax, eax
mov esi, eax
call fcn.005296d0
sub eax, esi
add eax, dword [esp + 0x30]
mov ecx, ebx
push eax
push 0
call fcn.00505623
mov ecx, dword [ebx + 0x20]
push 2
push ecx
call dword [sym.imp.USER32.dll_GetWindow]
push eax
call fcn.005012bb
mov ebx, eax
test ebx, ebx
jne 0x470930
test ebp, ebp
je 0x4709d6
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.0050743c
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.005053d6
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.005053d6
push 0
mov ecx, edi
call fcn.00500cc1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc4
ret