Function at 0x40d980
Capabilities:
Inspect section memory permissions

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x436082
push eax
mov dword fs:[0], esp
sub esp, 0x9c
push ebx
mov ebx, dword [0x4424f0]
push ebp
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
mov esi, ecx
push 0xc
call edi
push eax
push 0xb
call edi
push eax
push 1
push 0x80
push ebx
mov ebx, dword [sym.imp.USER32.dll_LoadImageW]
call ebx
mov dword [esi + 0x204], eax
push eax
mov eax, dword [esi + 4]
push 1
push 0x80
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebp, dword [0x4424f0]
push 0
push 0x32
call edi
push eax
push 0x31
call edi
push eax
push 1
push 0x80
push ebp
call ebx
mov ecx, dword [esi + 4]
push eax
push 0
push 0x80
push ecx
mov dword [esi + 0x208], eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esi + 4]
mov ebx, dword [sym.imp.USER32.dll_SetWindowPos]
push 6
push 0x111
push 0x1b5
push 0
push 0
push 0
push edx
call ebx
mov eax, dword [esi + 4]
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, eax
and edi, 0x40000000
je 0x40da55
mov ecx, dword [esi + 4]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
jmp 0x40da61
mov edx, dword [esi + 4]
push 4
push edx
call dword [sym.imp.USER32.dll_GetWindow]
mov ecx, dword [esi + 4]
mov ebp, eax
lea eax, [esp + 0x9c]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
test edi, edi
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
jne 0x40dae1
test ebp, ebp
je 0x40da9c
push 0xfffffffffffffff0
push ebp
call dword [sym.imp.USER32.dll_GetWindowLongW]
test eax, 0x10000000
je 0x40da9a
test eax, 0x20000000
je 0x40da9c
xor ebp, ebp
lea edx, [esp + 0x50]
push 0
push edx
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test ebp, ebp
jne 0x40dad3
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
jmp 0x40db12
lea ecx, [esp + 0x40]
push ecx
push ebp
call dword [sym.imp.USER32.dll_GetWindowRect]
jmp 0x40db12
mov edx, dword [esi + 4]
push edx
call dword [sym.imp.USER32.dll_GetParent]
lea ecx, [esp + 0x50]
mov dword [esp + 0x10], eax
push ecx
push eax
call edi
lea edx, [esp + 0x40]
push edx
push ebp
call edi
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x40]
push 2
push eax
push ecx
push ebp
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov ebp, dword [esp + 0xa4]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
sub ebp, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], ebp
sub eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x40]
add eax, edx
cdq
sub eax, edx
mov ecx, eax
mov eax, ebp
cdq
sub eax, edx
mov edx, dword [esp + 0x4c]
sar ecx, 1
sar eax, 1
sub ecx, eax
mov eax, dword [esp + 0x44]
add eax, edx
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [esp + 0x24]
cdq
sub eax, edx
sar ebp, 1
sar eax, 1
sub ebp, eax
mov eax, dword [esp + 0x50]
cmp ecx, eax
jl 0x40db8a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x58]
add edx, ecx
cmp edx, eax
jle 0x40db8c
sub eax, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x54]
cmp ebp, eax
jl 0x40dba7
mov eax, dword [esp + 0x24]
lea edx, [eax + ebp]
mov eax, dword [esp + 0x5c]
cmp edx, eax
jle 0x40dba9
sub eax, dword [esp + 0x24]
mov ebp, eax
mov eax, dword [esi + 4]
push 0x15
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
push ecx
push 0
push eax
call ebx
mov ecx, dword [esi + 4]
push 0x43e4c0
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea ebp, [esi + 0x30]
mov dword [esi + 0x38], 1
mov ecx, ebp
call fcn.004014a0
push ecx
mov ecx, ebp
mov eax, esp
mov dword [eax], 0xd2
call fcn.00401480
mov edx, dword [esi + 4]
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push edx
mov dword [esi + 0x40], 0
call ebp
lea ecx, [esi + 0xac]
push eax
call fcn.004147e0
xor ecx, ecx
cmp eax, ecx
je 0x40dc1d
lea ecx, [esi + 0xac]
call fcn.00411430
xor ecx, ecx
mov dword [esi + 0xd4], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x10]
mov dword [esi + 0xd8], 2
mov dword [esi + 0xdc], 1
mov dword [esi + 0xe0], 3
mov edx, dword [esi + 0xd0]
lea ecx, [esp + 0x2c]
push eax
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
xor ecx, ecx
cmp eax, ecx
je 0x40dc7f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
push 1
push eax
push ecx
lea ecx, [esi + 0xb0]
call fcn.0040f030
xor ecx, ecx
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, 0x24
sub ecx, edx
push 5
sub ecx, 0x6a
add edx, ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x1c], ecx
push eax
mov eax, dword [esp + 0x24]
sub eax, edx
mov dword [esp + 0x1c], edx
push eax
push ecx
mov ecx, dword [esi + 0xb0]
push edx
push 0
push ecx
call ebx
mov edx, dword [esi + 4]
push 0x3ec
push edx
call ebp
lea ecx, [esi + 0xf0]
push eax
call fcn.004147e0
xor ecx, ecx
cmp eax, ecx
je 0x40dd0b
lea ecx, [esi + 0xf0]
call fcn.00411430
xor ecx, ecx
mov dword [esi + 0x118], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x10]
mov dword [esi + 0x11c], 2
mov dword [esi + 0x120], 1
mov edx, dword [esi + 0x114]
lea ecx, [esp + 0x2c]
push eax
push ecx
push edx
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
test eax, eax
je 0x40dd5f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
push 1
push eax
push ecx
lea ecx, [esi + 0xf4]
call fcn.0040f030
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esp + 0x14]
sub eax, 0x24
sub ecx, edx
push 5
sub ecx, 0xce
add edx, ecx
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x1c], ecx
push eax
mov eax, dword [esp + 0x24]
sub eax, edx
mov dword [esp + 0x1c], edx
push eax
push ecx
mov ecx, dword [esi + 0xf4]
push edx
push 0
push ecx
call ebx
xor eax, eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
call fcn.004094a0
or eax, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov edx, dword [esi + 4]
push 0x3e8
push edx
mov dword [esp + 0xbc], ecx
call ebp
lea ecx, [esi + 0x134]
push eax
call fcn.004147e0
test eax, eax
je 0x40de26
lea ecx, [esi + 0x134]
call fcn.00411a30
call fcn.00401410
mov eax, dword [eax + 0x24]
xor ecx, ecx
mov dword [esi + 0x16c], eax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x168], 0xb
cmp eax, ecx
mov dword [esi + 0x184], 0xffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], 2
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], ecx
je 0x40de7b
push eax
call fcn.0042329e
add esp, 4
mov dword [esp + 0x60], 0
mov eax, 0x43e4b8
test eax, eax
je 0x40deb4
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
mov dword [esp + 0x10], eax
lea ecx, [eax + eax]
push ecx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
je 0x40deb4
mov edx, dword [esp + 0x10]
push 0x43e4b8
push edx
push eax
call fcn.004110a0
push 0x38
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0xb4], 1
je 0x40ded7
mov ecx, eax
call fcn.0040e780
jmp 0x40ded9
xor eax, eax
mov ecx, dword [esp + 0x60]
mov byte [esp + 0xb4], 0
push ecx
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.0040e870
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
push edx
call fcn.0040e7e0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x94]
mov dword [eax + 0x34], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x90]
mov dword [eax + 0x30], edx
mov eax, dword [esp + 0x6c]
cmp eax, 0xffffffff
jne 0x40df33
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x170]
mov dword [edx + 0xc], ecx
jmp 0x40df3a
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x70]
cmp eax, 0xffffffff
jne 0x40df52
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x174]
mov dword [eax + 0x10], edx
jmp 0x40df59
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x74]
cmp eax, 0xffffffff
jne 0x40df71
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x178]
mov dword [eax + 0x14], edx
jmp 0x40df78
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x78]
cmp eax, 0xffffffff
jne 0x40df90
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x17c]
mov dword [eax + 0x18], edx
jmp 0x40df97
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x40dfae
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x16c]
mov dword [eax + 8], edx
jmp 0x40dfb5
mov ecx, dword [esp + 0x24]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x8c]
cmp eax, 0xffffffff
jne 0x40dfd0
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x194]
mov dword [eax + 0x2c], edx
jmp 0x40dfd7
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x2c], eax
lea edx, [esp + 0x7c]
push edx
call dword [sym.imp.USER32.dll_IsRectEmpty]
test eax, eax
je 0x40e060
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
test byte [esi + 0x168], 8
je 0x40e013
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x14]
mov eax, dword [edx + 8]
push ecx
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_GetIconSize]
jmp 0x40e027
mov ecx, dword [esi + 0x18c]
mov edx, dword [esi + 0x190]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push eax
push ecx
push 0
push 0
lea ecx, [esp + 0xac]
call fcn.00410f70
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
add edx, 0x1c
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
jmp 0x40e08b
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x7c]
add ecx, 0x1c
mov dword [ecx], edx
mov eax, dword [esp + 0x80]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x84]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x88]
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esi + 0x154]
call fcn.00411630
lea ecx, [esi + 0x134]
call fcn.004116a0
lea ecx, [esi + 0x134]
call fcn.004116a0
mov eax, dword [esi + 0x158]
mov edx, dword [esi + 0x154]
push 1
mov ecx, dword [edx + eax*4 - 4]
mov eax, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
push ecx
push eax
lea ecx, [esi + 0x138]
call fcn.0040f030
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
sub eax, ecx
push 5
sub eax, 0x30
push 0
add ecx, eax
mov eax, dword [esp + 0x20]
inc eax
push 0
push eax
mov dword [esp + 0x24], ecx
push ecx
mov ecx, dword [esi + 0x138]
push 0
push ecx
mov dword [esp + 0x34], eax
call ebx
mov edx, dword [esi + 4]
push 0x3f0
push edx
call ebp
mov ecx, dword [esi + 0x98]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x48]
push ecx
push 0x20
push eax
call fcn.00403450
add esp, 0xc
mov dword [esi + 0x1a4], eax
test eax, eax
je 0x40e151
mov edx, dword [esp + 0x10]
push 0
push eax
push 0x170
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
call edi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
add ecx, 0x24
sub edx, ecx
push 5
push edx
mov edx, dword [esp + 0x24]
add eax, 0xf
mov dword [esp + 0x20], ecx
sub edx, eax
mov dword [esp + 0x1c], eax
push edx
push ecx
push eax
mov eax, dword [esp + 0x24]
push 0
push eax
call ebx
mov ecx, dword [esi + 4]
push 0x3f1
push ecx
call ebp
mov dword [esp + 0x10], eax
call fcn.00401410
mov eax, dword [eax + 0x28]
mov edx, dword [esp + 0x10]
push 1
push eax
push 0x30
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x48]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
push 4
sub ecx, edx
mov edx, dword [esp + 0x18]
add edx, 0x3c
sub ecx, 0x32
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, 0x24
sub eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
sub eax, ecx
sub edx, 0x3c
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
push ecx
push eax
mov eax, dword [esp + 0x24]
push 0
push eax
call ebx
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jl 0x40e240
mov dword [esp + 0x28], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x40e254
mov ecx, dword [0x43e040]
push eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x2c]
call fcn.00410fd0
mov edx, dword [esp + 0x28]
mov byte [esp + 0xb4], 2
mov eax, dword [edx - 8]
test eax, eax
jne 0x40e309
mov eax, dword [esi + 0x48]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.00403770
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
cmp ecx, eax
mov byte [esp + 0xb4], 3
je 0x40e2da
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x40e2a6
mov edx, dword [0x43e044]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x40e2ad
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x40e2bd
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.00404580
jmp 0x40e2da
lea ecx, [esp + 0x28]
call fcn.00402c60
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov eax, dword [esp + 0x24]
mov edx, dword [0x43e044]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x40e309
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40e309
mov edx, dword [esp + 0x24]
lea eax, [edx - 0xc]
push eax
call fcn.0042329e
add esp, 4
mov eax, dword [esi + 4]
push 0x40e
push eax
call ebp
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
push ecx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
push 4
sub ecx, edx
mov edx, dword [esp + 0x18]
add edx, 0x3a
sub ecx, 0x52
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, 0x36
sub eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
sub eax, ecx
sub edx, 0x3a
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
push ecx
mov ecx, dword [esp + 0x20]
push eax
push 0
push ecx
call ebx
mov edx, dword [esi + 4]
push 0x3f3
push edx
call ebp
mov dword [esp + 0x10], eax
mov eax, dword [0x43e040]
mov dword [esp + 0x34], eax
mov ecx, dword [esi + 0x88]
lea edx, [esp + 0x34]
push ecx
push 0x43e4a8
push edx
mov byte [esp + 0xc0], 4
call fcn.00403e30
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
sub ecx, edx
mov edx, dword [esp + 0x14]
add edx, 0x3c
sub ecx, 0x6d
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
add edx, 0x55
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
sub eax, ecx
push 4
sub edx, 0x3c
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
push ecx
mov ecx, dword [esp + 0x20]
push eax
push 0
push ecx
call ebx
xor eax, eax
lea edx, [esp + 0x3c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x48]
lea ecx, [esp + 0x38]
push edx
push ecx
push eax
call fcn.004036b0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
add esp, 0xc
test eax, eax
jne 0x40e455
test ecx, ecx
je 0x40e483
mov edx, ecx
and edx, 0xffff
shr ecx, 0x10
push edx
push ecx
mov ecx, eax
lea edx, [esi + 0x200]
and ecx, 0xffff
shr eax, 0x10
push ecx
push eax
push 0x43e490
push edx
call fcn.00403e30
add esp, 0x18
mov eax, dword [esi + 4]
push 0x3f4
push eax
call ebp
mov ecx, dword [0x43e040]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 0x200]
lea eax, [esp + 0x30]
push edx
push 0x43e480
push eax
mov byte [esp + 0xc0], 5
call fcn.00403e30
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
add esp, 0xc
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x14]
push eax
push ecx
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
push 4
sub ecx, edx
mov edx, dword [esp + 0x18]
add edx, 0x3c
sub ecx, 0x82
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, 0x6a
sub eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
sub eax, ecx
sub edx, 0x3c
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
mov edx, dword [esp + 0x1c]
push ecx
push eax
push 0
push edx
call ebx
mov eax, dword [esi + 4]
push 0x3f7
push eax
call ebp
push 0x43e474
push eax
mov dword [esp + 0x18], eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
sub ecx, edx
mov edx, dword [esp + 0x14]
add edx, 0xf
sub ecx, 0x9b
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
add edx, 0x8d
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
sub edx, 0xf
sub eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
sub eax, ecx
push 4
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
push ecx
push eax
mov eax, dword [esp + 0x24]
push 0
push eax
call ebx
mov ecx, dword [esi + 4]
push 0x3f8
push ecx
call ebp
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x10], eax
push ecx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [esi + 4]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, eax
push 4
sub ecx, edx
mov edx, dword [esp + 0x18]
add edx, 0xf
sub ecx, 0xb9
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, 0xa5
sub eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
sub eax, ecx
sub edx, 0xf
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], edx
sub edx, eax
push edx
push ecx
mov ecx, dword [esp + 0x20]
push eax
push 0
push ecx
call ebx
mov edx, dword [esi + 4]
push 0x412
push edx
call ebp
mov ecx, dword [esi + 4]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x14]
push eax
push ecx
call edi
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, ecx
add ebx, 0xf
sub eax, edx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x1c]
add edx, 0xc2
sub eax, 0xa2
mov dword [esp + 0x18], edx
sub ebx, 0xf
sub ecx, eax
lea edx, [esp + 0x14]
push 5
mov dword [esp + 0x24], ecx
push edx
push 0
lea ecx, [esp + 0xa4]
mov dword [esp + 0x28], ebx
call fcn.0040eff0
mov eax, dword [esi + 4]
push 0x411
push eax
call ebp
lea ebx, [esi + 0x1a8]
push eax
mov ecx, ebx
call fcn.0040ff80
push 0
push 5
mov ecx, ebx
call fcn.0040ff50
push 0x442578
mov ecx, ebx
call fcn.00411a80
mov edx, dword [esi + 4]
lea ecx, [esp + 0x14]
push ecx
push edx
mov dword [esi + 0x1f0], 0xbb6c0d
call edi
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
sub eax, ebp
lea ecx, [esp + 0x14]
sub eax, 0xa2
push eax
push 0xf
push 0xc4
push 0x22
call fcn.00410f90
lea ecx, [esp + 0x14]
push 5
push ecx
push 0
lea ecx, [esi + 0x1ac]
call fcn.0040eff0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 4
call fcn.00402b20
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 2
call fcn.00402b20
lea ecx, [esp + 0x28]
mov byte [esp + 0xb4], 0
call fcn.00402b20
mov edx, dword [esp + 0x60]
push edx
call fcn.0042329e
mov eax, dword [esp + 0x68]
push eax
call fcn.0042329e
mov ecx, dword [esp + 0xb4]
add esp, 8
mov eax, 1
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret 8