Function at 0x4201b8
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x4201c0
push ebx
push esi
test dl, dl
je 0x4201d5
add esp, 0xfffffff0
call fcn.004029a8
mov byte [ebp - 1], dl
mov esi, eax
xor eax, eax
push ebp
push 0x420eab
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, esi
call fcn.004028a8
mov dword [0x42388c], esi
xor ecx, ecx
mov dl, 1
mov eax, dword [0x412d64]
call fcn.00412e74
mov ebx, eax
mov dword [esi + 0x30], ebx
xor eax, eax
mov dword [ebx + 0x78], eax
xor eax, eax
mov dword [ebx + 0x84], eax
xor eax, eax
mov dword [ebx + 0x88], eax
mov dword [ebx + 0x8c], 0x2a3
mov dword [ebx + 0x90], 0x1c8
mov byte [ebx + 0x94], 0
mov dword [ebx + 0x9c], 0xff00000f
push 0
push 1
lea eax, [ebp - 0x14]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420edc
call fcn.0040cc98
lea edx, [ebp - 0x14]
lea eax, [ebx + 0xa8]
mov ecx, dword [0x40bedc]
call fcn.00403b74
mov byte [ebx + 0xb8], 0
mov byte [ebx + 0xba], 1
mov byte [ebx + 0xbb], 1
xor eax, eax
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0xc2], 1
xor eax, eax
mov dword [ebx + 0x98], eax
mov byte [ebx + 0xa0], 1
mov byte [ebx + 0xd8], 0
lea eax, [ebx + 0x80]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 0xa4]
xor edx, edx
call fcn.004032a4
xor eax, eax
mov dword [ebx + 0xdc], eax
xor eax, eax
mov dword [ebx + 0xe0], eax
mov byte [ebx + 0x1c9], 0xff
lea eax, [ebp - 0x18]
mov edx, 0x420eec
call fcn.004032a4
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.00413368
xor edx, edx
mov eax, ebx
call fcn.0041339c
mov byte [ebx + 0x1ca], 0
push 0x420efc
mov eax, dword [0x422780]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, eax
mov eax, ebx
call fcn.00413440
xor edx, edx
mov eax, ebx
call fcn.00413414
mov byte [ebx + 0x1c8], 0
mov dword [ebx + 0x1dc], 0xffffff
lea eax, [ebx + 0x1cc]
xor edx, edx
call fcn.004032a4
mov byte [ebx + 0xc0], 0
mov byte [ebx + 0x1d1], 0
mov dword [ebx + 0x1d8], ebx
mov dword [ebx + 0x1d4], 0x413b0c
xor eax, eax
mov dword [ebx + 0x1c0], eax
xor eax, eax
mov dword [ebx + 0x1c4], eax
mov byte [ebx + 0x1e0], 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x40cfdc]
call fcn.0040d054
mov ebx, eax
mov dword [esi + 4], ebx
mov byte [ebx + 0x14], 0
mov dword [ebx + 0x24], esi
push 3
lea eax, [ebx + 0x1c]
mov ecx, 1
mov edx, dword [0x40cfb4]
call fcn.0040407c
add esp, 4
push 0
lea eax, [ebx + 0x20]
mov ecx, 1
mov edx, dword [0x40cfc8]
call fcn.0040407c
add esp, 4
mov dl, 1
mov eax, dword [0x40d410]
call fcn.004028a8
mov ebx, eax
mov dword [esi + 8], ebx
lea eax, [ebx + 0x34]
mov edx, 0x420f04
call fcn.004032a4
lea eax, [ebx + 0x30]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 0x40]
xor edx, edx
call fcn.004032a4
mov byte [ebx + 0x38], 1
mov byte [ebx + 0x39], 0
lea eax, [ebx + 0x3c]
mov edx, 0x420f10
call fcn.004032a4
lea eax, [ebx + 0x44]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 0x48]
xor edx, edx
call fcn.004032a4
mov dl, 1
mov eax, dword [0x40db80]
call fcn.004028a8
mov ebx, eax
mov dword [esi + 0xc], ebx
lea eax, [ebx + 8]
mov edx, 0x420f18
call fcn.004032a4
lea eax, [ebx + 0xc]
mov edx, 0x420f24
call fcn.004032a4
lea eax, [ebx + 0x10]
mov edx, 0x420f2c
call fcn.004032a4
mov byte [ebx + 0x14], 1
mov dl, 1
mov eax, dword [0x40dd7c]
call fcn.004028a8
mov dword [esi + 0x10], eax
mov dl, 1
mov eax, dword [0x40df3c]
call fcn.004028a8
mov ebx, eax
mov dword [esi + 0x14], ebx
lea eax, [ebp - 0x18]
mov edx, 0x420f18
call fcn.004032a4
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
call fcn.0040c8f0
lea edx, [ebp - 0x34]
lea eax, [ebx + 4]
mov ecx, dword [0x40bec0]
call fcn.00403b74
mov dl, 1
mov eax, dword [0x40df3c]
call fcn.004028a8
mov ebx, eax
mov dword [esi + 0x18], ebx
lea eax, [ebp - 0x18]
mov edx, 0x420f34
call fcn.004032a4
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
call fcn.0040c8f0
lea edx, [ebp - 0x34]
lea eax, [ebx + 4]
mov ecx, dword [0x40bec0]
call fcn.00403b74
mov dl, 1
mov eax, dword [0x40e064]
call fcn.004028a8
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov byte [eax + 5], 1
mov dx, 3
call fcn.0040e0cc
mov dl, 1
mov eax, dword [0x40e170]
call fcn.004028a8
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
xor edx, edx
mov dword [eax + 0x40], edx
mov edx, 2
call fcn.0040e228
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x40e78c]
call fcn.0040e884
mov dword [esi + 0x24], eax
mov ebx, dword [esi + 0x24]
xor eax, eax
mov dword [ebx + 0x13c], eax
xor eax, eax
mov dword [ebx + 0x140], eax
xor edx, edx
mov eax, ebx
call fcn.0040e44c
lea eax, [ebx + 0x178]
mov edx, 0x420f54
call fcn.004032a4
mov byte [ebx + 0x17c], 0
mov eax, 0x41fe7c
mov dword [ebx + 0x198], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x40fba0]
call fcn.0040fc3c
mov dword [esi + 0x28], eax
mov ebx, dword [esi + 0x28]
mov dword [ebx + 0x78], 2
mov dword [ebx + 0x84], 0xf
mov dword [ebx + 0x88], 0x41
mov dword [ebx + 0x8c], 0x16d
mov dword [ebx + 0x90], 0x168
mov byte [ebx + 0x94], 5
mov dword [ebx + 0x1a8], 0xffffff
push 0
push 1
lea eax, [ebp - 0x14]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420edc
call fcn.0040cc98
lea edx, [ebp - 0x14]
lea eax, [ebx + 0xa8]
mov ecx, dword [0x40bedc]
call fcn.00403b74
mov byte [ebx + 0xb8], 0
mov byte [ebx + 0xba], 1
mov byte [ebx + 0xbb], 1
xor eax, eax
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0xc2], 1
xor eax, eax
mov dword [ebx + 0x98], eax
mov byte [ebx + 0xa0], 1
mov byte [ebx + 0xd8], 0
lea eax, [ebx + 0x80]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 0xa4]
xor edx, edx
call fcn.004032a4
mov dword [ebx + 0xdc], 0x64
mov dword [ebx + 0xe0], 0x64
mov eax, dword [0x42277c]
mov eax, dword [eax]
mov dword [ebx + 0xc4], eax
mov dword [ebx + 0xc8], 4
mov dword [ebx + 0xcc], 0xff00000f
xor eax, eax
mov dword [ebx + 0xd0], eax
xor eax, eax
mov dword [ebx + 0xd4], eax
mov byte [ebx + 0xc0], 0
mov byte [ebx + 0x1ac], 1
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x4129b8]
call fcn.00412a5c
mov dword [esi + 0x2c], eax
mov ebx, dword [esi + 0x2c]
xor eax, eax
mov dword [ebx + 0x78], eax
mov dword [ebx + 0x84], 0x125
mov dword [ebx + 0x88], 0x19e
mov dword [ebx + 0x8c], 0x172
mov dword [ebx + 0x90], 0x21
mov byte [ebx + 0x94], 0
mov dword [ebx + 0x1ac], 0xff00000f
push 0xff00ff
push 1
lea eax, [ebp - 0x14]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420edc
call fcn.0040cc98
lea edx, [ebp - 0x14]
lea eax, [ebx + 0xa8]
mov ecx, dword [0x40bedc]
call fcn.00403b74
mov byte [ebx + 0xb8], 0
mov byte [ebx + 0xba], 1
mov byte [ebx + 0xbb], 1
xor eax, eax
mov dword [ebx + 0xbc], eax
mov byte [ebx + 0xc2], 1
xor eax, eax
mov dword [ebx + 0x98], eax
mov byte [ebx + 0xa0], 1
mov byte [ebx + 0xd8], 1
lea eax, [ebx + 0x80]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 0xa4]
xor edx, edx
call fcn.004032a4
xor eax, eax
mov dword [ebx + 0xdc], eax
xor eax, eax
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0x1bc], 0xff000002
mov dword [ebx + 0x1b4], 0xf0caa6
xor eax, eax
mov dword [ebx + 0x1b8], eax
mov dword [ebx + 0x1c4], 0xa4a0a0
mov dword [ebx + 0x1c0], 0xffff00
xor eax, eax
mov dword [ebx + 0x1c8], eax
mov byte [ebx + 0x1cc], 5
mov byte [ebx + 0x1cd], 1
mov dword [ebx + 0x1d8], 0xffff
mov dword [ebx + 0x1d0], 0x80
xor eax, eax
mov dword [ebx + 0x1d4], eax
mov dword [ebx + 0x1e0], 0xa4a0a0
mov dword [ebx + 0x1dc], 0x808080
mov dword [ebx + 0x1e4], 2
mov byte [ebx + 0x1e8], 5
mov byte [ebx + 0x1e9], 1
mov byte [ebx + 0xb9], 0
xor eax, eax
mov dword [ebx + 0x1a8], eax
mov byte [ebx + 0x1b0], 0
mov byte [ebx + 0x1b1], 0
mov byte [ebx + 0x1b2], 0
lea eax, [ebp - 0x18]
mov edx, 0x420f5c
call fcn.004032a4
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.00412ce8
mov byte [ebx + 0x1a4], 0
mov byte [ebx + 0x1a5], 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
mov dl, 1
mov eax, dword [0x40dd7c]
call fcn.004028a8
mov dword [esi + 0x34], eax
mov ebx, dword [esi + 0x34]
lea eax, [ebp - 0x18]
mov edx, 0x420f18
call fcn.004032a4
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
call fcn.0040c8f0
lea edx, [ebp - 0x34]
mov eax, ebx
call fcn.0040ddec
mov dl, 1
mov eax, dword [0x40df3c]
call fcn.004028a8
mov dword [esi + 0x38], eax
mov dl, 1
mov eax, dword [0x413c24]
call fcn.004028a8
mov dword [esi + 0x3c], eax
mov ebx, dword [esi + 0x3c]
lea eax, [ebx + 4]
xor edx, edx
call fcn.004032a4
lea eax, [ebx + 8]
mov edx, 0x420f6c
call fcn.004032a4
xor eax, eax
mov dword [ebx + 0xc], eax
xor eax, eax
mov dword [ebx + 0x10], eax
xor eax, eax
mov dword [ebx + 0x14], eax
mov dl, 1
mov eax, dword [0x413e78]
call fcn.004028a8
mov dword [esi + 0x40], eax
mov ebx, dword [esi + 0x40]
lea eax, [ebx + 8]
mov edx, 0x420f80
call fcn.004032a4
lea eax, [ebx + 0xc]
xor edx, edx
call fcn.004032a4
mov dl, 1
mov eax, dword [0x413fb4]
call fcn.0041400c
mov dword [esi + 0x44], eax
mov ebx, dword [esi + 0x44]
mov edx, 1
mov eax, ebx
call fcn.004140c8
mov edx, 0xbb8
mov eax, ebx
call fcn.004140b0
xor edx, edx
mov eax, ebx
call fcn.004140bc
mov edx, 1
mov eax, ebx
call fcn.004140d0
mov dl, 1
mov eax, dword [0x40e064]
call fcn.004028a8
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
mov byte [eax + 5], 1
mov dx, 2
call fcn.0040e0cc
mov dl, 1
mov eax, dword [0x40df3c]
call fcn.004028a8
mov dword [esi + 0x4c], eax
mov ebx, dword [esi + 0x4c]
lea eax, [ebp - 0x18]
mov edx, 0x420f8c
call fcn.004032a4
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x34]
call fcn.0040c8f0
lea edx, [ebp - 0x34]
lea eax, [ebx + 4]
mov ecx, dword [0x40bec0]
call fcn.00403b74
mov eax, dword [esi + 0x20]
push eax
push 0x40e24c
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x44]
push eax
push 0x41409c
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x412c48
lea edx, [ebp - 0x40]
mov ax, 3
call fcn.0040c010
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x30]
push eax
push 0x413b58
lea edx, [ebp - 0x40]
mov ax, 3
call fcn.0040c010
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x94], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x98], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x9c], edx
mov eax, dword [esi + 0x10]
push eax
push 0x40dee8
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x4c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x50], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x54], edx
mov eax, dword [esi + 0x40]
push eax
push 0x413ef0
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xa0], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0xa4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0xa8], edx
mov eax, dword [esi + 0x10]
push eax
push 0x40de6c
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x48], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x4c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x50], edx
mov eax, dword [esi + 8]
push eax
push 0x40d4dc
lea edx, [ebp - 0x40]
mov ax, 1
call fcn.0040c010
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0xc]
push eax
push 0x40dc94
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x34]
push eax
push 0x40dee8
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x412c48
lea edx, [ebp - 0x40]
mov ax, 3
call fcn.0040c010
mov eax, dword [esi + 0x18]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x18]
push eax
push 0x40dfa4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 8], edx
mov eax, dword [esi + 4]
push eax
push 0x40d220
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x28]
push eax
push 0x40fd34
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x412c98
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x412cc0
lea edx, [ebp - 0x40]
mov ax, 1
call fcn.0040c010
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x44]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x28]
push eax
push 0x40fd40
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x24]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xb8], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0xbc], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0xc0], edx
mov eax, dword [esi + 0x24]
push eax
push 0x40e914
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x1b0], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x1b4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x1b8], edx
mov eax, dword [esi + 0x1c]
push eax
push 0x40e0f4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x30]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x22c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x230], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x234], edx
mov eax, dword [esi + 0x14]
push eax
push 0x40dfa4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x38]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x30]
push eax
push 0x413b58
lea edx, [ebp - 0x40]
mov ax, 3
call fcn.0040c010
mov eax, dword [esi + 0x3c]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x34], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x3c]
push eax
push 0x413c98
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x40]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x30], edx
mov eax, dword [esi + 0x48]
push eax
push 0x40e0f4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x44]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x1c], edx
mov eax, dword [esi + 0x4c]
push eax
push 0x40dfa4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x48]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x38]
push eax
push 0x40dfa4
lea edx, [ebp - 0x40]
xor eax, eax
call fcn.0040c010
mov eax, dword [esi + 0x48]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x412c48
lea edx, [ebp - 0x40]
mov ax, 3
call fcn.0040c010
mov eax, dword [esi + 0x4c]
mov edx, dword [ebp - 0x40]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x38]
mov dword [eax + 0x34], edx
mov edx, 0x41b3e8
mov eax, dword [esi + 4]
call fcn.0040d26c
xor edx, edx
mov eax, dword [esi + 0x28]
call fcn.0040f600
xor edx, edx
mov eax, dword [esi + 0x28]
call fcn.0040f5d8
xor edx, edx
mov eax, dword [esi + 0x2c]
call fcn.0040f600
xor edx, edx
mov eax, dword [esi + 0x2c]
call fcn.0040f5d8
xor edx, edx
mov eax, dword [esi + 0x30]
call fcn.0040f600
xor edx, edx
mov eax, dword [esi + 0x30]
call fcn.0040f5d8
xor edx, edx
mov eax, dword [esi + 0x30]
call fcn.00412e14
mov eax, dword [esi + 0x30]
xor edx, edx
mov dword [eax + 0x1bc], edx
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x7c]
call fcn.00409f44
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x420eb2
lea eax, [ebp - 0x34]
mov edx, dword [0x40bec0]
call fcn.00403964
lea eax, [ebp - 0x18]
call fcn.004030f0
lea eax, [ebp - 0x14]
mov edx, dword [0x40bedc]
call fcn.00403964
ret