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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x588e7a
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x5e5c10]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
push edi
mov eax, dword [0x5e5c10]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
push 0
mov esi, ecx
mov eax, dword [esi + 0x20]
push 0
push 0x31
push eax
mov dword [esp + 0x40], esi
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.0045a9cf
mov dword [esp + 0x28], eax
test eax, eax
jne 0x408144
mov edi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call edi
test eax, eax
jne 0x40813a
push 0xc
call edi
test eax, eax
je 0x408144
push eax
call fcn.0045a9cf
mov dword [esp + 0x28], eax
lea eax, [esi + 0xb8]
push eax
mov dword [esp + 0x28], eax
call fcn.0043d5e0
lea ecx, [esi + 0x120bc]
call fcn.0040b6e0
mov ecx, eax
call fcn.0040b760
mov eax, dword [esi + 0x120bc]
push ecx
sub eax, 0x10
mov dword [esp + 0x78], esp
mov edi, esp
push eax
call fcn.0040c280
add eax, 0x10
add esp, 4
lea esi, [esp + 0x44]
mov dword [edi], eax
call fcn.00450500
mov dword [esp + 0x1c0], 0
mov byte [esp + 0x50], 1
call fcn.00456e5c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4081b7
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x40]
push ecx
lea esi, [esp + 0x18]
mov byte [esp + 0x1c4], 1
call fcn.00450630
lea edx, [esp + 0x34]
push edx
mov ecx, esi
call fcn.00450740
lea eax, [esp + 0x18]
push eax
mov ecx, esi
mov byte [esp + 0x1c4], 2
call fcn.004508f0
mov edi, esi
lea ecx, [esp + 0x20]
mov byte [esp + 0x1c0], 3
call fcn.00450a50
mov byte [esp + 0x1c0], 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 + 0x13c]
push ecx
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00450f00
mov edx, dword [esp + 0x148]
sub edx, dword [esp + 0x140]
mov eax, dword [esp + 0x144]
sub eax, dword [esp + 0x13c]
push 1
add edx, esi
mov esi, dword [esp + 0x34]
add edx, edi
push edx
add eax, ebx
push eax
push 0
push 0
mov ecx, esi
call fcn.00457ef8
lea edi, [esi + 0x120c0]
lea ecx, [esp + 0x14]
call fcn.004512f0
lea ecx, [esp + 0x14]
push ecx
push edi
call fcn.00454be0
mov edx, dword [esp + 0x20]
push edx
mov ecx, esi
call fcn.00457e6d
call fcn.00407b60
mov edi, dword [edi]
push 1
push edi
mov ecx, esi
call fcn.004589da
lea eax, [esp + 0x40]
push eax
lea esi, [esp + 0x18]
call fcn.00450630
lea ecx, [esp + 0x70]
push ecx
mov ecx, esi
call fcn.00450740
push eax
lea ecx, [esp + 0x38]
mov byte [esp + 0x1c4], 5
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408301
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov ecx, 0x5b83f8
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408336
test dx, dx
je 0x408332
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408336
add eax, 4
add ecx, 4
test dx, dx
jne 0x408310
xor eax, eax
jmp 0x40833b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x40b5ab
mov ecx, 0x5b8404
mov eax, esi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408376
test dx, dx
je 0x408372
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408376
add eax, 4
add ecx, 4
test dx, dx
jne 0x408350
xor eax, eax
jmp 0x40837b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x408573
lea ecx, [esp + 0xbc]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
mov byte [esp + 0x1c0], 6
mov ecx, dword [eax]
mov esi, dword [esp + 0x18]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4083fc
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4083ee
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4083ee
push eax
call fcn.0040c280
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4083e1
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x24]
jmp 0x4083fc
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401d10
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0xbc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408427
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0x110]
call fcn.00450a50
mov byte [esp + 0x1c0], 7
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40849a
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40848c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40848c
push eax
call fcn.0040c280
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40847f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x24]
jmp 0x40849a
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00401d10
mov byte [esp + 0x1c0], 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 0x4084c5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xa4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 8
test eax, eax
je 0x4084fd
push eax
call fcn.0043b610
mov edi, eax
jmp 0x4084ff
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 4
mov edx, dword [edi]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + 0x160]
push 0x54000100
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40853a
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x14]
push ecx
push 0
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 0
jmp 0x40b4e2
mov ecx, 0x5b840c
mov eax, esi
lea ebx, [ebx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4085a6
test dx, dx
je 0x4085a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4085a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x408580
xor eax, eax
jmp 0x4085ab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x408896
lea ecx, [esp + 0x120]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
mov byte [esp + 0x1c0], 9
mov ecx, dword [eax]
mov esi, dword [esp + 0x18]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x408628
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40861a
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40861a
push eax
call fcn.0040c280
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x408611
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x18], ebx
jmp 0x408628
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x20]
call fcn.00401d10
mov byte [esp + 0x1c0], 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 0x408653
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0x138]
call fcn.00450a50
mov byte [esp + 0x1c0], 0xa
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4086c2
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4086b4
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4086b4
push eax
call fcn.0040c280
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4086ab
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
jmp 0x4086c2
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00401d10
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x138]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4086ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xd4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0xb
test eax, eax
je 0x408725
push eax
call fcn.00436db0
mov edi, eax
jmp 0x408727
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 4
mov edx, dword [edi]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + 0x160]
push 0x54004300
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408762
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, dword [esp + 0x18]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi - 4], 0
lea edx, [esi - 4]
jl 0x40879b
cmp eax, dword [esi - 0x10]
jne 0x40879b
lea ebx, [esi - 0x10]
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x4087d3
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
je 0x40b5a1
mov eax, dword [esi - 0xc]
mov dword [ebx + 4], eax
mov eax, dword [esi - 0xc]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [ebx + 0x10]
push eax
call fcn.005601aa
add esp, 0x10
lea eax, [ebx + 0x10]
mov dword [esp + 0x2c], eax
mov byte [esp + 0x1c0], 0xc
mov esi, dword [edi + 0x78]
lea ebx, [eax - 0x10]
sub esi, 0x10
cmp ebx, esi
je 0x40883a
cmp dword [esi + 0xc], 0
jl 0x40882d
mov ecx, dword [ebx]
cmp ecx, dword [esi]
jne 0x40882d
push ebx
call fcn.0040c280
mov dword [esp + 0x20], eax
add esp, 4
lea eax, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x408821
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [edi + 0x78], eax
jmp 0x40883a
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [edi + 0x78]
call fcn.00401d10
mov byte [esp + 0x1c0], 4
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40885b
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
lea eax, [esp + 0x14]
push eax
push 1
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push 1
call fcn.0043d3b0
mov ebx, dword [esp + 0x24]
jmp 0x40b4ed
mov ecx, 0x5b8414
mov eax, esi
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4088c6
test dx, dx
je 0x4088c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4088c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4088a0
xor eax, eax
jmp 0x4088cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x408c21
lea eax, [esp + 0x12c]
push eax
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0xd
call fcn.0040c2f0
mov byte [esp + 0x1c0], 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 0x408926
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0x128]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0xe
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x128]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408973
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xb4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0xf
test eax, eax
je 0x4089ac
mov esi, eax
call fcn.00438390
mov edi, eax
jmp 0x4089ae
xor edi, edi
lea edx, [esp + 0x14]
push edx
push 2
mov edx, edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1c8], 4
call fcn.00451640
cmp byte [edi + 0xa0], 0
je 0x408ab8
mov al, byte [edi + 0xa1]
test al, al
je 0x408a68
cmp byte [edi + 0xa2], 0
jne 0x408a1d
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x54801044
mov ecx, edi
call fcn.00462010
mov edx, dword [edi + 0x20]
push 1
push 1
push edx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x408ad6
test al, al
je 0x408a68
cmp byte [edi + 0xa2], 0
je 0x408a64
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x548010c4
mov ecx, edi
call fcn.00462010
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 0x408ad6
test al, al
jne 0x408a9f
cmp byte [edi + 0xa2], 0
je 0x408a9f
mov ecx, dword [esp + 0x30]
push 0xffff
push ecx
lea edx, [esp + 0x144]
push edx
push 0x54801084
mov ecx, edi
call fcn.00462010
mov eax, dword [edi + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x408ad6
mov ecx, dword [esp + 0x30]
push 0xffff
push ecx
lea edx, [esp + 0x144]
push edx
push 0x54801044
jmp 0x408acf
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x54800080
mov ecx, edi
call fcn.00462010
cmp byte [edi + 0x9f], 0
jne 0x408aef
push 0
push 0x8000000
push 0
mov ecx, edi
call fcn.00457e15
cmp byte [edi + 0x9e], 0
je 0x408b0b
mov edx, dword [edi + 0x20]
push 0
push 1
push 0xcf
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp byte [edi + 0x9c], 0
je 0x408b27
mov eax, dword [edi + 0x20]
push 0
push 0x2a
push 0xcc
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp byte [edi + 0x9d], 0
je 0x408b40
push 0
push 0x2000
push 0
mov ecx, edi
call fcn.00457e15
mov eax, dword [edi + 0x84]
test eax, eax
je 0x408b54
mov esi, edi
mov dword [edi + 0x74], eax
call fcn.004387a0
mov eax, dword [edi + 0x88]
cmp eax, 0xffffff
je 0x408b6b
mov esi, edi
mov dword [edi + 0x78], eax
call fcn.004387a0
mov esi, dword [edi + 0xa4]
cmp esi, 2
jbe 0x408b7b
mov esi, 2
mov eax, dword [edi + 0x20]
test eax, eax
je 0x408bb0
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, esi
cmp eax, esi
je 0x408bb0
mov ecx, dword [edi + 0xa4]
push 0
push esi
push ecx
mov ecx, edi
call fcn.00457e15
mov edx, dword [edi + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [edi + 0xac]
mov dword [edi + 0xa4], esi
test eax, eax
je 0x408be3
cmp dword [eax + 4], 0
je 0x408be3
test eax, eax
jne 0x408bd5
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
jmp 0x408bf7
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
jmp 0x408bf7
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408bee
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x20]
push 1
push eax
push 0x30
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esp + 0x20]
push edx
mov ecx, edi
call fcn.00457e6d
push 2
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00454f20
push 2
jmp 0x40b4e2
mov ecx, 0x5b841c
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408c4e
test dx, dx
je 0x408c4a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408c4e
add eax, 4
add ecx, 4
test dx, dx
jne 0x408c28
xor eax, eax
jmp 0x408c53
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x408da9
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x10
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408cae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0xe4]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x11
call fcn.0040c2f0
mov byte [esp + 0x1c0], 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 0x408cfb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x12
test eax, eax
je 0x408d33
push eax
call fcn.0043afe0
mov edi, eax
jmp 0x408d35
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 4
mov edx, dword [edi]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + 0x160]
push 0x54000009
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408d70
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x14]
push ecx
push 3
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 3
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 3
jmp 0x40b4e2
lea ecx, [esp + 0x34]
push 0x5b8424
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x408f0c
lea edx, [esp + 0x8c]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x13
call fcn.0040c2f0
mov byte [esp + 0x1c0], 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 0x408e11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0x114]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x14
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x114]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408e5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x15
test eax, eax
je 0x408e96
push eax
call fcn.00437ce0
mov edi, eax
jmp 0x408e98
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 4
mov edx, dword [edi]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + 0x160]
push 0x54000003
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x408ed3
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [edi + 0x20]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [esp + 0x14]
push ecx
push 4
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 4
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 4
jmp 0x40b4e2
lea ecx, [esp + 0x34]
push 0x5b842c
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40908d
lea edx, [esp + 0x94]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x16
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408f74
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x14]
lea ecx, [esp + 0xec]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x17
call fcn.0040c2f0
mov byte [esp + 0x1c0], 4
mov eax, dword [esp + 0xec]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408fc1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xf8
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x18
test eax, eax
je 0x408ff9
push eax
call fcn.00438b70
mov ebx, eax
jmp 0x408ffb
xor ebx, ebx
mov eax, dword [esp + 0x30]
push 0
push 0xffff
push eax
lea ecx, [esp + 0x148]
push ecx
mov byte [esp + 0x1d0], 4
mov eax, dword [esp + 0x30]
mov edx, dword [ebx]
mov edx, dword [edx + 0x54]
push 0x54000100
push eax
push 0
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx]
mov edx, dword [eax + 0x180]
push ecx
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 4]
lea eax, [esp + 0x14c]
push eax
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 + 0x1a8]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call edx
lea eax, [esp + 0x14]
push eax
push 6
mov edx, ebx
lea ecx, [esp + 0x48]
call fcn.00451640
push 6
jmp 0x409baf
lea ecx, [esp + 0x34]
push 0x5b8434
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409209
lea ecx, [esp + 0x54]
call fcn.004621d7
lea edx, [esp + 0x9c]
mov bl, 0x19
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], bl
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x1a
call fcn.0040c2f0
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea eax, [esp + 0x54]
push eax
lea ebx, [esp + 0x18]
call fcn.00456110
lea ecx, [esp + 0x13c]
push ecx
mov ecx, ebx
call fcn.00450f00
push 0x88
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x1b
test eax, eax
je 0x409134
mov esi, eax
call fcn.00437e70
mov edi, eax
jmp 0x409136
xor edi, edi
lea edx, [esp + 0x14]
push edx
push 5
mov edx, edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1c8], 0x19
call fcn.00451640
mov ecx, dword [esp + 0x30]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
xor eax, eax
cmp byte [edi + 0x74], al
push 0xffff
setne al
push ecx
lea ecx, [esp + 0x144]
push ecx
mov ecx, edi
add eax, 0x54200002
push eax
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x409187
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 + 0x5c]
xor esi, esi
test eax, eax
jle 0x4091d0
test esi, esi
js 0x40b5a6
cmp esi, eax
jge 0x40b5a6
mov ecx, dword [esp + 0x58]
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 + 0x5c]
inc esi
cmp esi, eax
jl 0x4091a2
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x78]
test eax, eax
je 0x4091e5
push 0
push ecx
push 0x14e
push eax
call ebx
movzx eax, byte [edi + 0x75]
push eax
mov esi, edi
call fcn.0043af40
push 5
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 5
jmp 0x40938e
lea eax, [esp + 0x34]
push 0x5b843c
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x4093b5
lea ecx, [esp + 0x54]
call fcn.004621d7
lea ecx, [esp + 0x130]
push ecx
mov bl, 0x1c
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], bl
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x1d
call fcn.0040c2f0
lea ecx, [esp + 0x130]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0xa4]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x1e
call fcn.0040c2f0
lea ecx, [esp + 0xa4]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea edx, [esp + 0x54]
push edx
mov ebx, edi
call fcn.00456110
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.00450f00
push 0x1f0
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x1f
test eax, eax
je 0x4092e2
push eax
call fcn.00439f10
mov edi, eax
jmp 0x4092e4
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 0x1c
mov edx, dword [edi]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + 0x160]
push 0x54800120
push eax
mov ecx, edi
call edx
mov eax, dword [esp + 0x20]
push eax
mov ecx, edi
call fcn.00457e6d
mov ecx, dword [esp + 0x28]
push 1
push ecx
mov ecx, edi
call fcn.0040ba60
mov eax, dword [esp + 0x5c]
xor esi, esi
test eax, eax
jle 0x409369
test esi, esi
js 0x40b5a6
cmp esi, eax
jge 0x40b5a6
mov edx, dword [esp + 0x58]
push 0xffffffffffffffff
lea eax, [edx + esi*4]
mov edx, dword [edi]
push 0
push eax
mov eax, dword [edx + 0x168]
mov ecx, edi
call eax
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, eax
jl 0x409338
lea ecx, [esp + 0x14]
push ecx
push 7
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 7
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 7
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
call fcn.0043d3b0
lea ecx, [esp + 0x54]
mov byte [esp + 0x1c0], 4
call fcn.00462415
mov ebx, dword [esp + 0x24]
jmp 0x40b4ed
lea ecx, [esp + 0x34]
push 0x5b8444
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409490
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x20
call fcn.0040c2f0
lea ecx, [esp + 0xf4]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x7c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x21
test eax, eax
je 0x40943c
mov esi, eax
call fcn.0043ae30
mov edi, eax
jmp 0x40943e
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
mov byte [esp + 0x1c8], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 8
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 8
jmp 0x40b4e2
lea edx, [esp + 0x34]
push 0x5b844c
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40957e
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x22
call fcn.0040c2f0
lea ecx, [esp + 0xac]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x23
test eax, eax
je 0x409519
push eax
call fcn.0043b360
mov edi, eax
jmp 0x40951b
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
mov byte [esp + 0x1c8], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0xb
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 0xb
jmp 0x40b4e2
lea ecx, [esp + 0x34]
push 0x5b8454
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409663
lea edx, [esp + 0x11c]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x24
call fcn.0040c2f0
lea ecx, [esp + 0x11c]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xbc
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x25
test eax, eax
je 0x409607
push eax
call fcn.0043a7f0
mov edi, eax
jmp 0x409609
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
mov byte [esp + 0x1cc], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x5400010e
push 0x5b8454
mov ecx, edi
call edx
lea eax, [esp + 0x14]
push eax
push 0xa
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xa
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xa
jmp 0x40b4e2
lea eax, [esp + 0x34]
push str.OmFh
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x409757
lea ecx, [esp + 0xb4]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x26
call fcn.0040c2f0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xc8
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x27
test eax, eax
je 0x4096ec
push eax
call fcn.0043a340
mov edi, eax
jmp 0x4096ee
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x14800080
mov ecx, edi
mov byte [esp + 0x1d0], 4
call fcn.00462010
push 0
push 0
mov ecx, edi
call fcn.0046325f
mov edx, dword [esp + 0x28]
push 1
push edx
mov ecx, edi
call fcn.0040ba60
lea eax, [esp + 0x14]
push eax
push 0xc
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xc
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xc
jmp 0x40b4e2
lea eax, [esp + 0x34]
push 0x5b8464
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x40983c
lea ecx, [esp + 0xfc]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x28
call fcn.0040c2f0
lea ecx, [esp + 0xfc]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x88
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x29
test eax, eax
je 0x4097e0
push eax
call fcn.0043caf0
mov edi, eax
jmp 0x4097e2
xor edi, edi
mov ecx, dword [esp + 0x30]
push 0xffff
push ecx
lea edx, [esp + 0x144]
push edx
mov byte [esp + 0x1cc], 4
mov eax, dword [edi]
mov eax, dword [eax + 0x160]
push 0x5400090e
push 0x5b8464
mov ecx, edi
call eax
lea ecx, [esp + 0x14]
push ecx
push 0xe
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xe
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 0xe
jmp 0x40b4e2
lea ecx, [esp + 0x34]
push 0x5b846c
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409941
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x2a
call fcn.0040c2f0
lea ecx, [esp + 0x78]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x94
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x2b
test eax, eax
je 0x4098bf
push eax
call fcn.004399b0
mov edi, eax
jmp 0x4098c1
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
mov byte [esp + 0x1c8], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0xf
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
movzx edx, word [edi + 0x84]
movzx eax, word [edi + 0x82]
push edx
push eax
push edi
call fcn.0040b9b0
mov eax, edi
call fcn.00439bd0
push 0xf
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xf
jmp 0x40b4e2
lea eax, [esp + 0x34]
push str.OmhV
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x409a9c
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x2c
call fcn.0040c2f0
lea ecx, [esp + 0x134]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
xor eax, eax
push 0xd8
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call fcn.00456cca
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
mov byte [esp + 0x1c0], 0x2d
test esi, esi
je 0x4099e7
mov ecx, esi
call fcn.0046ca3a
mov dword [esi], vtable.CMyDocument.0
jmp 0x4099e9
xor esi, esi
mov ecx, dword [esp + 0x30]
push 0xe900
lea eax, [esp + 0x58]
mov byte [esp + 0x1c4], 4
push eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], 0x5b8be4
call fcn.00464153
mov edi, eax
test edi, edi
je 0x409a19
mov eax, dword [edi + 0x20]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x4000000
test edi, edi
jne 0x409a2f
xor ecx, ecx
jmp 0x409a32
mov ecx, dword [edi + 0x20]
push eax
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 1
mov ecx, edi
call fcn.00457f38
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x144]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.00457ef8
lea eax, [esp + 0x14]
push eax
push 0x10
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0x10
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0x10
jmp 0x40b4e2
lea eax, [esp + 0x34]
push 0x5b847c
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x409bc7
lea ecx, [esp + 0xc4]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x2e
call fcn.0040c2f0
lea ecx, [esp + 0xc4]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x51c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x2f
test eax, eax
je 0x409b25
push eax
call fcn.0041d6d0
mov ebx, eax
jmp 0x409b27
xor ebx, ebx
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x140]
mov edx, ebx
mov byte [esp + 0x1c4], 4
call fcn.0041e210
mov ecx, dword [esp + 0x28]
push 1
push ecx
mov ecx, ebx
call fcn.0040ba60
mov edx, dword [ebx + 0x1a4]
mov eax, dword [edx + 0x24]
lea ecx, [ebx + 0x1a4]
push 0xffffff
call eax
mov eax, ebx
call fcn.00425b90
push 0xf
mov dword [ebx + 0xdc], 0
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, eax
mov esi, ebx
call fcn.00407720
lea ecx, [esp + 0x14]
push ecx
push 0x11
mov edx, ebx
lea ecx, [esp + 0x48]
call fcn.00451640
push 0x11
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
mov edi, ebx
call fcn.00454f20
push 0x11
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov edi, ebx
call fcn.0043d3b0
mov ebx, dword [esp + 0x24]
jmp 0x40b4ed
lea ecx, [esp + 0x34]
push 0x5b8484
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40b412
lea edx, [esp + 0x104]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x30
call fcn.0040c2f0
lea ecx, [esp + 0x104]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x94
call fcn.00456cca
add esp, 4
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1c0], 0x31
test eax, eax
je 0x409c54
push eax
call fcn.0043bdc0
mov edi, eax
mov dword [esp + 0x2c], edi
jmp 0x409c60
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
push 0xffff
push eax
mov byte [esp + 0x1c8], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x14000200
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0xd
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xd
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
mov esi, dword [esp + 0x18]
push 0xd
mov eax, ebx
call fcn.0043d3b0
lea ecx, [esp + 0x14]
push 0x5b848c
push ecx
mov dword [esp + 0x24], 0
call fcn.0040b680
add esp, 8
test al, al
je 0x40b3e8
jmp 0x409cf0
lea edx, [esp + 0x40]
push edx
lea esi, [esp + 0x18]
call fcn.00450630
mov eax, esi
push 0x5b848c
push eax
call fcn.0040bae0
add esp, 8
test al, al
jne 0x40b3e8
lea ecx, [esp + 0xcc]
push ecx
mov ecx, esi
call fcn.00450740
lea ecx, [esp + 0xcc]
call fcn.00415a10
lea edx, [esp + 0x70]
push edx
mov ecx, esi
call fcn.00450bf0
mov byte [esp + 0x1c0], 0x32
mov eax, dword [esp + 0x70]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x3c], esp
mov esi, esp
push eax
call fcn.0040c280
add eax, 0x10
add esp, 4
mov ebx, edi
mov dword [esi], eax
call fcn.0043c0b0
lea ecx, [esp + 0x68]
call fcn.0040c220
lea ecx, [esp + 0x6c]
call fcn.0040c220
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c8], 0x34
call fcn.004549e0
test al, al
je 0x409e4e
lea ecx, [ecx]
lea edx, [esp + 0x68]
push 0x5b8498
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409de6
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x1c]
push eax
lea esi, [ecx + edx*4]
call fcn.00560668
mov ecx, dword [esi]
add esp, 4
push 1
push eax
mov dword [ecx + 0xb8], eax
call fcn.004589da
jmp 0x409e33
lea ecx, [esp + 0x68]
push 0x5b84a4
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x409e33
mov eax, dword [esp + 0x6c]
push 1
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x40], esp
mov esi, esp
push eax
call fcn.0040c280
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
add eax, 0x10
mov dword [esi], eax
mov eax, dword [edx + 0x84]
mov edi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
add esp, 4
call fcn.0043c980
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x1c]
call fcn.004549e0
test al, al
jne 0x409da0
lea ecx, [esp + 0x14]
push 0x5b84b0
push ecx
mov byte [esp + 0x58], 1
call fcn.0040b680
add esp, 8
test al, al
je 0x40b3a3
lea ecx, [ecx]
lea edx, [esp + 0x40]
push edx
lea esi, [esp + 0x18]
call fcn.00450630
mov eax, esi
push 0x5b84b0
push eax
call fcn.0040bae0
add esp, 8
test al, al
jne 0x40b3a3
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
call fcn.00450740
lea edx, [esp + 0x3c]
push 0x5b8404
push edx
mov byte [esp + 0x1c8], 0x35
call fcn.0040bae0
add esp, 8
test al, al
je 0x409fda
lea eax, [esp + 0x124]
push eax
mov ecx, esi
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x36
call fcn.0040c2f0
lea ecx, [esp + 0x124]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
mov edi, esi
lea ecx, [esp + 0xd4]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x37
call fcn.0040c2f0
lea ecx, [esp + 0xd4]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea ecx, [esp + 0x13c]
push ecx
mov ecx, esi
call fcn.00450f00
push 0xa4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x38
test eax, eax
je 0x409f63
push eax
call fcn.0043b610
mov edi, eax
jmp 0x409f65
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x144]
push eax
push 0x54000100
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 0
jmp 0x40b36b
lea ecx, [esp + 0x3c]
push 0x5b840c
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a131
lea edx, [esp + 0x10c]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x39
call fcn.0040c2f0
lea ecx, [esp + 0x10c]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0xdc]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x3a
call fcn.0040c2f0
lea ecx, [esp + 0xdc]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.00450f00
push 0xd4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x3b
test eax, eax
je 0x40a097
push eax
call fcn.00436db0
mov edi, eax
jmp 0x40a099
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x144]
push eax
push 0x54004300
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
mov esi, dword [esp + 0x18]
push ecx
lea eax, [esi - 0x10]
mov dword [esp + 0x3c], esp
mov ebx, esp
push eax
call fcn.0040c280
add eax, 0x10
add esp, 4
mov ecx, edi
mov dword [ebx], eax
call fcn.00407640
lea ecx, [esp + 0x14]
push ecx
push 1
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 1
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 1
jmp 0x40b36f
lea ecx, [esp + 0x3c]
push 0x5b8414
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a426
lea edx, [esp + 0x7c]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x3c
call fcn.0040c2f0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0x80]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x3d
call fcn.0040c2f0
lea ecx, [esp + 0x80]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.00450f00
push 0xb4
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x3e
test eax, eax
je 0x40a1e9
mov esi, eax
call fcn.00438390
mov edi, eax
jmp 0x40a1eb
xor edi, edi
lea ecx, [esp + 0x14]
push ecx
push 2
mov edx, edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1c8], 0x35
call fcn.00451640
cmp byte [edi + 0xa0], 0
je 0x40a32c
mov al, byte [edi + 0xa1]
test al, al
je 0x40a2c2
cmp byte [edi + 0xa2], 0
jne 0x40a267
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + ecx*4]
push 0xffff
push edx
lea eax, [esp + 0x144]
push eax
push 0x54801044
mov ecx, edi
call fcn.00462010
mov ecx, dword [edi + 0x20]
push 1
push 1
push ecx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x40a357
test al, al
je 0x40a2c2
cmp byte [edi + 0xa2], 0
je 0x40a2be
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + ecx*4]
push 0xffff
push edx
lea eax, [esp + 0x144]
push eax
push 0x548010c4
mov ecx, edi
call fcn.00462010
mov ecx, dword [edi + 0x20]
mov esi, dword [sym.imp.USER32.dll_ShowScrollBar]
push 1
push 1
push ecx
call esi
mov edx, dword [edi + 0x20]
push 1
push 0
push edx
call esi
jmp 0x40a357
test al, al
jne 0x40a306
cmp byte [edi + 0xa2], 0
je 0x40a306
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x54801084
mov ecx, edi
call fcn.00462010
mov edx, dword [edi + 0x20]
push 1
push 0
push edx
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x40a357
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
push 0xffff
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x54801044
jmp 0x40a350
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + ecx*4]
push 0xffff
push edx
lea eax, [esp + 0x144]
push eax
push 0x54800080
mov ecx, edi
call fcn.00462010
cmp byte [edi + 0x9f], 0
jne 0x40a370
push 0
push 0x8000000
push 0
mov ecx, edi
call fcn.00457e15
cmp byte [edi + 0x9e], 0
je 0x40a380
mov eax, edi
call fcn.0040ba20
cmp byte [edi + 0x9c], 0
je 0x40a390
mov eax, edi
call fcn.0040ba00
cmp byte [edi + 0x9d], 0
je 0x40a3a9
push 0
push 0x2000
push 0
mov ecx, edi
call fcn.00457e15
mov eax, dword [edi + 0x84]
test eax, eax
je 0x40a3bd
mov esi, edi
mov dword [edi + 0x74], eax
call fcn.004387a0
mov eax, dword [edi + 0x88]
cmp eax, 0xffffff
je 0x40a3d4
mov esi, edi
mov dword [edi + 0x78], eax
call fcn.004387a0
mov eax, dword [edi + 0xa4]
call fcn.004076b0
lea eax, [edi + 0xac]
test eax, eax
je 0x40a3f4
cmp dword [eax + 4], 0
je 0x40a3f4
push 1
push eax
jmp 0x40a3fb
mov ecx, dword [esp + 0x28]
push 1
push ecx
mov ecx, edi
call fcn.0040ba60
mov edx, dword [esp + 0x20]
push edx
mov ecx, edi
call fcn.00457e6d
push 2
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00454f20
push 2
jmp 0x40b36b
lea edx, [esp + 0x3c]
push 0x5b841c
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a55a
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x3f
call fcn.0040c2f0
lea ecx, [esp + 0x88]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0x90]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x40
call fcn.0040c2f0
lea ecx, [esp + 0x90]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea ecx, [esp + 0x13c]
push ecx
mov ecx, edi
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x41
test eax, eax
je 0x40a4e3
push eax
call fcn.0043afe0
mov edi, eax
jmp 0x40a4e5
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xfffc
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x144]
push eax
push 0x54000009
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 3
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 3
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 3
jmp 0x40b36b
lea ecx, [esp + 0x3c]
push 0x5b8424
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a68e
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x42
call fcn.0040c2f0
lea ecx, [esp + 0x98]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0xa0]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x43
call fcn.0040c2f0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x44
test eax, eax
je 0x40a617
push eax
call fcn.00437ce0
mov edi, eax
jmp 0x40a619
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xfffd
push ecx
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x144]
push eax
push 0x54000003
push ecx
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 4
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 4
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 4
jmp 0x40b36b
lea ecx, [esp + 0x3c]
push 0x5b842c
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a7ec
lea edx, [esp + 0xa8]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x45
call fcn.0040c2f0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0xb0]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x46
call fcn.0040c2f0
lea ecx, [esp + 0xb0]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
mov ecx, edi
call fcn.00450f00
push 0xf8
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x47
test eax, eax
je 0x40a74b
push eax
call fcn.00438b70
mov ebx, eax
jmp 0x40a74d
xor ebx, ebx
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [ebx]
mov edx, dword [edx + 0x54]
push 0
push 0xffff
push ecx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x148]
push eax
push 0x54000000
push ecx
push 0
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx]
mov edx, dword [eax + 0x180]
push ecx
mov ecx, ebx
call edx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 4]
lea eax, [esp + 0x14c]
push eax
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 + 0x1a8]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call edx
lea eax, [esp + 0x14]
push eax
push 6
mov edx, ebx
lea ecx, [esp + 0x48]
call fcn.00451640
push 6
jmp 0x40b369
lea ecx, [esp + 0x3c]
push 0x5b8434
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40a954
lea ecx, [esp + 0x54]
call fcn.004621d7
lea edx, [esp + 0xb8]
mov bl, 0x48
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], bl
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x49
call fcn.0040c2f0
lea ecx, [esp + 0xb8]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea eax, [esp + 0x54]
push eax
lea ebx, [esp + 0x18]
call fcn.00456110
lea ecx, [esp + 0x13c]
push ecx
mov ecx, ebx
call fcn.00450f00
push 0x88
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x4a
test eax, eax
je 0x40a893
mov esi, eax
call fcn.00437e70
mov edi, eax
jmp 0x40a895
xor edi, edi
lea edx, [esp + 0x14]
push edx
push 5
mov edx, edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x1c8], 0x48
call fcn.00451640
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x84]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ecx + esi*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
xor eax, eax
cmp byte [edi + 0x74], al
push 0xffff
setne al
push ecx
lea ecx, [esp + 0x144]
push ecx
mov ecx, edi
add eax, 0x54200002
push eax
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
mov eax, dword [esp + 0x5c]
xor esi, esi
test eax, eax
jle 0x40a928
test esi, esi
js 0x40b5a6
cmp esi, eax
jge 0x40b5a6
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + esi*4]
push eax
mov ecx, edi
call fcn.0040b9e0
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, eax
jl 0x40a900
mov ecx, dword [edi + 0x78]
mov esi, edi
call fcn.00407700
movzx edx, byte [edi + 0x75]
push edx
call fcn.0043af40
push 5
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00454f20
push 5
jmp 0x40aae6
lea edx, [esp + 0x3c]
push 0x5b843c
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40ab09
lea ecx, [esp + 0x54]
call fcn.004621d7
lea eax, [esp + 0xc0]
mov bl, 0x4b
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c4], bl
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x4c
call fcn.0040c2f0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea edi, [esp + 0x14]
lea ecx, [esp + 0xc8]
call fcn.00450a50
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x1c4], 0x4d
call fcn.0040c2f0
lea ecx, [esp + 0xc8]
mov byte [esp + 0x1c0], bl
call fcn.00415a10
lea ecx, [esp + 0x54]
push ecx
mov ebx, edi
call fcn.00456110
lea edx, [esp + 0x13c]
push edx
mov ecx, edi
call fcn.00450f00
push 0x1f0
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x4e
test eax, eax
je 0x40aa2d
push eax
call fcn.00439f10
mov edi, eax
jmp 0x40aa2f
xor edi, edi
mov byte [esp + 0x1c0], 0x4b
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + ecx*4]
mov eax, dword [edi]
mov eax, dword [eax + 0x160]
push 0xffff
push edx
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x144]
push ecx
push 0x54800120
push edx
mov ecx, edi
call eax
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, edi
call fcn.00457e6d
mov edx, dword [esp + 0x28]
push 1
push edx
mov ecx, edi
call fcn.0040ba60
mov eax, dword [esp + 0x5c]
xor esi, esi
test eax, eax
jle 0x40aac1
test esi, esi
js 0x40b5a6
cmp esi, eax
jge 0x40b5a6
mov eax, dword [esp + 0x58]
mov edx, dword [edi]
push 0xffffffffffffffff
lea eax, [eax + esi*4]
push 0
push eax
mov eax, dword [edx + 0x168]
mov ecx, edi
call eax
mov eax, dword [esp + 0x5c]
inc esi
cmp esi, eax
jl 0x40aa90
lea ecx, [esp + 0x14]
push ecx
push 7
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 7
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 7
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
call fcn.0043d3b0
lea ecx, [esp + 0x54]
mov byte [esp + 0x1c0], 0x35
call fcn.00462415
jmp 0x40b378
lea ecx, [esp + 0x3c]
push 0x5b8444
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40abf1
lea edx, [esp + 0xd0]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x4f
call fcn.0040c2f0
lea ecx, [esp + 0xd0]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x7c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x50
test eax, eax
je 0x40ab90
mov esi, eax
call fcn.0043ae30
mov edi, eax
jmp 0x40ab92
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x10001
push ecx
lea eax, [esp + 0x144]
push eax
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 8
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 8
jmp 0x40b36b
lea edx, [esp + 0x3c]
push 0x5b84c0
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40acd9
lea eax, [esp + 0xd8]
push eax
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x51
call fcn.0040c2f0
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x7c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x52
test eax, eax
je 0x40ac78
mov esi, eax
call fcn.004381b0
mov edi, eax
jmp 0x40ac7a
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
lea eax, [esp + 0x144]
push eax
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 9
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 9
jmp 0x40b36b
lea edx, [esp + 0x3c]
push 0x5b844c
push edx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40add4
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x53
call fcn.0040c2f0
lea ecx, [esp + 0xe0]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea ecx, [esp + 0x13c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x80
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x54
test eax, eax
je 0x40ad62
push eax
call fcn.0043b360
mov edi, eax
jmp 0x40ad64
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0x10003
push ecx
lea eax, [esp + 0x144]
push eax
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0xb
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xb
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.00454f20
push 0xb
jmp 0x40b36b
lea ecx, [esp + 0x3c]
push 0x5b8454
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40aec6
lea edx, [esp + 0xe8]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x55
call fcn.0040c2f0
lea ecx, [esp + 0xe8]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xbc
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x56
test eax, eax
je 0x40ae5d
push eax
call fcn.0043a7f0
mov edi, eax
jmp 0x40ae5f
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
push 0xffff
push ecx
lea eax, [esp + 0x144]
push eax
push 0x5400010e
push 0x5b8454
mov ecx, edi
call edx
lea eax, [esp + 0x14]
push eax
push 0xa
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xa
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xa
jmp 0x40b36b
lea eax, [esp + 0x3c]
push str.OmFh
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x40afc7
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x57
call fcn.0040c2f0
lea ecx, [esp + 0xf0]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0xc8
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x58
test eax, eax
je 0x40af4f
push eax
call fcn.0043a340
mov edi, eax
jmp 0x40af51
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
push 0x9ffcf
push eax
lea ecx, [esp + 0x144]
push ecx
push 0x54800080
mov ecx, edi
call fcn.00462010
push 0
push 0
mov ecx, edi
call fcn.0046325f
mov edx, dword [esp + 0x28]
push 1
push edx
mov ecx, edi
call fcn.0040ba60
lea eax, [esp + 0x14]
push eax
push 0xc
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0xc
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xc
jmp 0x40b36b
lea eax, [esp + 0x3c]
push 0x5b846c
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x40b0df
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x59
call fcn.0040c2f0
lea ecx, [esp + 0xf8]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x94
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x5a
test eax, eax
je 0x40b050
push eax
call fcn.004399b0
mov edi, eax
jmp 0x40b052
xor edi, edi
mov byte [esp + 0x1c0], 0x35
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x84]
mov ecx, dword [esp + 0x1c]
mov edx, dword [edx + ecx*4]
mov eax, dword [edi]
push 0xffff
push edx
mov edx, dword [eax + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 0xf
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
movzx edx, word [edi + 0x84]
movzx eax, word [edi + 0x82]
push edx
push eax
push edi
call fcn.0040b9b0
mov eax, edi
call fcn.00439bd0
push 0xf
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0xf
jmp 0x40b36b
lea eax, [esp + 0x3c]
push str.OmhV
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x40b249
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x5b
call fcn.0040c2f0
lea ecx, [esp + 0x100]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
mov edx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov edi, dword [ecx + edx*4]
push 0xd8
call fcn.00456cca
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov byte [esp + 0x1c0], 0x5c
test esi, esi
je 0x40b196
mov ecx, esi
call fcn.0046ca3a
mov dword [esi], vtable.CMyDocument.0
jmp 0x40b198
xor esi, esi
push 0xe900
lea eax, [esp + 0x58]
mov byte [esp + 0x1c4], 0x35
push eax
mov ecx, edi
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], 0x5b8be4
call fcn.00464153
mov edi, eax
test edi, edi
je 0x40b1c6
mov eax, dword [edi + 0x20]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x4000000
test edi, edi
jne 0x40b1dc
xor ecx, ecx
jmp 0x40b1df
mov ecx, dword [edi + 0x20]
push eax
push 0xfffffffffffffff0
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 1
mov ecx, edi
call fcn.00457f38
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x148]
mov edx, dword [esp + 0x144]
push 1
sub ecx, eax
push ecx
mov ecx, dword [esp + 0x144]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, edi
call fcn.00457ef8
lea eax, [esp + 0x14]
push eax
push 0x10
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 0x10
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00454f20
push 0x10
jmp 0x40b36b
lea eax, [esp + 0x3c]
push 0x5b847c
push eax
call fcn.0040bae0
add esp, 8
test al, al
je 0x40b378
lea ecx, [esp + 0x108]
push ecx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x5d
call fcn.0040c2f0
lea ecx, [esp + 0x108]
mov byte [esp + 0x1c0], 0x35
call fcn.00415a10
lea edx, [esp + 0x13c]
push edx
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x51c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x5e
test eax, eax
je 0x40b2d2
push eax
call fcn.0041d6d0
mov ebx, eax
jmp 0x40b2d4
xor ebx, ebx
mov byte [esp + 0x1c0], 0x35
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x84]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
push eax
lea ecx, [esp + 0x140]
mov edx, ebx
call fcn.0041e210
mov ecx, dword [esp + 0x28]
push 1
push ecx
mov ecx, ebx
call fcn.0040ba60
mov edx, dword [ebx + 0x1a4]
mov eax, dword [edx + 0x24]
lea ecx, [ebx + 0x1a4]
push 0xffffff
call eax
mov eax, ebx
call fcn.00425b90
push 0xf
mov dword [ebx + 0xdc], 0
call dword [sym.imp.USER32.dll_GetSysColor]
mov edi, eax
mov esi, ebx
call fcn.00407720
lea ecx, [esp + 0x14]
push ecx
push 0x11
mov edx, ebx
lea ecx, [esp + 0x48]
call fcn.00451640
push 0x11
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x48]
push eax
mov edi, ebx
call fcn.00454f20
push 0x11
mov edi, ebx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
call fcn.0043d3b0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1c0], 0x34
call fcn.00415a10
lea ecx, [esp + 0x14]
push 0x5b84b0
push ecx
call fcn.0040b680
add esp, 8
test al, al
jne 0x409e70
inc dword [esp + 0x1c]
lea ecx, [esp + 0x6c]
call fcn.00415a10
lea ecx, [esp + 0x68]
call fcn.00415a10
lea ecx, [esp + 0x70]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea edx, [esp + 0x14]
push 0x5b848c
push edx
call fcn.0040b680
mov edi, dword [esp + 0x34]
add esp, 8
test al, al
jne 0x409cf0
mov esi, edi
call fcn.0043c530
mov eax, dword [edi + 0x20]
push 0
push 0
push 0x130c
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
call fcn.0043c450
mov ebx, dword [esp + 0x24]
jmp 0x40b4ed
lea ecx, [esp + 0x34]
push 0x5b84c0
push ecx
call fcn.0040bae0
add esp, 8
test al, al
je 0x40b4ed
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x18]
call fcn.004508f0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c4], 0x5f
call fcn.0040c2f0
lea ecx, [esp + 0x74]
mov byte [esp + 0x1c0], 4
call fcn.00415a10
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x18]
call fcn.00450f00
push 0x7c
call fcn.00456cca
add esp, 4
mov dword [esp + 0x38], eax
mov byte [esp + 0x1c0], 0x60
test eax, eax
je 0x40b493
mov esi, eax
call fcn.004381b0
mov edi, eax
jmp 0x40b495
xor edi, edi
mov eax, dword [esp + 0x30]
push 0xffff
push eax
mov byte [esp + 0x1c8], 4
mov edx, dword [edi]
mov edx, dword [edx + 0x160]
lea ecx, [esp + 0x144]
push ecx
push 0x54000000
mov ecx, edi
call edx
mov eax, dword [esp + 0x28]
push 1
push eax
mov ecx, edi
call fcn.0040ba60
lea ecx, [esp + 0x14]
push ecx
push 9
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.00451640
push 9
mov esi, dword [esp + 0x1c]
mov eax, ebx
call fcn.0043d3b0
lea edx, [esp + 0x40]
push edx
lea esi, [esp + 0x18]
call fcn.00450630
lea eax, [esp + 0x118]
push eax
mov ecx, esi
call fcn.00450740
mov byte [esp + 0x1c0], 0x61
mov ecx, dword [eax]
mov esi, dword [esp + 0x34]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40b56d
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40b55f
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40b55f
push eax
call fcn.0040c280
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40b552
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x24]
jmp 0x40b56d
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x3c]
call fcn.00401d10
mov byte [esp + 0x1c0], 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 0x408305
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x408305
call fcn.00415c30
call fcn.004572d6
mov byte [esp + 0x1c0], 3
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b5d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b5fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x1c0], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b61f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1c0], 0
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 0x40b647
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40b658
push eax
call fcn.00456cf9
add esp, 4
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.0055fd94
mov esp, ebp
pop ebp
ret