Function at 0x45b120
Capabilities:
Check for time delay via gettickcount
Check for unmoving mouse cursor
Check http status code
Encrypt data using speck
Get graphical window text
Log keystrokes via polling
Move file
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4896db
mov eax, dword fs:[0]
push eax
sub esp, 0x678
mov eax, dword [0x49e7c0]
xor eax, esp
mov dword [esp + 0x670], eax
push ebx
push esi
push edi
mov eax, dword [0x49e7c0]
xor eax, esp
push eax
lea eax, [esp + 0x688]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x10]
cmp esi, 0x111
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x7c], edi
ja 0x45b94f
je 0x45b4fc
cmp esi, 0x7b
ja 0x45b3e6
je case.0x45bddb.518
lea eax, [esi - 5]
cmp eax, 0x1b
ja case.0x45b979.278
movzx ecx, byte [eax + 0x460c40]
jmp dword [ecx*4 + 0x460c2c]
cmp di, 1
jne case.0x45b979.278
mov cl, byte [0x4a0625]
test cl, cl
jne 0x45b1db
cmp dword [0x4a01b8], 2
je 0x45b1f1
jmp 0x45b274
cmp cl, 1
jne 0x45b274
cmp dword [0x4a01b4], 2
jne 0x45b274
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, ecx
sub eax, dword [0x4a067c]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x45b243
mov eax, esi
sub eax, dword [0x4a0680]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x45b243
cmp dword [0x4a0684], 0
jne 0x45b26e
push 0
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
jmp 0x460c03
mov eax, dword [0x4a06a4]
push 0
push 0x7d0
push 0x12
push eax
mov dword [0x4a067c], ecx
mov dword [0x4a0680], esi
mov dword [0x4a0684], 1
call dword [sym.imp.USER32.dll_SetTimer]
mov cl, byte [0x4a0625]
mov al, byte [ebx + 0x370]
test al, al
jne 0x45b2be
test cl, cl
jne 0x45b290
cmp dword [0x4a01b8], 1
je 0x45b2a6
jmp case.0x45b979.278
cmp cl, 1
jne case.0x45b979.278
cmp dword [0x4a01b4], 1
jne case.0x45b979.278
test al, al
jne 0x45b2be
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x4a06a4]
push edi
push ecx
push 0x20
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
jmp 0x460c03
mov ecx, ebx
call fcn.00447310
jmp case.0x45bddb.518
test edi, edi
je case.0x45b979.278
cmp dword [0x4a0694], 0
jne 0x45b344
cmp dword [ebx + 0x118], 0
jne 0x45b338
cmp dword [0x4a05f0], 0
je 0x45b316
cmp dword [ebx + 0x19c], 0
je 0x45b316
push 0
mov ecx, ebx
call fcn.00456310
jmp case.0x45bddb.518
mov eax, dword [ebx + 0x19c]
push eax
mov ecx, ebx
call fcn.0044d550
mov ecx, dword [esp + 0x34]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x45bddb.518
mov ecx, ebx
call fcn.0044bb60
jmp case.0x45bddb.518
cmp dword [ebx + 0x118], 1
je case.0x45bddb.518
mov edx, dword [ebx + 0x16c]
mov eax, dword [ebx + 0x168]
push edx
push eax
mov ecx, ebx
call fcn.00449370
jmp case.0x45bddb.518
cmp byte [ebx + 0x370], 0
je 0x45b381
push 1
push 0
push 0
mov ecx, ebx
call fcn.0044fe20
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x43c]
push ecx
push edi
call dword [sym.imp.USER32.dll_BeginPaint]
mov edx, dword [esp + 0x444]
mov ecx, dword [esp + 0x448]
sub esp, 0x10
mov esi, eax
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x45c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x460]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
push esi
mov ecx, ebx
call fcn.0044df50
push esi
mov ecx, ebx
call fcn.0044fac0
lea edx, [esp + 0x43c]
push edx
push edi
call dword [sym.imp.USER32.dll_EndPaint]
jmp case.0x45bddb.518
mov eax, esi
sub eax, 0x100
je 0x45b415
sub eax, 4
je 0x45b3fd
sub eax, 2
jne case.0x45b979.278
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x34]
push edi
push eax
push esi
push ecx
call fcn.00433b30
add esp, 0x10
jmp 0x460c03
mov ecx, dword [ebp + 0x14]
lea eax, [ecx - 8]
cmp eax, 0x20
ja case.0x45b42b.9
movzx edx, byte [eax + 0x460c78]
jmp dword [edx*4 + 0x460c5c]
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
mov ecx, ebx
call fcn.00448390
test byte [eax + 0x1c], 0x10
mov ecx, ebx
je 0x45b458
call fcn.00459e20
jmp 0x460bf7
call fcn.00459ee0
jmp 0x460bf7
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
push 0
push 0x85
call fcn.004164f0
add esp, 8
jmp case.0x45bddb.518
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
push 0
push 0xffffffffffffffff
mov ecx, ebx
call fcn.00457880
jmp case.0x45bddb.518
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
push 0
push 1
mov ecx, ebx
call fcn.00457880
jmp case.0x45bddb.518
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
push 0xffffffffffffffff
push 0
mov ecx, ebx
call fcn.00457880
jmp case.0x45bddb.518
cmp dword [ebx + 0x118], 2
jne case.0x45b42b.9
push 1
push 0
mov ecx, ebx
call fcn.00457880
jmp case.0x45bddb.518
mov eax, dword [esp + 0x34]
push edi
push ecx
push 0x100
push eax
call fcn.00433b30
add esp, 0x10
jmp 0x460c03
movzx ecx, dx
mov eax, ecx
cmp eax, 0x1cd
jg 0x45b8b0
je 0x45b8a4
cmp eax, 0x32
jne case.0x45b979.278
mov eax, edx
shr eax, 0x10
cmp ax, 0x200
jne 0x45b7a8
cmp byte [0x4a13cc], 0
jne 0x45b776
xor eax, eax
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push eax
push 0xe
push edi
mov dword [esp + 0x6a0], 0x1b
call esi
push eax
lea ecx, [esp + 0x140]
call fcn.00402760
lea ecx, [esp + 0x13c]
call fcn.004017a0
mov ecx, dword [esp + 0x150]
push eax
add ecx, 1
push ecx
push 0xd
push edi
call esi
lea esi, [ebx + 0x1fc]
mov ecx, esi
mov dword [esp + 0x20], 0
call fcn.0040ad30
test eax, eax
jle 0x45b75f
mov edx, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.0040ad50
test byte [eax + 0xb4], 1
mov ecx, esi
jne 0x45b5de
add dword [esp + 0x20], 1
call fcn.0040ad30
cmp dword [esp + 0x20], eax
jl 0x45b5b2
jmp 0x45b75f
mov eax, dword [esp + 0x20]
push eax
call fcn.0040ad50
push eax
lea ecx, [esp + 0x420]
call fcn.00402600
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, esi
mov byte [esp + 0x694], 0x1c
call fcn.0040ad50
mov ecx, eax
call fcn.004017a0
push eax
call fcn.00442030
add esp, 4
push eax
lea ecx, [esp + 0x420]
call fcn.00402760
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x420]
call fcn.00402630
lea ecx, [esp + 0x41c]
call fcn.004017a0
push eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, esi
call fcn.0040ad50
mov ecx, eax
call fcn.004017a0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x45b753
lea ecx, [esp + 0x41c]
call fcn.004017a0
mov ecx, dword [esp + 0x20]
push eax
push ecx
mov ecx, esi
call fcn.0040ad50
mov ecx, eax
call fcn.004017a0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x45b738
mov ecx, 7
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], eax
mov word [esp + 0x17c], ax
mov dword [esp + 0x174], ecx
mov dword [esp + 0x170], eax
mov word [esp + 0x160], ax
lea edx, [esp + 0x178]
push edx
push 0x1ab
mov byte [esp + 0x698], 0x1e
call fcn.00442450
lea eax, [esp + 0x164]
push eax
push 0x1ac
call fcn.00442450
mov esi, dword [ebx + 8]
add esp, 0x10
push 0x10
lea ecx, [esp + 0x17c]
call fcn.004017a0
push eax
lea ecx, [esp + 0x164]
call fcn.004017a0
push eax
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x15c]
call fcn.00401f00
lea ecx, [esp + 0x178]
call fcn.00401f00
jmp 0x45b753
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x41c]
push ecx
push edx
mov ecx, esi
call fcn.0040ad50
mov ecx, eax
call fcn.00402a00
lea ecx, [esp + 0x41c]
call fcn.00401f00
lea ecx, [esp + 0x13c]
mov dword [esp + 0x690], 0xffffffff
call fcn.00401f00
mov eax, dword [0x4a13d0]
push eax
push 0xfffffffffffffffc
push edi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, dword [ebx + 0x20c]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebx + 0x20c], 0
jmp case.0x45b979.278
cmp ax, 0x400
jne case.0x45b979.278
lea edx, [esp + 0x41c]
push edx
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xba
push edi
call esi
push 0
push 0
push 0xd4
push edi
mov dword [esp + 0x34], eax
call esi
mov ecx, dword [esp + 0x428]
shr eax, 0x10
add eax, dword [0x4a059c]
imul eax, dword [esp + 0x24]
add eax, 4
mov esi, eax
mov eax, dword [esp + 0x420]
sub ecx, eax
cmp ecx, esi
je case.0x45b979.278
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x41c]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_ScreenToClient]
push 1
lea edx, [esp + 0x160]
push edx
mov ecx, ebx
call fcn.00475c60
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x168]
lea edx, [ecx + esi]
cmp edx, eax
jle 0x45b857
sub eax, esi
mov ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x424]
sub eax, dword [esp + 0x41c]
push 1
push esi
push eax
push ecx
mov ecx, dword [esp + 0x24]
push ecx
push edi
call dword [sym.imp.USER32.dll_MoveWindow]
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x480]
push str.Line__d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [esp + 0x47c]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp case.0x45b979.278
mov ecx, ebx
call fcn.00459e20
jmp case.0x45b979.278
sub eax, 0x1ce
cmp eax, 0xd
ja case.0x45b979.278
jmp dword [eax*4 + 0x460c9c]
mov ecx, ebx
call fcn.00459ee0
jmp case.0x45b979.278
push 0
push 0x8e
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
push 0
push 0x8c
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
push 0
push 0x8d
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
mov ecx, ebx
call fcn.00458130
jmp case.0x45b979.278
mov ecx, ebx
call fcn.004589c0
jmp case.0x45b979.278
push 0
push 0x85
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
add ecx, 0xfffffeb9
push 0
push ecx
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
cmp esi, 0x231
ja 0x45ed13
je 0x45ed04
lea eax, [esi - 0x113]
cmp eax, 0xf9
ja case.0x45b979.278
movzx eax, byte [eax + 0x460cf4]
jmp dword [eax*4 + 0x460cd4]
mov ecx, dword [ebp + 0x14]
shr ecx, 0x10
movsx ecx, cx
mov eax, 0x77777777
imul ecx
sub edx, ecx
mov ecx, dword [0x4a01c0]
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
test ecx, ecx
je 0x45baa1
cmp dword [ebx + 0x118], 0
jne 0x45baa1
cmp ecx, 1
je 0x45ba1d
cmp ecx, 2
je 0x45ba1d
cmp ecx, 3
jne 0x45b9f0
test esi, esi
push 0
jle 0x45b9de
push 0x82
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
push 0x81
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
cmp ecx, 4
jne case.0x45b979.278
test esi, esi
push 0
jle 0x45ba0e
push 0x5b
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
push 0x5c
call fcn.004164f0
add esp, 8
jmp case.0x45b979.278
cmp dword [ebx + 0x1b8], 0
jne case.0x45b979.278
mov eax, dword [0x4a061c]
mov edx, dword [0x4a0620]
mov dword [esp + 0x24], eax
mov dword [esp + 0x6c], edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
imul eax, dword [0x4a01bc]
cmp dword [0x4a0614], 0
jne 0x45ba5b
mov dword [0x4a061c], eax
jmp 0x45ba60
mov dword [0x4a0620], eax
cmp ecx, 1
push 0
jne 0x45ba73
test esi, esi
jle 0x45ba6f
push 0x7d
jmp 0x45ba80
push 0x7e
jmp 0x45ba80
test esi, esi
jle 0x45ba7b
push 0x7f
jmp 0x45ba80
push 0x80
call fcn.004164f0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x2c]
add esp, 8
mov dword [0x4a0620], ecx
mov dword [0x4a061c], edx
jmp case.0x45b979.278
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x41c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
xor eax, eax
lea edx, [esp + 0x24]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x24], eax
push edx
lea eax, [esp + 0x70]
push eax
mov ecx, ebx
call fcn.00449030
mov eax, dword [esp + 0x428]
sub eax, dword [esp + 0x420]
cmp dword [esp + 0x24], eax
jle 0x45bb0f
imul eax, dword [0x4a01bc]
imul eax, esi
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push 0
mov ecx, ebx
call fcn.004568f0
jmp case.0x45b979.278
imul eax, dword [0x4a01bc]
imul eax, esi
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
push 0
add eax, edx
push eax
mov ecx, ebx
call fcn.004568f0
jmp case.0x45b979.278
cmp esi, 0x203
mov byte [ebx + 0x1c8], 1
jne case.0x45b979.513
mov eax, dword [ebx + 0x118]
test eax, eax
je case.0x45b979.513
cmp eax, 2
jne case.0x45b979.513
mov ecx, ebx
mov byte [ebx + 0x1ca], 1
call fcn.00448390
test byte [eax + 0x1c], 0x10
mov ecx, ebx
je 0x45bb84
call fcn.00459e20
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_SetCapture]
jmp case.0x45bddb.518
call fcn.00459ee0
mov ecx, dword [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_SetCapture]
jmp case.0x45bddb.518
movsx eax, di
shr edi, 0x10
movsx ecx, di
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov byte [ebx + 0x1c8], 1
mov byte [ebx + 0x1ca], 0
mov byte [ebx + 0x1c9], 0
mov dword [ebx + 0x1cc], eax
mov dword [ebx + 0x1d0], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x34]
push edx
mov dword [ebx + 0x1dc], eax
call dword [sym.imp.USER32.dll_SetCapture]
call fcn.0042bf80
push 0
push 0
push 3
mov ecx, ebx
call fcn.0044d0b0
cmp esi, 0x201
jne 0x45bc17
mov eax, dword [esp + 0x34]
push 0
push 1
push 0xc
push eax
mov dword [ebx + 0x1e0], 0
call dword [sym.imp.USER32.dll_SetTimer]
cmp dword [ebx + 0x118], 2
jne case.0x45bddb.518
lea edi, [ebx + 0x1fc]
mov ecx, edi
xor esi, esi
call fcn.0040ad30
test eax, eax
jle 0x45bcca
jmp 0x45bc40
push 0
lea ecx, [esp + 0x420]
push ecx
push esi
mov ecx, ebx
call fcn.0044a330
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x424]
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
mov ecx, edi
jne 0x45bc7e
add esi, 1
call fcn.0040ad30
cmp esi, eax
jl 0x45bc40
jmp 0x45bcca
push esi
mov byte [esp + 0x30], 1
call fcn.0040ad50
test byte [eax + 0xb4], 1
je 0x45bc97
mov byte [esp + 0x2c], 0
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x45bca9
mov byte [esp + 0x2c], 0
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x45bcbb
mov byte [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
push edx
push 0
push esi
mov ecx, ebx
call fcn.00457250
mov eax, dword [edi + 4]
test eax, eax
je 0x45bce7
mov ecx, dword [edi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jne case.0x45bddb.518
xor esi, esi
mov eax, dword [edi + 4]
test eax, eax
je 0x45bd0e
mov ecx, dword [edi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge case.0x45bddb.518
push esi
mov ecx, edi
call fcn.0040ad50
test byte [eax + 0xb4], 1
je 0x45bd61
push esi
mov ecx, edi
call fcn.0040ad50
and dword [eax + 0xb4], 0xfffffffe
add eax, 0xb4
push 0
lea eax, [esp + 0x420]
push eax
push esi
mov ecx, ebx
call fcn.0044a330
mov edx, dword [ebx + 8]
push 0
lea ecx, [esp + 0x420]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
add esi, 1
jmp 0x45bcf1
cmp byte [ebx + 0x1c8], 0
je case.0x45b979.278
cmp byte [ebx + 0x1ca], 0
je 0x45bd9c
mov byte [ebx + 0x1ca], 0
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp case.0x45b979.278
mov ecx, ebx
call fcn.00447310
call dword [sym.imp.USER32.dll_ReleaseCapture]
movsx eax, di
shr edi, 0x10
movsx ecx, di
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x14]
lea eax, [esi - 0x202]
cmp eax, 0xa
movzx edx, cx
ja case.0x45bddb.518
movzx eax, byte [eax + 0x460e04]
mov esi, 2
jmp dword [eax*4 + 0x460df0]
xor eax, eax
jmp 0x45be13
mov eax, 1
jmp 0x45be13
mov eax, esi
jmp 0x45be13
shr ecx, 0x10
cmp cx, 1
jne 0x45be05
mov eax, 3
mov dword [esp + 0x20], eax
jmp 0x45be09
mov eax, dword [esp + 0x20]
cmp cx, si
jne 0x45be17
mov eax, 4
mov dword [esp + 0x20], eax
cmp byte [ebx + 0x1c9], 0
jne 0x45bfc5
test dl, 4
je 0x45be32
mov eax, 3
mov dword [esp + 0x20], eax
test dl, 8
je 0x45be40
mov eax, 4
mov dword [esp + 0x20], eax
cmp dword [ebx + 0x118], esi
jne 0x45bef9
lea edi, [ebx + 0x1fc]
mov ecx, edi
xor esi, esi
call fcn.0040ad30
test eax, eax
jle 0x45bed4
push 0
lea ecx, [esp + 0x420]
push ecx
push esi
mov ecx, ebx
call fcn.0044a330
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
lea ecx, [esp + 0x424]
push ecx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
mov ecx, edi
jne 0x45bea1
add esi, 1
call fcn.0040ad30
cmp esi, eax
jl 0x45be63
jmp 0x45bed4
push esi
call fcn.0040ad50
test byte [eax + 0xb4], 2
je 0x45bed4
push esi
mov ecx, edi
call fcn.0040ad50
test byte [eax + 0xb4], 1
je 0x45bec8
cmp dword [esp + 0x20], 1
je 0x45bedf
push 1
push 0
push esi
mov ecx, ebx
call fcn.00457250
cmp dword [esp + 0x20], 1
jne 0x45c0a0
mov ecx, ebx
call fcn.0044d950
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
jmp case.0x45bddb.518
mov eax, dword [eax*4 + 0x4a01d8]
cmp eax, 0xffffffff
je 0x45c0a0
test eax, eax
jne 0x45bf73
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x41c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0x424]
push edx
mov edx, dword [esp + 0x42c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x440]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x444]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.00419f80
add esp, 0x1c
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
jmp case.0x45bddb.518
cmp eax, 0x42
jne 0x45bfa9
push 0
push eax
call fcn.004164f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add esp, 8
push 0
push eax
push ecx
mov ecx, ebx
call fcn.0044fe20
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
jmp case.0x45bddb.518
cmp eax, 0x81
je 0x45bfbb
cmp eax, 0x82
jne 0x45c095
lea edx, [esp + 0x14]
push edx
jmp 0x45c097
cmp dword [ebx + 0x118], esi
jne 0x45c075
test eax, eax
jne 0x45c075
mov eax, dword [ebx + 0x1cc]
mov ecx, dword [ebx + 0x1d4]
cmp eax, ecx
jge 0x45bff9
mov dword [esp + 0x178], eax
mov dword [esp + 0x180], ecx
jmp 0x45c007
mov dword [esp + 0x178], ecx
mov dword [esp + 0x180], eax
mov eax, dword [ebx + 0x1d0]
mov ecx, dword [ebx + 0x1d8]
cmp eax, ecx
jge 0x45c027
mov dword [esp + 0x17c], eax
mov dword [esp + 0x184], ecx
jmp 0x45c035
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x184], eax
mov edi, dword [esp + 0x34]
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
lea eax, [esp + 0x178]
push eax
push esi
call dword [sym.imp.USER32.dll_DrawFocusRect]
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
push 8
push edi
call dword [sym.imp.USER32.dll_KillTimer]
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
jmp case.0x45bddb.518
cmp dword [eax*4 + 0x4a01c4], 1
jne 0x45c0a0
push 0
push 0
push 3
mov ecx, ebx
call fcn.0044d0b0
call fcn.0042bf80
test eax, eax
jle 0x45c0a0
push 0
push eax
call fcn.004164f0
add esp, 8
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
jmp case.0x45bddb.518
movsx ecx, di
mov eax, edi
shr eax, 0x10
cmp byte [ebx + 0x1c8], 0
mov dword [esp + 0x14], ecx
movsx esi, ax
jne 0x45c0e8
cmp byte [ebx + 0x370], 0
je case.0x45bddb.518
push 0
push esi
push ecx
mov ecx, ebx
call fcn.0044fe20
jmp case.0x45bddb.518
movzx eax, dx
test al, 1
je 0x45c0f9
mov dword [esp + 0x2c], 0
jmp 0x45c117
test al, 2
je 0x45c107
mov dword [esp + 0x2c], 1
jmp 0x45c117
test al, 0x10
je case.0x45b979.278
mov dword [esp + 0x2c], 2
cmp byte [ebx + 0x1ca], 0
mov edx, dword [esp + 0x2c]
mov edi, dword [edx*4 + 0x4a01c4]
jne 0x45c197
cmp byte [ebx + 0x1c9], 0
jne 0x45c1a4
mov eax, dword [esp + 0x14]
sub eax, dword [ebx + 0x1cc]
mov ecx, dword [0x4a01f4]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jg 0x45c15e
mov eax, esi
sub eax, dword [ebx + 0x1d0]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x45c197
mov ecx, dword [ebx + 0x1d0]
mov eax, dword [ebx + 0x1cc]
mov dword [ebx + 0x1d8], ecx
mov ecx, ebx
mov byte [ebx + 0x1c9], 1
mov dword [ebx + 0x1d4], eax
call fcn.00447310
cmp edi, 1
jne 0x45c197
mov edx, dword [esp + 0x14]
push esi
push edx
call fcn.0042d690
add esp, 8
cmp byte [ebx + 0x1c9], 0
je case.0x45bddb.518
cmp dword [esp + 0x2c], 0
jne 0x45c1d6
cmp dword [ebx + 0x118], 2
jne 0x45c1d6
mov eax, dword [esp + 0x14]
push esi
push eax
mov ecx, ebx
call fcn.004579d0
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x1d4], edx
mov dword [ebx + 0x1d8], esi
jmp case.0x45bddb.518
test edi, edi
jne 0x45c215
mov ecx, dword [ebx + 0x1d8]
mov eax, dword [0x4a0618]
mov edx, dword [ebx + 0x1d4]
sub edx, dword [esp + 0x14]
sub ecx, esi
imul ecx, eax
imul edx, eax
push ecx
push edx
mov ecx, ebx
call fcn.00456540
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x1d4], edx
mov dword [ebx + 0x1d8], esi
jmp case.0x45bddb.518
cmp edi, 1
jne 0x45c2d0
mov eax, dword [0x4a01a0]
mov ecx, dword [0x4a01a4]
mov edx, dword [0x4a01a8]
push eax
mov eax, dword [0x4a01ac]
push ecx
mov ecx, dword [0x4a01b0]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push esi
push edx
call fcn.0042d6e0
add esp, 0x1c
test eax, eax
je 0x45c399
xor eax, eax
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
mov dword [esp + 0x690], eax
lea eax, [esp + 0x13c]
push eax
call fcn.0042c770
mov eax, dword [esp + 0x144]
add esp, 4
cmp dword [esp + 0x154], 8
jae 0x45c2a0
lea eax, [esp + 0x140]
push 0x7fffffff
push eax
push 3
mov ecx, ebx
call fcn.0044d0b0
lea ecx, [esp + 0x13c]
call fcn.00401f00
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x1d4], edx
mov dword [ebx + 0x1d8], esi
jmp case.0x45bddb.518
cmp edi, 2
jne 0x45c35a
mov eax, dword [ebx + 0x1d8]
fld qword [0x4a0600]
sub eax, esi
fstp qword [esp + 0x6c]
fld1
cdq
xor eax, edx
fst qword [0x4a0600]
sub eax, edx
test eax, eax
jle 0x45c313
fld qword [0x48e1b0]
sub eax, 1
fmul st(1), st(0)
jne 0x45c302
fstp st(0)
fstp qword [0x4a0600]
jmp 0x45c315
fstp st(0)
mov eax, dword [ebx + 0x1d8]
sub eax, esi
test eax, eax
jle 0x45c32a
push 0
push 0x81
jmp 0x45c333
jge 0x45c33b
push 0
push 0x82
call fcn.004164f0
add esp, 8
fld qword [esp + 0x6c]
mov edx, dword [esp + 0x14]
fstp qword [0x4a0600]
mov dword [ebx + 0x1d4], edx
mov dword [ebx + 0x1d8], esi
jmp case.0x45bddb.518
cmp edi, 3
jne 0x45c399
cmp dword [ebx + 0x30], 1
je 0x45c36c
mov ecx, ebx
call fcn.0041fc20
mov byte [ebx + 0x1c8], 0
mov byte [ebx + 0x1c9], 0
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, dword [0x4a06a4]
push 0xffffffffffffffff
push 0xf012
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x1d4], edx
mov dword [ebx + 0x1d8], esi
jmp case.0x45bddb.518
cmp dx, 5
je 0x45c3eb
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
movzx ecx, word [esp + 0x18]
movzx edx, word [esp + 0x14]
mov eax, dword [esp + 0x34]
shl ecx, 0x10
or ecx, edx
push ecx
push 0
push 0x84
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 6
jne 0x45c421
mov esi, 0x114
cmp esi, 0x114
mov dword [esp + 0x13c], 0x1c
mov dword [esp + 0x140], 0x17
jne 0x45c496
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x13c]
push eax
push 0
push ecx
jmp 0x45c4ad
cmp eax, 7
jne 0x45c42d
mov esi, 0x115
jmp 0x45c3eb
cmp esi, 0x115
jne 0x45c3eb
mov eax, dword [ebp + 0x14]
cmp ax, 8
jne 0x45c466
movsx ecx, word [0x4a13d4]
mov edx, dword [esp + 0x34]
push 0
push ecx
push 0x20a
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov word [0x4a13d4], 0
jmp case.0x45b979.278
cmp ax, 1
je 0x45c472
cmp ax, 3
jne 0x45c47a
add word [0x4a13d4], 0x78
test ax, ax
je 0x45c489
cmp ax, 2
jne case.0x45b979.278
add word [0x4a13d4], 0xff88
jmp case.0x45b979.278
cmp esi, 0x115
jne 0x45c4b3
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x13c]
push edx
push 1
push eax
call dword [sym.imp.USER32.dll_GetScrollInfo]
movzx eax, word [ebp + 0x14]
cmp eax, 7
mov edi, dword [esp + 0x150]
mov ecx, dword [esp + 0x14c]
ja case.0x45c4ce.4
jmp dword [eax*4 + 0x460e10]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
neg eax
jmp 0x45c552
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
jmp 0x45c552
mov eax, 0xae147ae1
cmp esi, 0x114
mov edx, ecx
jne 0x45c515
imul edx, dword [0x4a0620]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x45c552
imul edx, dword [0x4a061c]
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x45c552
mov eax, 0x51eb851f
jmp 0x45c4f6
mov eax, dword [esp + 0x148]
neg eax
jmp 0x45c552
mov eax, dword [esp + 0x148]
jmp 0x45c552
mov eax, dword [esp + 0x154]
sub eax, edi
jmp 0x45c552
xor eax, eax
lea edx, [edi + eax]
test edx, edx
jge 0x45c55d
mov eax, edi
neg eax
mov edx, dword [esp + 0x148]
sub edx, ecx
add edx, 1
add edi, eax
cmp edi, edx
jle 0x45c582
mov eax, dword [esp + 0x148]
sub eax, dword [esp + 0x150]
sub eax, ecx
add eax, 1
test eax, eax
je case.0x45bddb.518
xor edx, edx
xor ecx, ecx
cmp esi, 0x114
jne 0x45c59a
mov edx, eax
jmp 0x45c5a4
cmp esi, 0x115
jne 0x45c5a4
mov ecx, eax
cmp word [ebp + 0x14], 5
push ecx
push edx
mov ecx, ebx
jne 0x45c5b9
call fcn.00456540
jmp case.0x45bddb.518
call fcn.004568f0
jmp case.0x45bddb.518
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edi, dword [ebp + 0x14]
cmp edi, 1
je 0x45ec64
cmp edi, 2
je 0x45ec64
cmp edi, 3
je 0x45ec64
cmp edi, 5
jne 0x45c6d6
sub eax, dword [ebx + 0x1b4]
mov ecx, dword [0x4a0608]
imul ecx, eax
mov edi, dword [ebx + 0x1b8]
shr ecx, 1
add ecx, dword [0x4a060c]
imul ecx, eax
mov eax, 0x10624dd3
mul ecx
mov ecx, edx
mov eax, edi
cdq
xor eax, edx
shr ecx, 6
sub eax, edx
cmp ecx, eax
mov dword [esp + 0x7c], ecx
mov esi, ecx
jle 0x45c633
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x1bc]
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jle 0x45c644
mov esi, eax
test edi, edi
mov ecx, dword [esp + 0x7c]
jge 0x45c652
neg ecx
mov dword [esp + 0x7c], ecx
cmp dword [ebx + 0x1bc], 0
jge 0x45c65d
neg esi
mov eax, ecx
sub eax, dword [ebx + 0x1c0]
jne 0x45c671
mov edx, esi
sub edx, dword [ebx + 0x1c4]
je 0x45c686
mov ecx, esi
sub ecx, dword [ebx + 0x1c4]
push ecx
push eax
mov ecx, ebx
call fcn.00456540
mov ecx, dword [esp + 0x7c]
cmp dword [ebx + 0x1b8], ecx
mov dword [ebx + 0x1c0], ecx
mov dword [ebx + 0x1c4], esi
jne case.0x45bddb.518
cmp dword [ebx + 0x1bc], esi
jne case.0x45bddb.518
mov edx, dword [esp + 0x34]
xor eax, eax
push 5
push edx
mov dword [ebx + 0x1c0], eax
mov dword [ebx + 0x1b8], eax
mov dword [ebx + 0x1c4], eax
mov dword [ebx + 0x1bc], eax
call dword [sym.imp.USER32.dll_KillTimer]
jmp case.0x45bddb.518
cmp edi, 8
jne 0x45c6f5
mov eax, dword [ebx + 0x1d8]
mov ecx, dword [ebx + 0x1d4]
push eax
push ecx
mov ecx, ebx
call fcn.004579d0
jmp case.0x45bddb.518
cmp edi, 0xc
jne 0x45ca06
mov esi, eax
sub esi, dword [ebx + 0x1dc]
cmp esi, 0xc8
jle case.0x45bddb.518
mov eax, dword [0x4a01f8]
mov edi, dword [ebx + 0x1e0]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
cmp ecx, 0xc8
jle 0x45c731
mov ecx, 0xc8
mov edx, dword [0x4a01f8]
sub esi, ecx
sub edx, ecx
lea eax, [esi*8]
sub eax, esi
mov dword [esp + 0x6c], edx
cdq
idiv dword [esp + 0x6c]
mov esi, eax
cmp esi, 6
mov dword [ebx + 0x1e0], esi
jle 0x45c75f
mov esi, 6
cmp edi, esi
je 0x45c9ac
push 0
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
push 0xf08c50
mov dword [esp + 0x98], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, dword [ebx + 8]
push ebx
mov dword [esp + 0xb8], eax
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
mov eax, dword [esp + 0x94]
push eax
push ebx
mov dword [esp + 0x90], ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0xb4]
push ecx
push ebx
mov dword [esp + 0x74], eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp edi, esi
mov dword [esp + 0x2c], eax
jge 0x45c961
fld1
call fcn.004795f0
fmul qword [0x48bfe0]
mov edx, edi
shl edx, 4
fst qword [esp + 0xc4]
sub edx, edi
fld qword [0x48e1a8]
lea eax, [edx*4 + 5]
fmul st(1)
sub esi, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0xb8], esi
fdiv qword [0x48c230]
fmul qword [0x48e1a0]
fstp qword [esp + 0x64]
jmp 0x45c827
fld qword [esp + 0xc4]
fimul dword [esp + 0x44]
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x1cc]
mov edi, dword [eax + 0x1d0]
xor esi, esi
mov dword [esp + 0x24], ecx
lea ebx, [esp + 0x210]
fdiv qword [0x48c230]
fst qword [esp + 0x14]
call fcn.00479390
fst qword [esp + 0x7c]
fmul qword [0x48e198]
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45c877
fsub qword [0x48b848]
jmp 0x45c87d
fadd qword [0x48b848]
call fcn.00478370
fld qword [esp + 0x14]
mov edx, dword [esp + 0x24]
add eax, edx
mov dword [esp + esi*8 + 0x194], eax
call fcn.004794c0
fld qword [0x48e198]
fmul st(1)
fldz
fcom st(1)
fnstsw ax
fld qword [0x48b848]
test ah, 0x41
jne 0x45c8b5
fsub st(2), st(0)
jmp 0x45c8b7
fadd st(2), st(0)
fxch st(2)
call fcn.00478370
fld qword [esp + 0x7c]
fld qword [0x48e190]
mov ecx, edi
fmul st(1), st(0)
sub ecx, eax
fxch st(1)
mov dword [esp + esi*8 + 0x198], ecx
fcom st(2)
fnstsw ax
test ah, 5
jp 0x45c8e4
fsub st(3)
jmp 0x45c8e6
fadd st(3)
call fcn.00478370
fmulp st(3)
mov edx, dword [esp + 0x24]
add eax, edx
fcomp st(2)
mov dword [ebx - 4], eax
fnstsw ax
test ah, 0x41
jne 0x45c903
fsubp st(1)
jmp 0x45c905
faddp st(1)
call fcn.00478370
fld qword [esp + 0x64]
fadd qword [esp + 0x14]
mov ecx, edi
sub ecx, eax
mov dword [ebx], ecx
add esi, 1
fst qword [esp + 0x14]
sub ebx, 8
cmp esi, 8
jl 0x45c855
mov eax, dword [esp + 0x88]
fstp st(0)
push 0x10
lea edx, [esp + 0x198]
push edx
push eax
call dword [sym.imp.GDI32.dll_Polygon]
add dword [esp + 0x44], 0x3c
sub dword [esp + 0xb8], 1
jne 0x45c820
mov esi, dword [esp + 0x88]
jmp 0x45c963
mov esi, ebx
mov ecx, dword [esp + 0x6c]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ecx
push esi
call edi
mov edx, dword [esp + 0x2c]
push edx
push esi
call edi
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 8]
push esi
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edx, dword [esp + 0x94]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push edx
call esi
mov eax, dword [esp + 0xb4]
push eax
call esi
mov ebx, dword [esp + 0x90]
cmp dword [ebx + 0x1e0], 7
jle case.0x45bddb.518
mov ecx, ebx
call fcn.00447310
mov eax, dword [ebx + 0x118]
test eax, eax
mov byte [ebx + 0x1ca], 1
je 0x45c9e2
cmp eax, 1
je 0x45c9e2
mov ecx, ebx
call fcn.0044d950
jmp case.0x45bddb.518
mov ecx, dword [ebx + 8]
lea esi, [ebx + 0x1cc]
push esi
push ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
push esi
push 0xb2
call fcn.004164f0
add esp, 8
jmp case.0x45bddb.518
cmp edi, 0xe
jne 0x45ec0f
call esi
xor esi, esi
cmp dword [0x4a0630], esi
mov dword [esp + 0x6c], eax
jne 0x45db40
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x26c]
mov dword [esp + 0x690], 0x14
call fcn.00448350
lea ecx, [esp + 0x344]
mov byte [esp + 0x690], 0x15
call fcn.00448350
fld1
fstp qword [esp + 0x274]
lea ecx, [ebx + 0x264]
fldz
mov byte [esp + 0x690], 0x16
fstp qword [esp + 0x34c]
mov dword [esp + 0x30], esi
call fcn.004476e0
test eax, eax
jle 0x45ce7a
mov edx, dword [esp + 0x30]
push edx
lea ecx, [ebx + 0x264]
call fcn.00447700
push eax
lea ecx, [esp + 0x198]
call fcn.00449f20
cmp dword [ebx + 0x180], 1
mov byte [esp + 0x690], 0x17
jne 0x45cbe2
mov dword [esp + 0x2c], 0
lea esi, [esp + 0x1d8]
lea edi, [esp + 0x1cc]
mov ecx, dword [esi + 8]
sub ecx, dword [esi]
cmp dword [0x4a062c], 0
jne 0x45cb52
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 4]
cmp ecx, eax
jle 0x45cbc8
lea edx, [edi - 4]
push edx
mov ecx, edi
call fcn.0040b050
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x5c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x60], ecx
mov ecx, dword [esi]
mov eax, dword [esi + 8]
sub eax, ecx
cdq
sub eax, edx
mov edx, ecx
mov dword [esi + 0x10], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 8]
sar eax, 1
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0xc]
add ecx, eax
cmp dword [ebx + 0x188], 0
mov dword [esi + 0x1c], edx
jne 0x45cb4b
add dword [esi + 0x10], eax
mov dword [esi + 8], ecx
mov dword [edi + 0x70], eax
jmp 0x45cbb9
mov dword [esi + 0x18], ecx
mov dword [esi], ecx
jmp 0x45cbb6
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 4]
cmp edx, ecx
jle 0x45cbc8
lea eax, [edi - 4]
push eax
mov ecx, edi
call fcn.0040b050
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x5c]
mov dword [edi + 0x50], ecx
mov dword [edi + 0x60], edx
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
sub eax, ecx
cdq
sub eax, edx
mov edx, dword [esi]
mov dword [esi + 0x10], edx
mov edx, ecx
mov dword [esi + 0x14], edx
mov edx, dword [esi + 8]
sar eax, 1
mov dword [esi + 0x18], edx
mov edx, dword [esi + 0xc]
add ecx, eax
cmp dword [ebx + 0x188], 0
mov dword [esi + 0x1c], edx
jne 0x45cbb0
add dword [esi + 0x14], eax
mov dword [esi + 0xc], ecx
mov dword [edi + 0x70], eax
jmp 0x45cbb9
mov dword [esi + 0x1c], ecx
mov dword [esi + 4], ecx
mov dword [edi + 0x6c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x258], 2
mov eax, dword [esp + 0x2c]
add eax, 1
add esi, 0x20
add edi, 8
cmp eax, 2
mov dword [esp + 0x2c], eax
jl 0x45cadc
mov ecx, dword [esp + 0x194]
test ecx, ecx
mov eax, dword [0x4a0628]
mov edx, dword [esp + 0x25c]
mov dword [esp + 0xb8], eax
jle 0x45cc0c
cmp dword [esp + 0x258], 1
je 0x45cc13
test ecx, ecx
jge 0x45cc1c
cmp edx, 1
jne 0x45cc1c
shr eax, 1
mov dword [esp + 0xb8], eax
mov esi, dword [esp + 0x6c]
sub esi, dword [esp + 0x1ac]
cmp esi, eax
mov dword [esp + 0x24], esi
jb 0x45cc35
mov esi, eax
mov dword [esp + 0x24], eax
mov eax, esi
test eax, eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jge 0x45cc49
fadd qword [0x48e188]
test ecx, ecx
fidiv dword [0x4a0628]
fst qword [esp + 0x14]
jle 0x45cc66
cmp dword [ebx + 0x188], 0
je 0x45cc87
fld1
fsubrp st(1)
jmp 0x45cc87
cmp dword [ebx + 0x188], 0
jne 0x45cc7c
cmp edx, 1
jne 0x45cc60
fsubr qword [0x48b848]
jmp 0x45cc87
cmp edx, 1
jne 0x45cc87
fadd qword [0x48b848]
mov ecx, dword [esp + 0x30]
fstp qword [esp + 0x19c]
push ecx
lea ecx, [ebx + 0x264]
call fcn.00447700
fld qword [esp + 0x14]
fstp qword [eax + 8]
fld qword [esp + 0x19c]
fcomp qword [esp + 0x274]
fnstsw ax
test ah, 0x41
jp 0x45ccce
lea edx, [esp + 0x194]
push edx
lea ecx, [esp + 0x270]
call fcn.00449d00
fld qword [esp + 0x19c]
fcomp qword [esp + 0x34c]
fnstsw ax
test ah, 1
jne 0x45ccf7
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x348]
call fcn.00449d00
lea ecx, [esp + 0x194]
push ecx
lea ecx, [esp + 0x98]
call fcn.00451d80
lea ecx, [esp + 0x94]
xor edi, edi
call fcn.004476e0
sub eax, 1
test eax, eax
jle 0x45cddc
jmp 0x45cd30
fld qword [esp + 0x19c]
push edi
fsub qword [0x48b848]
lea ecx, [esp + 0x98]
fabs
fstp qword [esp + 0x18]
call fcn.00447700
fld qword [eax + 8]
lea ecx, [esp + 0x94]
fsub qword [0x48b848]
fabs
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x45cd7e
add edi, 1
call fcn.004476e0
sub eax, 1
cmp edi, eax
jl 0x45cd30
jmp 0x45cddc
call fcn.004476e0
mov esi, eax
sub esi, 2
cmp esi, edi
jl 0x45cdbc
lea esp, [esp]
push esi
lea ecx, [esp + 0x98]
call fcn.00447700
push eax
lea edx, [esi + 1]
push edx
lea ecx, [esp + 0x9c]
call fcn.00447700
mov ecx, eax
call fcn.00449d00
sub esi, 1
cmp esi, edi
jge 0x45cd90
lea eax, [esp + 0x194]
push eax
push edi
lea ecx, [esp + 0x9c]
call fcn.00447700
mov ecx, eax
call fcn.00449d00
mov esi, dword [esp + 0x24]
cmp esi, dword [esp + 0xb8]
jne 0x45ce48
mov edi, dword [esp + 0x30]
lea esi, [ebx + 0x264]
mov ecx, esi
call fcn.004476e0
sub eax, 1
cmp edi, eax
jge 0x45ce31
lea ecx, [ecx]
lea eax, [edi + 1]
push eax
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00447700
push eax
push edi
mov ecx, esi
call fcn.00447700
mov ecx, eax
call fcn.00449d00
mov edi, dword [esp + 0x24]
mov ecx, esi
call fcn.004476e0
sub eax, 1
cmp edi, eax
jl 0x45ce00
mov ecx, esi
call fcn.004476e0
sub eax, 1
push eax
mov ecx, esi
call fcn.00451d40
sub dword [esp + 0x30], 1
lea ecx, [esp + 0x194]
mov byte [esp + 0x690], 0x16
call fcn.00448370
mov esi, dword [esp + 0x30]
add esi, 1
lea ecx, [ebx + 0x264]
mov dword [esp + 0x30], esi
call fcn.004476e0
cmp esi, eax
jl 0x45ca94
lea ecx, [ebx + 0x264]
call fcn.004476e0
test eax, eax
jne 0x45cf16
or esi, 0xffffffff
cmp dword [ebx + 0x150], esi
je 0x45cea0
cmp dword [ebx + 0x148], eax
je 0x45cec9
cmp dword [ebx + 0x154], esi
je 0x45ceb1
cmp dword [ebx + 0x14c], 0
je 0x45cec9
mov eax, dword [ebx + 8]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ebx, dword [ebx + 8]
push ebx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [esp + 0x34]
push 0xe
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
lea ecx, [esp + 0x344]
mov byte [esp + 0x690], 0x15
call fcn.00448370
lea ecx, [esp + 0x26c]
mov byte [esp + 0x690], 0x14
call fcn.00448370
lea ecx, [esp + 0x94]
mov dword [esp + 0x690], esi
call fcn.00450c50
jmp case.0x45bddb.518
mov eax, dword [ebx + 8]
lea edx, [esp + 0x41c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [esp + 0x41c]
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
xor edi, edi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x94]
mov byte [esp + 0x690], 0x18
call fcn.004476e0
test eax, eax
jle 0x45d5cf
fld1
call fcn.004795f0
fmul qword [0x48bfe0]
fstp qword [esp + 0xc4]
push edi
lea ecx, [esp + 0x98]
call fcn.00447700
fld qword [eax + 8]
fst qword [esp + 0x14]
push edi
fcomp qword [0x48b848]
fnstsw ax
test ah, 5
jp 0x45d15a
xor ecx, ecx
cmp dword [ebx + 0x188], ecx
setne cl
mov esi, ecx
lea ecx, [esp + 0x98]
call fcn.00447700
cmp dword [eax + esi*4 + 0xc4], 1
jne 0x45cfcd
xor eax, eax
jmp 0x45cfef
push edi
lea ecx, [esp + 0x98]
call fcn.00447700
cmp byte [eax + esi + 0xcc], 0
je 0x45cfe8
mov eax, esi
jmp 0x45cfef
mov eax, 1
sub eax, esi
push edi
lea ecx, [esp + 0x98]
lea esi, [eax + esi*2]
call fcn.00447700
fld qword [esp + 0xc4]
fmul qword [esp + 0x14]
mov edx, esi
shl edx, 4
mov ecx, dword [eax + edx + 0x44]
lea eax, [eax + edx + 0x44]
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x54], edx
call fcn.004794c0
cmp dword [0x4a062c], 0
jne 0x45d0ce
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45d067
fsub qword [0x48b848]
jmp 0x45d06d
fadd qword [0x48b848]
call fcn.00478370
mov ecx, dword [esp + 0x48]
add ecx, eax
mov dword [esp + 0x50], ecx
fabs
push edi
lea ecx, [esp + 0x98]
fstp qword [esp + 0x18]
call fcn.00447700
fild dword [eax + esi*4 + 0x84]
push edi
lea ecx, [esp + 0x98]
fmul qword [esp + 0x18]
fcomp qword [0x48b850]
fnstsw ax
test ah, 5
jp 0x45d294
call fcn.00447700
fild dword [eax + esi*4 + 0x84]
fmul qword [esp + 0x14]
fsub qword [0x48b848]
jmp 0x45d2aa
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45d0f3
fsub qword [0x48b848]
jmp 0x45d0f9
fadd qword [0x48b848]
call fcn.00478370
mov edx, dword [esp + 0x4c]
add edx, eax
mov dword [esp + 0x54], edx
fabs
push edi
lea ecx, [esp + 0x98]
fstp qword [esp + 0x18]
call fcn.00447700
fild dword [eax + esi*4 + 0x94]
push edi
lea ecx, [esp + 0x98]
fmul qword [esp + 0x18]
fcomp qword [0x48b850]
fnstsw ax
test ah, 5
jp 0x45d34c
call fcn.00447700
fild dword [eax + esi*4 + 0x94]
fmul qword [esp + 0x14]
fsub qword [0x48b848]
jmp 0x45d362
xor eax, eax
cmp dword [ebx + 0x188], eax
lea ecx, [esp + 0x98]
sete al
mov esi, eax
call fcn.00447700
cmp dword [eax + esi*4 + 0xc4], 1
jne 0x45d181
xor eax, eax
jmp 0x45d1a3
push edi
lea ecx, [esp + 0x98]
call fcn.00447700
cmp byte [eax + esi + 0xcc], 0
je 0x45d19c
mov eax, esi
jmp 0x45d1a3
mov eax, 1
sub eax, esi
push edi
lea ecx, [esp + 0x98]
lea esi, [eax + esi*2]
call fcn.00447700
fld qword [esp + 0xc4]
fmul qword [esp + 0x14]
mov ecx, esi
shl ecx, 4
mov edx, dword [eax + ecx + 0x44]
lea eax, [eax + ecx + 0x44]
mov dword [esp + 0x48], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x50], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x54], eax
call fcn.004794c0
cmp dword [0x4a062c], 0
jne 0x45d243
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x48]
mov dword [esp + 0x6c], ecx
fild dword [esp + 0x6c]
fmul st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45d229
fsub qword [0x48b848]
call fcn.00478370
mov edx, dword [esp + 0x50]
add edx, eax
mov dword [esp + 0x48], edx
jmp 0x45d07c
fadd qword [0x48b848]
call fcn.00478370
mov edx, dword [esp + 0x50]
add edx, eax
mov dword [esp + 0x48], edx
jmp 0x45d07c
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fmul st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45d27a
fsub qword [0x48b848]
call fcn.00478370
mov ecx, dword [esp + 0x54]
add ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x45d108
fadd qword [0x48b848]
call fcn.00478370
mov ecx, dword [esp + 0x54]
add ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x45d108
call fcn.00447700
fild dword [eax + esi*4 + 0x84]
fmul qword [esp + 0x14]
fadd qword [0x48b848]
call fcn.00478370
push edi
lea ecx, [esp + 0x98]
mov dword [esp + 0x5c], eax
call fcn.00447700
mov edx, dword [eax + esi*4 + 0x94]
push edi
lea ecx, [esp + 0x98]
mov dword [esp + 0x34], edx
call fcn.00447700
fild dword [eax + esi*4 + 0xa4]
push edi
lea ecx, [esp + 0x98]
fmul qword [esp + 0x18]
fcomp qword [0x48b850]
fnstsw ax
test ah, 5
jp 0x45d310
call fcn.00447700
fild dword [eax + esi*4 + 0xa4]
fmul qword [esp + 0x14]
fsub qword [0x48b848]
jmp 0x45d326
call fcn.00447700
fild dword [eax + esi*4 + 0xa4]
fmul qword [esp + 0x14]
fadd qword [0x48b848]
call fcn.00478370
push edi
lea ecx, [esp + 0x98]
mov dword [esp + 0x44], eax
call fcn.00447700
mov eax, dword [eax + esi*4 + 0xb4]
mov dword [esp + 0x5c], eax
jmp 0x45d3ff
call fcn.00447700
fild dword [eax + esi*4 + 0x94]
fmul qword [esp + 0x14]
fadd qword [0x48b848]
call fcn.00478370
push edi
lea ecx, [esp + 0x98]
mov dword [esp + 0x34], eax
call fcn.00447700
mov ecx, dword [eax + esi*4 + 0x84]
mov dword [esp + 0x58], ecx
push edi
lea ecx, [esp + 0x98]
call fcn.00447700
fild dword [eax + esi*4 + 0xb4]
push edi
lea ecx, [esp + 0x98]
fmul qword [esp + 0x18]
fcomp qword [0x48b850]
fnstsw ax
test ah, 5
jp 0x45d3c8
call fcn.00447700
fild dword [eax + esi*4 + 0xb4]
fmul qword [esp + 0x14]
fsub qword [0x48b848]
jmp 0x45d3de
call fcn.00447700
fild dword [eax + esi*4 + 0xb4]
fmul qword [esp + 0x14]
fadd qword [0x48b848]
call fcn.00478370
push edi
lea ecx, [esp + 0x98]
mov dword [esp + 0x60], eax
call fcn.00447700
mov edx, dword [eax + esi*4 + 0xa4]
mov dword [esp + 0x40], edx
push edi
lea ecx, [esp + 0x98]
call fcn.00447700
lea eax, [eax + esi*4 + 0x34]
push eax
lea ecx, [esp + 0x24]
call fcn.0040b050
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
sub ecx, eax
add ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
jle 0x45d468
test ecx, ecx
je 0x45d468
cmp dword [ecx + 0x444], 0
je 0x45d468
cmp dword [0x4a062c], 0
jne 0x45d458
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x50], edx
jmp 0x45d468
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x5c]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0x15c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetClipBox]
lea eax, [esp + 0x15c]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.USER32.dll_IntersectRect]
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xa4]
sub eax, ecx
test eax, eax
jle 0x45d5b4
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
sub esi, edx
test esi, esi
mov dword [esp + 0x44], esi
jle 0x45d5b4
mov esi, dword [esp + 0x20]
test esi, esi
je 0x45d51a
cmp dword [esi + 0x444], 0
je 0x45d51a
mov esi, dword [esp + 0x30]
push 0
push 0
push esi
mov esi, dword [esp + 0x64]
push esi
mov esi, edx
sub esi, dword [esp + 0x5c]
add esi, dword [esp + 0x6c]
push esi
mov esi, ecx
sub esi, dword [esp + 0x5c]
add esi, dword [esp + 0x54]
push esi
mov esi, dword [esp + 0x5c]
push esi
push eax
mov eax, dword [esp + 0x9c]
push edx
push ecx
mov ecx, dword [esp + 0x48]
push eax
call fcn.00444b70
jmp 0x45d57e
fld1
fsub qword [esp + 0x14]
fmul qword [0x48e1a8]
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x45d539
fsub qword [0x48b848]
jmp 0x45d53f
fadd qword [0x48b848]
call fcn.00478370
mov ecx, 0xff
sub ecx, eax
movzx eax, cl
mov ecx, eax
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
mov eax, dword [esp + 0x7c]
push esi
lea edx, [esp + 0xa8]
push edx
push eax
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea ecx, [esp + 0xa4]
push ecx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push 4
mov esi, eax
mov eax, dword [esp + 0x40]
push esi
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea ecx, [esp + 0x94]
add edi, 1
call fcn.004476e0
cmp edi, eax
jl 0x45cf80
mov esi, dword [esp + 0x7c]
mov eax, dword [ebx + 0x188]
test eax, eax
mov edi, 1
jne 0x45d5eb
cmp dword [esp + 0x408], edi
je 0x45d810
xor ecx, ecx
test eax, eax
setne cl
cmp dword [esp + ecx*4 + 0x408], edi
jne 0x45d5ff
xor eax, eax
jmp 0x45d611
cmp byte [esp + ecx + 0x410], 0
je 0x45d60f
mov eax, edi
sub eax, ecx
jmp 0x45d611
mov eax, ecx
lea eax, [eax + ecx*2]
mov ecx, eax
shl ecx, 4
mov edx, dword [esp + ecx + 0x388]
lea ecx, [esp + ecx + 0x388]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x50], edx
mov edx, dword [esp + eax*4 + 0x3c8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + eax*4 + 0x3d8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + eax*4 + 0x3e8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + eax*4 + 0x3f8]
mov dword [esp + 0x40], edx
lea edx, [esp + eax*4 + 0x378]
mov dword [esp + 0x5c], ecx
push edx
lea ecx, [esp + 0x24]
call fcn.0040b050
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x15c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xac]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
lea edx, [esp + 0xa4]
push edx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
fldz
fld qword [esp + 0x354]
mov dword [esp + 0x2c], eax
fcom st(1)
mov byte [esp + 0x3b], 0
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x45d6e4
fcomp qword [0x48b848]
fnstsw ax
test ah, 0x41
jne 0x45d706
jmp 0x45d6e6
fstp st(0)
mov eax, dword [esp + 0x344]
test eax, eax
jge 0x45d6fc
cmp dword [ebx + 0x188], 0
je 0x45d750
test eax, eax
jle 0x45d706
cmp dword [ebx + 0x188], edi
je 0x45d750
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0x2c]
push 1
push eax
push ecx
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov edx, dword [esp + 0x2c]
push edx
push edi
call dword [sym.imp.GDI32.dll_EqualRgn]
test eax, eax
jne 0x45d73e
mov byte [esp + 0x3b], 1
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp byte [esp + 0x3b], 0
je 0x45d7e5
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
sub eax, edx
test eax, eax
mov dword [esp + 0x88], eax
jle 0x45d7e5
mov edi, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
sub edi, eax
test edi, edi
jle 0x45d7e5
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x45d7cd
cmp dword [ecx + 0x444], 0
je 0x45d7cd
push 0
push 0
push dword [esp + 0x38]
mov ecx, eax
sub ecx, dword [esp + 0x58]
push dword [esp + 0x64]
add ecx, dword [esp + 0x6c]
push ecx
mov ecx, edx
sub ecx, dword [esp + 0x5c]
add ecx, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0xa0]
push edi
push ecx
mov ecx, dword [esp + 0x40]
push eax
push edx
push esi
call fcn.00444b70
jmp 0x45d7e5
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea edx, [esp + 0xa8]
push edx
push esi
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
push 4
push eax
push edi
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edi, 1
mov eax, dword [ebx + 0x188]
cmp eax, edi
jne 0x45d827
cmp dword [esp + 0x330], edi
je 0x45da4b
xor ecx, ecx
test eax, eax
sete cl
cmp dword [esp + ecx*4 + 0x330], edi
jne 0x45d83b
xor eax, eax
jmp 0x45d84d
cmp byte [esp + ecx + 0x338], 0
je 0x45d84b
mov eax, edi
sub eax, ecx
jmp 0x45d84d
mov eax, ecx
lea eax, [eax + ecx*2]
mov edx, eax
shl edx, 4
lea ecx, [esp + edx + 0x2b0]
mov edx, dword [ecx]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 4]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x50], edx
mov edx, dword [esp + eax*4 + 0x2f0]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + eax*4 + 0x300]
mov dword [esp + 0x58], edx
mov edx, dword [esp + eax*4 + 0x310]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + eax*4 + 0x320]
mov dword [esp + 0x40], edx
lea edx, [esp + eax*4 + 0x2a0]
mov dword [esp + 0x5c], ecx
push edx
lea ecx, [esp + 0x24]
call fcn.0040b050
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x15c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xac]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
lea edx, [esp + 0xa4]
push edx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
fldz
fld qword [esp + 0x27c]
mov dword [esp + 0x2c], eax
fcom st(1)
mov byte [esp + 0x3b], 0
fnstsw ax
fstp st(1)
test ah, 5
jnp 0x45d91b
fcomp qword [0x48b848]
fnstsw ax
test ah, 5
jp 0x45d942
jmp 0x45d91d
fstp st(0)
mov eax, dword [esp + 0x26c]
test eax, eax
jle 0x45d938
cmp dword [ebx + 0x188], 0
je 0x45d98c
mov edi, 1
test eax, eax
jge 0x45d942
cmp dword [ebx + 0x188], edi
je 0x45d98c
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0x2c]
push 1
push eax
push ecx
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov edx, dword [esp + 0x2c]
push edx
push edi
call dword [sym.imp.GDI32.dll_EqualRgn]
test eax, eax
jne 0x45d97a
mov byte [esp + 0x3b], 1
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp byte [esp + 0x3b], 0
je 0x45da25
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa4]
sub eax, edx
test eax, eax
mov dword [esp + 0x88], eax
jle 0x45da25
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xa8]
sub ecx, eax
test ecx, ecx
mov dword [esp + 0x44], ecx
jle 0x45da25
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x45da0d
cmp dword [ecx + 0x444], 0
je 0x45da0d
push 0
push 0
push dword [esp + 0x38]
mov edi, eax
sub edi, dword [esp + 0x58]
push dword [esp + 0x64]
add edi, dword [esp + 0x6c]
push edi
mov edi, edx
sub edi, dword [esp + 0x5c]
add edi, dword [esp + 0x54]
push edi
mov edi, dword [esp + 0x5c]
push edi
mov edi, dword [esp + 0xa4]
push edi
push eax
push edx
push esi
call fcn.00444b70
jmp 0x45da25
push 0
call dword [sym.imp.GDI32.dll_GetStockObject]
push eax
lea eax, [esp + 0xa8]
push eax
push esi
call dword [sym.imp.USER32.dll_FillRect]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
push 4
push ecx
push edi
push edi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov edx, dword [esp + 0x2c]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea ecx, [ebx + 0x264]
xor edi, edi
call fcn.004476e0
test eax, eax
jle 0x45da9a
lea esp, [esp]
push edi
lea ecx, [ebx + 0x264]
call fcn.00447700
add eax, 8
push edi
lea ecx, [ebx + 0x264]
mov dword [esp + 0x70], eax
call fcn.00447700
mov ecx, dword [esp + 0x6c]
fld qword [ecx]
lea ecx, [ebx + 0x264]
fstp qword [eax + 0x10]
add edi, 1
call fcn.004476e0
cmp edi, eax
jl 0x45da60
lea edx, [esp + 0x15c]
push edx
push esi
call dword [sym.imp.GDI32.dll_GetClipBox]
mov eax, dword [0x4a0668]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edi, eax
push edi
lea ecx, [esp + 0x160]
push ecx
push esi
call dword [sym.imp.USER32.dll_FillRect]
push edi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
call edi
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov edx, dword [esp + 0x3c]
push edx
call edi
mov ebx, dword [ebx + 8]
push esi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
lea ecx, [esp + 0x20]
mov byte [esp + 0x690], 0x16
call fcn.00401000
lea ecx, [esp + 0x344]
mov byte [esp + 0x690], 0x15
call fcn.00448370
lea ecx, [esp + 0x26c]
mov byte [esp + 0x690], 0x14
call fcn.00448370
lea ecx, [esp + 0x94]
mov dword [esp + 0x690], 0xffffffff
call fcn.00450c50
jmp case.0x45bddb.518
sub eax, dword [ebx + 0x274]
mov dword [esp + 0x64], esi
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x278]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
lea edi, [ebx + 0x264]
mov ecx, edi
mov dword [esp + 0x690], 0x19
mov dword [esp + 0x40], esi
call fcn.004476e0
test eax, eax
jle 0x45dccb
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x40]
push edx
mov ecx, edi
lea esi, [eax + 0x24]
call fcn.00447700
mov eax, dword [eax + 0x1c]
add eax, dword [esi]
lea ecx, [esp + 0x48]
mov dword [esp + 0x24], eax
xor esi, esi
call fcn.0040ad90
test eax, eax
jle 0x45dc96
nop
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
add eax, 0x24
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x70], eax
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + 0x1c]
mov edx, dword [esp + 0x6c]
add eax, dword [edx]
lea ecx, [esp + 0x48]
cmp eax, dword [esp + 0x24]
jg 0x45dc13
add esi, 1
call fcn.0040ad90
cmp esi, eax
jl 0x45dbc0
jmp 0x45dc96
call fcn.0040ad90
add eax, 1
push eax
lea ecx, [esp + 0x4c]
call fcn.0040fc20
lea ecx, [esp + 0x48]
call fcn.0040ad90
sub eax, 1
cmp eax, esi
mov dword [esp + 0x8c], eax
jle 0x45dc86
lea esp, [esp]
mov eax, dword [esp + 0x8c]
add eax, 0xffffffff
push eax
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov ecx, dword [esp + 0x8c]
push ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x70], eax
call fcn.004342d0
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov eax, dword [esp + 0x8c]
sub eax, 1
cmp eax, esi
mov dword [esp + 0x8c], eax
jg 0x45dc40
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [esp + 0x40]
mov dword [eax], edx
lea ecx, [esp + 0x48]
call fcn.0040ad90
cmp esi, eax
jne 0x45dcb1
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x4c]
call fcn.0040fc30
mov esi, dword [esp + 0x40]
add esi, 1
mov ecx, edi
mov dword [esp + 0x40], esi
call fcn.004476e0
cmp esi, eax
jl 0x45db88
or esi, 0xffffffff
cmp dword [0x4a062c], 0
jne 0x45dd0f
cmp dword [ebx + 0x188], 0
mov ecx, edi
je 0x45dd63
call fcn.004476e0
mov ebx, eax
sub ebx, 1
mov dword [esp + 0x44], ebx
mov eax, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x5c], esi
jmp 0x45dd87
mov eax, dword [ebx + 0x30c]
test eax, eax
je 0x45dd61
cmp eax, 1
jne 0x45dd27
cmp dword [ebx + 0x188], 0
je 0x45dd61
cmp eax, 3
jne 0x45dd35
cmp dword [ebx + 0x188], 0
je 0x45dd61
mov ecx, edi
call fcn.004476e0
mov ebx, eax
sub ebx, 1
mov dword [esp + 0x44], ebx
mov eax, esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x5c], esi
jmp 0x45dd8b
mov ecx, edi
xor ebx, ebx
mov dword [esp + 0x44], ebx
call fcn.004476e0
mov ecx, 1
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], 2
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x7c], eax
xor ecx, ecx
cmp ebx, eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc4], 0xfffffffe
mov esi, ebx
je 0x45e493
lea ebx, [ebx]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x60], eax
je 0x45e485
mov ecx, eax
mov eax, dword [esp + 0x5c]
mov ebx, ecx
shl ebx, 5
shl eax, 5
lea ecx, [ecx*4 + 0xc4]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x88], ecx
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x60]
cmp ecx, dword [eax + edx*8 + 0x1c]
je 0x45e45b
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
mov edx, dword [eax + ecx*8 + 0x1c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
neg eax
mov dword [esp + 0x94], eax
mov eax, 1
sub eax, ecx
mov dword [esp + 0xc4], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xb4], eax
jmp 0x45de60
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x88]
cmp dword [eax + ecx], 1
jne 0x45de8f
cmp dword [esp + 0x8c], 1
je 0x45e42d
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
cmp byte [eax + ecx + 0xcc], 0
je 0x45debe
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x58], edx
jmp 0x45dec9
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x58], eax
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax]
lea ecx, [ecx + edx*2 + 7]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x24], ecx
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0x27c]
mov ecx, dword [esp + 0x24]
cmp edx, dword [eax + ecx]
jne 0x45df1c
mov edx, dword [esp + 0x90]
mov eax, dword [edx + 0x278]
sub eax, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0x150]
mov ecx, dword [esp + 0x24]
cmp edx, dword [eax + ecx]
jne 0x45e14c
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x180]
cmp ecx, 1
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
jle 0x45e0f6
mov edx, dword [eax + 0x188]
test edx, edx
jne 0x45df7b
cmp dword [eax + 0x170], 1
je 0x45df89
cmp edx, 1
jne 0x45dfcf
cmp dword [eax + 0x170], 2
jne 0x45dfcf
cmp dword [0x4a062c], 0
push esi
lea ecx, [esp + 0x4c]
jne 0x45dfb3
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [eax + ebx + 0x44]
mov dword [esp + 0x40], ecx
jmp 0x45e14c
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + ebx + 0x48]
mov dword [esp + 0x40], eax
jmp 0x45e14c
cmp ecx, 1
jle 0x45e0f6
mov ecx, dword [eax + 0x188]
cmp ecx, 1
jne 0x45dfeb
cmp dword [eax + 0x170], ecx
je 0x45e000
test ecx, ecx
jne 0x45e0f6
cmp dword [eax + 0x170], 2
jne 0x45e0f6
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
cmp dword [eax + edx*8 + 0x34], 0
lea eax, [eax + edx*8 + 0x34]
push esi
lea ecx, [esp + 0x4c]
je 0x45e0bf
cmp dword [0x4a062c], 0
jne 0x45e07a
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
lea edx, [eax + ecx*8 + 0x84]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], edx
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + ebx + 0x4c]
mov ecx, dword [esp + 0x24]
sub eax, dword [ecx]
mov dword [esp + 0x40], eax
jmp 0x45e14c
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
lea edx, [eax + ecx*8 + 0x94]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], edx
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + ebx + 0x50]
mov ecx, dword [esp + 0x24]
sub eax, dword [ecx]
mov dword [esp + 0x40], eax
jmp 0x45e14c
cmp dword [0x4a062c], 0
jne 0x45e0e1
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + ebx + 0x44]
mov dword [esp + 0x40], eax
jmp 0x45e14c
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [eax + ebx + 0x48]
jmp 0x45e148
cmp dword [0x4a062c], 0
push esi
lea ecx, [esp + 0x4c]
jne 0x45e127
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + edx*2]
shl ecx, 4
mov edx, dword [eax + ecx + 0x44]
jmp 0x45e148
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + edx*2]
shl ecx, 4
mov edx, dword [eax + ecx + 0x48]
mov dword [esp + 0x40], edx
cmp dword [0x4a062c], 0
push esi
lea ecx, [esp + 0x4c]
jne 0x45e1ae
call fcn.004342d0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax]
lea ecx, [ecx + edx*2]
shl ecx, 4
mov dword [esp + 0x24], ecx
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x24]
lea edx, [eax + ecx + 0x4c]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x5c], edx
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x24]
sub ecx, dword [eax + edx + 0x44]
jmp 0x45e331
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x88]
cmp dword [eax + ecx], 2
jne 0x45e2db
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x5c]
cmp dword [esp + 0x8c], edx
jne 0x45e2d7
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
lea ecx, [eax + ebx + 0x60]
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
sub ecx, dword [eax + ebx + 0x58]
push esi
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
lea eax, [eax + ebx + 0x50]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], eax
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
sub ecx, dword [eax + ebx + 0x48]
push esi
cmp ecx, dword [esp + 0x5c]
lea ecx, [esp + 0x4c]
jle 0x45e2a0
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
lea eax, [eax + ebx + 0x50]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], eax
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
sub ecx, dword [eax + ebx + 0x48]
jmp 0x45e331
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
lea ecx, [eax + ebx + 0x60]
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
sub ecx, dword [eax + ebx + 0x58]
jmp 0x45e331
xor ecx, ecx
jmp 0x45e331
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + edx*2]
shl ecx, 4
lea edx, [eax + ecx + 0x48]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], edx
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x58]
lea ecx, [ecx + edx*2 + 5]
mov edx, dword [esp + 0x24]
shl ecx, 4
mov ecx, dword [eax + ecx]
sub ecx, dword [edx]
mov eax, dword [esp + 0x90]
cmp dword [eax + 0x180], 1
jle 0x45e429
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x60]
cmp dword [eax + edx*8 + 0x34], 0
lea eax, [eax + edx*8 + 0x34]
push esi
lea ecx, [esp + 0x4c]
je 0x45e3b4
cmp dword [0x4a062c], 0
jne 0x45e395
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
mov ecx, dword [eax + ecx*8 + 0x84]
jmp 0x45e429
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x60]
mov ecx, dword [eax + ecx*8 + 0x94]
jmp 0x45e429
cmp dword [0x4a062c], 0
jne 0x45e3f4
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
lea eax, [eax + ebx + 0x4c]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x28], eax
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
sub ecx, dword [eax + ebx + 0x44]
jmp 0x45e429
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
lea ecx, [eax + ebx + 0x50]
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
sub ecx, dword [eax + ebx + 0x48]
add dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x94]
add dword [esp + 0xb4], edx
add ecx, eax
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
jne 0x45de60
jmp 0x45e45f
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
add ebx, dword [esp + 0xb8]
add ecx, eax
add eax, eax
add eax, eax
add dword [esp + 0x88], eax
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x60], ecx
jne 0x45dde5
add esi, dword [esp + 0x2c]
cmp esi, dword [esp + 0x7c]
jne 0x45ddb0
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x90]
add ecx, dword [esp + 0x3c]
cmp dword [esi + 0x284], 0
mov ebx, dword [esp + 0x40]
jne 0x45e4be
mov eax, ebx
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
mov dword [esi + 0x284], eax
mov eax, dword [esi + 0x284]
imul eax, dword [esp + 0x14]
cdq
idiv dword [0x4a0628]
mov edx, dword [esp + 0x90]
mov esi, eax
sub esi, dword [edx + 0x288]
cmp ecx, ebx
mov dword [edx + 0x288], eax
jge 0x45e4f2
lea eax, [esi + ecx]
cmp eax, ebx
jle 0x45e4ff
jmp 0x45e4fb
neg esi
lea edx, [esi + ecx]
cmp edx, ebx
jge 0x45e4ff
mov esi, ebx
sub esi, ecx
lea eax, [esi + ecx]
cmp eax, ebx
jne 0x45e56e
push 0
mov ecx, edi
call fcn.00451d40
mov esi, dword [esp + 0x90]
or eax, 0xffffffff
cmp dword [esi + 0x150], eax
je 0x45e52a
cmp dword [esi + 0x148], 0
je 0x45e553
cmp dword [esi + 0x154], eax
je 0x45e53b
cmp dword [esi + 0x14c], 0
je 0x45e553
mov ecx, dword [esi + 8]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi + 8]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esp + 0x34]
push 0xe
push eax
call dword [sym.imp.USER32.dll_KillTimer]
lea ecx, [esp + 0x48]
call fcn.0046d090
jmp case.0x45bddb.518
mov ebx, dword [esp + 0x90]
mov eax, dword [ebx + 8]
add dword [esp + 0x3c], esi
add dword [ebx + 0x278], esi
lea ecx, [esp + 0x41c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [esp + 0x41c]
push edx
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov ebx, dword [ebx + 8]
push ebx
mov dword [esp + 0x28], eax
call dword [sym.imp.USER32.dll_GetDC]
cmp dword [0x4a062c], 0
push 0
push 0
mov ebx, eax
push 0
mov dword [esp + 0x94], ebx
push 0
jne 0x45e5cc
push 0
push esi
jmp 0x45e5cf
push esi
push 0
push ebx
call dword [sym.imp.USER32.dll_ScrollDC]
test esi, esi
mov edx, dword [esp + 0x424]
mov eax, dword [esp + 0x41c]
mov ecx, dword [esp + 0x420]
mov dword [esp + 0x164], edx
mov edx, dword [esp + 0x428]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], ecx
mov dword [esp + 0x168], edx
jle 0x45e631
cmp dword [0x4a062c], 0
jne 0x45e626
add eax, esi
mov dword [esp + 0x164], eax
jmp 0x45e655
add ecx, esi
mov dword [esp + 0x168], ecx
jmp 0x45e655
cmp dword [0x4a062c], 0
jne 0x45e64c
mov eax, dword [esp + 0x424]
add eax, esi
mov dword [esp + 0x15c], eax
jmp 0x45e655
add edx, esi
mov dword [esp + 0x160], edx
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x7c]
mov byte [esp + 0x690], 0x1a
mov dword [esp + 0xc4], 0xfffffffe
mov dword [esp + 0x40], eax
je 0x45eb8e
mov ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 0x20]
mov dword [esp + 0x60], ebx
je 0x45eb71
mov ecx, ebx
mov eax, ecx
shl eax, 5
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
shl eax, 5
lea ecx, [ecx*4 + 0x2c]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x34], ecx
jmp 0x45e6c0
mov edx, dword [esp + 0x40]
push edx
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0xc4]
cmp ecx, dword [eax + ebx*8 + 0x1c]
je 0x45eb4a
mov esi, dword [esp + 0x40]
push esi
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov edx, dword [eax]
push edx
mov ecx, edi
call fcn.00447700
mov eax, dword [eax + ebx*8 + 0x1c]
push esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0xc8], eax
call fcn.004342d0
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x5c]
neg eax
mov dword [esp + 0x94], eax
mov eax, 1
sub eax, ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xb4], eax
jmp 0x45e750
mov edx, dword [esp + 0x40]
push edx
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
mov ecx, dword [esp + 0x34]
cmp dword [eax + ecx + 0x98], 1
jne 0x45e784
cmp dword [esp + 0x8c], 1
je 0x45eb1c
mov edx, dword [esp + 0x40]
push edx
lea ecx, [esp + 0x4c]
call fcn.004342d0
mov eax, dword [eax]
push eax
mov ecx, edi
call fcn.00447700
cmp byte [eax + ebx + 0xcc], 0
je 0x45e7b3
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x58], ecx
jmp 0x45e7be
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x58], edx
mov ecx, dword [esp + 0x58]
lea eax, [ecx + ebx*2]
shl eax, 4
mov edx, dword [eax + esi + 0x44]
lea eax, [eax + esi + 0x44]
mov dword [esp + 0xa4], edx
mov edx, dword [eax + 4]
mov dword [esp + 0xa8], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xac], edx
mov eax, dword [eax + 0xc]
lea edx, [ecx + ebx*2]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + edx*4 + 0x84]
lea edx, [ecx + ebx*2]
lea ecx, [ecx + ebx*2]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + edx*4 + 0x94]
lea edx, [esi + ecx*4 + 0x34]
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x18], eax
call fcn.0040b050
cmp dword [esp + 0x64], 0
je 0x45e930
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x444], 0
je 0x45e930
mov eax, dword [esp + 0x90]
mov edx, dword [eax + 0x180]
cmp edx, 1
jle 0x45e8be
mov ecx, dword [eax + 0x188]
test ecx, ecx
mov eax, dword [esp + 0x34]
jne 0x45e864
cmp dword [eax + esi], 1
je 0x45e86f
cmp ecx, 1
jne 0x45e8c2
cmp dword [eax + esi], 2
jne 0x45e8c2
cmp dword [0x4a062c], 0
jne 0x45e8a5
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + ebx*8 + 0x84]
mov edx, dword [esp + 0x3c]
add ecx, eax
push 0
sub edx, eax
push edx
lea eax, [esp + 0xac]
mov dword [esp + 0xb4], ecx
push eax
jmp 0x45e96b
mov edx, dword [esi + ebx*8 + 0x94]
mov eax, dword [esp + 0xa8]
add edx, eax
mov dword [esp + 0xb0], edx
jmp 0x45e937
mov eax, dword [esp + 0x34]
cmp edx, 1
jle 0x45e930
mov ecx, dword [esp + 0x90]
mov ecx, dword [ecx + 0x188]
cmp ecx, 1
jne 0x45e8de
cmp dword [eax + esi], ecx
je 0x45e8e8
test ecx, ecx
jne 0x45e930
cmp dword [eax + esi], 2
jne 0x45e930
cmp dword [0x4a062c], 0
jne 0x45e919
mov eax, dword [esp + 0xac]
sub eax, dword [esi + ebx*8 + 0x84]
mov edx, dword [esp + 0x3c]
push 0
sub edx, eax
mov dword [esp + 0xa8], eax
push edx
lea eax, [esp + 0xac]
push eax
jmp 0x45e96b
mov eax, dword [esp + 0xb0]
sub eax, dword [esi + ebx*8 + 0x94]
mov dword [esp + 0xa8], eax
jmp 0x45e937
mov eax, dword [esp + 0xa8]
cmp dword [0x4a062c], 0
jne 0x45e95a
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x3c]
push 0
sub edx, eax
push edx
lea eax, [esp + 0xac]
push eax
jmp 0x45e96b
mov ecx, dword [esp + 0x3c]
sub ecx, eax
push ecx
push 0
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [esp + 0x58]
lea eax, [esi + ebx*2]
cmp byte [eax + ecx + 0xce], 0
lea eax, [eax + ecx + 0xce]
jne 0x45e9d2
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x17c], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
mov dword [esp + 0x178], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x180], edx
je 0x45ea5d
mov byte [eax], 1
jmp 0x45e9f4
lea edx, [esp + 0x15c]
push edx
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x180]
push ecx
call dword [sym.imp.USER32.dll_IntersectRect]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x45ea5d
cmp dword [ecx + 0x444], 0
je 0x45ea5d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
push 0
push 0
push edx
push eax
mov eax, dword [esp + 0x18c]
mov ecx, eax
sub ecx, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x18c]
mov edx, ecx
sub edx, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0x19c]
sub edx, eax
push edx
mov edx, dword [esp + 0x19c]
sub edx, ecx
push edx
push eax
mov eax, dword [esp + 0xac]
push ecx
mov ecx, dword [esp + 0x8c]
push eax
call fcn.00444b70
jmp 0x45ea88
push 0xffffff
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov edx, dword [esp + 0x88]
mov ebx, eax
push ebx
lea ecx, [esp + 0x17c]
push ecx
push edx
call dword [sym.imp.USER32.dll_FillRect]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
lea eax, [esp + 0xa4]
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
push 4
mov ebx, eax
mov eax, dword [esp + 0x28]
push ebx
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [0x4a062c], 0
jne 0x45eac7
mov eax, dword [esp + 0xac]
sub eax, dword [esp + 0xa4]
jmp 0x45eb14
mov ecx, dword [esp + 0x34]
cmp dword [ecx + esi + 0x98], 2
jne 0x45eb06
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0x5c]
cmp dword [esp + 0x8c], edx
jne 0x45eb02
mov edx, dword [esp + 0x44]
mov eax, dword [edx + esi + 0x60]
mov ecx, dword [edx + esi + 0x50]
sub eax, dword [edx + esi + 0x58]
sub ecx, dword [edx + esi + 0x48]
cmp ecx, eax
jle 0x45eb14
mov eax, ecx
jmp 0x45eb14
xor eax, eax
jmp 0x45eb14
mov eax, dword [esp + 0xb0]
sub eax, dword [esp + 0xa8]
add dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x94]
add dword [esp + 0xb4], edx
add ecx, eax
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
jne 0x45e750
jmp 0x45eb4e
mov eax, dword [esp + 0x5c]
add ebx, eax
add eax, eax
add eax, eax
add dword [esp + 0x34], eax
mov eax, dword [esp + 0xb8]
add dword [esp + 0x44], eax
cmp ebx, dword [esp + 0x20]
mov dword [esp + 0x60], ebx
jne 0x45e6c0
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
jne 0x45e682
mov ebx, dword [esp + 0x88]
lea ecx, [esp + 0x13c]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_GetClipBox]
mov edx, dword [esp + 0x24]
mov edi, dword [sym.imp.GDI32.dll_SelectClipRgn]
push edx
push ebx
call edi
mov eax, dword [0x4a0668]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
push esi
lea ecx, [esp + 0x140]
push ecx
push ebx
call dword [sym.imp.USER32.dll_FillRect]
push esi
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push 0
push ebx
call edi
mov edx, dword [esp + 0x24]
push edx
call esi
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 8]
push ebx
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
lea ecx, [esp + 0x64]
mov byte [esp + 0x690], 0x19
call fcn.00401000
lea ecx, [esp + 0x48]
call fcn.0046d090
jmp case.0x45bddb.518
cmp edi, 0x10
jne case.0x45bddb.518
cmp dword [ebx + 0x394], 1
push 0
jne 0x45ec34
cmp dword [0x4a0550], 0
jne 0x45ec30
push 0x5b
jmp 0x45ec46
push 0x7f
jmp 0x45ec46
cmp dword [0x4a0550], 0
jne 0x45ec41
push 0x5c
jmp 0x45ec46
push 0x80
call fcn.004164f0
add esp, 8
test eax, eax
je case.0x45bddb.518
push 0
mov ecx, ebx
call fcn.004476a0
jmp 0x460bf7
lea ecx, [edi*8]
sub ecx, edi
push 0
lea ecx, [ebx + ecx*4 + 0x274]
call fcn.00402760
mov esi, dword [esp + 0x34]
lea edx, [esp + 0x15c]
push edx
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
cmp edi, 1
jne 0x45ecd4
mov eax, dword [esp + 0x160]
add eax, 0xe
cmp dword [ebx + 0x148], 0
mov dword [esp + 0x168], eax
jne 0x45ecb6
cmp dword [ebx + 0x118], 0
je 0x45ecc7
push 0
lea eax, [esp + 0x160]
push eax
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
push esi
call dword [sym.imp.USER32.dll_KillTimer]
jmp case.0x45bddb.518
cmp edi, 2
jne 0x45ecec
mov ecx, dword [esp + 0x168]
add ecx, 0xfffffff2
mov dword [esp + 0x160], ecx
jmp 0x45ecb6
cmp edi, 3
jne 0x45ecb6
mov edx, dword [esp + 0x168]
add edx, 0xfffffff2
mov dword [esp + 0x160], edx
jmp 0x45ecb6
mov dword [0x4a0694], 2
jmp case.0x45b979.278
cmp esi, 0x1701
ja 0x45ef5c
je 0x45edb3
cmp esi, 0x232
jne case.0x45b979.278
mov dword [0x4a0694], 0
cmp dword [ebx + 0x118], 0
jne 0x45ed8f
cmp dword [0x4a05f0], 0
je 0x45ed64
cmp dword [ebx + 0x19c], 0
je 0x45ed64
push 0
mov ecx, ebx
call fcn.00456310
jmp case.0x45b979.278
mov ecx, dword [ebx + 0x19c]
push ecx
mov ecx, ebx
call fcn.0044d550
mov edx, dword [ebx + 8]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp case.0x45b979.278
mov ecx, ebx
call fcn.0044bb60
mov ecx, dword [ebx + 8]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [ebx + 8]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp case.0x45b979.278
cmp dword [ebx + 0x118], 0
jne case.0x45bddb.518
lea eax, [ebx + 0x158]
mov dword [esp + 0x24], eax
lea eax, [ebx + 0x150]
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], 2
mov ecx, dword [esp + 0x44]
mov esi, dword [ecx]
test esi, esi
jl 0x45ef42
mov ecx, ebx
call fcn.0040b080
cmp esi, eax
jge 0x45ef42
lea edx, [edi + 8]
push edx
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
push eax
call fcn.00401c90
add esp, 8
test al, al
je 0x45ef42
mov eax, dword [edi + 0x128]
cmp eax, 0xa
jge 0x45ee36
push 0
push eax
mov eax, dword [edi + 0x12c]
push eax
mov ecx, ebx
call fcn.00448510
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [edi + 0x114]
cmp ecx, 0x7d0
jbe 0x45ef42
mov esi, 3
cmp dword [edi + 0x128], esi
mov dword [edi + 0x114], eax
jne 0x45ef42
mov ecx, dword [edi + 0x60]
test ecx, ecx
lea eax, [edi + 0x60]
je 0x45ef42
cmp dword [ecx + 0x444], 0
je 0x45ef42
mov ecx, dword [esp + 0x44]
push eax
add ecx, 0xfffffff8
call fcn.0040b050
fldz
fcomp qword [edi + 0x118]
fnstsw ax
test ah, 0x44
jp 0x45eef4
cmp dword [edi + 0x128], esi
jne 0x45eef4
mov edx, dword [esp + 0x24]
fld qword [edx]
xor esi, esi
fstp qword [edi + 0x118]
mov eax, dword [ebx + 0x168]
fld1
mov dword [edi + 0x120], eax
mov ecx, dword [ebx + 0x16c]
mov dword [edi + 0x124], ecx
fst qword [ebx + 0x158]
push esi
fstp qword [ebx + 0x160]
push esi
mov ecx, ebx
mov dword [ebx + 0x168], esi
mov dword [ebx + 0x16c], esi
call fcn.00449370
mov dword [ebx + 0x6c], esi
jmp 0x45eef6
xor esi, esi
mov eax, dword [ebx + 8]
lea edx, [esp + 0x41c]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
cmp byte [0x4a0625], 0
je 0x45ef25
cmp dword [ebx + 0x2c], 1
je 0x45ef25
cmp dword [ebx + 0x30], 4
jne 0x45ef25
sub dword [esp + 0x428], 0x10
mov edx, dword [ebx + 8]
push esi
lea ecx, [esp + 0x420]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [ebx + 8]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
add dword [esp + 0x44], 4
add dword [esp + 0x24], 8
sub dword [esp + 0x6c], 1
jne 0x45eddc
jmp case.0x45bddb.518
cmp esi, 0x1707
ja 0x45fa50
je 0x45f881
sub esi, 0x1702
je 0x45ef96
sub esi, 4
jne case.0x45b979.278
mov ecx, dword [edi + 0xa0]
push 0
push 1
push ecx
mov ecx, ebx
call fcn.00448510
jmp case.0x45bddb.518
mov eax, dword [ebx + 0x118]
test eax, eax
je 0x45f067
cmp eax, 1
je 0x45f067
mov esi, dword [edi + 0x40]
test esi, esi
jl 0x45f787
lea ecx, [ebx + 0x1fc]
call fcn.0040ad30
cmp esi, eax
jge 0x45f787
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
add eax, 0x58
cmp dword [eax + 0x14], 0
push esi
lea ecx, [ebx + 0x1fc]
je 0x45eff1
call fcn.0040ad50
add eax, 0x58
jmp 0x45eff6
call fcn.0040ad50
mov ecx, dword [edi + 0x38]
test ecx, ecx
mov dword [eax + 0x30], ecx
jl 0x45f03b
mov edx, dword [edi + 0x30]
mov dword [eax + 0x28], edx
mov ecx, dword [edi + 0x34]
mov dword [eax + 0x2c], ecx
mov edx, dword [edi + 0x28]
mov dword [eax + 0x20], edx
mov ecx, dword [edi + 0x2c]
mov dword [eax + 0x24], ecx
mov edx, dword [edi + 0x3c]
mov dword [eax + 0x34], edx
lea eax, [edi + 0x60]
push eax
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
mov ecx, eax
add ecx, 0xb0
call fcn.0040b050
push 1
lea ecx, [esp + 0x140]
push ecx
push esi
mov ecx, ebx
call fcn.0044a330
mov eax, dword [esp + 0x34]
push 0
lea edx, [esp + 0x140]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x45f787
mov esi, dword [edi + 0x40]
test esi, esi
mov dword [esp + 0x6c], esi
jl 0x45f1a3
mov ecx, ebx
call fcn.0040b080
cmp esi, eax
jge 0x45f1a3
lea ecx, [ebx + 0x12c]
push esi
call fcn.00401330
mov ecx, dword [edi + 0x38]
mov dword [eax + 0x30], ecx
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
cmp dword [eax + 0x30], 0
jl 0x45f1a3
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
cmp dword [eax + 0x2c], 0
jne 0x45f119
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
cmp dword [eax + 0x28], 0
jne 0x45f119
mov eax, dword [edi + 0x30]
mov edi, dword [edi + 0x34]
push esi
lea ecx, [ebx + 0x12c]
mov dword [esp + 0x18], eax
call fcn.00401330
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edi
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 0x28]
mov edi, dword [eax + 0x2c]
push edx
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov dword [eax + 0x20], esi
mov esi, dword [esp + 0x6c]
mov dword [eax + 0x24], edi
mov edi, dword [esp + 0x7c]
cmp byte [edi + 0x6d], 0
je 0x45f155
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x4c], ecx
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov edx, dword [edi + 0x58]
push esi
lea ecx, [ebx + 0x12c]
mov dword [eax + 0x50], edx
call fcn.00401330
mov ecx, dword [edi + 0x5c]
mov dword [eax + 0x54], ecx
cmp byte [edi + 0x6e], 0
je 0x45f1a3
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov edx, dword [edi + 0x54]
push esi
lea ecx, [ebx + 0x12c]
mov dword [eax + 0x4c], edx
call fcn.00401330
mov ecx, dword [edi + 0x58]
mov dword [eax + 0x50], ecx
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov edx, dword [edi + 0x5c]
push esi
lea ecx, [ebx + 0x12c]
mov dword [eax + 0x54], edx
call fcn.00401330
mov ecx, dword [edi + 0x3c]
mov dword [eax + 0x34], ecx
cmp dword [edi + 0x38], 0
jl 0x45f381
mov eax, dword [edi + 0x60]
test eax, eax
je 0x45f2b9
cmp dword [eax + 0x444], 0
je 0x45f2b9
mov ecx, 0x4a1294
xor esi, esi
call fcn.0040adb0
test eax, eax
jle 0x45f202
lea eax, [edi + 8]
push eax
push esi
mov ecx, 0x4a1294
call fcn.0040add0
push eax
call fcn.00401c90
add esp, 8
test al, al
jne 0x45f202
mov ecx, 0x4a1294
add esi, 1
call fcn.0040adb0
cmp esi, eax
jl 0x45f1d5
mov ecx, 0x4a1294
call fcn.0040adb0
cmp esi, eax
jne 0x45f2b9
lea ecx, [esp + 0x194]
call fcn.00435ac0
lea edx, [edi + 8]
push edx
lea ecx, [esp + 0x198]
mov dword [esp + 0x694], 0x10
call fcn.00402ad0
mov esi, dword [edi + 0x40]
lea ecx, [ebx + 0x12c]
push esi
call fcn.00401330
mov eax, dword [eax + 0x4c]
push esi
lea ecx, [ebx + 0x12c]
mov dword [esp + 0x1e4], eax
call fcn.00401330
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x1e4], ecx
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov edx, dword [eax + 0x54]
lea eax, [edi + 0x60]
push eax
lea ecx, [esp + 0x1f0]
mov dword [esp + 0x1ec], edx
call fcn.0040b050
lea eax, [esp + 0x194]
push eax
mov ecx, 0x4a1294
call fcn.00456b90
lea ecx, [esp + 0x194]
mov dword [esp + 0x690], 0xffffffff
call fcn.00435ae0
cmp dword [edi + 0x64], 0
je 0x45f381
mov ecx, 0x4a12a4
xor esi, esi
call fcn.0040adb0
test eax, eax
jle 0x45f313
lea eax, [edi + 8]
push eax
push esi
mov ecx, 0x4a12a4
call fcn.0040add0
push eax
call fcn.00401c90
add esp, 8
test al, al
mov ecx, 0x4a12a4
jne 0x45f302
add esi, 1
call fcn.0040adb0
cmp esi, eax
jl 0x45f2d3
jmp 0x45f313
lea eax, [edi + 8]
push eax
push esi
call fcn.0040add0
mov ecx, eax
call fcn.00402ad0
mov ecx, 0x4a12a4
call fcn.0040adb0
cmp esi, eax
jne 0x45f381
lea ecx, [esp + 0x194]
call fcn.00435ac0
lea ecx, [edi + 8]
push ecx
lea ecx, [esp + 0x198]
mov dword [esp + 0x694], 0x11
call fcn.00402ad0
lea eax, [edi + 0x64]
push eax
lea ecx, [esp + 0x1f0]
call fcn.0040b050
lea edx, [esp + 0x194]
push edx
mov ecx, 0x4a12a4
call fcn.00456b90
lea ecx, [esp + 0x194]
mov dword [esp + 0x690], 0xffffffff
call fcn.00435ae0
cmp dword [edi + 0x68], 0
je 0x45f787
cmp dword [ebx + 0x118], 0
jne 0x45f679
lea eax, [ebx + 0x150]
mov dword [esp + 0x24], 0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
mov esi, dword [eax]
test esi, esi
jl 0x45f65b
mov ecx, ebx
call fcn.0040b080
cmp esi, eax
jge 0x45f65b
lea edx, [edi + 8]
push edx
lea ecx, [ebx + 0x12c]
push esi
call fcn.00401330
push eax
call fcn.00401c90
add esp, 8
test al, al
je 0x45f65b
cmp byte [edi + 0x6e], 0
je 0x45f65b
cmp dword [edi + 0x38], 0
jl 0x45f40a
mov ecx, dword [esp + 0x64]
lea eax, [edi + 0x60]
push eax
add ecx, 0xfffffff8
call fcn.0040b050
jmp 0x45f44d
push 0x45c
call fcn.00477736
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x690], 0x12
je 0x45f433
mov ecx, eax
call fcn.00444060
jmp 0x45f435
xor eax, eax
mov ecx, dword [esp + 0x64]
push eax
add ecx, 0xfffffff8
mov dword [esp + 0x694], 0xffffffff
call fcn.004085b0
fldz
fcomp qword [edi + 0x118]
fnstsw ax
test ah, 0x44
jnp 0x45f48c
fld qword [edi + 0x118]
fstp qword [ebx + 0x158]
fld qword [edi + 0x118]
fstp qword [ebx + 0x160]
mov ecx, dword [edi + 0x120]
mov dword [ebx + 0x168], ecx
mov edx, dword [edi + 0x124]
mov dword [ebx + 0x16c], edx
mov eax, dword [edi + 0x38]
test eax, eax
je 0x45f55f
xor ecx, ecx
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], ecx
mov word [esp + 0x140], cx
lea ecx, [esp + 0x13c]
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x698], 0x13
call fcn.0044d000
push 0x48baf8
lea ecx, [esp + 0x140]
call fcn.00402650
mov edx, dword [esp + 0x64]
mov eax, dword [edx]
push eax
lea ecx, [ebx + 0x12c]
call fcn.00401330
mov ecx, eax
call fcn.004017a0
push eax
call fcn.00442070
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
add esp, 4
mov esi, eax
push edx
lea ecx, [ebx + 0x12c]
add esi, esi
call fcn.00401330
mov ecx, eax
call fcn.004017a0
add eax, esi
push eax
lea ecx, [esp + 0x140]
call fcn.00402650
push 0xfa0
lea ecx, [esp + 0x140]
call fcn.004017a0
push eax
push 2
mov ecx, ebx
call fcn.0044d0b0
lea ecx, [esp + 0x13c]
mov dword [esp + 0x690], 0xffffffff
call fcn.00401f00
cmp dword [ebx + 0x154], 0xffffffff
je 0x45f573
cmp dword [esp + 0x24], 1
jne 0x45f65b
mov eax, dword [ebx + 0x19c]
push eax
mov ecx, ebx
call fcn.0044d550
cmp dword [0x4a0634], 0
je 0x45f643
lea esi, [ebx + 0x264]
mov ecx, esi
call fcn.004476e0
test eax, eax
jbe 0x45f643
mov ecx, esi
call fcn.0044b9b0
mov edx, dword [ebx + 0x150]
mov edi, eax
xor ecx, ecx
cmp dword [edi], ecx
setge cl
mov esi, ecx
mov dword [edi + esi*8 + 0x1c], edx
mov eax, dword [ebx + 0x154]
mov dword [edi + esi*8 + 0x20], eax
mov ecx, dword [ebx + 0x170]
lea edx, [ebx + 0x148]
mov dword [edi + esi*4 + 0x2c], ecx
push edx
lea ecx, [edi + esi*8 + 0x34]
call fcn.0040b050
lea eax, [ebx + 0x14c]
push eax
lea ecx, [edi + esi*8 + 0x38]
call fcn.0040b050
mov ecx, dword [ebx + 0x184]
mov dword [edi + esi*4 + 0xc4], ecx
mov ecx, ebx
call fcn.0044a620
mov byte [esi + edi + 0xcc], al
lea edx, [edi + esi*8 + 0xb4]
push edx
lea eax, [edi + esi*8 + 0xa4]
push eax
lea ecx, [edi + esi*8 + 0x94]
push ecx
lea edx, [edi + esi*8 + 0x84]
shl esi, 5
push edx
lea eax, [esi + edi + 0x44]
push eax
mov ecx, ebx
call fcn.0044aa10
mov edi, dword [esp + 0x7c]
jmp 0x45f65b
mov ecx, dword [ebx + 8]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [ebx + 8]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esp + 0x24]
add dword [esp + 0x64], 4
add eax, 1
cmp eax, 2
mov dword [esp + 0x24], eax
jl 0x45f3aa
jmp 0x45f787
cmp dword [edi + 0x38], 0
jl 0x45f787
cmp byte [edi + 0x6e], 0
je 0x45f787
mov esi, dword [edi + 0x44]
lea ecx, [ebx + 0x250]
push esi
mov dword [esp + 0x28], 1
call fcn.0040aea0
cmp dword [eax + 0xc], 1
jne 0x45f6b2
mov dword [esp + 0x24], 2
cmp dword [esp + 0x24], 0
jle 0x45f787
mov eax, dword [esp + 0x24]
mov dword [esp + 0x6c], eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x14c]
push edx
push esi
mov ecx, ebx
call fcn.0044af60
push esi
lea ecx, [ebx + 0x250]
call fcn.0040aea0
mov ecx, dword [edi + 0x40]
cmp ecx, dword [eax]
jne 0x45f750
mov eax, dword [esp + 0x34]
push 0
lea edx, [esp + 0x140]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
lea ecx, [ebx + 0x250]
call fcn.0040aea0
cmp dword [eax + 8], 2
jne 0x45f750
push esi
lea ecx, [ebx + 0x250]
call fcn.0040aea0
cmp dword [eax + 4], 0xffffffff
jne 0x45f750
mov edx, dword [esp + 0x34]
push 0
lea ecx, [esp + 0x150]
push ecx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
lea ecx, [ebx + 0x250]
call fcn.0040aea0
mov ecx, dword [edi + 0x40]
cmp ecx, dword [eax + 4]
jne 0x45f779
mov eax, dword [esp + 0x34]
push 0
lea edx, [esp + 0x150]
push edx
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
add esi, 1
sub dword [esp + 0x6c], 1
jne 0x45f6c5
mov ecx, dword [0x4a12b8]
xor esi, esi
test ecx, ecx
mov dword [esp + 0x24], esi
jne 0x45f79b
xor eax, eax
jmp 0x45f7a5
mov eax, dword [0x4a12bc]
sub eax, ecx
sar eax, 2
cmp esi, eax
jge 0x45f875
test ecx, ecx
je 0x45f7bf
mov eax, dword [0x4a12bc]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x45f7ca
call fcn.0047770d
mov ecx, dword [0x4a12b8]
cmp dword [ecx + esi*4], edi
jne 0x45f86d
mov ecx, dword [edi]
push 0x1388
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x45f7fc
push 0
push str.ERROR
push str.WaitForSingleObject_TimeOut_____nWM_LOADPICTURE_END
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, edi
call fcn.00435c20
push edi
call fcn.004775de
add esp, 4
mov ecx, 0x4a12b4
call fcn.00435a70
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, 0x4a12b4
call fcn.004342d0
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [0x4a12b8]
test ecx, ecx
jne 0x45f842
xor eax, eax
jmp 0x45f84c
mov eax, dword [0x4a12bc]
sub eax, ecx
sar eax, 2
push 0
add eax, 0xffffffff
push eax
mov ecx, 0x4a12b4
call fcn.00438b50
sub dword [0x4a0674], 1
mov ecx, dword [0x4a12b8]
mov esi, dword [esp + 0x24]
add esi, 1
jmp 0x45f78f
mov ecx, ebx
call fcn.00452fe0
jmp case.0x45bddb.518
push 1
xor esi, esi
push esi
push esi
mov ecx, ebx
call fcn.00448510
cmp dword [edi + 0x20], esi
jne 0x45f98a
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], esi
mov word [esp + 0x140], si
cmp dword [edi + 0xa4], esi
mov dword [esp + 0x690], 0xf
jne 0x45f919
lea edx, [esp + 0x13c]
push edx
push 0x1c4
call fcn.00442450
add esp, 8
push 0x48e118
lea ecx, [esp + 0x140]
call fcn.00402650
push esi
lea ecx, [edi + 0x90]
call fcn.004013a0
push eax
lea ecx, [esp + 0x140]
call fcn.00402630
push 0x7d0
lea ecx, [esp + 0x140]
call fcn.004017a0
push eax
push 3
jmp 0x45f96c
lea eax, [esp + 0x13c]
push eax
push 0x1c5
call fcn.00442450
add esp, 8
push 0x48e118
lea ecx, [esp + 0x140]
call fcn.00402650
push esi
lea ecx, [edi + 0x90]
call fcn.004013a0
push eax
lea ecx, [esp + 0x140]
call fcn.00402630
push 0x1770
lea ecx, [esp + 0x140]
call fcn.004017a0
push eax
push 2
mov ecx, ebx
call fcn.0044d0b0
lea ecx, [esp + 0x13c]
mov dword [esp + 0x690], 0xffffffff
call fcn.00401f00
xor esi, esi
lea esp, [esp]
mov ecx, dword [0x4a12c8]
test ecx, ecx
jne 0x45f99e
xor eax, eax
jmp 0x45f9a8
mov eax, dword [0x4a12cc]
sub eax, ecx
sar eax, 2
cmp esi, eax
jge case.0x45bddb.518
push esi
mov ecx, 0x4a12c4
call fcn.004342d0
cmp dword [eax], edi
jne 0x45fa48
mov ecx, dword [edi]
push 0x1388
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x45f9ec
push 0
push str.ERROR
push str.WaitForSingleObject_TimeOut_____nWM_SAVEPICTURE_END
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [edi]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, edi
call fcn.0043b000
push edi
call fcn.004775de
add esp, 4
mov ecx, 0x4a12c4
call fcn.00435a70
push esi
mov ecx, 0x4a12c4
mov ebx, eax
call fcn.004342d0
mov ecx, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [0x4a12c8]
test ecx, ecx
jne 0x45fa2e
xor eax, eax
jmp 0x45fa38
mov eax, dword [0x4a12cc]
sub eax, ecx
sar eax, 2
push 0
add eax, 0xffffffff
push eax
mov ecx, 0x4a12c4
call fcn.00438b50
add esi, 1
jmp 0x45f990
sub esi, 0x1800
je 0x45fd27
sub esi, 1
jne case.0x45b979.278
cmp dword [ebx + 0x118], 0
jne case.0x45bddb.518
mov eax, dword [edi + 0x40]
cmp eax, 2
je 0x45fc1f
cmp eax, 1
je 0x45fc1f
mov edx, dword [edi + 0x3c]
lea esi, [edi + 0x2c]
mov ecx, esi
mov dword [esp + 0x3c], edx
call fcn.00401310
cmp dword [esp + 0x3c], eax
jge 0x45fb36
mov eax, dword [esp + 0x3c]
push eax
mov ecx, esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x45fab9
mov eax, dword [eax + 4]
jmp 0x45fabc
add eax, 4
push eax
call fcn.00443f80
add esp, 4
cmp eax, 0xff
je 0x45fb20
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00401330
lea ecx, [ebx + 0x12c]
mov dword [eax + 0x48], edi
call fcn.00401310
mov edx, dword [esp + 0x3c]
push edx
mov ecx, esi
mov edi, eax
call fcn.00401330
mov dword [eax + 0x38], edi
mov eax, dword [esp + 0x3c]
push eax
mov ecx, esi
call fcn.00401330
push eax
lea ecx, [ebx + 0x12c]
call fcn.004053a0
mov edi, dword [esp + 0x7c]
add dword [esp + 0x3c], 1
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x3c], eax
jl 0x45faa2
lea eax, [edi + 0x4c]
push eax
call fcn.00442350
add esp, 4
test al, al
je 0x45fca8
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x3c], ecx
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x3c], eax
jge 0x45fca8
cmp dword [edi + 0x64], 8
mov edx, dword [edi + 0x60]
mov dword [esp + 0x14], edx
jb 0x45fb78
mov eax, dword [edi + 0x50]
mov dword [esp + 0x6c], eax
jmp 0x45fb7f
lea ecx, [edi + 0x50]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x3c]
push edx
mov ecx, esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x45fb96
mov eax, dword [eax + 4]
jmp 0x45fb99
add eax, 4
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
push ecx
push edx
push eax
call fcn.00477bc0
add esp, 0xc
test eax, eax
jne 0x45fc04
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov edi, eax
mov eax, dword [esp + 0x3c]
push eax
mov ecx, esi
call fcn.00401330
lea ecx, [ebx + 0x12c]
mov dword [eax + 0x48], edi
call fcn.00401310
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00401330
mov edx, dword [esp + 0x3c]
push edx
mov ecx, esi
mov dword [eax + 0x38], edi
call fcn.00401330
push eax
lea ecx, [ebx + 0x12c]
call fcn.004053a0
mov edi, dword [esp + 0x7c]
add dword [esp + 0x3c], 1
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x3c], eax
jl 0x45fb62
jmp 0x45fca8
mov eax, dword [edi + 0x3c]
lea esi, [edi + 0x2c]
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.00401310
cmp dword [esp + 0x2c], eax
jge 0x45fca8
mov edi, dword [esp + 0x2c]
lea ebx, [ebx]
lea ecx, [ebx + 0x12c]
call fcn.00401310
push edi
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00401330
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x48], ecx
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, esi
mov edi, eax
call fcn.00401330
mov dword [eax + 0x38], edi
mov edi, dword [esp + 0x2c]
push edi
mov ecx, esi
call fcn.00401330
push eax
lea ecx, [ebx + 0x12c]
call fcn.004053a0
add edi, 1
mov ecx, esi
mov dword [esp + 0x2c], edi
call fcn.00401310
cmp edi, eax
jl 0x45fc40
mov edi, dword [esp + 0x7c]
mov ecx, esi
call fcn.00401310
cmp dword [edi + 0x48], 0
mov dword [edi + 0x3c], eax
jne case.0x45bddb.518
lea ecx, [ebx + 0x12c]
call fcn.00401310
test eax, eax
je case.0x45bddb.518
cmp dword [0x4a0698], 0
jne 0x45fce1
push ebx
call fcn.0043f100
add esp, 4
cmp dword [ebx + 0x148], 0
jne 0x45fcf5
push 0
push 0
mov ecx, ebx
call fcn.00452340
mov ecx, ebx
call fcn.0040b080
push eax
mov ecx, 0x4a0a68
call fcn.004696c0
mov edx, dword [ebx + 0x150]
add edx, 1
push edx
mov ecx, 0x4a0a68
call fcn.00469a60
mov ecx, ebx
call fcn.0044ccb0
jmp 0x460bf7
cmp byte [edi + 0x70], 0
je 0x45fd56
mov esi, dword [ebx + 0x140]
test esi, esi
je 0x45fd47
mov ecx, esi
call fcn.00411ee0
push esi
call fcn.004775de
add esp, 4
mov dword [ebx + 0x140], 0
jmp case.0x45bddb.518
mov ecx, dword [edi + 0x48]
xor esi, esi
cmp ecx, esi
jge 0x45fde3
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], esi
mov word [esp + 0x140], si
mov eax, ecx
neg eax
cmp eax, 0x2ee0
mov dword [esp + 0x690], 1
jl 0x45fdd1
cmp eax, 0x32c8
jg 0x45fdd1
mov eax, 0xffffd120
sub eax, ecx
push eax
lea ecx, [esp + 0x420]
push str.HTTP__d
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [esp + 0x41c]
push edx
lea ecx, [esp + 0x140]
call fcn.00402a20
jmp 0x460b6f
lea eax, [esp + 0x13c]
push eax
push 0x1a4
jmp 0x460b67
mov eax, dword [ebx + 0x118]
cmp eax, esi
je 0x45fdf6
cmp eax, 1
jne 0x4601b4
mov eax, dword [edi + 0x40]
cmp eax, 2
je 0x45ff39
cmp eax, 1
je 0x45ff39
cmp eax, 3
mov dword [esp + 0x6c], esi
jne 0x45fe46
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401310
test eax, eax
jbe 0x45fe46
push 0
mov ecx, esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x45fe36
mov eax, dword [eax + 4]
jmp 0x45fe39
add eax, 4
push eax
call fcn.00442030
add esp, 4
mov dword [esp + 0x6c], eax
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x30], ecx
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x30], eax
jge 0x45ffbc
mov edx, dword [esp + 0x30]
push edx
mov ecx, esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x45fe78
mov eax, dword [eax + 4]
jmp 0x45fe7b
add eax, 4
push eax
call fcn.00443f80
add esp, 4
cmp eax, 0xff
je 0x45ff1e
mov eax, dword [esp + 0x30]
push eax
mov ecx, esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x45fea6
mov eax, dword [eax + 4]
jmp 0x45fea9
add eax, 4
mov ecx, dword [esp + 0x6c]
push 9
lea edx, [eax + ecx*2]
push str.__MACOSX_
push edx
call fcn.00477bc0
add esp, 0xc
test eax, eax
je 0x45ff1e
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov ecx, dword [esp + 0x30]
push ecx
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00401330
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x48], ecx
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov edx, dword [esp + 0x30]
push edx
lea ecx, [edi + 0x2c]
mov esi, eax
call fcn.00401330
mov dword [eax + 0x38], esi
mov eax, dword [esp + 0x30]
lea esi, [edi + 0x2c]
push eax
mov ecx, esi
call fcn.00401330
push eax
lea ecx, [ebx + 0x12c]
call fcn.004053a0
add dword [esp + 0x30], 1
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x30], eax
jl 0x45fe61
jmp 0x45ffbc
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x64], ecx
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x64], eax
jge 0x45ffbc
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov edx, dword [esp + 0x64]
push edx
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00401330
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x48], ecx
lea ecx, [ebx + 0x12c]
call fcn.00401310
mov esi, eax
mov eax, dword [esp + 0x64]
push eax
lea ecx, [edi + 0x2c]
call fcn.00401330
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x38], esi
push ecx
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401330
push eax
lea ecx, [ebx + 0x12c]
call fcn.004053a0
add dword [esp + 0x64], 1
mov ecx, esi
call fcn.00401310
cmp dword [esp + 0x64], eax
jl 0x45ff50
mov edx, dword [edi + 0x6c]
lea eax, [ebx + 0x12c]
push edx
push eax
call fcn.0043c2a0
add esp, 8
lea ecx, [ebx + 0x12c]
call fcn.00401310
test eax, eax
je 0x460199
cmp dword [edi + 0x28], 0
jl 0x460199
cmp dword [edi + 0x60], 0
je 0x460043
lea ecx, [ebx + 0x12c]
xor esi, esi
call fcn.00401310
test eax, eax
jle 0x460119
lea eax, [edi + 0x4c]
push eax
push esi
lea ecx, [ebx + 0x12c]
call fcn.00401330
push eax
call fcn.00401c90
add esp, 8
test al, al
jne 0x46003b
lea ecx, [ebx + 0x12c]
add esi, 1
call fcn.00401310
cmp esi, eax
jl 0x460007
jmp 0x460119
mov dword [edi + 0x68], esi
jmp 0x460119
mov ecx, dword [edi + 0x68]
cmp ecx, 0xffffffff
jge 0x460119
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, 0xfffffffe
sub eax, ecx
lea ecx, [ebx + 0x11c]
mov dword [esp + 0x690], 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], edx
call fcn.0041ed60
cmp dword [eax + 0x18], 8
jb 0x460085
mov eax, dword [eax + 4]
jmp 0x460088
add eax, 4
lea ecx, [esp + 0x24]
push ecx
push 0
push 1
push 0
push 0
push 0
push eax
call fcn.00408e30
add esp, 0x1c
lea ecx, [ebx + 0x12c]
xor esi, esi
call fcn.00401310
test eax, eax
jle 0x4600fe
mov eax, dword [esp + 0x24]
test eax, eax
lea edx, [esp + 0x13c]
push edx
push esi
push ecx
mov dword [esp + 0xc4], esp
mov ecx, esp
je 0x4600d0
add dword [eax + 4], 1
mov dword [ecx], eax
call fcn.00473970
test eax, eax
jne 0x4600ec
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x13c]
jl 0x4600fe
mov dword [esp + 0x6c], esi
lea ecx, [ebx + 0x12c]
add esi, 1
call fcn.00401310
cmp esi, eax
jl 0x4600b1
mov ecx, dword [esp + 0x6c]
mov dword [edi + 0x68], ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x690], 0xffffffff
call fcn.00401000
cmp dword [ebx + 0x118], 0
jne 0x46015b
cmp dword [ebx + 0x148], 0
jne 0x46014f
cmp dword [0x4a0698], 0
jne 0x46013d
push ebx
call fcn.0043f100
add esp, 4
mov edx, dword [edi + 0x68]
push 0
push edx
mov ecx, ebx
call fcn.00452340
jmp 0x460bca
mov ecx, ebx
call fcn.0044ccb0
jmp 0x460bca
mov edi, dword [edi + 0x68]
xor eax, eax
test edi, edi
setl al
mov ecx, ebx
sub eax, 1
and eax, edi
mov dword [ebx + 0x150], eax
call fcn.0044bb60
mov ecx, ebx
call fcn.00452fe0
mov esi, dword [esp + 0x34]
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x460bca
mov ecx, esi
call fcn.00401310
xor esi, esi
test eax, eax
jbe 0x460b35
mov dword [ebx + 0x118], 2
lea ecx, [ebx + 0x1fc]
call fcn.0040ad30
test eax, eax
jne 0x460790
mov byte [ebx + 0x214], al
mov ecx, dword [edi + 0x6c]
lea eax, [edi + 0x2c]
push ecx
push eax
call fcn.0043c2a0
add esp, 8
lea ecx, [esp + 0x194]
call fcn.0040bf10
cmp dword [0x4a0590], esi
mov dword [esp + 0x690], 4
je 0x460368
xor eax, eax
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
lea esi, [ebx + 0x11c]
mov ecx, esi
mov byte [esp + 0x690], 5
call fcn.0041ed60
cmp dword [eax + 0x18], 8
jb 0x46023c
mov eax, dword [eax + 4]
jmp 0x46023f
add eax, 4
push eax
call fcn.00442070
add esp, 4
cmp eax, 1
mov dword [esp + 0x44], eax
jle 0x460352
mov ecx, esi
call fcn.0041ed60
cmp dword [eax + 0x18], 8
jb 0x460267
mov eax, dword [eax + 4]
jmp 0x46026a
add eax, 4
mov edx, dword [esp + 0x44]
cmp word [eax + edx*2 - 2], 0x2f
je 0x46027b
sub dword [esp + 0x44], 1
mov ecx, esi
call fcn.0041ed60
cmp dword [eax + 0x18], 8
jb 0x46028d
mov eax, dword [eax + 4]
jmp 0x460290
add eax, 4
mov ecx, dword [esp + 0x44]
push ecx
push eax
lea ecx, [esp + 0x144]
call fcn.00402680
cmp dword [esp + 0x150], 2
jne 0x4602db
cmp dword [esp + 0x154], 8
mov eax, dword [esp + 0x140]
jae 0x4602c4
lea eax, [esp + 0x140]
cmp word [eax + 2], 0x3a
jne 0x4602db
push 0x5c
push 1
lea ecx, [esp + 0x144]
call fcn.004022b0
or esi, 0xffffffff
push esi
push 0
lea edx, [esp + 0x144]
push edx
lea ecx, [esp + 0x1a0]
call fcn.00402360
mov dword [esp + 0x1dc], esi
mov dword [esp + 0x1d8], esi
lea esi, [ebx + 0x1fc]
mov ecx, esi
mov dword [esp + 0x1b0], 0x10
call fcn.0040ad30
mov dword [esp + 0x1cc], eax
lea eax, [esp + 0x194]
push eax
mov ecx, esi
mov dword [esp + 0x1c8], 0xffffff9c
mov dword [esp + 0x250], 0xffffffff
mov dword [esp + 0x24c], 0
call fcn.00412fa0
lea ecx, [esp + 0x13c]
mov byte [esp + 0x690], 4
call fcn.00401f00
xor esi, esi
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0xb8]
call fcn.00452de0
mov dword [esp + 0x24], esi
mov esi, dword [edi + 0x3c]
mov byte [esp + 0x690], 6
mov dword [esp + 0x64], esi
mov edi, edi
mov eax, dword [edi + 0x30]
test eax, eax
lea ecx, [edi + 0x2c]
je 0x4603b0
mov edx, dword [ecx + 8]
sub edx, eax
mov eax, 0x2e8ba2e9
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x46058c
cmp dword [edi + 0x40], 6
je 0x460505
push esi
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x4603d3
mov eax, dword [eax + 4]
jmp 0x4603d6
add eax, 4
mov edx, dword [esp + 0x14]
lea ecx, [eax + edx*2]
movzx eax, word [ecx]
xor esi, esi
test ax, ax
mov byte [esp + 0x3b], 0
je 0x460505
movzx eax, ax
cmp ax, 0x2f
je 0x46040b
movzx eax, word [ecx + esi*2 + 2]
add esi, 1
test ax, ax
jne 0x4603f3
jmp 0x460505
xor eax, eax
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
push esi
push ecx
lea ecx, [esp + 0x144]
mov byte [esp + 0x698], 7
call fcn.00402680
mov eax, dword [esp + 0xbc]
lea edx, [esp + 0x6c]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0xb8]
push edx
mov dword [esp + 0x70], ecx
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0xc4]
call fcn.0044c4a0
mov ecx, eax
call fcn.00447740
test al, al
je 0x4604e1
lea edx, [esp + 0x13c]
push edx
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0xc0]
call fcn.00450c90
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x64]
lea ecx, [eax + esi + 1]
push ecx
lea esi, [edi + 0x2c]
push edx
mov ecx, esi
call fcn.00401330
mov ecx, eax
call fcn.00402760
mov eax, dword [esp + 0x64]
push eax
mov ecx, esi
call fcn.00401330
xor ecx, ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x64]
push ecx
mov ecx, esi
call fcn.00401330
add eax, 0x1c
or dword [eax], 0x10
jmp 0x4604e6
mov byte [esp + 0x3b], 1
lea ecx, [esp + 0x13c]
mov byte [esp + 0x690], 6
call fcn.00401f00
cmp byte [esp + 0x3b], 0
jne 0x46057e
mov edx, dword [esp + 0x64]
push edx
lea ecx, [edi + 0x2c]
call fcn.00401330
push eax
lea ecx, [esp + 0x198]
call fcn.00402ad0
lea esi, [ebx + 0x1fc]
mov ecx, esi
call fcn.0040ad30
mov dword [esp + 0x1cc], eax
lea eax, [ebx + 0x234]
push eax
lea ecx, [esp + 0x198]
push ecx
mov dword [esp + 0x254], 0xffffffff
mov dword [esp + 0x250], 0
call fcn.00401c90
add esp, 8
test al, al
je 0x46056f
mov ecx, esi
call fcn.0040ad30
mov dword [esp + 0x24], eax
lea edx, [esp + 0x194]
push edx
mov ecx, esi
call fcn.00412fa0
add dword [esp + 0x64], 1
mov esi, dword [esp + 0x64]
jmp 0x460390
push 0
lea ecx, [ebx + 0x234]
call fcn.00402760
mov ecx, ebx
call fcn.0044bb60
lea esi, [ebx + 0x1fc]
mov ecx, esi
call fcn.0040ad30
test eax, eax
jbe 0x46061f
push 1
lea eax, [esp + 0x420]
push eax
mov ecx, ebx
call fcn.00475c60
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.0040ad50
or dword [eax + 0xb4], 3
add eax, 0xb4
mov eax, dword [esp + 0x24]
push 0
lea edx, [esp + 0x160]
push edx
push eax
mov ecx, ebx
call fcn.0044a330
mov eax, dword [esp + 0x428]
sub eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x160]
sub eax, dword [esp + 0x420]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
push ecx
push 0
mov ecx, ebx
call fcn.00449370
xor eax, eax
cmp dword [0x4a05a4], eax
jle 0x460701
cmp dword [0x4a05a0], eax
jle 0x460701
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
lea ecx, [esp + 0x13c]
push ecx
mov ecx, ebx
mov byte [esp + 0x694], 8
call fcn.0044d200
mov esi, dword [ebx + 0x140]
test esi, esi
je 0x460684
mov ecx, esi
call fcn.00411ee0
push esi
call fcn.004775de
add esp, 4
push 0xa0
call fcn.00477736
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x690], 9
je 0x4606cd
cmp dword [esp + 0x154], 8
mov edx, dword [ebx + 8]
mov ecx, dword [esp + 0x140]
jae 0x4606bc
lea ecx, [esp + 0x140]
push 0
push 0
push edx
push 2
push ecx
mov ecx, eax
call fcn.00411df0
jmp 0x4606cf
xor eax, eax
test eax, eax
mov byte [esp + 0x690], 8
mov dword [ebx + 0x140], eax
je 0x4606ee
push eax
call fcn.00408160
add esp, 4
test eax, eax
je 0x460740
mov ecx, ebx
call fcn.00452fe0
lea ecx, [esp + 0x13c]
call fcn.00401f00
mov edx, dword [esp + 0x34]
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea ecx, [esp + 0xb8]
mov byte [esp + 0x690], 4
call fcn.00452da0
lea ecx, [esp + 0x194]
mov dword [esp + 0x690], 0xffffffff
call fcn.0040bf40
jmp 0x460bca
lea ecx, [esp + 0x13c]
call fcn.00401f00
lea ecx, [esp + 0xb8]
mov byte [esp + 0x690], 4
call fcn.00452da0
lea ecx, [esp + 0x194]
mov dword [esp + 0x690], 0xffffffff
call fcn.0040bf40
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x34]
push edi
push edx
push eax
push ecx
push ebx
call fcn.00420730
jmp 0x460c03
lea ecx, [esp + 0x94]
call fcn.00452e70
mov esi, dword [edi + 0x3c]
lea ecx, [edi + 0x2c]
mov dword [esp + 0x690], 0xa
mov dword [esp + 0x24], esi
call fcn.00401310
cmp esi, eax
jge 0x4608c7
xor eax, eax
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], eax
mov word [esp + 0x140], ax
push esi
lea ecx, [edi + 0x2c]
mov byte [esp + 0x694], 0xb
call fcn.00401330
cmp dword [eax + 0x18], 8
jb 0x4607f6
mov esi, dword [eax + 4]
jmp 0x4607f9
lea esi, [eax + 4]
push esi
call fcn.00442030
mov dword [esp + 0x18], eax
lea eax, [esi + eax*2]
push eax
call fcn.004420f0
add esp, 8
cmp eax, 0x12
jle 0x460898
mov ecx, dword [esp + 0x14]
add eax, ecx
push 0x12
lea edx, [esi + eax*2 - 0x24]
push edx
lea ecx, [esp + 0x144]
call fcn.00402680
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x140]
push ecx
lea ecx, [esp + 0x124]
call fcn.0044c5a0
push eax
lea ecx, [esp + 0x100]
mov byte [esp + 0x694], 0xc
call fcn.0044c640
lea edx, [esp + 0xfc]
push edx
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0x698], 0xd
call fcn.00451840
lea ecx, [esp + 0xfc]
call fcn.00401f00
lea ecx, [esp + 0x11c]
call fcn.00401f00
lea ecx, [esp + 0x13c]
mov byte [esp + 0x690], 0xa
call fcn.00401f00
mov esi, dword [esp + 0x24]
add esi, 1
lea ecx, [edi + 0x2c]
mov dword [esp + 0x24], esi
call fcn.00401310
cmp esi, eax
jl 0x4607be
xor eax, eax
push eax
lea ecx, [ebx + 0x1fc]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x80], eax
call fcn.0040ad50
xor ecx, ecx
cmp dword [eax + 0x44], 0xffffffff
sete cl
mov esi, ecx
mov edi, edi
mov eax, dword [ebx + 0x200]
test eax, eax
je 0x460913
mov ecx, dword [ebx + 0x204]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jge 0x460a83
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
cmp dword [eax + 0x18], 8
jb 0x460936
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
jmp 0x46093d
add eax, 4
mov dword [esp + 0x24], eax
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
test byte [eax + 0x1c], 0x10
jne 0x460979
mov eax, dword [esp + 0x24]
push eax
call fcn.004010b0
add esp, 4
cmp eax, 3
je 0x460979
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00443f80
add esp, 4
cmp eax, 0xff
je 0x460a7b
add dword [esp + 0xb8], 1
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
mov edx, dword [eax + 0x20]
push edx
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
mov eax, dword [eax + 0x28]
push eax
lea ecx, [esp + 0x444]
push 0x48e06c
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea edx, [esp + 0x43c]
push edx
lea ecx, [esp + 0xe4]
call fcn.004029c0
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x9c]
mov byte [esp + 0x698], 0xe
call fcn.0044c520
mov edx, dword [eax]
mov eax, dword [eax + 4]
lea ecx, [esp + 0xe0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x690], 0xa
call fcn.00401f00
mov ecx, dword [esp + 0x98]
lea eax, [esp + 0x6c]
mov dword [esp + 0x70], ecx
lea edx, [esp + 0x94]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x70], edx
call fcn.004487c0
test al, al
je 0x460a7b
lea ecx, [esp + 0x14]
call fcn.0044a180
mov ecx, dword [eax + 0x1c]
push ecx
lea ecx, [edi + 0x2c]
call fcn.00401330
push eax
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
mov ecx, eax
add ecx, 0x58
call fcn.00402ad0
push esi
lea ecx, [ebx + 0x1fc]
call fcn.0040ad50
add dword [esp + 0x7c], 1
mov dword [eax + 0x90], esi
add esi, 1
jmp 0x4608f0
cmp dword [0x49e4c8], 0
je 0x460abf
cmp dword [esp + 0x7c], 0
jle 0x460aec
mov edx, dword [esp + 0x7c]
cmp dword [esp + 0xb8], edx
jle 0x460aec
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401310
sub eax, dword [esp + 0x7c]
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00401310
mov ecx, dword [esp + 0x14]
jmp 0x460adc
lea esi, [edi + 0x2c]
mov ecx, esi
call fcn.00401310
sub eax, dword [esp + 0x7c]
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.00401310
mov ecx, dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
cmp ecx, eax
jl 0x460aec
mov byte [ebx + 0x214], 1
push 0xffffffffffffffff
push 0
push edi
lea ecx, [ebx + 0x218]
call fcn.00402360
mov ecx, ebx
call fcn.00452fe0
mov esi, dword [esp + 0x34]
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [esp + 0x94]
mov dword [esp + 0x690], 0xffffffff
call fcn.00452e30
jmp 0x460bca
mov dword [esp + 0x154], 7
mov dword [esp + 0x150], esi
mov word [esp + 0x140], si
lea eax, [esp + 0x13c]
push eax
mov dword [esp + 0x694], 2
push 0x1a2
call fcn.00442450
add esp, 8
cmp dword [esp + 0x154], 8
mov eax, dword [esp + 0x140]
jae 0x460b87
lea eax, [esp + 0x140]
push 0xfa0
push eax
push 2
mov ecx, ebx
call fcn.0044d0b0
push esi
push esi
mov ecx, ebx
call fcn.00449370
push esi
push esi
mov esi, dword [esp + 0x3c]
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [esp + 0x13c]
mov dword [esp + 0x690], 0xffffffff
call fcn.00401f00
push ebx
call fcn.0043f100
mov esi, dword [ebx + 0x140]
add esp, 4
test esi, esi
je 0x460bf7
mov ecx, esi
call fcn.00411ee0
push esi
call fcn.004775de
add esp, 4
mov dword [ebx + 0x140], 0
push 0xffffffffffffffff
call fcn.0040acd0
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x688]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x670]
xor ecx, esp
call fcn.004777ea
mov esp, ebp
pop ebp
ret 0x14