Function at 0x409fc0
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x44b7c0
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4606b0]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
call fcn.0042127d
mov eax, dword [esi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.0041662a
mov ebp, eax
test ebp, ebp
je 0x40a0a7
call fcn.00415588
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40a02a
push 0x80004005
call fcn.00407b00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
push 0x65
mov dword [esp + 0x34], 0
call fcn.0041d036
test eax, eax
je 0x40a05d
push 0x65
push eax
lea ecx, [esp + 0x1c]
call fcn.00406c50
mov edi, dword [esp + 0x14]
cmp dword [edi - 0xc], 0
je 0x40a083
mov ecx, dword [ebp + 4]
mov ebx, dword [sym.imp.USER32.dll_AppendMenuA]
push 0
push 0
push 0x800
push ecx
call ebx
mov edx, dword [ebp + 4]
push edi
push 0x10
push 0
push edx
call ebx
add edi, 0xfffffff0
mov dword [esp + 0x30], 0xffffffff
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a0a7
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x20]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push eax
mov ebx, 1
push ebx
push 0x80
push ecx
call ebp
mov eax, dword [esi + 0x74]
mov edx, dword [esi + 0x20]
push eax
push 0
push 0x80
push edx
call ebp
call fcn.0041739a
mov eax, dword [eax + 0xc]
mov edi, dword [sym.imp.USER32.dll_LoadImageA]
push 0
push 0
push 0
push ebx
push 0x82
push eax
call edi
push eax
lea ecx, [esi + 0x1d0]
xor eax, eax
call fcn.00409590
call fcn.0041739a
mov eax, dword [eax + 0xc]
push 0
push 0
push 0
push ebx
push 0x83
push eax
call edi
push eax
lea ecx, [esi + 0x4b0]
xor eax, eax
call fcn.00409590
call fcn.0041739a
mov eax, dword [eax + 0xc]
push 0
push 0
push 0
push ebx
push 0x84
push eax
call edi
push eax
lea ecx, [esi + 0x790]
xor eax, eax
call fcn.00409590
call fcn.0041739a
mov eax, dword [eax + 0xc]
push 0
push 0
push 0
push ebx
push 0x85
push eax
call edi
push eax
lea ecx, [esi + 0xd50]
xor eax, eax
call fcn.00409590
call fcn.0041739a
mov eax, dword [eax + 0xc]
push 0
push 0
push 0
push ebx
push 0x87
push eax
call edi
push eax
lea ecx, [esi + 0xa70]
xor eax, eax
call fcn.00409590
push 0
push 0
push 0x10
push 0x10
lea edi, [esi + 0x1030]
push 0x10
mov ecx, edi
call fcn.004160a6
call fcn.0041739a
call fcn.0041739a
mov eax, dword [eax + 0xc]
push 0x88
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, dword [esi + 0x1034]
push eax
push 0xffffffffffffffff
push ecx
call fcn.0041739a
mov eax, dword [eax + 0x78]
mov ecx, dword [eax]
call fcn.00406a90
mov edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x1034]
push 0x161
push 0
push 0x1036
push edx
mov dword [esi + 0x124], ecx
call ebp
test edi, edi
je 0x40a203
mov edi, dword [edi + 4]
mov eax, dword [esi + 0x98]
push edi
push ebx
push 0x1003
push eax
call ebp
push eax
call fcn.00415fde
call fcn.00415588
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40a233
push 0x80004005
call fcn.00407b00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push str.Part_List
push str.Part_List
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], ebx
call fcn.0040f430
add esp, 8
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x34], 2
call fcn.00407530
mov byte [esp + 0x30], bl
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a290
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x18]
push 0
push 0x12a
push 0
push ebp
lea edi, [esi + 0x78]
push 0
mov ecx, edi
call fcn.00415c2d
mov eax, edi
call fcn.00410360
mov dword [esi + 0x1038], 0
mov dword [esi + 0x103c], ebx
call fcn.00415588
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40a2db
push 0x80004005
call fcn.00407b00
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DEFAULT_TYPE
mov byte [esp + 0x38], 3
lea edi, [esp + 0x1c]
call fcn.00406d80
call fcn.0040e070
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0043515f
mov ecx, esp
mov dword [esp + 0x24], esp
push str.DEFAULT_FILTER
mov dword [esi + 0x1038], eax
call fcn.00406d80
call fcn.0040e070
mov edx, dword [esp + 0x14]
push edx
call fcn.0043515f
mov ecx, esp
mov dword [esp + 0x24], esp
push str.BLANK_WINDOW
mov dword [esi + 0x103c], eax
call fcn.00406d80
call fcn.0040e070
mov edi, dword [esp + 0x14]
push edi
call fcn.0043515f
add esp, 4
push 0
mov ecx, esi
mov dword [esi + 0x1040], eax
call fcn.00419b5a
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x1044]
call fcn.004218d5
call fcn.0040e840
lea eax, [edi - 0x10]
mov byte [esp + 0x30], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov dword [esp + 0x30], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a3c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, ebx
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret