Function at 0x4095a0
Capabilities:
Get number of processors
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x59a250
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x6101c0]
xor eax, esp
mov dword [esp + 0x1e4], eax
push esi
push edi
mov eax, dword [0x6101c0]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x38], edi
push 0
push 0
push 0x31
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call fcn.004580da
mov dword [esp + 0x30], eax
test eax, eax
jne 0x409622
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
push 0x11
call esi
test eax, eax
jne 0x409618
push 0xc
call esi
test eax, eax
je 0x409622
push eax
call fcn.004580da
mov dword [esp + 0x30], eax
lea eax, [edi + 0xbc]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.0043aba0
lea esi, [edi + 0x120c0]
mov ecx, esi
call fcn.0040cff0
mov ecx, eax
call fcn.0040d070
mov eax, dword [esi]
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.0040dfb0
add esp, 4
lea ecx, [esp + 0x48]
add eax, 0x10
mov dword [edi], eax
call fcn.0044dbc0
mov dword [esp + 0x200], 0
mov byte [esp + 0x5c], 1
call fcn.00455bee
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x409692
push 0x80004005
call fcn.0040df80
mov eax, dword [edx]
mov ecx, edx
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 1
push eax
lea ecx, [esp + 0x48]
call fcn.0044dd00
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0044de20
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 2
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.0044dfc0
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 3
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0044e150
mov byte [esp + 0x200], 4
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 4
call esi
push 0x20
mov edi, eax
call esi
push 0x21
mov dword [esp + 0x64], eax
call esi
mov esi, eax
lea ecx, [esp + 0x44]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0044e660
mov ecx, dword [esp + 0x188]
sub ecx, dword [esp + 0x180]
mov eax, dword [esp + 0x184]
add ecx, esi
sub eax, dword [esp + 0x17c]
add ecx, edi
add eax, dword [esp + 0x60]
mov edi, dword [esp + 0x38]
push 1
push ecx
push eax
push 0
push 0
mov ecx, edi
call fcn.00455650
lea eax, [esp + 0x14]
push eax
lea esi, [edi + 0x120c4]
push esi
push ecx
call fcn.0044ea60
lea eax, [esp + 0x14]
push eax
push esi
push ecx
call fcn.004520d0
push dword [esp + 0x28]
mov ecx, edi
call fcn.00455888
mov ecx, edi
call fcn.00408e10
push 1
push dword [esi]
mov ecx, edi
call fcn.0045621c
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
call fcn.0044dd00
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0044de20
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x204], 5
call fcn.0040e020
mov byte [esp + 0x200], 4
or eax, 0xffffffff
mov edx, dword [esp + 0x60]
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4097f4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0x18]
jmp 0x409800
mov eax, dword [esp + 0x3c]
mov edx, 0x5e3cac
mov ecx, eax
jmp 0x409810
mov di, word [ecx]
cmp di, word [edx]
jne 0x40983b
test di, di
je 0x409837
mov di, word [ecx + 2]
mov word [esp + 0x20], di
cmp di, word [edx + 2]
jne 0x40983b
add ecx, 4
add edx, 4
test di, di
jne 0x409810
xor ecx, ecx
jmp 0x409840
sbb ecx, ecx
or ecx, 1
test ecx, ecx
setne cl
test cl, cl
je 0x40cf26
mov edx, str._ah
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
mov edi, dword [esp + 0x1c]
jne 0x40988b
cmp word [ecx], 0
je 0x409887
mov di, word [ecx + 2]
cmp di, word [edx + 2]
mov word [esp + 0x20], di
mov edi, dword [esp + 0x1c]
jne 0x40988b
add ecx, 4
add edx, 4
cmp word [esp + 0x20], 0
jne 0x409854
xor ecx, ecx
jmp 0x409890
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
je 0x409ad3
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.0044dfc0
mov byte [esp + 0x200], 6
lea ecx, [esi - 0x10]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x409921
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x409910
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40990c
push edx
call fcn.0040dfb0
add esp, 4
mov dword [esp + 0x34], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x409903
mov esi, dword [esp + 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x34]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
jmp 0x409921
mov eax, dword [esp + 0x34]
push dword [eax - 0xc]
lea ecx, [esp + 0x1c]
push eax
call fcn.0040dec0
mov esi, dword [esp + 0x18]
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x114]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40994a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.0044e150
mov byte [esp + 0x200], 7
mov edx, dword [eax]
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff0
mov dword [esp + 0x20], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0x24], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x4099dd
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x1c]
jl 0x4099d0
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4099d0
mov eax, dword [esp + 0x24]
push eax
call fcn.0040dfb0
mov dword [esp + 0x28], eax
add esp, 4
mov eax, dword [esp + 0x34]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4099c3
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0x10
mov dword [esp + 0x28], eax
jmp 0x4099dd
push dword [edx - 0xc]
lea ecx, [esp + 0x2c]
push edx
call fcn.0040dec0
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0xec]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409a06
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xa4
call fcn.004542df
add esp, 4
mov dword [esp + 0x94], eax
mov byte [esp + 0x200], 8
test eax, eax
je 0x409a4b
mov ecx, eax
call fcn.00438990
mov ecx, eax
mov dword [esp + 0x34], eax
jmp 0x409a51
xor ecx, ecx
mov dword [esp + 0x34], ecx
push 0xffff
push dword [esp + 0x3c]
lea edx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [ecx]
push edx
push 0x54000100
push dword [esp + 0x38]
call dword [eax + 0x160]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x409a86
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [esp + 0x3c]
push 0x30
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x38]
lea ecx, [esp + 0x4c]
push 0
call fcn.0044edb0
push 0
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x3c]
lea ecx, [esp + 0x50]
call fcn.00452460
push esi
push 0
push dword [esp + 0x3c]
mov ecx, edi
call fcn.0043a970
jmp 0x40ced6
mov edx, 0x5e3cc0
mov ecx, eax
lea ebx, [ebx]
mov di, word [ecx]
cmp di, word [edx]
mov edi, dword [esp + 0x1c]
jne 0x409b17
cmp word [ecx], 0
je 0x409b13
mov di, word [ecx + 2]
cmp di, word [edx + 2]
mov word [esp + 0x20], di
mov edi, dword [esp + 0x1c]
jne 0x409b17
add ecx, 4
add edx, 4
cmp word [esp + 0x20], 0
jne 0x409ae0
xor ecx, ecx
jmp 0x409b1c
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
je 0x409e32
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x154]
push eax
call fcn.0044dfc0
mov byte [esp + 0x200], 9
lea ecx, [esi - 0x10]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x409bad
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x409b9c
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x409b98
push edx
call fcn.0040dfb0
add esp, 4
mov dword [esp + 0x34], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x409b8f
mov esi, dword [esp + 0x24]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x34]
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
jmp 0x409bad
mov eax, dword [esp + 0x34]
push dword [eax - 0xc]
lea ecx, [esp + 0x1c]
push eax
call fcn.0040dec0
mov esi, dword [esp + 0x18]
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x150]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409bd6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x164]
push eax
call fcn.0044e150
mov byte [esp + 0x200], 0xa
mov edx, dword [eax]
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff0
mov dword [esp + 0x20], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0x24], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x409c69
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x1c]
jl 0x409c5c
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x409c5c
mov eax, dword [esp + 0x24]
push eax
call fcn.0040dfb0
mov dword [esp + 0x28], eax
add esp, 4
mov eax, dword [esp + 0x34]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409c4f
mov eax, dword [esp + 0x20]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0x10
mov dword [esp + 0x28], eax
jmp 0x409c69
push dword [edx - 0xc]
lea ecx, [esp + 0x2c]
push edx
call fcn.0040dec0
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x160]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409c92
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xd4
call fcn.004542df
add esp, 4
mov dword [esp + 0x94], eax
mov byte [esp + 0x200], 0xb
test eax, eax
je 0x409cd7
mov ecx, eax
call fcn.004335c0
mov ecx, eax
mov dword [esp + 0x20], eax
jmp 0x409cdd
xor ecx, ecx
mov dword [esp + 0x20], ecx
push 0xffff
push dword [esp + 0x3c]
lea edx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [ecx]
push edx
push 0x54004300
push dword [esp + 0x38]
call dword [eax + 0x160]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x409d12
mov eax, dword [eax + 4]
push 1
push eax
mov eax, dword [esp + 0x28]
push 0x30
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esi - 0x10]
push eax
call fcn.0040dfb0
add eax, 0x10
add esp, 4
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x20]
lea ecx, [eax - 0x10]
add edx, 0x78
mov byte [esp + 0x200], 0xc
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], ecx
mov edx, dword [edx]
sub edx, 0x10
mov dword [esp + 0x16c], edx
cmp ecx, edx
je 0x409dd4
cmp dword [edx + 0xc], 0
lea edi, [edx + 0xc]
mov dword [esp + 0x178], edi
mov edi, dword [esp + 0x1c]
jl 0x409dc3
mov ecx, dword [ecx]
cmp ecx, dword [edx]
jne 0x409dc3
mov edx, dword [esp + 0x24]
push edx
call fcn.0040dfb0
mov dword [esp + 0x98], eax
add esp, 4
mov eax, dword [esp + 0x178]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409db1
mov eax, dword [esp + 0x16c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x94]
add eax, 0x10
mov dword [ecx], eax
jmp 0x409dd0
push dword [eax - 0xc]
mov ecx, dword [esp + 0x38]
push eax
call fcn.0040dec0
mov ecx, dword [esp + 0x24]
lea eax, [ecx + 0xc]
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409df7
mov edx, dword [esp + 0x24]
push edx
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x24]
lea ecx, [esp + 0x4c]
push 1
call fcn.0044edb0
push 1
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x28]
lea ecx, [esp + 0x50]
call fcn.00452460
push esi
push 1
push dword [esp + 0x28]
mov ecx, edi
call fcn.0043a970
jmp 0x40ced6
mov edx, 0x5e3cc8
mov ecx, eax
lea esp, [esp]
mov di, word [ecx]
cmp di, word [edx]
jne 0x409e6b
test di, di
je 0x409e67
mov di, word [ecx + 2]
mov word [esp + 0x20], di
cmp di, word [edx + 2]
jne 0x409e6b
add ecx, 4
add edx, 4
test di, di
jne 0x409e40
xor ecx, ecx
jmp 0x409e70
sbb ecx, ecx
or ecx, 1
test ecx, ecx
sete cl
test cl, cl
je 0x40a1bb
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0xd
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0xac]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409eca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x150]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0xe
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x14c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409f17
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xb4
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0xf
test eax, eax
je 0x409f55
mov ecx, eax
call fcn.004350e0
mov edi, eax
jmp 0x409f57
xor edi, edi
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 4
push eax
push edi
push 2
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov al, byte [edi + 0xa0]
test al, al
je 0x40a05c
mov cl, byte [edi + 0xa1]
test cl, cl
je 0x40a00e
mov al, byte [edi + 0xa2]
test al, al
jne 0x409fc5
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
mov ecx, edi
push eax
push 0x54801044
call fcn.0045f7d6
push 1
push 1
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x40a079
test cl, cl
je 0x40a00e
mov al, byte [edi + 0xa2]
test al, al
je 0x40a00a
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
mov ecx, edi
push eax
push 0x548010c4
call fcn.0045f7d6
mov esi, dword [sym.imp.USER32.dll_ShowScrollBar]
push 1
push 1
push dword [edi + 0x20]
call esi
push 1
push 0
push dword [edi + 0x20]
call esi
jmp 0x40a079
test cl, cl
jne 0x40a044
mov al, byte [edi + 0xa2]
test al, al
je 0x40a044
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
mov ecx, edi
push eax
push 0x54801084
call fcn.0045f7d6
push 1
push 0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ShowScrollBar]
jmp 0x40a079
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
push eax
push 0x54801044
jmp 0x40a072
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
push eax
push 0x54800080
mov ecx, edi
call fcn.0045f7d6
mov al, byte [edi + 0x9f]
test al, al
jne 0x40a093
push 0
push 0x8000000
push 0
mov ecx, edi
call fcn.004554fe
mov al, byte [edi + 0x9e]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
test al, al
je 0x40a0b1
push 0
push 1
push 0xcf
push dword [edi + 0x20]
call esi
mov al, byte [edi + 0x9c]
test al, al
je 0x40a0c9
push 0
push 0x2a
push 0xcc
push dword [edi + 0x20]
call esi
mov al, byte [edi + 0x9d]
test al, al
je 0x40a0e3
push 0
push 0x2000
push 0
mov ecx, edi
call fcn.004554fe
mov eax, dword [edi + 0x84]
test eax, eax
je 0x40a0f7
mov ecx, edi
mov dword [edi + 0x74], eax
call fcn.00435560
mov eax, dword [edi + 0x88]
cmp eax, 0xffffff
je 0x40a10e
mov ecx, edi
mov dword [edi + 0x78], eax
call fcn.00435560
mov esi, dword [edi + 0xa4]
mov eax, 2
cmp esi, 2
cmova esi, eax
mov eax, dword [edi + 0x20]
test eax, eax
je 0x40a154
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, esi
and ecx, eax
cmp ecx, esi
je 0x40a154
push 0
push esi
push dword [edi + 0xa4]
mov ecx, edi
call fcn.004554fe
push 1
push 0
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_InvalidateRect]
lea eax, [edi + 0xac]
mov dword [edi + 0xa4], esi
test eax, eax
je 0x40a170
cmp dword [eax + 4], 0
je 0x40a170
test eax, eax
jne 0x40a178
jmp 0x40a17b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40a17b
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [esp + 0x28]
mov ecx, edi
call fcn.00455888
push 2
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 2
push edi
call fcn.0043a970
jmp 0x40ced6
mov ecx, 0x5e3cd0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40a1e6
test dx, dx
je 0x40a1e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40a1e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x40a1c0
xor eax, eax
jmp 0x40a1eb
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x40a34f
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x10
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0xb4]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a245
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x11
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x11c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a292
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x12
test eax, eax
je 0x40a2d0
mov ecx, eax
call fcn.00438440
mov edi, eax
jmp 0x40a2d2
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea ecx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [edi]
push ecx
push 0x54000009
push dword [esp + 0x38]
mov ecx, edi
call dword [eax + 0x160]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40a309
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x14]
push eax
push edi
push 3
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 3
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 3
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3cd8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40a4c0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x13
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0xbc]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a3b6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x16c]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x14
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x168]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a403
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x15
test eax, eax
je 0x40a441
mov ecx, eax
call fcn.004345a0
mov edi, eax
jmp 0x40a443
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea ecx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [edi]
push ecx
push 0x54000003
push dword [esp + 0x38]
mov ecx, edi
call dword [eax + 0x160]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40a47a
mov eax, dword [eax + 4]
push 1
push eax
push 0x30
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [esp + 0x14]
push eax
push edi
push 4
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 4
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 4
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3ce0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40a659
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x16
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0xc4]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a527
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x128]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x17
call fcn.0040e020
mov byte [esp + 0x200], 4
or ecx, 0xffffffff
mov edx, dword [esp + 0x124]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a574
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xf8
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x18
test eax, eax
je 0x40a5b6
mov ecx, eax
call fcn.00435b00
mov esi, eax
mov dword [esp + 0x24], eax
jmp 0x40a5bc
xor esi, esi
mov dword [esp + 0x24], esi
push 0
push 0xffff
push dword [esp + 0x40]
lea ecx, [esp + 0x188]
mov byte [esp + 0x20c], 4
mov eax, dword [esi]
push ecx
push 0x54000100
push dword [esp + 0x3c]
mov ecx, esi
push 0
call dword [eax + 0x54]
mov eax, dword [esi]
mov ecx, esi
push dword [esp + 0x28]
call dword [eax + 0x180]
lea eax, [esp + 0x18c]
push eax
mov eax, dword [esp + 0x34]
push 0x5c
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [esi]
sub esp, 0x5c
mov edi, esp
lea esi, [esp + 0x1e8]
mov ecx, 0x17
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x80]
mov ecx, edi
call dword [eax + 0x198]
lea eax, [esp + 0x14]
push eax
push edi
push 6
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 6
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3ce8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40a7d7
lea ecx, [esp + 0x64]
call fcn.0045fa6e
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x19
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x1a
call fcn.0040e020
lea ecx, [esp + 0xcc]
mov byte [esp + 0x200], 0x19
call fcn.0040e0d0
push ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453a80
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x88
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x1b
test eax, eax
je 0x40a70a
mov ecx, eax
call fcn.00434910
mov edi, eax
jmp 0x40a70c
xor edi, edi
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x19
push eax
push edi
push 5
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov eax, dword [edi]
lea edx, [esp + 0x17c]
xor ecx, ecx
cmp byte [edi + 0x74], cl
push 0xffff
push dword [esp + 0x3c]
setne cl
add ecx, 0x54200002
push edx
push ecx
mov ecx, edi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
mov eax, dword [esp + 0x6c]
xor esi, esi
test eax, eax
jle 0x40a796
test esi, esi
js 0x40cf21
cmp esi, eax
jge 0x40cf21
mov eax, dword [esp + 0x68]
push dword [eax + esi*4]
push 0
push 0x143
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x6c]
inc esi
cmp esi, eax
jl 0x40a766
mov eax, dword [edi + 0x20]
test eax, eax
je 0x40a7ae
push 0
push dword [edi + 0x78]
push 0x14e
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
movzx eax, byte [edi + 0x75]
mov ecx, edi
push eax
call fcn.00434be0
push 5
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
push esi
push 5
jmp 0x40a968
lea eax, [esp + 0x3c]
push 0x5e3cf0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40a988
lea ecx, [esp + 0x64]
call fcn.0045fa6e
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x1c
push eax
lea eax, [esp + 0x158]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x1d
call fcn.0040e020
lea ecx, [esp + 0x154]
mov byte [esp + 0x200], 0x1c
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x1e
call fcn.0040e020
lea ecx, [esp + 0xd4]
mov byte [esp + 0x200], 0x1c
call fcn.0040e0d0
push ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453a80
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x1f4
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x1f
test eax, eax
je 0x40a8c0
mov ecx, eax
call fcn.004370f0
mov edi, eax
jmp 0x40a8c2
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea ecx, [esp + 0x184]
mov byte [esp + 0x208], 0x1c
mov eax, dword [edi]
push ecx
push 0x54800120
push dword [esp + 0x38]
mov ecx, edi
call dword [eax + 0x160]
push dword [esp + 0x28]
mov ecx, edi
call fcn.00455888
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
mov eax, dword [esp + 0x6c]
xor esi, esi
test eax, eax
jle 0x40a93f
test esi, esi
js 0x40cf21
cmp esi, eax
jge 0x40cf21
mov eax, dword [esp + 0x68]
mov ecx, edi
mov edx, dword [edi]
push 0xffffffffffffffff
push 0
lea eax, [eax + esi*4]
push eax
call dword [edx + 0x168]
mov eax, dword [esp + 0x6c]
inc esi
cmp esi, eax
jl 0x40a910
lea eax, [esp + 0x14]
push eax
push edi
push 7
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 7
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
push esi
push 7
mov ecx, dword [esp + 0x24]
push edi
call fcn.0043a970
lea ecx, [esp + 0x64]
mov byte [esp + 0x200], 4
call fcn.0045fa85
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3cf8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40aa73
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x20
call fcn.0040e020
lea ecx, [esp + 0x12c]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x7c
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x21
test eax, eax
je 0x40aa15
mov ecx, eax
call fcn.004382e0
mov edi, eax
jmp 0x40aa17
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
mov byte [esp + 0x208], 4
lea ecx, [esp + 0x184]
mov eax, dword [edi]
push ecx
push 0x54000000
mov ecx, edi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 8
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 8
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d00
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40ab72
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x22
call fcn.0040e020
lea ecx, [esp + 0xdc]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x23
test eax, eax
je 0x40ab03
mov ecx, eax
call fcn.00438630
mov edi, eax
jmp 0x40ab05
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
mov byte [esp + 0x208], 4
lea ecx, [esp + 0x184]
mov eax, dword [edi]
push ecx
push 0x54000000
mov ecx, edi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 0xb
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xb
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xb
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d08
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40ac69
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x174]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x24
call fcn.0040e020
lea ecx, [esp + 0x170]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xbc
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x25
test eax, eax
je 0x40ac02
mov ecx, eax
call fcn.00437c00
mov edi, eax
jmp 0x40ac04
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea ecx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [edi]
push ecx
push 0x5400010e
push 0x5e3d08
mov ecx, edi
call dword [eax + 0x160]
lea eax, [esp + 0x14]
push eax
push edi
push 0xa
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xa
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xa
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push str.OmFh
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40ad70
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xe8]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x26
call fcn.0040e020
lea ecx, [esp + 0xe4]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xcc
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x27
test eax, eax
je 0x40acf9
mov ecx, eax
call fcn.00437640
mov edi, eax
jmp 0x40acfb
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
mov byte [esp + 0x208], 4
push eax
push 0x14800080
mov ecx, edi
call fcn.0045f7d6
push 0
push 0
mov ecx, edi
call fcn.0046007c
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 0xc
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xc
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xc
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d18
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40ae67
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x28
call fcn.0040e020
lea ecx, [esp + 0x134]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x88
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x29
test eax, eax
je 0x40ae00
mov ecx, eax
call fcn.00439d40
mov edi, eax
jmp 0x40ae02
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea ecx, [esp + 0x184]
mov byte [esp + 0x208], 4
mov eax, dword [edi]
push ecx
push 0x5400090e
push 0x5e3d18
mov ecx, edi
call dword [eax + 0x160]
lea eax, [esp + 0x14]
push eax
push edi
push 0xe
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xe
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xe
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d20
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40af87
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x2a
call fcn.0040e020
lea ecx, [esp + 0xa0]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x94
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x2b
test eax, eax
je 0x40aef7
mov ecx, eax
call fcn.00436a30
mov edi, eax
jmp 0x40aef9
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
mov byte [esp + 0x208], 4
lea ecx, [esp + 0x184]
mov eax, dword [edi]
push ecx
push 0x54000000
mov ecx, edi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 0x10
lea ecx, [esp + 0x50]
call fcn.0044edb0
movzx eax, word [edi + 0x84]
mov ecx, edi
push eax
movzx eax, word [edi + 0x82]
push eax
call fcn.0040d200
sub esp, 8
mov ecx, edi
call fcn.00436c50
push 0x10
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0x10
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push str.OmhV
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b0d5
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x160]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x2c
call fcn.0040e020
lea ecx, [esp + 0x15c]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
xorps xmm0, xmm0
mov dword [esp + 0x74], 0
push 0xd8
movdqa xmmword [esp + 0x68], xmm0
call fcn.004542df
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
mov byte [esp + 0x200], 0x2d
test esi, esi
je 0x40b02e
mov ecx, esi
call fcn.00469993
mov dword [esi], vtable.CMyDocument.0
jmp 0x40b030
xor esi, esi
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x64]
push 0xe900
mov byte [esp + 0x204], 4
push eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x6c], 0x5e4480
call fcn.00461778
mov edi, eax
test edi, edi
je 0x40b060
mov eax, dword [edi + 0x20]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x4000000
test edi, edi
jne 0x40b076
xor ecx, ecx
jmp 0x40b079
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.004558cc
push 1
lea eax, [esp + 0x180]
mov ecx, edi
push eax
call fcn.0040d1a0
lea eax, [esp + 0x14]
push eax
push edi
push 0x11
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0x11
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0x11
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d30
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b202
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x2e
call fcn.0040e020
lea ecx, [esp + 0xf4]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x50c
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x2f
test eax, eax
je 0x40b168
sub esp, 0x10
mov ecx, eax
call fcn.0041a670
mov edi, eax
jmp 0x40b16a
xor edi, edi
sub esp, 8
mov byte [esp + 0x208], 4
lea eax, [esp + 0x184]
mov ecx, edi
push dword [esp + 0x40]
push eax
call fcn.0041b340
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
mov eax, dword [edi + 0x19c]
lea ecx, [edi + 0x19c]
push 0xffffff
call dword [eax + 0x24]
mov ecx, edi
call fcn.00422890
push 0xf
mov dword [edi + 0xd4], 0
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov ecx, edi
call fcn.00408a40
lea eax, [esp + 0x14]
push eax
push edi
push 0x12
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0x12
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0x12
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d38
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b336
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x30
call fcn.0040e020
lea ecx, [esp + 0x13c]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x100]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x31
call fcn.0040e020
lea ecx, [esp + 0xfc]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xa0
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x32
test eax, eax
je 0x40b2ca
mov ecx, eax
call fcn.00439f70
mov edi, eax
jmp 0x40b2cc
xor edi, edi
push 0xffff
push dword [esp + 0x3c]
lea eax, [esp + 0x184]
mov byte [esp + 0x208], 4
push eax
push 0x5081009f
mov ecx, edi
call fcn.00464987
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 0xf
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xf
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xf
push edi
call fcn.0043a970
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d40
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40cdea
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x178]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x33
call fcn.0040e020
lea ecx, [esp + 0x174]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x90
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x34
test eax, eax
je 0x40b3ca
mov ecx, eax
call fcn.00439090
mov edi, eax
mov dword [esp + 0x34], eax
jmp 0x40b3d0
xor edi, edi
mov dword [esp + 0x34], edi
push 0xffff
push dword [esp + 0x3c]
mov byte [esp + 0x208], 4
lea ecx, [esp + 0x184]
mov eax, dword [edi]
push ecx
push 0x14000200
mov ecx, edi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push edi
push 0xd
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xd
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push esi
push 0xd
push edi
call fcn.0043a970
lea eax, [esp + 0x14]
mov dword [esp + 0x20], 0
push 0x5e3d48
push eax
call fcn.0040cf80
add esp, 8
test al, al
je 0x40cdcc
lea ebx, [ebx]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
call fcn.0044dd00
lea eax, [esp + 0x14]
push 0x5e3d48
push eax
call fcn.0040d3b0
add esp, 8
test al, al
jne 0x40cdc8
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.0044de20
lea ecx, [esp + 0x104]
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0044e300
push ecx
lea eax, [esp + 0x64]
mov byte [esp + 0x204], 0x35
mov ecx, esp
push eax
call fcn.0040dc90
mov ecx, edi
call fcn.004393f0
lea ecx, [esp + 0x90]
call fcn.0040dc60
lea ecx, [esp + 0x98]
call fcn.0040dc60
lea eax, [esp + 0x98]
mov byte [esp + 0x200], 0x37
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00451ed0
test al, al
je 0x40b5b9
lea eax, [esp + 0x90]
push 0x5e3d54
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b55a
mov eax, dword [edi + 0x84]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x98]
lea esi, [eax + ecx*4]
call fcn.0058005c
mov ecx, dword [esi]
add esp, 4
push 1
push eax
mov dword [ecx + 0xbc], eax
call fcn.0045621c
jmp 0x40b597
lea eax, [esp + 0x90]
push 0x5e3d60
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b597
push 1
push ecx
lea eax, [esp + 0xa0]
mov ecx, esp
push eax
call fcn.0040dc90
mov eax, dword [edi + 0x84]
mov ecx, dword [esp + 0x28]
mov ecx, dword [eax + ecx*4]
call fcn.00439bd0
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00451ed0
test al, al
jne 0x40b513
lea eax, [esp + 0x14]
mov byte [esp + 0x5c], 1
push 0x5e3d6c
push eax
call fcn.0040cf80
add esp, 8
test al, al
je 0x40cd81
jmp 0x40b5e0
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
call fcn.0044dd00
lea eax, [esp + 0x14]
push 0x5e3d6c
push eax
call fcn.0040d3b0
add esp, 8
test al, al
jne 0x40cd81
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0044de20
lea eax, [esp + 0x40]
mov byte [esp + 0x200], 0x38
push str._ah
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b75e
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x148]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x39
call fcn.0040e020
lea ecx, [esp + 0x144]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x110]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x3a
call fcn.0040e020
lea ecx, [esp + 0x10c]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xa4
call fcn.004542df
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x3b
test eax, eax
je 0x40b6e7
mov ecx, eax
call fcn.00438990
mov esi, eax
jmp 0x40b6e9
xor esi, esi
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x200], 0x38
mov eax, dword [edi + 0x84]
mov edx, dword [esi]
push 0xffff
push dword [eax + ecx*4]
lea eax, [esp + 0x184]
mov ecx, esi
push eax
push 0x54000100
push dword [esp + 0x38]
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 0
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d38
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b897
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x3c
call fcn.0040e090
lea ecx, [esp + 0x164]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x3d
call fcn.0040e090
lea ecx, [esp + 0xa4]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xa0
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x3e
test eax, eax
je 0x40b823
mov ecx, eax
call fcn.00439f70
mov esi, eax
jmp 0x40b825
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
push 0xffff
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x5081009f
call fcn.00464987
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 0xf
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xf
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0xf
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3cc0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40b9ff
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xac]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x3f
call fcn.0040e090
lea ecx, [esp + 0xa8]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x40
call fcn.0040e090
lea ecx, [esp + 0xb0]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xd4
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x41
test eax, eax
je 0x40b960
mov ecx, eax
call fcn.004335c0
mov esi, eax
mov dword [esp + 0x24], eax
jmp 0x40b966
xor esi, esi
mov dword [esp + 0x24], esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov esi, dword [esi]
lea ecx, [esp + 0x28]
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54004300
call fcn.0040dbe0
mov ecx, dword [esp + 0x34]
push eax
call dword [esi + 0x160]
mov esi, dword [esp + 0x24]
mov ecx, esi
push 1
push dword [esp + 0x34]
call fcn.0040d300
push ecx
lea eax, [esp + 0x1c]
mov ecx, esp
push eax
call fcn.0040dc90
mov ecx, esi
call fcn.00408860
lea eax, [esp + 0x14]
push eax
push esi
push 1
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 1
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 1
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3cc8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40bd2f
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x42
call fcn.0040e090
lea ecx, [esp + 0xb8]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xc4]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x43
call fcn.0040e090
lea ecx, [esp + 0xc0]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xb4
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x44
test eax, eax
je 0x40bac4
mov ecx, eax
call fcn.004350e0
mov esi, eax
jmp 0x40bac6
xor esi, esi
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x38
push eax
push esi
push 2
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov ecx, esi
call fcn.00408940
test al, al
je 0x40bc0b
mov ecx, esi
call fcn.00408950
test al, al
je 0x40bb3e
mov ecx, esi
call fcn.00408960
test al, al
jne 0x40bb3e
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xffff
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54801044
call fcn.0045f7d6
push 1
push 1
mov ecx, esi
call fcn.0040d2e0
jmp 0x40bc35
mov ecx, esi
call fcn.00408950
test al, al
je 0x40bb99
mov ecx, esi
call fcn.00408960
test al, al
je 0x40bb99
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xffff
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x548010c4
call fcn.0045f7d6
push 1
push 1
mov ecx, esi
call fcn.0040d2e0
push 1
push 0
mov ecx, esi
call fcn.0040d2e0
jmp 0x40bc35
mov ecx, esi
call fcn.00408950
test al, al
jne 0x40bbe6
mov ecx, esi
call fcn.00408960
test al, al
je 0x40bbe6
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xffff
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54801084
call fcn.0045f7d6
push 1
push 0
mov ecx, esi
call fcn.0040d2e0
jmp 0x40bc35
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54801044
jmp 0x40bc2e
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54800080
mov ecx, esi
call fcn.0045f7d6
mov ecx, esi
call fcn.00408930
test al, al
jne 0x40bc50
push 0
push 0x8000000
push 0
mov ecx, esi
call fcn.004554fe
mov ecx, esi
call fcn.00408980
test al, al
je 0x40bc63
push ecx
mov ecx, esi
call fcn.0040d2c0
mov ecx, esi
call fcn.00408970
test al, al
je 0x40bc76
push ecx
mov ecx, esi
call fcn.0040d2a0
mov ecx, esi
call fcn.00408990
test al, al
je 0x40bc91
push 0
push 0x2000
push 0
mov ecx, esi
call fcn.004554fe
mov ecx, esi
call fcn.00408910
test eax, eax
je 0x40bcab
mov ecx, esi
call fcn.00408910
push eax
mov ecx, esi
call fcn.004088d0
mov ecx, esi
call fcn.00408920
cmp eax, 0xffffff
je 0x40bcc8
mov ecx, esi
call fcn.00408920
push eax
mov ecx, esi
call fcn.004088f0
mov ecx, esi
call fcn.00408a00
push eax
mov ecx, esi
call fcn.004089a0
lea ecx, [esi + 0xac]
call fcn.0040d490
mov ecx, esi
push 1
test eax, eax
je 0x40bcf3
lea eax, [esi + 0xac]
push eax
jmp 0x40bcf7
push dword [esp + 0x34]
call fcn.0040d300
lea ecx, [esp + 0x28]
call fcn.0040dbe0
push eax
mov ecx, esi
call fcn.00455888
push 2
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 2
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3cd0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40be83
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x45
call fcn.0040e090
lea ecx, [esp + 0xc8]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x46
call fcn.0040e090
lea ecx, [esp + 0xd0]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x47
test eax, eax
je 0x40bdf8
mov ecx, eax
call fcn.00438440
mov esi, eax
mov dword [esp + 0x24], eax
jmp 0x40bdfe
xor esi, esi
mov dword [esp + 0x24], esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov esi, dword [esi]
lea ecx, [esp + 0x28]
push 0xfffc
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000009
call fcn.0040dbe0
mov ecx, dword [esp + 0x34]
push eax
call dword [esi + 0x160]
mov esi, dword [esp + 0x24]
mov ecx, esi
push 1
push dword [esp + 0x34]
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 3
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 3
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 3
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3cd8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40bfd7
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xdc]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x48
call fcn.0040e090
lea ecx, [esp + 0xd8]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xe4]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x49
call fcn.0040e090
lea ecx, [esp + 0xe0]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x4a
test eax, eax
je 0x40bf4c
mov ecx, eax
call fcn.004345a0
mov esi, eax
mov dword [esp + 0x24], eax
jmp 0x40bf52
xor esi, esi
mov dword [esp + 0x24], esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov esi, dword [esi]
lea ecx, [esp + 0x28]
push 0xfffd
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000003
call fcn.0040dbe0
mov ecx, dword [esp + 0x34]
push eax
call dword [esi + 0x160]
mov esi, dword [esp + 0x24]
mov ecx, esi
push 1
push dword [esp + 0x34]
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 4
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 4
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 4
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3ce0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c161
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xec]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x4b
call fcn.0040e090
lea ecx, [esp + 0xe8]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x4c
call fcn.0040e090
lea ecx, [esp + 0xf0]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xf8
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x4d
test eax, eax
je 0x40c09e
mov ecx, eax
call fcn.00435b00
mov dword [esp + 0x24], eax
jmp 0x40c0a4
xor esi, esi
mov dword [esp + 0x24], esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edi, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push 0
push 0xffff
push dword [eax]
mov esi, dword [edi]
lea eax, [esp + 0x188]
push eax
push 0x54000000
call fcn.0040dbe0
push eax
push 0
mov ecx, edi
call dword [esi + 0x54]
mov esi, dword [edi]
lea ecx, [esp + 0x28]
call fcn.0040dbe0
push eax
mov ecx, edi
call dword [esi + 0x180]
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x18c]
push eax
call fcn.0040d280
mov eax, dword [edi]
lea esi, [esp + 0x18c]
sub esp, 0x5c
mov ecx, 0x17
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x80]
mov ecx, esi
call dword [eax + 0x198]
lea eax, [esp + 0x14]
push eax
push esi
push 6
lea ecx, [esp + 0x50]
call fcn.0044edb0
lea ecx, [esp + 0x18]
call fcn.0040dbe0
mov ecx, dword [esp + 0x1c]
push eax
push 6
push esi
call fcn.0043a970
mov edi, dword [esp + 0x34]
jmp 0x40cd56
lea eax, [esp + 0x40]
push 0x5e3ce8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c2f0
lea ecx, [esp + 0x64]
call fcn.0045fa6e
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x4e
push eax
lea eax, [esp + 0xfc]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x4f
call fcn.0040e090
lea ecx, [esp + 0xf8]
mov byte [esp + 0x200], 0x4e
call fcn.0040e0d0
push ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453a80
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x88
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x50
test eax, eax
je 0x40c20f
mov ecx, eax
call fcn.00434910
mov edi, eax
jmp 0x40c211
xor edi, edi
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x4e
push eax
push edi
push 5
lea ecx, [esp + 0x50]
call fcn.0044edb0
mov ecx, dword [esp + 0x34]
xor eax, eax
cmp byte [edi + 0x74], al
push dword [esp + 0x20]
setne al
add ecx, 0x84
add eax, 0x54200002
mov dword [esp + 0x98], eax
call fcn.0040cfe0
mov edx, dword [edi]
mov ecx, edi
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push dword [esp + 0xa0]
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, edi
call fcn.0040d300
lea ecx, [esp + 0x64]
xor esi, esi
call fcn.0040d270
test eax, eax
jle 0x40c2b7
lea ecx, [ecx]
push esi
lea ecx, [esp + 0x68]
call fcn.0040d230
mov ecx, eax
call fcn.0040dbe0
push eax
mov ecx, edi
call fcn.0040d250
lea ecx, [esp + 0x64]
inc esi
call fcn.0040d270
cmp esi, eax
jl 0x40c290
push dword [edi + 0x78]
mov ecx, edi
call fcn.00408a10
movzx eax, byte [edi + 0x75]
mov ecx, edi
push eax
call fcn.00434be0
push 5
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 5
push edi
jmp 0x40c4b0
lea eax, [esp + 0x40]
push 0x5e3cf0
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c4d3
lea ecx, [esp + 0x64]
call fcn.0045fa6e
lea eax, [esp + 0x14]
mov byte [esp + 0x200], 0x51
push eax
lea eax, [esp + 0x104]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x52
call fcn.0040e090
lea ecx, [esp + 0x100]
mov byte [esp + 0x200], 0x51
call fcn.0040e0d0
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.0044e150
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x204], 0x53
call fcn.0040e090
lea ecx, [esp + 0x108]
mov byte [esp + 0x200], 0x51
call fcn.0040e0d0
push ecx
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00453a80
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x1f4
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x54
test eax, eax
je 0x40c3da
mov ecx, eax
call fcn.004370f0
mov edi, eax
mov dword [esp + 0x24], eax
jmp 0x40c3e0
xor edi, edi
mov dword [esp + 0x24], edi
mov ecx, dword [esp + 0x34]
push dword [esp + 0x20]
add ecx, 0x84
mov byte [esp + 0x204], 0x51
call fcn.0040cfe0
mov esi, dword [edi]
lea ecx, [esp + 0x28]
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54800120
call fcn.0040dbe0
push eax
mov ecx, edi
call dword [esi + 0x160]
lea ecx, [esp + 0x28]
call fcn.0040dbe0
mov esi, dword [esp + 0x24]
mov ecx, esi
push eax
call fcn.00455888
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea ecx, [esp + 0x64]
xor edi, edi
call fcn.0040d270
test eax, eax
jle 0x40c481
mov esi, dword [esi]
lea ecx, [esp + 0x64]
push 0xffffffffffffffff
push 0
push edi
call fcn.0040d230
mov ecx, dword [esp + 0x2c]
push eax
call dword [esi + 0x168]
lea ecx, [esp + 0x64]
inc edi
call fcn.0040d270
mov esi, dword [esp + 0x24]
cmp edi, eax
jl 0x40c454
lea eax, [esp + 0x14]
push eax
push esi
push 7
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 7
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 7
push esi
mov ecx, dword [esp + 0x28]
call fcn.0043a970
lea ecx, [esp + 0x64]
mov byte [esp + 0x200], 0x38
call fcn.0045fa85
mov edi, dword [esp + 0x34]
jmp 0x40cd56
lea eax, [esp + 0x40]
push 0x5e3cf8
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c5c3
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x55
call fcn.0040e090
lea ecx, [esp + 0x110]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x7c
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x56
test eax, eax
je 0x40c55d
mov ecx, eax
call fcn.004382e0
mov esi, eax
jmp 0x40c55f
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edx, dword [esi]
mov ecx, esi
push 0x10001
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000000
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 8
lea ecx, [esp + 0x50]
call fcn.0044edb0
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 8
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d7c
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c6b3
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x57
call fcn.0040e090
lea ecx, [esp + 0x118]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x7c
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x58
test eax, eax
je 0x40c64d
mov ecx, eax
call fcn.00434e80
mov esi, eax
jmp 0x40c64f
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edx, dword [esi]
mov ecx, esi
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000000
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 9
lea ecx, [esp + 0x50]
call fcn.0044edb0
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 9
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d00
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c7b7
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x124]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x59
call fcn.0040e090
lea ecx, [esp + 0x120]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push pe_nt_image_headers32
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x5a
test eax, eax
je 0x40c740
mov ecx, eax
call fcn.00438630
mov esi, eax
jmp 0x40c742
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edx, dword [esi]
mov ecx, esi
push 0x10003
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000000
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 0xb
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xb
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0xb
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d08
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c8b3
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x5b
call fcn.0040e090
lea ecx, [esp + 0x128]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xbc
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x5c
test eax, eax
je 0x40c844
mov ecx, eax
call fcn.00437c00
mov esi, eax
jmp 0x40c846
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edx, dword [esi]
mov ecx, esi
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x5400010e
push 0x5e3d08
call dword [edx + 0x160]
lea eax, [esp + 0x14]
push eax
push esi
push 0xa
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xa
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0xa
jmp 0x40cd4c
lea eax, [esp + 0x40]
push str.OmFh
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40c9bf
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x134]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x5d
call fcn.0040e090
lea ecx, [esp + 0x130]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0xcc
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x5e
test eax, eax
je 0x40c940
mov ecx, eax
call fcn.00437640
mov esi, eax
jmp 0x40c942
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
push 0x9ffcf
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54800080
call fcn.0045f7d6
push 0
push 0
mov ecx, esi
call fcn.0046007c
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 0xc
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0xc
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0xc
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d20
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40cae4
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x13c]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x5f
call fcn.0040e090
lea ecx, [esp + 0x138]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x94
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x60
test eax, eax
je 0x40ca4c
mov ecx, eax
call fcn.00436a30
mov esi, eax
jmp 0x40ca4e
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
mov edx, dword [esi]
mov ecx, esi
push 0xffff
push dword [eax]
lea eax, [esp + 0x184]
push eax
push 0x54000000
call dword [edx + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 0x10
lea ecx, [esp + 0x50]
call fcn.0044edb0
movzx eax, word [esi + 0x84]
mov ecx, esi
push eax
movzx eax, word [esi + 0x82]
push eax
call fcn.0040d200
sub esp, 8
mov ecx, esi
call fcn.00436c50
push 0x10
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0x10
jmp 0x40cd4c
lea eax, [esp + 0x40]
push str.OmhV
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40cc25
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x61
call fcn.0040e090
lea ecx, [esp + 0x140]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
lea ecx, [esp + 0x64]
call fcn.0040d1e0
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
call fcn.0040cfe0
push 0xd8
mov esi, dword [eax]
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x62
test eax, eax
je 0x40cb89
mov ecx, eax
call fcn.0040e720
jmp 0x40cb8b
xor eax, eax
mov byte [esp + 0x200], 0x38
mov ecx, esi
mov dword [esp + 0x68], eax
lea eax, [esp + 0x64]
push 0xe900
push eax
mov dword [esp + 0x6c], 0x5e4480
call fcn.00461778
mov esi, eax
push 0xfffffffffffffff0
mov ecx, esi
call fcn.0040d1d0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0x4000000
mov ecx, esi
push eax
push 0xfffffffffffffff0
call fcn.0040d1d0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 1
mov ecx, esi
call fcn.004558cc
push 1
lea eax, [esp + 0x180]
mov ecx, esi
push eax
call fcn.0040d1a0
lea eax, [esp + 0x14]
push eax
push esi
push 0x11
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0x11
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0x11
jmp 0x40cd4c
lea eax, [esp + 0x40]
push 0x5e3d30
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40cd56
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14c]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x63
call fcn.0040e090
lea ecx, [esp + 0x148]
mov byte [esp + 0x200], 0x38
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x50c
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x64
test eax, eax
je 0x40ccb5
sub esp, 0x10
mov ecx, eax
call fcn.0041a670
mov esi, eax
jmp 0x40ccb7
xor esi, esi
push dword [esp + 0x20]
lea ecx, [edi + 0x84]
mov byte [esp + 0x204], 0x38
call fcn.0040cfe0
sub esp, 8
mov ecx, esi
push dword [eax]
lea eax, [esp + 0x188]
push eax
call fcn.0041b340
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
push 0
push 0
mov ecx, esi
call fcn.00408a90
push 0xffffff
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x24]
push ecx
mov ecx, esi
call fcn.00424160
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov ecx, esi
call fcn.00408a40
lea eax, [esp + 0x14]
push eax
push esi
push 0x12
lea ecx, [esp + 0x50]
call fcn.0044edb0
push 0x12
lea eax, [esp + 0x18]
push eax
push esi
lea ecx, [esp + 0x50]
call fcn.00452460
lea ecx, [esp + 0x18]
call fcn.0040dbe0
push eax
push 0x12
mov ecx, dword [esp + 0x24]
push esi
call fcn.0043a970
lea ecx, [esp + 0x40]
mov byte [esp + 0x200], 0x37
call fcn.0040e0d0
lea eax, [esp + 0x14]
push 0x5e3d6c
push eax
call fcn.0040cf80
add esp, 8
test al, al
jne 0x40b5e0
inc dword [esp + 0x20]
lea ecx, [esp + 0x98]
call fcn.0040e0d0
lea ecx, [esp + 0x90]
call fcn.0040e0d0
lea ecx, [esp + 0x60]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x14]
push 0x5e3d48
push eax
call fcn.0040cf80
add esp, 8
test al, al
jne 0x40b460
mov esi, dword [esp + 0x18]
mov ecx, edi
call fcn.004397b0
push 0
mov ecx, edi
call fcn.0040d180
push 0
mov ecx, edi
call fcn.004396e0
jmp 0x40ced6
lea eax, [esp + 0x3c]
push 0x5e3d7c
push eax
call fcn.0040d3b0
add esp, 8
test al, al
je 0x40ced6
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.0044dfc0
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x204], 0x65
call fcn.0040e090
lea ecx, [esp + 0x9c]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
lea eax, [esp + 0x17c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0044e660
push 0x7c
call fcn.0040d340
mov dword [esp + 0x2c], eax
mov byte [esp + 0x200], 0x66
test eax, eax
je 0x40ce74
mov ecx, eax
call fcn.00434e80
mov esi, eax
jmp 0x40ce76
xor esi, esi
push 0xffff
push dword [esp + 0x3c]
mov byte [esp + 0x208], 4
lea ecx, [esp + 0x184]
mov eax, dword [esi]
push ecx
push 0x54000000
mov ecx, esi
call dword [eax + 0x160]
push 1
push dword [esp + 0x34]
mov ecx, esi
call fcn.0040d300
lea eax, [esp + 0x14]
push eax
push esi
push 9
lea ecx, [esp + 0x50]
call fcn.0044edb0
lea ecx, [esp + 0x18]
call fcn.0040dbe0
mov ecx, dword [esp + 0x1c]
push eax
push 9
push esi
call fcn.0043a970
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
call fcn.0044dd00
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x15c]
push eax
call fcn.0044de20
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x204], 0x67
call fcn.0040e090
lea ecx, [esp + 0x158]
mov byte [esp + 0x200], 4
call fcn.0040e0d0
jmp 0x409800
call fcn.00454bf1
lea ecx, [esp + 0x28]
call fcn.0040e0d0
lea ecx, [esp + 0x18]
call fcn.0040e0d0
lea ecx, [esp + 0x3c]
call fcn.0040e0d0
lea ecx, [esp + 0x14]
call fcn.0040e0d0
lea ecx, [esp + 0x44]
call fcn.0044dcf0
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.0057f187
mov esp, ebp
pop ebp
ret