Function at 0x44f050
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5bd74a
mov eax, dword fs:[0]
push eax
sub esp, 0x1a0
mov eax, dword [0x621d30]
xor eax, esp
mov dword [esp + 0x198], eax
push ebx
push esi
push edi
mov eax, dword [0x621d30]
xor eax, esp
push eax
lea eax, [esp + 0x1b0]
mov dword fs:[0], eax
mov esi, ecx
lea ebx, [esi + 0xb8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebx
call fcn.0046fe80
lea ecx, [esi + 0x120bc]
call fcn.00452fb0
mov ecx, eax
call fcn.00453030
mov eax, dword [esi + 0x120bc]
push ecx
sub eax, 0x10
mov dword [esp + 0x70], esp
mov edi, esp
push eax
call fcn.00453e70
add eax, 0x10
add esp, 4
lea esi, [esp + 0x3c]
mov dword [edi], eax
call fcn.004841e0
mov dword [esp + 0x1b8], 0
mov byte [esp + 0x48], 1
call fcn.0048a293
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x44f108
push 0x80004005
call fcn.00453e40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x14]
mov byte [esp + 0x1bc], 1
call fcn.00484310
lea edx, [esp + 0x2c]
push edx
mov ecx, esi
call fcn.00484420
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov byte [esp + 0x1bc], 2
call fcn.004845d0
mov edi, esi
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1b8], 3
call fcn.00484730
mov byte [esp + 0x1b8], 4
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 4
call esi
push 0x20
mov edi, eax
call esi
push 0x21
mov ebx, eax
call esi
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
mov esi, eax
call fcn.00484a10
mov edx, dword [esp + 0x140]
sub edx, dword [esp + 0x138]
mov eax, dword [esp + 0x13c]
sub eax, dword [esp + 0x134]
push 1
add edx, esi
mov esi, dword [esp + 0x1c]
add edx, edi
push edx
add eax, ebx
push eax
push 0
push 0
mov ecx, esi
call fcn.0048d782
lea ecx, [esp + 0x10]
lea edi, [esi + 0x120c0]
push ecx
call fcn.00484e00
lea edx, [esp + 0x10]
push edx
push edi
call fcn.004877d0
mov eax, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.0048d6f7
call fcn.00452a80
mov edi, dword [edi]
push 1
push edi
mov ecx, esi
call fcn.0048a77c
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x14]
call fcn.00484310
lea edx, [esp + 0x54]
push edx
mov ecx, esi
call fcn.00484420
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1bc], 5
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f253
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x18]
jmp 0x44f260
mov esi, dword [esp + 0x2c]
mov ecx, 0x5ee420
mov eax, esi
jmp 0x44f270
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44f296
test dx, dx
je 0x44f292
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44f296
add eax, 4
add ecx, 4
test dx, dx
jne 0x44f270
xor eax, eax
jmp 0x44f29b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x452999
mov ecx, str._ah
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44f2d6
test dx, dx
je 0x44f2d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44f2d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x44f2b0
xor eax, eax
jmp 0x44f2db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x44f510
lea ecx, [esp + 0x12c]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
mov byte [esp + 0x1b8], 6
mov ecx, dword [eax]
mov esi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x44f35c
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x44f34e
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x44f34e
push eax
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x44f341
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
jmp 0x44f35c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00453d90
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x12c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f387
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0x108]
call fcn.00484730
mov byte [esp + 0x1b8], 7
mov ecx, dword [eax]
mov esi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x44f3fa
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x44f3ec
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x44f3ec
push eax
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x44f3df
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
jmp 0x44f3fa
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00453d90
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x108]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f425
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x94
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 8
test eax, eax
je 0x44f45d
push eax
call fcn.0046e320
mov edi, eax
jmp 0x44f45f
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c0], 4
mov ecx, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x54000100
push ecx
mov ecx, edi
call edx
mov eax, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push eax
call esi
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44f4cb
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x44f4bd
push 0xc
call ebx
test eax, eax
je 0x44f4c7
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44f4cb
xor eax, eax
jmp 0x44f4ce
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x20]
push 1
push eax
push 0x30
push ecx
call esi
lea edx, [esp + 0x10]
push edx
push 0
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0
call fcn.0046fc50
jmp 0x4528dc
mov ecx, 0x5ee434
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44f53d
test dx, dx
je 0x44f539
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44f53d
add eax, 4
add ecx, 4
test dx, dx
jne 0x44f517
xor eax, eax
jmp 0x44f542
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x44f795
lea edx, [esp + 0x118]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
mov byte [esp + 0x1b8], 9
mov ecx, dword [eax]
mov esi, dword [esp + 0x14]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x44f5bf
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x44f5b1
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x44f5b1
push eax
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x44f5a8
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x14], ebx
jmp 0x44f5bf
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.00453d90
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x118]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f5ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0x130]
call fcn.00484730
mov byte [esp + 0x1b8], 0xa
mov ecx, dword [eax]
mov esi, dword [esp + 0x1c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x44f659
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x44f64b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x44f64b
push eax
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x44f642
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x1c], ebx
jmp 0x44f659
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00453d90
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x130]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f684
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xf4
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0xb
test eax, eax
je 0x44f6bc
push eax
call fcn.0046b4b0
mov ebx, eax
jmp 0x44f6be
xor ebx, ebx
mov esi, dword [esp + 0x18]
push 0
push 0xffff
push esi
lea eax, [esp + 0x140]
push eax
mov byte [esp + 0x1c8], 4
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx]
mov edx, dword [edx + 0x54]
push 0x54000100
push ecx
push 0
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov edx, dword [eax + 0x180]
push ecx
mov ecx, ebx
call edx
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x31
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.0048c6a6
mov esi, eax
test esi, esi
jne 0x44f73a
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x44f732
push 0xc
call edi
test eax, eax
je 0x44f73a
push eax
call fcn.0048c6a6
mov esi, eax
mov edx, dword [esi + 4]
lea ecx, [esp + 0x144]
push ecx
push 0x5c
push edx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [ebx]
mov edx, dword [eax + 0x198]
sub esp, 0x5c
mov edi, esp
mov ecx, 0x17
lea esi, [esp + 0x1a0]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call edx
lea eax, [esp + 0x10]
push eax
push 6
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.00485020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 6
mov edi, ebx
call fcn.0046fc50
jmp 0x4528dc
mov ecx, 0x5ee43c
mov eax, esi
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44f7c6
test dx, dx
je 0x44f7c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44f7c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x44f7a0
xor eax, eax
jmp 0x44f7cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x44f9ac
lea ecx, [esp + 0x124]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0xc
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x124]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44f826
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0x120]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0xd
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x120]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f873
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x80
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0xe
test eax, eax
je 0x44f8ab
push eax
call fcn.0046a750
mov edi, eax
jmp 0x44f8ad
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c0], 4
mov ecx, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x54004300
push ecx
mov ecx, edi
call edx
mov eax, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push eax
call esi
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44f919
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x44f90b
push 0xc
call ebx
test eax, eax
je 0x44f915
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44f919
xor eax, eax
jmp 0x44f91c
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x20]
push 1
push eax
push 0x30
push ecx
call esi
mov ebx, dword [esp + 0x14]
lea eax, [ebx - 0x10]
push eax
call fcn.00453e70
lea esi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x24], esi
lea edx, [esp + 0x24]
lea ecx, [edi + 0x78]
push edx
mov byte [esp + 0x1bc], 0xf
call fcn.00453ee0
lea eax, [esi - 0x10]
mov byte [esp + 0x1b8], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f977
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x10]
push ecx
push 1
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 1
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
mov eax, dword [esp + 0x20]
push 1
mov esi, ebx
call fcn.0046fc50
jmp 0x4528dc
mov ecx, 0x5ee444
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x44f9d9
test dx, dx
je 0x44f9d5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x44f9d9
add eax, 4
add ecx, 4
test dx, dx
jne 0x44f9b3
xor eax, eax
jmp 0x44f9de
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x44fcf3
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x10
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44fa33
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0xdc]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x11
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fa80
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xa4
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x12
test eax, eax
je 0x44fab9
mov esi, eax
call fcn.0046af20
mov edi, eax
jmp 0x44fabb
xor edi, edi
lea edx, [esp + 0x10]
push edx
push 2
mov edx, edi
lea ecx, [esp + 0x40]
mov byte [esp + 0x1c0], 4
call fcn.00485020
cmp byte [edi + 0xa0], 0
je 0x44fbb5
mov al, byte [edi + 0xa1]
test al, al
je 0x44fb6d
cmp byte [edi + 0xa2], 0
jne 0x44fb26
push 0xffff
push ebx
lea eax, [esp + 0x13c]
push eax
push 0x54801044
mov ecx, edi
call fcn.0048e356
mov ecx, dword [edi + 0x20]
push 1
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x44fbcf
test al, al
je 0x44fb6d
cmp byte [edi + 0xa2], 0
je 0x44fb69
push 0xffff
push ebx
lea edx, [esp + 0x13c]
push edx
push 0x548010c4
mov ecx, edi
call fcn.0048e356
mov eax, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_ShowScrollBar]
push 1
push 1
push eax
call esi
mov ecx, dword [edi + 0x20]
push 1
push 0
push ecx
call esi
jmp 0x44fbcf
test al, al
jne 0x44fba0
cmp byte [edi + 0xa2], 0
je 0x44fba0
push 0xffff
push ebx
lea edx, [esp + 0x13c]
push edx
push 0x54801084
mov ecx, edi
call fcn.0048e356
mov eax, dword [edi + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x44fbcf
push 0xffff
push ebx
lea ecx, [esp + 0x13c]
push ecx
push 0x54801044
jmp 0x44fbc8
push 0xffff
push ebx
lea edx, [esp + 0x13c]
push edx
push 0x54800080
mov ecx, edi
call fcn.0048e356
cmp byte [edi + 0x9f], 0
jne 0x44fbe8
push 0
push 0x8000000
push 0
mov ecx, edi
call fcn.0048d69f
cmp byte [edi + 0x9e], 0
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
je 0x44fc06
mov eax, dword [edi + 0x20]
push 0
push 1
push 0xcf
push eax
call ebx
cmp byte [edi + 0x9c], 0
je 0x44fc1e
mov ecx, dword [edi + 0x20]
push 0
push 0x2a
push 0xcc
push ecx
call ebx
cmp byte [edi + 0x9d], 0
je 0x44fc37
push 0
push 0x2000
push 0
mov ecx, edi
call fcn.0048d69f
mov eax, dword [edi + 0x84]
test eax, eax
je 0x44fc4b
mov esi, edi
mov dword [edi + 0x74], eax
call fcn.0046b280
mov eax, dword [edi + 0x88]
cmp eax, 0xffffff
je 0x44fc62
mov esi, edi
mov dword [edi + 0x78], eax
call fcn.0046b280
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
push 0
push 0
push 0x31
push eax
call ebx
push eax
call fcn.0048c6a6
mov esi, eax
test esi, esi
jne 0x44fc9e
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x44fc96
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x44fc9e
push eax
call fcn.0048c6a6
mov esi, eax
mov ecx, dword [edi + 0x20]
push 0
push 0xffff
push 0xc5
push ecx
call ebx
test esi, esi
je 0x44fcb7
mov esi, dword [esi + 4]
mov edx, dword [edi + 0x20]
push 1
push esi
push 0x30
push edx
call ebx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
call fcn.0048d6f7
push 2
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 2
call fcn.0046fc50
jmp 0x4528dc
lea eax, [esp + 0x2c]
push 0x5ee44c
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x44fe90
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x13
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44fd5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0x10c]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x14
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x10c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fda8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x15
test eax, eax
je 0x44fddd
push eax
call fcn.0046df10
mov edi, eax
jmp 0x44fddf
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c0], 4
mov ecx, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x54000009
push ecx
mov ecx, edi
call edx
mov eax, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push eax
call esi
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44fe4b
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x44fe3d
push 0xc
call ebx
test eax, eax
je 0x44fe47
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44fe4b
xor eax, eax
jmp 0x44fe4e
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x20]
push 1
push eax
push 0x30
push ecx
call esi
lea edx, [esp + 0x10]
push edx
push 3
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 3
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 3
call fcn.0046fc50
jmp 0x4528dc
lea edx, [esp + 0x2c]
push 0x5ee454
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x45002d
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x16
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fef8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x10]
lea ecx, [esp + 0xe4]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x17
call fcn.00453ee0
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0xe4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44ff45
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x18
test eax, eax
je 0x44ff7a
push eax
call fcn.0046a9e0
mov edi, eax
jmp 0x44ff7c
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c0], 4
mov ecx, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x54000003
push ecx
mov ecx, edi
call edx
mov eax, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x31
push eax
call esi
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44ffe8
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x44ffda
push 0xc
call ebx
test eax, eax
je 0x44ffe4
push eax
call fcn.0048c6a6
test eax, eax
jne 0x44ffe8
xor eax, eax
jmp 0x44ffeb
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x20]
push 1
push eax
push 0x30
push ecx
call esi
lea edx, [esp + 0x10]
push edx
push 4
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 4
call fcn.0046fc50
jmp 0x4528dc
lea edx, [esp + 0x2c]
push 0x5ee45c
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x4501c4
lea ecx, [esp + 0x58]
call fcn.0048e51d
lea eax, [esp + 0x94]
mov bl, 0x19
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x1bc], bl
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x1a
call fcn.00453ee0
lea ecx, [esp + 0x94]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea ecx, [esp + 0x58]
push ecx
lea ebx, [esp + 0x14]
call fcn.00488cc0
lea edx, [esp + 0x134]
push edx
mov ecx, ebx
call fcn.00484a10
push 0x80
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x1b
test eax, eax
je 0x4500d4
mov esi, eax
call fcn.0046ac10
mov edi, eax
jmp 0x4500d6
xor edi, edi
mov esi, dword [esp + 0x18]
push 0xffff
push esi
mov byte [esp + 0x1c0], 0x19
mov eax, dword [edi]
mov edx, dword [eax + 0x160]
lea ecx, [esp + 0x13c]
push ecx
push 0x54200002
mov ecx, edi
call edx
mov ecx, esi
call fcn.00453490
test eax, eax
jne 0x450130
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call esi
test eax, eax
jne 0x450122
push 0xc
call esi
test eax, eax
je 0x45012c
push eax
call fcn.0048c6a6
test eax, eax
jne 0x450130
xor eax, eax
jmp 0x450133
mov eax, dword [eax + 4]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
call ebx
mov eax, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x45017c
test esi, esi
js 0x452994
cmp esi, eax
jge 0x452994
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + esi*4]
mov edx, dword [edi + 0x20]
push eax
push 0
push 0x143
push edx
call ebx
mov eax, dword [esp + 0x60]
inc esi
cmp esi, eax
jl 0x45014e
lea eax, [esp + 0x10]
push eax
push 5
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 5
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
push 5
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
call fcn.0046fc50
lea ecx, [esp + 0x58]
mov byte [esp + 0x1b8], 4
call fcn.0048e75b
jmp 0x4528dc
lea eax, [esp + 0x2c]
push 0x5ee464
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x45037b
lea ecx, [esp + 0x58]
call fcn.0048e51d
lea ecx, [esp + 0x128]
push ecx
mov bl, 0x1c
lea ecx, [esp + 0x14]
mov byte [esp + 0x1bc], bl
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x1d
call fcn.00453ee0
lea ecx, [esp + 0x128]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0x9c]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x1e
call fcn.00453ee0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea edx, [esp + 0x58]
push edx
mov ebx, edi
call fcn.00488cc0
lea eax, [esp + 0x134]
push eax
mov ecx, edi
call fcn.00484a10
push 0x1ec
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x1f
test eax, eax
je 0x45029d
push eax
call fcn.0046c7e0
mov edi, eax
jmp 0x45029f
xor edi, edi
mov esi, dword [esp + 0x18]
push 0xffff
push esi
lea eax, [esp + 0x13c]
mov byte [esp + 0x1c0], 0x1c
mov ecx, dword [esp + 0x24]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x54800120
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
call fcn.0048d6f7
mov ecx, esi
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450306
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x4502fe
push 0xc
call ebx
test eax, eax
je 0x450306
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
mov eax, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x450351
lea ebx, [ebx]
test esi, esi
js 0x452994
cmp esi, eax
jge 0x452994
mov ecx, dword [esp + 0x5c]
mov edx, dword [edi]
push 0xffffffffffffffff
lea eax, [ecx + esi*4]
push 0
push eax
mov eax, dword [edx + 0x168]
mov ecx, edi
call eax
mov eax, dword [esp + 0x60]
inc esi
cmp esi, eax
jl 0x450320
lea ecx, [esp + 0x10]
push ecx
push 7
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 7
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
push 7
jmp 0x4501a1
lea ecx, [esp + 0x2c]
push 0x5ee46c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x450486
lea edx, [esp + 0xec]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x20
call fcn.00453ee0
lea ecx, [esp + 0xec]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x78
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x21
test eax, eax
je 0x450402
mov esi, eax
call fcn.0046de40
mov edi, eax
jmp 0x450404
xor edi, edi
push 0xffff
push ebx
mov byte [esp + 0x1c0], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450456
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x45044e
push 0xc
call ebx
test eax, eax
je 0x450456
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 8
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 8
call fcn.0046fc50
jmp 0x4528dc
lea ecx, [esp + 0x2c]
push 0x5ee474
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x450591
lea edx, [esp + 0xa4]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x22
call fcn.00453ee0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x78
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x23
test eax, eax
je 0x45050d
mov esi, eax
call fcn.0046ae70
mov edi, eax
jmp 0x45050f
xor edi, edi
push 0xffff
push ebx
mov byte [esp + 0x1c0], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450561
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x450559
push 0xc
call ebx
test eax, eax
je 0x450561
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 9
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 9
call fcn.0046fc50
jmp 0x4528dc
lea ecx, [esp + 0x2c]
push 0x5ee47c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x4506ac
lea edx, [esp + 0x114]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x24
call fcn.00453ee0
lea ecx, [esp + 0x114]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x25
test eax, eax
je 0x450617
push eax
call fcn.0046e0b0
mov edi, eax
jmp 0x450619
xor edi, edi
push 0xffff
push ebx
mov byte [esp + 0x1c0], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x45066b
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x450663
push 0xc
call ebx
test eax, eax
je 0x45066b
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xb
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xb
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xb
call fcn.0046fc50
jmp 0x4528dc
lea eax, [esp + 0x2c]
push 0x5ee484
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x4507cf
lea ecx, [esp + 0xac]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x26
call fcn.00453ee0
lea ecx, [esp + 0xac]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xb4
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x27
test eax, eax
je 0x450735
push eax
call fcn.0046cca0
mov edi, eax
jmp 0x450737
xor edi, edi
push 0xffff
push ebx
lea ecx, [esp + 0x13c]
push ecx
mov byte [esp + 0x1c4], 4
mov eax, dword [edi]
mov edx, dword [eax + 0x160]
push 0x5400010e
push 0x5ee484
mov ecx, edi
call edx
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x45078e
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x450786
push 0xc
call ebx
test eax, eax
je 0x45078e
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xa
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xa
call fcn.0046fc50
jmp 0x4528dc
lea eax, [esp + 0x2c]
push str.OmFh
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x4508f3
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x28
call fcn.00453ee0
lea ecx, [esp + 0xf4]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xc4
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x29
test eax, eax
je 0x450858
push eax
call fcn.0046cab0
mov edi, eax
jmp 0x45085a
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
push eax
push 0x14800080
mov ecx, edi
mov byte [esp + 0x1c8], 4
call fcn.0048e356
push 0
push 0
mov ecx, edi
call fcn.0048f5a5
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x4508b2
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x4508aa
push 0xc
call ebx
test eax, eax
je 0x4508b2
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea ecx, [esp + 0x10]
push ecx
push 0xc
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xc
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xc
call fcn.0046fc50
jmp 0x4528dc
lea ecx, [esp + 0x2c]
push 0x5ee494
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x450a32
lea edx, [esp + 0xb4]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x2a
call fcn.00453ee0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x88
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x2b
test eax, eax
je 0x45097c
push eax
call fcn.0046f260
mov edi, eax
jmp 0x45097e
xor edi, edi
push 0xffff
push ebx
lea eax, [esp + 0x13c]
push eax
mov byte [esp + 0x1c4], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x5400090e
push 0x5ee494
mov ecx, edi
call edx
lea eax, [edi + 0x78]
test eax, eax
je 0x4509b4
mov eax, dword [eax + 4]
push eax
mov eax, dword [edi + 0x20]
push 0
push 0x172
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x4509f1
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x4509e9
push 0xc
call ebx
test eax, eax
je 0x4509f1
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea ecx, [esp + 0x10]
push ecx
push 0xe
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xe
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xe
call fcn.0046fc50
jmp 0x4528dc
lea ecx, [esp + 0x2c]
push 0x5ee49c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x450b6b
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x2c
call fcn.00453ee0
lea ecx, [esp + 0x70]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x88
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x2d
test eax, eax
je 0x450ab5
push eax
call fcn.0046c410
mov edi, eax
jmp 0x450ab7
xor edi, edi
push 0xffff
push ebx
mov byte [esp + 0x1c0], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, ebx
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450b09
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x450b01
push 0xc
call ebx
test eax, eax
je 0x450b09
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xf
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
movzx ecx, word [edi + 0x84]
movzx edx, word [edi + 0x82]
push ecx
push edx
push edi
call fcn.004533b0
xor edx, edx
xor ecx, ecx
mov esi, edi
call fcn.0046c5d0
push 0xf
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xf
call fcn.0046fc50
jmp 0x4528dc
lea edx, [esp + 0x2c]
push str.OmhV
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x450c7b
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x2e
call fcn.00453ee0
lea ecx, [esp + 0xbc]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x170
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x2f
test eax, eax
je 0x450bf5
mov esi, eax
call fcn.00480080
mov edi, eax
jmp 0x450bf7
xor edi, edi
mov byte [esp + 0x1b8], 4
mov edx, dword [edi]
mov eax, dword [edx + 0x160]
push ebx
push 0x68
mov ecx, edi
call eax
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x13c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.0048d782
push 1
mov ecx, edi
call fcn.0048d7c2
lea eax, [esp + 0x10]
push eax
push 0x10
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0x10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0x10
call fcn.0046fc50
jmp 0x4528e0
lea eax, [esp + 0x2c]
push 0x5ee4ac
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x450e11
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x30
call fcn.00453ee0
lea ecx, [esp + 0xfc]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x4bc
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x31
test eax, eax
je 0x450d04
push eax
call fcn.00457600
mov ebx, eax
jmp 0x450d06
xor ebx, ebx
mov esi, dword [esp + 0x18]
push esi
lea ecx, [esp + 0x138]
mov edx, ebx
mov byte [esp + 0x1bc], 4
call fcn.00458000
mov ecx, esi
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450d4c
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x450d44
push 0xc
call edi
test eax, eax
je 0x450d4c
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, ebx
call fcn.00453460
mov eax, dword [ebx + 0x164]
mov edx, dword [eax + 0x24]
lea ecx, [ebx + 0x164]
push 0xe0ffff
call edx
mov eax, ebx
call fcn.0045f380
push 0xf
mov dword [ebx + 0x9c], 0
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, eax
mov esi, ebx
call fcn.0044ec30
lea eax, [esp + 0x10]
push eax
push 0x11
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.00485020
cmp dword [ebx + 0x118], 0
jne 0x450dea
xor esi, esi
cmp dword [ebx + 0x120], esi
jle 0x450dea
test esi, esi
js 0x450de1
cmp esi, dword [ebx + 0x120]
jge 0x450de1
cmp esi, dword [ebx + 0x138]
jge 0x452994
mov ecx, dword [ebx + 0x134]
lea eax, [ecx + esi*4]
mov ecx, ebx
mov dword [eax], 0x19
call fcn.0045d630
inc esi
cmp esi, dword [ebx + 0x120]
jl 0x450db3
push 0x11
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
mov edi, ebx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0x11
call fcn.0046fc50
jmp 0x4528dc
lea ecx, [esp + 0x2c]
push 0x5ee4b4
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x4528e0
lea edx, [esp + 0xc4]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x32
call fcn.00453ee0
lea ecx, [esp + 0xc4]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push pe_nt_image_headers32
call fcn.004896de
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x1b8], 0x33
test eax, eax
je 0x450e9e
push eax
call fcn.0046e910
mov ebx, eax
mov dword [esp + 0x24], ebx
jmp 0x450eaa
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
push 0xffff
push esi
mov byte [esp + 0x1c0], 4
mov edx, dword [ebx]
mov edx, dword [edx + 0x160]
lea eax, [esp + 0x13c]
push eax
push 0x14000200
mov ecx, ebx
call edx
mov ecx, esi
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x450f00
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x450ef8
push 0xc
call edi
test eax, eax
je 0x450f00
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, ebx
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xd
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xd
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
mov edi, ebx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xd
call fcn.0046fc50
lea eax, [esp + 0x10]
push 0x5ee4bc
push eax
mov dword [esp + 0x30], 0
call fcn.00452f50
add esp, 8
test al, al
je 0x4528ab
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x14]
call fcn.00484310
mov edx, esi
push 0x5ee4bc
push edx
call fcn.00453500
add esp, 8
test al, al
jne 0x4528ab
lea eax, [esp + 0x11c]
push eax
mov ecx, esi
call fcn.00484420
lea ecx, [esp + 0x11c]
call fcn.00453f70
lea ecx, [esp + 0x54]
push ecx
call fcn.004848d0
mov byte [esp + 0x1b8], 0x34
mov eax, dword [esp + 0x54]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov esi, esp
push eax
call fcn.00453e70
add eax, 0x10
add esp, 4
mov ecx, ebx
mov dword [esi], eax
call fcn.0046eb80
lea ecx, [esp + 0x50]
call fcn.00453b50
lea ecx, [esp + 0x4c]
call fcn.00453b50
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c0], 0x36
call fcn.004875d0
test al, al
je 0x4510ad
jmp 0x451010
lea ecx, [esp + 0x50]
push 0x5ee4c8
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x45104e
mov edx, dword [esp + 0x4c]
push edx
call fcn.00591f13
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ebx + ecx*4 + 0x80]
add esp, 4
push 1
push eax
mov dword [ecx + 0xb8], eax
call fcn.0048a77c
jmp 0x451092
lea edx, [esp + 0x50]
push 0x5ee4d4
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x451092
mov eax, dword [esp + 0x4c]
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x38], esp
mov esi, esp
push eax
call fcn.00453e70
add eax, 0x10
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov edi, dword [ebx + eax*4 + 0x80]
add esp, 4
call fcn.0046f0f0
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x54]
push edx
lea ecx, [esp + 0x18]
call fcn.004875d0
test al, al
jne 0x451010
lea eax, [esp + 0x10]
push 0x5ee4e0
push eax
mov byte [esp + 0x50], 1
call fcn.00452f50
add esp, 8
test al, al
je 0x45286a
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x14]
call fcn.00484310
mov edx, esi
push 0x5ee4e0
push edx
call fcn.00453500
add esp, 8
test al, al
jne 0x45286a
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call fcn.00484420
lea ecx, [esp + 0x34]
push str._ah
push ecx
mov byte [esp + 0x1c0], 0x37
call fcn.00453500
add esp, 8
test al, al
je 0x451268
lea edx, [esp + 0xcc]
push edx
mov ecx, esi
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x38
call fcn.00453ee0
lea ecx, [esp + 0xcc]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
mov edi, esi
lea ecx, [esp + 0x104]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x39
call fcn.00453ee0
lea ecx, [esp + 0x104]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
mov ecx, esi
call fcn.00484a10
push 0x94
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x3a
test eax, eax
je 0x4511bf
push eax
call fcn.0046e320
mov edi, eax
jmp 0x4511c1
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x13c]
push eax
push 0x54000100
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451227
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x45121f
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451227
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee434
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x4513e7
lea ecx, [esp + 0xd4]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x3b
call fcn.00453ee0
lea ecx, [esp + 0xd4]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0x74]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x3c
call fcn.00453ee0
lea ecx, [esp + 0x74]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
mov ecx, edi
call fcn.00484a10
push 0xf4
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x3d
test eax, eax
je 0x45131f
push eax
call fcn.0046b4b0
mov ebx, eax
jmp 0x451321
xor ebx, ebx
mov edx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + edx*4 + 0x80]
mov eax, dword [ebx]
push 0
push 0xffff
push ecx
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x140]
push edx
mov edx, dword [eax + 0x54]
push 0x54000000
push ecx
push 0
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov edx, dword [eax + 0x180]
push ecx
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x45139b
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x451393
push 0xc
call edi
test eax, eax
je 0x45139b
push eax
call fcn.0048c6a6
mov esi, eax
mov ecx, dword [esi + 4]
lea eax, [esp + 0x144]
push eax
push 0x5c
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [ebx]
mov eax, dword [edx + 0x198]
sub esp, 0x5c
mov edi, esp
mov ecx, 0x17
lea esi, [esp + 0x1a0]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call eax
lea ecx, [esp + 0x10]
push ecx
push 6
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.00485020
push 6
jmp 0x45282c
lea edx, [esp + 0x34]
push 0x5ee43c
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x45156a
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x3e
call fcn.00453ee0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0x80]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x3f
call fcn.00453ee0
lea ecx, [esp + 0x80]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea ecx, [esp + 0x134]
push ecx
mov ecx, edi
call fcn.00484a10
push 0x80
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x40
test eax, eax
je 0x45149e
push eax
call fcn.0046a750
mov edi, eax
jmp 0x4514a0
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x13c]
push eax
push 0x54004300
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451506
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x4514fe
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451506
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov esi, esp
push eax
call fcn.00453e70
add eax, 0x10
add esp, 4
mov ecx, edi
mov dword [esi], eax
call fcn.00470b80
lea eax, [esp + 0x10]
push eax
push 1
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 1
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 1
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee444
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x451866
lea ecx, [esp + 0x88]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x41
call fcn.00453ee0
lea ecx, [esp + 0x88]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0x90]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x42
call fcn.00453ee0
lea ecx, [esp + 0x90]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
mov ecx, edi
call fcn.00484a10
push 0xa4
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x43
test eax, eax
je 0x451628
mov esi, eax
call fcn.0046af20
mov edi, eax
jmp 0x45162a
xor edi, edi
lea eax, [esp + 0x10]
push eax
push 2
mov edx, edi
lea ecx, [esp + 0x40]
mov byte [esp + 0x1c0], 0x37
call fcn.00485020
cmp byte [edi + 0xa0], 0
je 0x451753
mov al, byte [edi + 0xa1]
test al, al
je 0x4516f5
cmp byte [edi + 0xa2], 0
jne 0x4516a0
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx + ecx*4 + 0x80]
push 0xffff
push edx
lea eax, [esp + 0x13c]
push eax
push 0x54801044
mov ecx, edi
call fcn.0048e356
mov ecx, dword [edi + 0x20]
push 1
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x451778
test al, al
je 0x4516f5
cmp byte [edi + 0xa2], 0
je 0x4516f1
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + edx*4 + 0x80]
push 0xffff
push eax
lea ecx, [esp + 0x13c]
push ecx
push 0x548010c4
mov ecx, edi
call fcn.0048e356
mov edx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_ShowScrollBar]
push 1
push 1
push edx
call esi
mov eax, dword [edi + 0x20]
push 1
push 0
push eax
call esi
jmp 0x451778
test al, al
jne 0x451733
cmp byte [edi + 0xa2], 0
je 0x451733
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx + ecx*4 + 0x80]
push 0xffff
push edx
lea eax, [esp + 0x13c]
push eax
push 0x54801084
mov ecx, edi
call fcn.0048e356
mov ecx, dword [edi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x451778
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + edx*4 + 0x80]
push 0xffff
push eax
lea ecx, [esp + 0x13c]
push ecx
push 0x54801044
jmp 0x451771
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + edx*4 + 0x80]
push 0xffff
push eax
lea ecx, [esp + 0x13c]
push ecx
push 0x54800080
mov ecx, edi
call fcn.0048e356
cmp byte [edi + 0x9f], 0
jne 0x451791
push 0
push 0x8000000
push 0
mov ecx, edi
call fcn.0048d69f
cmp byte [edi + 0x9e], 0
je 0x4517a1
mov eax, edi
call fcn.00453440
cmp byte [edi + 0x9c], 0
je 0x4517b1
mov eax, edi
call fcn.00453420
cmp byte [edi + 0x9d], 0
je 0x4517ca
push 0
push 0x2000
push 0
mov ecx, edi
call fcn.0048d69f
mov eax, dword [edi + 0x84]
test eax, eax
je 0x4517de
mov esi, edi
mov dword [edi + 0x74], eax
call fcn.0046b280
mov eax, dword [edi + 0x88]
cmp eax, 0xffffff
je 0x4517f5
mov esi, edi
mov dword [edi + 0x78], eax
call fcn.0046b280
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451824
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x45181c
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451824
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
mov edx, dword [esp + 0x1c]
push edx
mov ecx, edi
call fcn.0048d6f7
mov eax, edi
call fcn.00453400
push 2
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 2
call fcn.0046fc50
jmp 0x45283f
lea edx, [esp + 0x34]
push 0x5ee44c
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x4519c9
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x44
call fcn.00453ee0
lea ecx, [esp + 0x98]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0xa0]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x45
call fcn.00453ee0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea ecx, [esp + 0x134]
push ecx
mov ecx, edi
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x46
test eax, eax
je 0x451920
push eax
call fcn.0046df10
mov edi, eax
jmp 0x451922
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xfffc
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x13c]
push eax
push 0x54000009
push ecx
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451988
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x451980
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451988
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 3
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 3
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 3
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee454
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x451b2c
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x47
call fcn.00453ee0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0xb0]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x48
call fcn.00453ee0
lea ecx, [esp + 0xb0]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
mov ecx, edi
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x49
test eax, eax
je 0x451a83
push eax
call fcn.0046a9e0
mov edi, eax
jmp 0x451a85
xor edi, edi
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov edx, dword [ebx + ecx*4 + 0x80]
mov eax, dword [edi]
mov eax, dword [eax + 0x160]
push 0xfffd
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x13c]
push ecx
push 0x54000003
push edx
mov ecx, edi
call eax
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451aeb
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x451ae3
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451aeb
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea ecx, [esp + 0x10]
push ecx
push 4
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 4
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 4
call fcn.0046fc50
jmp 0x45283f
lea ecx, [esp + 0x34]
push 0x5ee45c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x451cc0
lea ecx, [esp + 0x58]
call fcn.0048e51d
lea edx, [esp + 0xb8]
mov bl, 0x4a
push edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x1bc], bl
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x4b
call fcn.00453ee0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea eax, [esp + 0x58]
push eax
lea ebx, [esp + 0x14]
call fcn.00488cc0
lea ecx, [esp + 0x134]
push ecx
mov ecx, ebx
call fcn.00484a10
push 0x80
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x4c
test eax, eax
je 0x451bd3
mov esi, eax
call fcn.0046ac10
mov edi, eax
jmp 0x451bd5
xor edi, edi
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x4a
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push eax
lea ecx, [esp + 0x13c]
push ecx
push 0x54200002
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451c38
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x451c30
push 0xc
call ebx
test eax, eax
je 0x451c38
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
mov eax, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x451c78
lea esp, [esp]
test esi, esi
js 0x452994
cmp esi, eax
jge 0x452994
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + esi*4]
push eax
mov ecx, edi
call fcn.004533e0
mov eax, dword [esp + 0x60]
inc esi
cmp esi, eax
jl 0x451c50
lea ecx, [esp + 0x10]
push ecx
push 5
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 5
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
push 5
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
call fcn.0046fc50
lea ecx, [esp + 0x58]
mov byte [esp + 0x1b8], 0x37
call fcn.0048e75b
jmp 0x45283b
lea ecx, [esp + 0x34]
push 0x5ee464
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x451e7e
lea ecx, [esp + 0x58]
call fcn.0048e51d
lea edx, [esp + 0xc0]
mov bl, 0x4d
push edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x1bc], bl
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x4e
call fcn.00453ee0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea edi, [esp + 0x10]
lea ecx, [esp + 0xc8]
call fcn.00484730
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x1bc], 0x4f
call fcn.00453ee0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x1b8], bl
call fcn.00453f70
lea eax, [esp + 0x58]
push eax
mov ebx, edi
call fcn.00488cc0
lea ecx, [esp + 0x134]
push ecx
mov ecx, edi
call fcn.00484a10
push 0x1ec
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x50
test eax, eax
je 0x451d99
push eax
call fcn.0046c7e0
mov edi, eax
jmp 0x451d9b
xor edi, edi
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x4d
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x13c]
push ecx
push 0x54800120
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x1c]
push eax
mov ecx, edi
call fcn.0048d6f7
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451e0f
mov ebx, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call ebx
test eax, eax
jne 0x451e07
push 0xc
call ebx
test eax, eax
je 0x451e0f
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
mov eax, dword [esp + 0x60]
xor esi, esi
test eax, eax
jle 0x451e54
test esi, esi
js 0x452994
cmp esi, eax
jge 0x452994
mov ecx, dword [esp + 0x5c]
mov edx, dword [edi]
push 0xffffffffffffffff
lea eax, [ecx + esi*4]
push 0
push eax
mov eax, dword [edx + 0x168]
mov ecx, edi
call eax
mov eax, dword [esp + 0x60]
inc esi
cmp esi, eax
jl 0x451e23
lea ecx, [esp + 0x10]
push ecx
push 7
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 7
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00487ad0
push 7
jmp 0x451c9d
lea ecx, [esp + 0x34]
push 0x5ee46c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x451f98
lea edx, [esp + 0xd0]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x51
call fcn.00453ee0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x78
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x52
test eax, eax
je 0x451f05
mov esi, eax
call fcn.0046de40
mov edi, eax
jmp 0x451f07
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x10001
push ecx
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x451f68
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x451f60
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x451f68
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 8
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 8
call fcn.0046fc50
jmp 0x45283f
lea ecx, [esp + 0x34]
push 0x5ee474
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x4520b2
lea edx, [esp + 0xd8]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x53
call fcn.00453ee0
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x78
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x54
test eax, eax
je 0x45201f
mov esi, eax
call fcn.0046ae70
mov edi, eax
jmp 0x452021
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x452082
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x45207a
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x452082
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 9
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 9
call fcn.0046fc50
jmp 0x45283f
lea ecx, [esp + 0x34]
push 0x5ee47c
push ecx
call fcn.00453500
add esp, 8
test al, al
je 0x4521dc
lea edx, [esp + 0xe0]
push edx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x55
call fcn.00453ee0
lea ecx, [esp + 0xe0]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea eax, [esp + 0x134]
push eax
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x7c
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x56
test eax, eax
je 0x452138
push eax
call fcn.0046e0b0
mov edi, eax
jmp 0x45213a
xor edi, edi
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x10003
push ecx
lea eax, [esp + 0x13c]
push eax
push 0x54000000
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x45219b
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x452193
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x45219b
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xb
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xb
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xb
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee484
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x45230e
lea ecx, [esp + 0xe8]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x57
call fcn.00453ee0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xb4
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x58
test eax, eax
je 0x452265
push eax
call fcn.0046cca0
mov edi, eax
jmp 0x452267
xor edi, edi
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov edx, dword [ebx + ecx*4 + 0x80]
mov eax, dword [edi]
push 0xffff
push edx
mov edx, dword [eax + 0x160]
lea ecx, [esp + 0x13c]
push ecx
push 0x5400010e
push 0x5ee484
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x4522cd
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x4522c5
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x4522cd
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xa
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xa
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xa
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push str.OmFh
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x452441
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x59
call fcn.00453ee0
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0xc4
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x5a
test eax, eax
je 0x452397
push eax
call fcn.0046cab0
mov edi, eax
jmp 0x452399
xor edi, edi
mov eax, dword [esp + 0x28]
push 0x9ffcf
mov byte [esp + 0x1bc], 0x37
mov ecx, dword [ebx + eax*4 + 0x80]
push ecx
lea edx, [esp + 0x13c]
push edx
push 0x54800080
mov ecx, edi
call fcn.0048e356
push 0
push 0
mov ecx, edi
call fcn.0048f5a5
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x452400
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x4523f8
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x452400
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xc
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0xc
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xc
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee49c
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x45258f
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x5b
call fcn.00453ee0
lea ecx, [esp + 0xf8]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x88
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x5c
test eax, eax
je 0x4524ca
push eax
call fcn.0046c410
mov edi, eax
jmp 0x4524cc
xor edi, edi
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov edx, dword [ebx + ecx*4 + 0x80]
mov eax, dword [edi]
push 0xffff
push edx
mov edx, dword [eax + 0x160]
lea ecx, [esp + 0x13c]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x45252d
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
jne 0x452525
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
test eax, eax
je 0x45252d
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, edi
call fcn.00453460
lea eax, [esp + 0x10]
push eax
push 0xf
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
movzx ecx, word [edi + 0x84]
movzx edx, word [edi + 0x82]
push ecx
push edx
push edi
call fcn.004533b0
xor edx, edx
xor ecx, ecx
mov esi, edi
call fcn.0046c5d0
push 0xf
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0xf
call fcn.0046fc50
jmp 0x45283f
lea edx, [esp + 0x34]
push str.OmhV
push edx
call fcn.00453500
add esp, 8
test al, al
je 0x45269a
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x5d
call fcn.00453ee0
lea ecx, [esp + 0x100]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x170
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x5e
test eax, eax
je 0x452619
mov esi, eax
call fcn.00480080
mov edi, eax
jmp 0x45261b
xor edi, edi
mov eax, dword [esp + 0x18]
mov byte [esp + 0x1b8], 0x37
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push eax
push 0x68
mov ecx, edi
call edx
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x13c]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.0048d782
lea eax, [esp + 0x10]
push eax
push 0x10
mov edx, edi
lea ecx, [esp + 0x40]
call fcn.00485020
push 0x10
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00487ad0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push 0x10
call fcn.0046fc50
jmp 0x45283f
lea eax, [esp + 0x34]
push 0x5ee4ac
push eax
call fcn.00453500
add esp, 8
test al, al
je 0x45283f
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x14]
call fcn.004845d0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1bc], 0x5f
call fcn.00453ee0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x1b8], 0x37
call fcn.00453f70
lea edx, [esp + 0x134]
push edx
lea ecx, [esp + 0x14]
call fcn.00484a10
push 0x4bc
call fcn.004896de
add esp, 4
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b8], 0x60
test eax, eax
je 0x45271d
push eax
call fcn.00457600
mov ebx, eax
jmp 0x45271f
xor ebx, ebx
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x1b8], 0x37
mov eax, dword [esp + 0x24]
mov edx, dword [eax + ecx*4 + 0x80]
push edx
lea ecx, [esp + 0x138]
mov edx, ebx
call fcn.00458000
mov ecx, dword [esp + 0x18]
call fcn.00453490
mov esi, eax
test esi, esi
jne 0x452772
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x45276a
push 0xc
call edi
test eax, eax
je 0x452772
push eax
call fcn.0048c6a6
mov esi, eax
push 1
push esi
mov ecx, ebx
call fcn.00453460
mov eax, dword [ebx + 0x164]
mov edx, dword [eax + 0x24]
lea ecx, [ebx + 0x164]
push 0xe0ffff
call edx
mov eax, ebx
call fcn.0045f380
push 0xf
mov dword [ebx + 0x9c], 0
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, eax
mov esi, ebx
call fcn.0044ec30
lea eax, [esp + 0x10]
push eax
push 0x11
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.00485020
cmp dword [ebx + 0x118], 0
jne 0x452817
xor esi, esi
cmp dword [ebx + 0x120], esi
jle 0x452817
lea esp, [esp]
test esi, esi
js 0x45280e
cmp esi, dword [ebx + 0x120]
jge 0x45280e
cmp esi, dword [ebx + 0x138]
jge 0x452994
mov ecx, dword [ebx + 0x134]
lea eax, [ecx + esi*4]
mov ecx, ebx
mov dword [eax], 0x19
call fcn.0045d630
inc esi
cmp esi, dword [ebx + 0x120]
jl 0x4527e0
push 0x11
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x40]
push eax
mov edi, ebx
call fcn.00487ad0
push 0x11
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov edi, ebx
call fcn.0046fc50
mov ebx, dword [esp + 0x24]
lea ecx, [esp + 0x34]
mov byte [esp + 0x1b8], 0x36
call fcn.00453f70
lea ecx, [esp + 0x10]
push 0x5ee4e0
push ecx
call fcn.00452f50
add esp, 8
test al, al
jne 0x4510cc
inc dword [esp + 0x28]
lea ecx, [esp + 0x4c]
call fcn.00453f70
lea ecx, [esp + 0x50]
call fcn.00453f70
lea ecx, [esp + 0x54]
mov byte [esp + 0x1b8], 4
call fcn.00453f70
lea edx, [esp + 0x10]
push 0x5ee4bc
push edx
call fcn.00452f50
add esp, 8
test al, al
jne 0x450f60
mov esi, ebx
call fcn.0046ed20
mov eax, ebx
call fcn.0046eb60
push 0
dec eax
push eax
mov eax, dword [ebx + 0x20]
push 0x130c
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, ebx
call fcn.0046eb60
dec eax
push eax
mov edi, ebx
call fcn.0046ec50
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x14]
call fcn.00484310
lea edx, [esp + 0x110]
push edx
mov ecx, esi
call fcn.00484420
mov byte [esp + 0x1b8], 0x61
mov ecx, dword [eax]
mov esi, dword [esp + 0x2c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x452960
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x452952
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x452952
push eax
call fcn.00453e70
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x452945
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x18]
jmp 0x452960
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.00453d90
mov byte [esp + 0x1b8], 4
mov eax, dword [esp + 0x110]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f260
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x44f260
call fcn.0048a0e3
mov byte [esp + 0x1b8], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4529c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1b8], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4529e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x1b8], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x452a0d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1b8], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x452a35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1b8], 0xffffffff
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x452a51
push eax
call fcn.00489718
add esp, 4
mov ecx, dword [esp + 0x1b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x198]
xor ecx, esp
call fcn.005909d4
mov esp, ebp
pop ebp
ret