Function at 0x45eb93
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x508
mov eax, dword [0x488548]
xor eax, esp
mov dword [esp + 0x504], eax
mov eax, dword [esp + 0x50c]
push ebx
mov ebx, dword [esp + 0x514]
imul ebx, ebx, 0x18
push ebp
push esi
mov dword [esp + 0x30], eax
mov eax, dword [0x48a23c]
push edi
lea edi, [ebx + eax]
mov eax, dword [edi]
xor esi, esi
push eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
call fcn.0045bda2
mov edi, dword [edi + 4]
mov ebp, eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x2c], edi
cmp dword [0x48a264], edi
jne 0x45ec03
mov dword [0x48a264], esi
mov dword [0x48a2b0], esi
mov ecx, dword [0x48a394]
cmp ecx, esi
je 0x45ec4e
cmp dword [0x48a398], esi
jle 0x45ec4e
cmp edi, esi
je 0x45ec4e
mov eax, dword [0x48a39c]
shl eax, 4
add eax, ecx
inc dword [0x48a39c]
lea edx, [edi + 0x40]
movzx ecx, word [edx]
inc edx
mov word [eax], cx
inc edx
inc eax
inc eax
cmp cx, si
jne 0x45ec2c
mov eax, dword [0x48a39c]
cmp eax, dword [0x48a398]
jl 0x45ec4e
mov dword [0x48a39c], esi
cmp ebp, esi
jl 0x45f0f0
or edi, 0xffffffff
cmp dword [0x48a234], esi
jle 0x45eeac
test dword [0x4870dc], 0x80000
je 0x45ec74
push 0xfffffffffffffffe
pop edi
mov eax, dword [0x48a240]
mov esi, ebp
imul esi, esi, 0x3c
mov ebp, dword [esi + eax + 0x18]
push 0
push 0
push 0x1304
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, eax
cmp ebx, 1
jle 0x45ed08
and dword [esp + 0x14], 0
test ebx, ebx
jle 0x45eea7
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x40], 8
push 0x133c
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x45ecf9
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x20]
jne 0x45ecdb
test edi, edi
jge 0x45eea7
jmp 0x45ecf9
push dword [esp + 0x50]
call fcn.0045bd78
mov esi, eax
test esi, esi
jl 0x45ecf9
push dword [esp + 0x50]
call fcn.0045bda2
test eax, eax
jge 0x45ecf9
mov edi, esi
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ebx
jl 0x45eca6
jmp 0x45eea7
mov eax, dword [0x48a240]
add esi, eax
cmp dword [esi + 0x28], 1
jle 0x45eea7
and dword [esp + 0x14], 0
cmp dword [esi + 0x28], 0
jle 0x45eea7
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*8]
cmp ebp, eax
je 0x45eda6
xor ebx, ebx
push ebx
push ebx
mov ebp, eax
push 0x1304
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, ebx
mov dword [esp + 0x24], eax
jle 0x45eda6
mov dword [esp + 0x10], ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x14]
mov dword [esp + 0x40], 8
push 0x133c
push ebp
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x45ed98
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x20]
je 0x45ed98
push eax
call fcn.0045bd78
mov ebx, eax
test ebx, ebx
jl 0x45ed98
push dword [esp + 0x50]
call fcn.0045bda2
test eax, eax
jl 0x45edbc
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x24]
jl 0x45ed54
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x28]
jl 0x45ed28
jmp 0x45eea7
mov ecx, dword [esi + 0x28]
xor ebp, ebp
mov edi, ebx
test ecx, ecx
jle 0x45eea7
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x18]
mov edx, eax
cmp ebx, dword [edx]
je 0x45ede4
inc ebp
add edx, 8
cmp ebp, ecx
jl 0x45edd3
jmp 0x45eea7
mov edx, dword [eax + ebp*8]
mov dword [esp + 0x24], edx
test edx, edx
je 0x45eea7
cmp ebp, ecx
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + ebx*8]
mov dword [esi + 0x18], eax
jge 0x45ee36
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
sub ecx, ebp
dec ecx
imul ecx, ecx, 0x24
lea eax, [eax + ebp*8]
push ecx
lea ecx, [eax + 8]
push ecx
push eax
call fcn.00468c30
add esp, 0xc
dec dword [esi + 0x28]
jne 0x45ee36
mov ecx, dword [esi + 0x24]
call fcn.00424f83
and dword [esi + 0x24], 0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x45eea7
lea ecx, [esp + 0x38]
push ecx
xor ebp, ebp
push ebp
mov ebx, 0x133c
push ebx
push eax
jmp 0x45ee63
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x50], eax
je 0x45ee77
lea eax, [esp + 0x38]
push eax
inc ebp
push ebp
push ebx
push dword [esi + 0x20]
mov dword [esp + 0x48], 8
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x45ee4e
jmp 0x45eea7
xor ebx, ebx
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
push 0x1308
push dword [esi + 0x20]
call ebp
push ebx
push ebx
push 0x1304
push dword [esi + 0x20]
call ebp
test eax, eax
jg 0x45eea7
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [esi + 0x20], ebx
cmp edi, 0xffffffff
jne 0x45eef1
mov esi, dword [0x48a22c]
mov ecx, dword [0x488528]
cmp esi, ecx
mov eax, dword [0x48a230]
jle 0x45eefe
cmp eax, ecx
jl 0x45eefe
xor edi, edi
test esi, esi
jle 0x45eefe
xor edx, edx
test eax, eax
jle 0x45eee6
mov ecx, dword [0x48a240]
add ecx, 0x10
cmp dword [ecx], edi
je 0x45eee6
inc edx
add ecx, 0x3c
cmp edx, eax
jl 0x45eeda
cmp edx, eax
je 0x45eef6
inc edi
cmp edi, esi
jl 0x45eecb
jmp 0x45eefe
mov eax, dword [0x48a230]
test edi, edi
jge 0x45efaa
test dword [0x4870dc], 0x2000000
je 0x45ef42
cmp eax, 1
jle 0x45ef42
cmp eax, dword [0x48852c]
jne 0x45ef42
push 0
push 0
push 0x10
push dword [esp + 0x40]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [esp + 0x514]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046890b
add esp, 0x508
ret 8
mov ebp, dword [esp + 0x18]
push ebp
push 0x48853c
lea eax, [esp + 0x6c]
push str._s_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, ebp
imul esi, esi, 0x3c
add esi, dword [0x48a240]
mov byte [esp + 0x58], 0
mov byte [esp + 0x59], 0
lea edi, [esp + 0x48]
movsd dword es:[edi], dword [esi]
add esp, 0x10
movsd dword es:[edi], dword [esi]
push 0x14
lea eax, [esp + 0x3c]
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x6c]
push eax
push 0x473ab8
movsd dword es:[edi], dword [esi]
call dword [sym.imp.PPLIB32W.DLL__SetCustTable_16]
push ebp
call fcn.0045ba92
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], 1
jmp 0x45f0e6
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xb
push dword [0x48a220]
call ebx
mov eax, dword [esp + 0x18]
mov ecx, dword [0x48a240]
imul eax, eax, 0x3c
mov dword [eax + ecx + 0x10], edi
mov ecx, dword [esp + 0x20]
mov esi, dword [0x48a23c]
cmp ecx, dword [0x489768]
jne 0x45efee
mov eax, edi
imul eax, eax, 0x18
mov eax, dword [eax + esi]
mov dword [0x489768], eax
mov eax, dword [0x489764]
cmp ecx, eax
jne 0x45f005
mov eax, edi
imul eax, eax, 0x18
mov eax, dword [eax + esi]
mov dword [esp + 0x1c], eax
jmp 0x45f06a
cmp dword [0x48a234], 2
jl 0x45f06a
test dword [0x4870dc], 0x80000
je 0x45f053
push eax
call fcn.0045bda2
xor ebp, ebp
cmp dword [0x48a234], ebp
mov dword [esp + 0x24], eax
jle 0x45f06a
cmp ebp, dword [esp + 0x24]
je 0x45f048
mov eax, edi
imul eax, eax, 0x18
push ebp
push dword [eax + esi]
call fcn.0045b82a
mov esi, dword [0x48a23c]
inc ebp
cmp ebp, dword [0x48a234]
jl 0x45f02e
jmp 0x45f06a
push dword [esp + 0x18]
mov eax, edi
imul eax, eax, 0x18
push dword [eax + esi]
call fcn.0045b82a
mov esi, dword [0x48a23c]
mov ecx, dword [esp + 0x1c]
cmp dword [0x489768], ecx
jne 0x45f0b6
cmp dword [esp + 0x18], 0
jne 0x45f0b6
cmp dword [0x48a230], 1
jle 0x45f096
mov eax, dword [0x48a240]
mov eax, dword [eax + 0x4c]
imul eax, eax, 0x18
mov eax, dword [eax + esi]
jmp 0x45f0b1
cmp dword [0x48a22c], 1
jg 0x45f0a8
and dword [0x489768], 0
jmp 0x45f0b6
mov eax, dword [esi]
cmp eax, ecx
jne 0x45f0b1
mov eax, dword [esi + 0x18]
mov dword [0x489768], eax
imul edi, edi, 0x18
push 4
push dword [edi + esi]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 1
push 0xb
push dword [0x48a220]
call ebx
push 1
push 0
push dword [0x48a220]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [0x48a23c]
mov dword [ebx + eax], 0xfffffffe
mov eax, dword [0x48a23c]
mov dword [ebx + eax + 4], esi
test dword [0x4870dc], 0x400000
je 0x45f1b1
cmp edi, esi
je 0x45f1b1
add edi, 0x584
push edi
push 0x476134
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.PPLIB32W.DLL__VFSFullPath_12]
test eax, eax
je 0x45f1b1
mov eax, dword [0x48a23c]
xor edi, edi
cmp dword [0x48a22c], esi
jle 0x45f1b6
lea ecx, [eax + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
cmp edx, esi
je 0x45f195
add edx, 0x584
lea ecx, [esp + 0x64]
mov si, word [ecx]
cmp si, word [edx]
jne 0x45f18a
test si, si
je 0x45f184
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x45f18a
add ecx, 4
add edx, 4
test si, si
jne 0x45f162
xor esi, esi
xor ecx, ecx
jmp 0x45f191
sbb ecx, ecx
sbb ecx, 0xffffffff
xor esi, esi
cmp ecx, esi
je 0x45f1a5
add dword [esp + 0x10], 0x18
inc edi
cmp edi, dword [0x48a22c]
jl 0x45f14e
jmp 0x45f1b6
imul edi, edi, 0x18
mov ecx, dword [edi + eax]
mov dword [esp + 0x1c], ecx
jmp 0x45f1b6
mov eax, dword [0x48a23c]
cmp dword [esp + 0x1c], esi
jne 0x45f1ff
mov ecx, dword [esp + 0x20]
cmp ecx, dword [0x489764]
jne 0x45f1ff
cmp ebp, esi
jle 0x45f1e8
cmp dword [0x48a230], 1
jle 0x45f1e8
mov ecx, dword [0x48a240]
mov ecx, dword [ecx + 0x4c]
imul ecx, ecx, 0x18
mov ecx, dword [ecx + eax]
cmp ecx, esi
jne 0x45f1fb
mov ecx, dword [0x48a240]
mov ecx, dword [ecx + 0x10]
imul ecx, ecx, 0x18
mov ecx, dword [ecx + eax]
cmp ecx, esi
je 0x45f1ff
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
cmp ecx, dword [0x489768]
jne 0x45f211
mov dword [0x489768], esi
cmp dword [0x48a234], esi
mov dword [esp + 0x10], esi
jle 0x45f29c
mov dword [esp + 0x18], esi
push dword [esp + 0x10]
push dword [esp + 0x24]
call fcn.0045b501
mov edi, eax
cmp edi, esi
jl 0x45f282
mov eax, dword [0x48a240]
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + eax + 0x18]
xor ebp, ebp
cmp edi, ebp
jle 0x45f272
lea eax, [esp + 0x54]
push eax
push edi
push 0x130a
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x45f272
cmp dword [esp + 0x54], 8
jge 0x45f272
push ebp
push ebp
push 0x130c
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push ebp
push edi
push 0x1308
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
xor esi, esi
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
add dword [esp + 0x18], 0x3c
cmp eax, dword [0x48a234]
jl 0x45f221
mov eax, dword [0x48a23c]
mov edi, dword [esp + 0x520]
mov ecx, dword [0x48a22c]
lea edx, [edi + 1]
cmp edx, ecx
jge 0x45f2c8
sub ecx, edi
imul ecx, ecx, 0x18
sub ecx, 0x18
add eax, ebx
push ecx
lea ecx, [eax + 0x18]
push ecx
push eax
call fcn.00468c30
add esp, 0xc
dec dword [0x48a22c]
xor edx, edx
cmp dword [0x48a230], esi
jle 0x45f2f5
xor ecx, ecx
mov eax, dword [0x48a240]
lea eax, [ecx + eax + 0x10]
cmp dword [eax], edi
jle 0x45f2e9
dec dword [eax]
inc edx
add ecx, 0x3c
cmp edx, dword [0x48a230]
jl 0x45f2da
push esi
push esi
cmp dword [0x48a22c], esi
je 0x45ef1b
push 0xb
push dword [0x48a220]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x48a230], esi
jne 0x45f32e
push esi
call fcn.0045e89c
mov eax, dword [0x48a23c]
push 1
push dword [eax]
call dword [sym.imp.USER32.dll_ShowWindow]
test byte [0x4870dc], 0x20
jne 0x45f3cf
cmp dword [0x48a234], esi
je 0x45f3cf
call fcn.0045b8c7
test eax, eax
je 0x45f3cf
xor ebp, ebp
cmp dword [0x48a234], esi
jle 0x45f3b1
xor ebx, ebx
mov eax, dword [0x48a240]
lea esi, [ebx + eax + 0x18]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x45f376
push dword [esi]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x45f39e
xor edi, edi
test eax, eax
jle 0x45f38e
mov eax, dword [esi + 0xc]
push dword [eax + edi*8]
call dword [sym.imp.USER32.dll_DestroyWindow]
inc edi
cmp edi, dword [esi + 0x10]
jl 0x45f37c
mov ecx, dword [esi + 0xc]
call fcn.00424f83
and dword [esi + 0xc], 0
and dword [esi + 0x10], 0
and dword [esi + 0x18], 0
and dword [esi], 0
inc ebp
add ebx, 0x3c
cmp ebp, dword [0x48a234]
jl 0x45f35c
mov ecx, dword [0x48a324]
and dword [0x48a234], 0
mov eax, dword [0x48a240]
add dword [eax + 0xc], ecx
and dword [0x48a324], 0
xor esi, esi
cmp dword [esp + 0x1c], esi
je 0x45f3de
push dword [esp + 0x1c]
call fcn.0045b897
cmp dword [0x489768], esi
jne 0x45f3ec
push esi
call fcn.00466c74
cmp dword [esp + 0x30], esi
je 0x45f3ff
test byte [0x4870dc], 0x40
je 0x45f3ff
xor eax, eax
jmp 0x45f402
push 0xfffffffffffffffe
pop eax
push eax
call fcn.00460142
push esi
push 1
push 0xb
push dword [0x48a220]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x48a230], esi
mov dword [esp + 0x10], esi
jle 0x45f477
mov edi, dword [sym.imp.USER32.dll_InvalidateRect]
xor ebx, ebx
xor ebp, ebp
mov eax, dword [0x48a240]
mov eax, dword [ebx + eax + 0x10]
mov ecx, dword [0x48a23c]
imul eax, eax, 0x18
mov esi, dword [eax + ecx + 4]
cmp esi, ebp
je 0x45f464
mov eax, dword [esi + 0x50]
cmp eax, ebp
je 0x45f455
push ebp
push ebp
push eax
call edi
mov esi, dword [esi + 0x4a1c]
cmp esi, ebp
je 0x45f464
push ebp
push ebp
push esi
call edi
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
add ebx, 0x3c
cmp eax, dword [0x48a230]
jl 0x45f42f
push 1
push 0
push dword [0x48a220]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45ef27