Function at 0x40c778
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x40c780
push ecx
push ebx
push esi
push edi
test dl, dl
je 0x40c797
add esp, 0xfffffff0
call fcn.004028c8
mov ebx, edx
mov edi, eax
xor eax, eax
push ebp
push 0x40cd62
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, edi
call fcn.004027c8
mov dword [0x40f574], edi
xor ecx, ecx
mov dl, 1
mov eax, dword [0x40abc4]
call fcn.0040ac90
mov esi, eax
mov dword [edi + 4], esi
xor eax, eax
mov dword [esi + 0x60], eax
xor eax, eax
mov dword [esi + 0x6c], eax
xor eax, eax
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], 0x190
mov dword [esi + 0x78], 0x1d
mov byte [esi + 0x7c], 0
mov dword [esi + 0x84], 0xff00000f
push 0
push 1
lea eax, [ebp - 0x10]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x40cd90
call fcn.004099f8
lea edx, [ebp - 0x10]
lea eax, [esi + 0x90]
mov ecx, dword [0x409200]
call fcn.004037fc
mov byte [esi + 0xa0], 0
mov byte [esi + 0xa2], 1
mov byte [esi + 0xa3], 1
xor eax, eax
mov dword [esi + 0xa4], eax
xor eax, eax
mov dword [esi + 0x80], eax
mov byte [esi + 0x88], 1
mov byte [esi + 0xc0], 0
lea eax, [esi + 0x68]
xor edx, edx
call fcn.00403118
lea eax, [esi + 0x8c]
xor edx, edx
call fcn.00403118
xor eax, eax
mov dword [esi + 0xc4], eax
xor eax, eax
mov dword [esi + 0xc8], eax
mov byte [esi + 0x1b9], 0xff
lea eax, [ebp - 0x14]
mov edx, 0x40cda0
call fcn.00403118
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0040b0e0
mov dl, 3
mov eax, esi
call fcn.0040b114
mov byte [esi + 0x1ba], 0
push 0x40cdbc
mov eax, dword [0x40e244]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, eax
mov eax, esi
call fcn.0040b1b4
xor edx, edx
mov eax, esi
call fcn.0040b188
mov byte [esi + 0x1b8], 0
mov byte [esi + 0xaa], 1
mov dword [esi + 0x1d4], 0xffffff
lea eax, [esi + 0x1c4]
xor edx, edx
call fcn.00403118
mov byte [esi + 0xa8], 0
mov byte [esi + 0x1c9], 0
mov dword [esi + 0x1d0], esi
mov dword [esi + 0x1cc], 0x40b81c
xor eax, eax
mov dword [esi + 0x1b0], eax
xor eax, eax
mov dword [esi + 0x1b4], eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x34]
mov dl, 1
mov eax, dword [0x40b900]
call fcn.004027c8
mov esi, eax
mov dword [edi + 8], esi
mov eax, esi
mov byte [eax + 5], 1
mov dx, 4
call fcn.0040b968
mov dl, 1
mov eax, dword [0x40b9f8]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0xc], esi
mov eax, esi
mov byte [eax + 0x10], 1
mov dl, 1
mov eax, dword [0x40bbdc]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0x10], esi
lea eax, [esi + 8]
mov edx, 0x40cdc4
call fcn.00403118
mov dword [esi + 0xc], 1
mov byte [esi + 0x10], 1
mov byte [esi + 0x11], 0
mov dl, 1
mov eax, dword [0x40bd58]
call fcn.004027c8
mov dword [edi + 0x14], eax
mov dl, 1
mov eax, dword [0x40be50]
call fcn.004027c8
mov dword [edi + 0x18], eax
mov dl, 1
mov eax, dword [0x40b900]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0x1c], esi
mov eax, esi
mov byte [eax + 5], 1
mov dx, 4
call fcn.0040b968
mov dl, 1
mov eax, dword [0x40be50]
call fcn.004027c8
mov dword [edi + 0x20], eax
mov dl, 1
mov eax, dword [0x40bf90]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0x24], esi
mov eax, esi
mov dword [eax + 0x20], 2
mov dl, 1
mov eax, dword [0x40c34c]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0x28], esi
mov byte [esi + 4], 0
lea edx, [ebp - 0x30]
xor eax, eax
call fcn.004098c8
lea edx, [ebp - 0x30]
lea eax, [esi + 0x24]
mov ecx, dword [0x4091e4]
call fcn.004037fc
mov dl, 1
mov eax, dword [0x40c4cc]
call fcn.004027c8
mov esi, eax
mov dword [edi + 0x2c], esi
lea eax, [esi + 0x2c]
mov edx, 0x40cde8
call fcn.00403118
lea eax, [esi + 0x30]
mov edx, 0x40cdec
call fcn.00403118
mov byte [esi + 0x34], 1
mov dword [esi + 0x3c], esi
mov dword [esi + 0x38], 0x40c540
mov eax, dword [edi + 8]
push eax
push 0x40b990
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x208], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x20c], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x210], edx
mov eax, dword [edi + 0x24]
push eax
push 0x40c000
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 8], edx
mov eax, dword [edi + 0xc]
push eax
push 0x40bac8
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x14], edx
mov eax, dword [edi + 0x28]
push eax
push 0x40c3c0
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x20], edx
mov eax, dword [edi + 4]
push eax
push 0x40b820
lea edx, [ebp - 0x3c]
mov ax, 3
call fcn.00409304
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x2c], edx
mov eax, dword [edi + 0x18]
push eax
push 0x40bec0
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 0x1c]
push eax
push 0x40b990
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x40], edx
mov eax, dword [edi + 0x18]
push eax
push 0x40bf3c
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 0xc]
push eax
push 0x40bb98
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x14]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x18], edx
mov eax, dword [edi + 0x10]
push eax
push 0x40bc48
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x44], edx
mov eax, dword [edi + 0x14]
push eax
push 0x40bdb0
lea edx, [ebp - 0x3c]
mov ax, 4
call fcn.00409304
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x14], edx
mov eax, dword [edi + 0x14]
push eax
push 0x40bdd0
lea edx, [ebp - 0x3c]
mov ax, 2
call fcn.00409304
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x20], edx
mov eax, dword [edi + 0x24]
push eax
push 0x40c000
lea edx, [ebp - 0x3c]
mov ax, 1
call fcn.00409304
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x2c], edx
mov eax, dword [edi + 0x20]
push eax
push 0x40bec0
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x24]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x2c], edx
mov eax, dword [edi + 0x2c]
push eax
push 0x40c5d4
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x28]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x5c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x60], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x64], edx
mov eax, dword [edi + 0x20]
push eax
push 0x40bf3c
lea edx, [ebp - 0x3c]
xor eax, eax
call fcn.00409304
mov eax, dword [edi + 0x28]
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x50], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x54], edx
mov edx, dword [ebp - 0x34]
mov dword [eax + 0x58], edx
xor edx, edx
mov eax, dword [edi + 4]
call fcn.0040a5ac
xor edx, edx
mov eax, dword [edi + 4]
call fcn.0040a584
xor edx, edx
mov eax, dword [edi + 4]
call fcn.0040ac6c
mov eax, dword [edi + 4]
xor edx, edx
mov dword [eax + 0x1ac], edx
mov eax, dword [eax + 0x64]
call fcn.004081b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40cd69
lea eax, [ebp - 0x30]
mov edx, dword [0x4091e4]
call fcn.004035ec
lea eax, [ebp - 0x14]
call fcn.00402ff4
lea eax, [ebp - 0x10]
mov edx, dword [0x409200]
call fcn.004035ec
ret