Function at 0x4764d0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x78
push ebx
mov ebx, dword [esp + 0x80]
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x68]
mov dword [esi + 0x84], 0
test eax, eax
mov dword [esi + 0x60], ebx
je 0x476645
push 0x22c
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
lea ecx, [esp + 0x28]
mov dword [esp + 0x1c], eax
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0xd0]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
sub edi, edx
mov edx, dword [esi + 0xcc]
mov dword [esp + 0x20], edi
push edx
push eax
push edi
sub ebp, ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
cmp eax, ebp
jle 0x476562
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xcc]
push ecx
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x20], eax
mov edi, eax
jmp 0x476564
mov ebp, eax
lea eax, [esp + 0x28]
push 2
push eax
push ebx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
sub eax, edi
lea edi, [esp + 0x38]
add eax, ecx
mov ecx, 0xa
cdq
sub eax, edx
mov edx, dword [esp + 0x34]
sar eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
sub eax, ebp
add eax, edx
cdq
sub eax, edx
mov edx, dword [esi + 0x58]
sar eax, 1
mov dword [esp + 0x18], eax
xor eax, eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x5c], str.PrintPreviewWndClass
push ecx
push str.PrintPreviewWndClass
push edx
call dword [sym.imp.USER32.dll_GetClassInfoA]
test eax, eax
jne 0x4765fe
mov eax, dword [esi + 0x58]
push 0x7f00
push 0
mov dword [esp + 0x44], 0x475e40
mov dword [esp + 0x4c], 4
mov dword [esp + 0x50], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
lea ecx, [esp + 0x38]
mov dword [esp + 0x50], eax
push ecx
call dword [sym.imp.USER32.dll_RegisterClassA]
mov edx, dword [esp + 0x1c]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push esi
push eax
mov eax, dword [esp + 0x1c]
push 0x245
push ebx
push ebp
push ecx
mov ecx, dword [esp + 0x74]
push edx
push eax
push 0x50000000
push 0x4f0a58
push ecx
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [esi + 0x64], eax
jmp 0x4766b6
lea edx, [esp + 0x28]
push edx
push 0x22a
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
push eax
call edi
lea eax, [esp + 0x28]
push 2
push eax
push ebx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
push 5
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x28]
push edx
push ebx
lea ebp, [ecx + eax*2]
call edi
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
sub eax, edx
push 6
push eax
push ebp
push 0
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0
push 0x246
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
movsx ecx, byte [esi + 0x10]
xor eax, eax
cmp ecx, 8
ja case.default.0x4766c1
jmp dword [ecx*4 + 0x476bb8]
mov eax, 0x23b
jmp case.default.0x4766c1
mov eax, 0x23c
jmp case.default.0x4766c1
mov eax, 0x23d
jmp case.default.0x4766c1
mov eax, 0x23e
jmp case.default.0x4766c1
mov eax, 0x23f
jmp case.default.0x4766c1
mov eax, 0x240
jmp case.default.0x4766c1
mov eax, 0x241
jmp case.default.0x4766c1
mov eax, 0x242
jmp case.default.0x4766c1
mov eax, 0x243
and eax, 0xffff
push 1
push eax
push ebx
call dword [sym.imp.USER32.dll_CheckDlgButton]
mov ecx, dword [esi + 0x58]
mov ebp, dword [sym.imp.USER32.dll_LoadBitmapA]
push 0x7d0
push ecx
call ebp
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push eax
push 0
push 0xf7
push 0x23b
push ebx
call edi
mov edx, dword [esi + 0x58]
push 0x7d1
push edx
call ebp
push eax
push 0
push 0xf7
push 0x23c
push ebx
call edi
mov eax, dword [esi + 0x58]
push 0x7d2
push eax
call ebp
push eax
push 0
push 0xf7
push 0x23d
push ebx
call edi
mov ecx, dword [esi + 0x58]
push 0x7d3
push ecx
call ebp
push eax
push 0
push 0xf7
push 0x23e
push ebx
call edi
mov edx, dword [esi + 0x58]
push 0x7d4
push edx
call ebp
push eax
push 0
push 0xf7
push 0x23f
push ebx
call edi
mov eax, dword [esi + 0x58]
push 0x7d5
push eax
call ebp
push eax
push 0
push 0xf7
push 0x240
push ebx
call edi
mov ecx, dword [esi + 0x58]
push 0x7d6
push ecx
call ebp
push eax
push 0
push 0xf7
push 0x241
push ebx
call edi
mov edx, dword [esi + 0x58]
push 0x7d7
push edx
call ebp
push eax
push 0
push 0xf7
push 0x242
push ebx
call edi
mov eax, dword [esi + 0x58]
push 0x7d8
push eax
call ebp
push eax
push 0
push 0xf7
push 0x243
push ebx
call edi
mov dl, byte [esi + 0x17]
mov ebp, dword [sym.imp.USER32.dll_CheckDlgButton]
xor ecx, ecx
test dl, dl
setne cl
push ecx
push 0x205
push ebx
call ebp
mov cl, byte [esi + 0x14]
xor edx, edx
test cl, cl
setne dl
push edx
push 0x201
push ebx
call ebp
mov dl, byte [esi + 0x15]
xor eax, eax
test dl, dl
setne al
push eax
push 0x203
push ebx
call ebp
mov al, byte [esi + 0x16]
xor ecx, ecx
test al, al
setne cl
push ecx
push 0x206
push ebx
call ebp
mov cl, byte [esi + 0x12]
xor edx, edx
test cl, cl
setne dl
push edx
push 0x223
push ebx
call ebp
push 0x220
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ecx, dword [esi + 0x58]
mov ebp, eax
lea eax, [esp + 0x60]
push 0x28
push eax
push 0x45f
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x60]
push edx
push 0
push 0x143
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x60]
push 0x28
push eax
push 0x460
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x60]
push edx
push 0
push 0x143
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x60]
push 0x28
push eax
push 0x461
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x60]
push edx
push 0
push 0x143
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x58]
lea eax, [esp + 0x60]
push 0x28
push eax
push 0x462
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
lea edx, [esp + 0x60]
push edx
push 0
push 0x143
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
movsx eax, byte [esi + 0x11]
push 0
push eax
push 0x14e
push ebp
call dword [sym.imp.USER32.dll_SendMessageA]
mov al, byte [esi + 0x1a]
test al, al
jne 0x47696c
push 0
push 0x215
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
push 0
push 0x216
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call ebp
fld dword [esi + 0x1c]
fcomp dword [0x4daa4c]
fnstsw ax
test ah, 0x40
je 0x476983
mov dword [esi + 0x1c], 0x3f99999a
fld dword [esi + 0x20]
fcomp dword [0x4daa4c]
mov ecx, 0x40c00000
fnstsw ax
test ah, 0x40
je 0x47699b
mov dword [esi + 0x20], ecx
fld dword [esi + 0x24]
fcomp dword [0x4daa4c]
fnstsw ax
test ah, 0x40
je 0x4769ae
mov dword [esi + 0x24], ecx
fld dword [esi + 0x28]
fcomp dword [0x4daa4c]
mov ecx, 0x3f800000
fnstsw ax
test ah, 0x40
je 0x4769c6
mov dword [esi + 0x20], ecx
fld dword [esi + 0x2c]
fcomp dword [0x4daa4c]
fnstsw ax
test ah, 0x40
je 0x4769d9
mov dword [esi + 0x24], ecx
fild dword [esi + 0xcc]
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov dword [esi + 0xb8], eax
fidiv dword [esi + 0xd4]
mov al, byte [esi + 0x11]
mov dword [esi + 0xc0], ecx
mov ecx, dword [esi + 0x24]
cmp al, 3
mov dword [esi + 0xc4], edx
mov dword [esi + 0xbc], ecx
fstp dword [esp + 0x20]
fild dword [esi + 0xd0]
fidiv dword [esi + 0xd8]
fstp dword [esp + 0x1c]
jne 0x476a2d
mov edx, dword [esi + 0x28]
mov dword [esp + 0x10], edx
jmp 0x476a34
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x10], ecx
cmp al, 3
jne 0x476a41
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x14], edx
jmp 0x476a48
mov eax, dword [esi + 0x24]
mov dword [esp + 0x14], eax
movsx ecx, byte [esi + 0x1a]
push ecx
push 0x214
push ebx
call dword [sym.imp.USER32.dll_CheckDlgButton]
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push ebp
push 0
push edx
push 0x221
push 0x21b
push ebx
call fcn.00476270
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
push eax
push 0
push ecx
push 0x222
push 0x224
push ebx
call fcn.00476270
mov edx, dword [esi]
push ebp
push 0
push edx
push 0x21d
push 0x219
push ebx
call fcn.00476270
mov eax, dword [esi + 4]
add esp, 0x48
push ebp
push 0
push eax
push 0x21e
push 0x21a
push ebx
call fcn.00476270
mov ebp, dword [esp + 0x34]
mov ecx, dword [esi + 8]
push ebp
push 0
push ecx
push 0x21c
push 0x217
push ebx
call fcn.00476270
mov edx, dword [esi + 0xc]
push ebp
push 0
push edx
push 0x21f
push 0x218
push ebx
call fcn.00476270
mov eax, dword [esi + 0x1c]
add esp, 0x48
push 0x40400000
push 0x3dcccccd
push eax
push 0x216
push 0x215
push ebx
call fcn.00476270
add esp, 0x18
push 0xa04b0
push 0
push 0x465
push 0x226
push ebx
call edi
xor ecx, ecx
mov cx, word [esi + 0x18]
push ecx
push 0
push 0x467
push 0x226
push ebx
call edi
movsx edx, word [esi + 0x18]
mov ebp, dword [sym.imp.USER32.dll_SetDlgItemInt]
push 0
push edx
push 0x225
push ebx
call ebp
push 0x10001
push 0
push 0x465
push 0x229
push ebx
call edi
push 0
push 0x244
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x220
mov ecx, esi
call fcn.00479b90
push 0
push 1
push 0x227
push ebx
call ebp
push 0
push 0
push 0x402
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x78
ret 4