Function at 0x41e330
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff7c
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], ecx
test dl, dl
je 0x41e358
add esp, 0xfffffff0
call fcn.00402950
mov byte [ebp - 1], dl
mov esi, eax
xor eax, eax
push ebp
push 0x420300
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, esi
call fcn.00402850
mov dword [0x422684], esi
xor ecx, ecx
mov dl, 1
mov eax, dword [0x40e89c]
call fcn.0040e9ac
mov dword [esi + 4], eax
mov ebx, dword [esi + 4]
xor eax, eax
mov dword [ebx + 0x78], eax
xor eax, eax
mov dword [ebx + 0x84], eax
xor eax, eax
mov dword [ebx + 0x88], eax
xor eax, eax
mov dword [ebx + 0x8c], eax
xor eax, eax
mov dword [ebx + 0x90], eax
mov byte [ebx + 0x94], 0
mov dword [ebx + 0x9c], 0xff00000f
push 0
push 1
lea eax, [ebp - 0x74]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420330
call fcn.0040d430
lea edx, [ebp - 0x74]
lea eax, [ebx + 0xa8]
mov ecx, dword [0x40c62c]
call fcn.004038e0
mov byte [ebx + 0xb8], 0
mov byte [ebx + 0xba], 0
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.004031a0
lea eax, [ebx + 0xa4]
xor edx, edx
call fcn.004031a0
xor eax, eax
mov dword [ebx + 0xdc], eax
xor eax, eax
mov dword [ebx + 0xe0], eax
mov byte [ebx + 0x1c9], 0xff
lea eax, [ebp - 0x78]
mov edx, 0x420340
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.0040eea0
xor edx, edx
mov eax, ebx
call fcn.0040eed4
mov byte [ebx + 0x1ca], 1
push 0x420348
mov eax, dword [0x4215ac]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, eax
mov eax, ebx
call fcn.0040ef78
xor edx, edx
mov eax, ebx
call fcn.0040ef4c
mov byte [ebx + 0x1c8], 0
mov dword [ebx + 0x1dc], 0xffffff
lea eax, [ebx + 0x1cc]
xor edx, edx
call fcn.004031a0
mov byte [ebx + 0xc0], 0
mov byte [ebx + 0x1d1], 0
mov dword [ebx + 0x1d8], ebx
mov dword [ebx + 0x1d4], 0x40f644
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 dl, 1
mov eax, dword [0x40f840]
call fcn.00402850
mov dword [esi + 8], eax
mov dl, 1
mov eax, dword [0x40f980]
call fcn.00402850
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0xc]
mov byte [ebx + 8], 1
lea eax, [ebp - 0x78]
mov edx, 0x420350
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.0040fae8
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 8], eax
mov edx, 3
mov eax, dword [ebp - 8]
call fcn.0040fc10
mov dl, 1
mov eax, dword [0x40fd04]
call fcn.00402850
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x14]
lea eax, [ebx + 0xc]
mov edx, 0x420358
call fcn.004031a0
mov byte [ebx + 0x10], 0
mov dl, 1
mov eax, dword [0x40fe9c]
call fcn.00402850
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov byte [eax + 4], 1
mov dl, 1
mov eax, dword [0x4106ac]
call fcn.00410718
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x20], 1
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov byte [eax + 5], 1
mov dx, 2
mov eax, dword [ebp - 0x14]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov byte [eax + 5], 1
mov dx, 2
mov eax, dword [ebp - 0x18]
call fcn.00410db4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x410e44]
call fcn.00410ec0
mov dword [esi + 0x28], eax
mov ebx, dword [esi + 0x28]
lea eax, [ebp - 0x78]
mov edx, 0x42035c
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.00410f64
mov byte [ebx + 0x78], 1
mov byte [ebx + 0x79], 0
mov byte [ebx + 0x7a], 1
lea eax, [ebx + 0x7c]
xor edx, edx
call fcn.004031a0
lea eax, [ebx + 0x80]
xor edx, edx
call fcn.004031a0
mov byte [ebx + 0x84], 1
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov byte [eax + 5], 1
mov dx, 3
mov eax, dword [ebp - 0x1c]
call fcn.00410db4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x4115a4]
call fcn.0041161c
mov dword [esi + 0x30], eax
mov ebx, dword [esi + 0x30]
mov byte [ebx + 0x10], 0
mov eax, ebx
call fcn.00411690
mov dword [ebx + 0x1c], esi
push 1
lea eax, [ebx + 0x14]
mov ecx, 1
mov edx, dword [0x41157c]
call fcn.00403de8
add esp, 4
push 0
lea eax, [ebx + 0x18]
mov ecx, 1
mov edx, dword [0x411590]
call fcn.00403de8
add esp, 4
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x20], eax
mov edx, 2
mov eax, dword [ebp - 0x20]
call fcn.0040fc10
mov dl, 1
mov eax, dword [0x411834]
call fcn.00402850
mov dword [esi + 0x38], eax
mov ebx, dword [esi + 0x38]
lea eax, [ebx + 0x34]
mov edx, 0x420378
call fcn.004031a0
lea eax, [ebx + 0x30]
mov edx, 0x420380
call fcn.004031a0
lea eax, [ebx + 0x40]
xor edx, edx
call fcn.004031a0
mov byte [ebx + 0x38], 0
mov byte [ebx + 0x39], 0
lea eax, [ebx + 0x3c]
mov edx, 0x420388
call fcn.004031a0
lea eax, [ebx + 0x44]
xor edx, edx
call fcn.004031a0
lea eax, [ebx + 0x48]
xor edx, edx
call fcn.004031a0
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x4115a4]
call fcn.0041161c
mov dword [esi + 0x3c], eax
mov ebx, dword [esi + 0x3c]
mov byte [ebx + 0x10], 0
mov eax, ebx
call fcn.00411690
mov dword [ebx + 0x1c], esi
push 0
lea eax, [ebx + 0x14]
mov ecx, 1
mov edx, dword [0x41157c]
call fcn.00403de8
add esp, 4
push 0
lea eax, [ebx + 0x18]
mov ecx, 1
mov edx, dword [0x411590]
call fcn.00403de8
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x411ccc]
call fcn.00411d44
mov dword [esi + 0x40], eax
mov ebx, dword [esi + 0x40]
mov byte [ebx + 0x14], 0
mov dword [ebx + 0x24], esi
push 2
lea eax, [ebx + 0x1c]
mov ecx, 1
mov edx, dword [0x411ca4]
call fcn.00403de8
add esp, 4
push 0
lea eax, [ebx + 0x20]
mov ecx, 1
mov edx, dword [0x411cb8]
call fcn.00403de8
add esp, 4
mov dl, 1
mov eax, dword [0x412114]
call fcn.00402850
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x24], eax
mov edx, 1
mov eax, dword [ebp - 0x24]
call fcn.00412198
mov eax, dword [ebp - 0x24]
add eax, 0x14
mov edx, 0x420390
call fcn.004031a0
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0x48], eax
mov ebx, dword [esi + 0x48]
lea eax, [ebp - 0x78]
mov edx, 0x4203a8
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x4127f0]
call fcn.00402850
mov dword [esi + 0x4c], eax
mov ebx, dword [esi + 0x4c]
lea eax, [ebx + 4]
mov edx, 0x4203b0
call fcn.004031a0
mov dword [ebx + 8], 0x19
mov dword [ebx + 0xc], 0x12
push 0
push 1
lea eax, [ebp - 0x74]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420330
call fcn.0040d430
lea edx, [ebp - 0x74]
lea eax, [ebx + 0x10]
mov ecx, dword [0x40c62c]
call fcn.004038e0
mov dl, 1
mov eax, dword [0x4128bc]
call fcn.00402850
mov dword [esi + 0x50], eax
mov ebx, dword [esi + 0x50]
lea eax, [ebx + 8]
mov edx, 0x4203b4
call fcn.004031a0
lea eax, [ebx + 0xc]
mov edx, 0x4203c0
call fcn.004031a0
lea eax, [ebp - 0x78]
mov edx, 0x4203c0
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.00412c18
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov byte [eax + 5], 1
mov dx, 2
mov eax, dword [ebp - 0x28]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov byte [eax + 5], 1
mov dx, 3
mov eax, dword [ebp - 0x2c]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov byte [eax + 5], 2
mov dx, 1
mov eax, dword [ebp - 0x30]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x412ca0]
call fcn.00402850
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov byte [eax + 4], 1
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x38], eax
mov edx, 2
mov eax, dword [ebp - 0x38]
call fcn.0040fc10
mov dl, 1
mov eax, dword [0x41302c]
call fcn.00402850
mov dword [esi + 0x68], eax
mov dl, 1
mov eax, dword [0x41327c]
call fcn.00402850
mov dword [esi + 0x6c], eax
mov ebx, dword [esi + 0x6c]
mov byte [ebx + 4], 0
lea eax, [ebx + 8]
mov edx, 0x4203c0
call fcn.004031a0
lea eax, [ebx + 0xc]
xor edx, edx
call fcn.004031a0
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
mov dword [ebp - 0x3c], eax
mov edx, 2
mov eax, dword [ebp - 0x3c]
call fcn.0040fc10
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x415258]
call fcn.00413eac
mov dword [esi + 0x74], eax
mov ebx, dword [esi + 0x74]
mov byte [ebx + 0xa1], 1
mov byte [ebx + 0x12c], 0
lea eax, [ebp - 0x78]
mov edx, 0x4203c8
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.00415090
mov dword [ebx + 0x2c], 0xa
mov word [ebx + 0x9a], 0
mov dword [ebx + 0x34], 5
mov byte [ebx + 0xa2], 1
mov byte [ebx + 0xa3], 1
mov byte [ebx + 0x9e], 1
mov byte [ebx + 0x8a], 1
mov byte [ebx + 0x9f], 1
mov byte [ebx + 0x89], 1
mov byte [ebx + 0x9c], 1
mov byte [ebx + 0x8b], 0
xor eax, eax
mov dword [ebx + 0x30], eax
xor eax, eax
mov dword [ebx + 0x128], eax
push 0x80
push 0xcc
lea eax, [ebp - 0x74]
push eax
xor ecx, ecx
mov dl, 9
mov eax, 0x420400
call fcn.0040d430
lea edx, [ebp - 0x74]
mov eax, ebx
call fcn.004150b4
mov edx, 0xf0fbff
mov eax, ebx
call fcn.004136a4
mov dword [ebx + 0x58], 0x800000
mov edx, 0xccf4ff
mov eax, ebx
call fcn.00415144
mov dword [ebx + 0x64], 0x9ad5ff
mov dword [ebx + 0x4c], 0xf0fbff
mov dword [ebx + 0x50], 0xccf4ff
mov dword [ebx + 0x6c], 0x80
mov dword [ebx + 0x70], 0x6fc0ff
xor eax, eax
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x78], 0x808080
xor eax, eax
mov dword [ebx + 0x84], eax
mov byte [ebx + 0x9d], 1
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x40], eax
mov edx, 4
mov eax, dword [ebp - 0x40]
call fcn.0040fc10
mov dl, 1
mov eax, dword [0x4152ec]
call fcn.00415370
mov dword [esi + 0x7c], eax
mov ebx, dword [esi + 0x7c]
mov byte [ebx + 0x21], 2
lea eax, [ebx + 0x24]
mov edx, 0x420408
call fcn.004031a0
lea eax, [ebx + 0x28]
mov edx, 0x420340
call fcn.004031a0
mov byte [ebx + 0x2c], 1
mov byte [ebx + 0x2d], 0
lea eax, [ebx + 0x30]
xor edx, edx
call fcn.004031a0
mov dl, 1
mov eax, dword [0x416044]
call fcn.00402850
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x80]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov byte [eax + 4], 0
mov dl, 1
mov eax, dword [0x4161c4]
call fcn.00402850
mov dword [esi + 0x84], eax
mov ebx, dword [esi + 0x84]
lea eax, [ebp - 0x78]
xor edx, edx
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
call fcn.00416258
mov byte [ebx + 8], 0
xor eax, eax
mov dword [ebx + 0xc], eax
mov dl, 1
mov eax, dword [0x416328]
call fcn.00402850
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x88]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x20], 3
mov dl, 1
mov eax, dword [0x4127f0]
call fcn.00402850
mov dword [esi + 0x8c], eax
mov ebx, dword [esi + 0x8c]
lea eax, [ebx + 4]
mov edx, 0x420438
call fcn.004031a0
mov dword [ebx + 8], 0x19
mov dword [ebx + 0xc], 0x12
push 0
push 1
lea eax, [ebp - 0x74]
push eax
xor ecx, ecx
mov dl, 8
mov eax, 0x420330
call fcn.0040d430
lea edx, [ebp - 0x74]
lea eax, [ebx + 0x10]
mov ecx, dword [0x40c62c]
call fcn.004038e0
mov dl, 1
mov eax, dword [0x40fb98]
call fcn.00402850
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov dword [ebp - 0x4c], eax
mov edx, 2
mov eax, dword [ebp - 0x4c]
call fcn.0040fc10
mov dl, 1
mov eax, dword [0x41302c]
call fcn.00402850
mov dword [esi + 0x94], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0x98], eax
mov ebx, dword [esi + 0x98]
lea eax, [ebp - 0x78]
mov edx, 0x42043c
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0x9c], eax
mov ebx, dword [esi + 0x9c]
lea eax, [ebp - 0x78]
mov edx, 0x42043c
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xa0], eax
mov ebx, dword [esi + 0xa0]
lea eax, [ebp - 0x78]
mov edx, 0x42043c
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0xa4], eax
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov byte [eax + 5], 1
mov dx, 2
mov eax, dword [ebp - 0x50]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xa8], eax
mov ebx, dword [esi + 0xa8]
lea eax, [ebp - 0x78]
mov edx, 0x420440
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x416410]
call fcn.00402850
mov dword [esi + 0xac], eax
mov ebx, dword [esi + 0xac]
lea eax, [ebx + 8]
mov edx, 0x420448
call fcn.004031a0
lea eax, [ebx + 0x14]
mov edx, 0x420450
call fcn.004031a0
mov dx, 2
mov eax, ebx
call fcn.00416490
mov byte [ebx + 0xc], 0
xor eax, eax
mov dword [ebx + 0x10], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xb0], eax
mov ebx, dword [esi + 0xb0]
lea eax, [ebp - 0x78]
mov edx, 0x420454
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x416410]
call fcn.00402850
mov dword [esi + 0xb4], eax
mov ebx, dword [esi + 0xb4]
lea eax, [ebx + 8]
mov edx, 0x420448
call fcn.004031a0
lea eax, [ebx + 0x14]
mov edx, 0x420450
call fcn.004031a0
mov dx, 2
mov eax, ebx
call fcn.00416490
mov byte [ebx + 0xc], 0
xor eax, eax
mov dword [ebx + 0x10], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xb8], eax
mov ebx, dword [esi + 0xb8]
lea eax, [ebp - 0x78]
mov edx, 0x420454
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x41235c]
call fcn.00402850
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xbc]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x78]
mov edx, 0x4203c0
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
call dword [ecx + 4]
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xc0]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov byte [eax + 5], 2
mov dx, 1
mov eax, dword [ebp - 0x58]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xc4], eax
mov ebx, dword [esi + 0xc4]
lea eax, [ebp - 0x78]
mov edx, 0x42045c
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0xc8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov byte [eax + 5], 1
mov dx, 2
mov eax, dword [ebp - 0x5c]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x416778]
call fcn.00402850
mov dword [esi + 0xcc], eax
mov eax, dword [esi + 0xcc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
add eax, 4
xor edx, edx
call fcn.004031a0
mov dl, 1
mov eax, dword [0x410d4c]
call fcn.00402850
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xd0]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
mov byte [eax + 5], 2
mov dx, 1
mov eax, dword [ebp - 0x64]
call fcn.00410db4
mov dl, 1
mov eax, dword [0x41302c]
call fcn.00402850
mov dword [esi + 0xd4], eax
mov dl, 1
mov eax, dword [0x40f840]
call fcn.00402850
mov dword [esi + 0xd8], eax
mov dl, 1
mov eax, dword [0x41683c]
call fcn.00416894
mov dword [esi + 0xdc], eax
mov ebx, dword [esi + 0xdc]
mov edx, 0x1f4
mov eax, ebx
call fcn.00416944
xor edx, edx
mov eax, ebx
call fcn.00416950
mov edx, 4
mov eax, ebx
call fcn.0041695c
mov byte [ebx + 0x14], 0
mov dl, 1
mov eax, dword [0x416a18]
call fcn.00402850
mov dword [esi + 0xe0], eax
mov ebx, dword [esi + 0xe0]
lea eax, [ebx + 4]
xor edx, edx
call fcn.004031a0
lea eax, [ebx + 8]
xor edx, edx
call fcn.004031a0
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 [0x41302c]
call fcn.00402850
mov dword [esi + 0xe4], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xe8], eax
mov ebx, dword [esi + 0xe8]
lea eax, [ebp - 0x78]
mov edx, 0x420464
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x7c]
mov dl, 1
mov eax, dword [0x411ccc]
call fcn.00411d44
mov dword [esi + 0xec], eax
mov ebx, dword [esi + 0xec]
mov byte [ebx + 0x14], 0
mov dword [ebx + 0x24], esi
push 0
lea eax, [ebx + 0x1c]
mov ecx, 1
mov edx, dword [0x411ca4]
call fcn.00403de8
add esp, 4
push 0
lea eax, [ebx + 0x20]
mov ecx, 1
mov edx, dword [0x411cb8]
call fcn.00403de8
add esp, 4
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.00402850
mov dword [esi + 0xf0], eax
mov ebx, dword [esi + 0xf0]
lea eax, [ebp - 0x78]
mov edx, 0x4203a8
call fcn.004031a0
mov edx, dword [ebp - 0x78]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 4]
xor edx, edx
mov eax, ebx
call fcn.00412704
mov byte [ebx + 0x1d], 0
mov eax, dword [esi + 0x60]
push eax
push 0x412ebc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x22c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x230], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x234], edx
mov eax, dword [esi + 0x60]
push eax
push 0x412edc
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x238], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x23c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x240], edx
mov eax, dword [esi + 0xc]
push eax
push 0x40fa58
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0x14]
push eax
push 0x40fd80
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 8]
push eax
push 0x40f92c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x18]
push eax
push 0x40ffe4
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x18]
push eax
push 0x40ffd8
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x38]
push eax
push 0x4119ec
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x10]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 8]
push eax
push 0x40f92c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x14]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x1c], edx
mov eax, dword [esi + 0x20]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x6c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x70], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x74], edx
mov eax, dword [esi + 0xec]
push eax
push 0x411f10
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0xec]
push eax
push 0x411f10
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x48], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x4c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x50], edx
mov eax, dword [esi + 0xd8]
push eax
push 0x40f92c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x34], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0xe0]
push eax
push 0x416a8c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x78], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x7c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x80], edx
mov eax, dword [esi + 0x4c]
push eax
push 0x412868
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 8]
push eax
push 0x40f8b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x28]
push eax
push 0x41124c
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x28]
push eax
push 0x4113c0
lea edx, [ebp - 0x84]
mov ax, 2
call fcn.0040c814
mov eax, dword [esi + 0x24]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x34]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc4], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc8], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0xcc], edx
mov eax, dword [esi + 0xe8]
push eax
push 0x4124f4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x28]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x88], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x8c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x90], edx
mov eax, dword [esi + 0xd0]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x28]
push eax
push 0x411254
lea edx, [ebp - 0x84]
mov ax, 5
call fcn.0040c814
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 4]
push eax
push 0x40f694
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x2c]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x54]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x34]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x58]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xc0]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xe4]
push eax
push 0x413094
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x44]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0xd8]
push eax
push 0x40f92c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c]
push eax
push 0x410b48
lea edx, [ebp - 0x84]
mov ax, 2
call fcn.0040c814
mov eax, dword [esi + 0x4c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0xc8]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x50]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x18], edx
mov eax, dword [esi + 0x7c]
push eax
push 0x4153e4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x74]
push eax
push 0x4151c4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x54]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x6c]
push eax
push 0x4132f0
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x24]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x50]
push eax
push 0x412934
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x5c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x68]
push eax
push 0x413094
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x68]
push eax
push 0x413094
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x1c], edx
mov eax, dword [esi + 0xc0]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x64]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x40]
push eax
push 0x411f10
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x64]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x64]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x68]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x60]
push eax
push 0x412fdc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x68]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x70]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x6c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x30], edx
mov eax, dword [esi + 0xb8]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x70]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x5c]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x70]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0x78]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x74]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xa4], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xa8], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0xac], edx
mov eax, dword [esi + 0x8c]
push eax
push 0x412878
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x74]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x11c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x120], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x124], edx
mov eax, dword [esi + 0x94]
push eax
push 0x413094
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x78]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xac]
push eax
push 0x4166d8
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x78]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xb4]
push eax
push 0x4166d8
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x78]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x80]
push eax
push 0x4160b8
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x7c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x58], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x5c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x60], edx
mov eax, dword [esi + 0x84]
push eax
push 0x41627c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x7c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x34], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x38], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x88]
push eax
push 0x416398
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x80]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x5c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x60], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x64], edx
mov eax, dword [esi + 0x88]
push eax
push 0x416398
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x80]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x68], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x6c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x70], edx
mov eax, dword [esi + 0x7c]
push eax
push 0x415760
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x80]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x50], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x54], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x58], edx
mov eax, dword [esi + 0x84]
push eax
push 0x41627c
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x80]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x44], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x48], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x4c], edx
mov eax, dword [esi + 0x98]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x88]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x2c], edx
mov eax, dword [esi + 0x7c]
push eax
push 0x415594
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x7c]
push eax
push 0x4156cc
lea edx, [ebp - 0x84]
mov ax, 2
call fcn.0040c814
mov eax, dword [esi + 0x90]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xa4]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x94]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x9c]
push eax
push 0x4124f4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0x94]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x74]
push eax
push 0x415164
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0xa0]
mov edx, dword [ebp - 0x84]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x90]
push eax
push 0x40fc34
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xa4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x7c]
push eax
push 0x4153e4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xa4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xb0]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xac]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xa8]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xac]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xa8]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xb4]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xb0]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xb4]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 4]
push eax
push 0x40f694
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0xc0]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xcc]
push eax
push 0x4167e4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xc4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0xd4]
push eax
push 0x413094
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xc8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x1c]
push eax
push 0x4107fc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xc8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 0xdc]
push eax
push 0x416928
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xcc]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x14], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x1c], edx
mov eax, dword [esi + 0xd0]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xcc]
mov edx, dword [ebp - 0x84]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x1c]
push eax
push 0x410844
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0xd0]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x84]
mov dword [eax], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 8], edx
mov eax, dword [esi + 0xd8]
push eax
push 0x40f8b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xd4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0xbc]
push eax
push 0x4124f4
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xd4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x44]
push eax
push 0x4121e0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xd8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x3c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0x5c]
push eax
push 0x410ddc
lea edx, [ebp - 0x84]
mov ax, 1
call fcn.0040c814
mov eax, dword [esi + 0xdc]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x28], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x2c], edx
mov eax, dword [esi + 4]
push eax
push 0x40f694
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0xe0]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x34], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x1c]
push eax
push 0x410cdc
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xe0]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x18], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x1c], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x20], edx
mov eax, dword [esi + 0x48]
push eax
push 0x4127b0
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xe4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x30], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x34], edx
mov eax, dword [esi + 0x44]
push eax
push 0x412318
lea edx, [ebp - 0x84]
xor eax, eax
call fcn.0040c814
mov eax, dword [esi + 0xe4]
mov edx, dword [ebp - 0x84]
mov dword [eax + 0x20], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0x24], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x28], edx
mov eax, dword [esi + 0x28]
push eax
push 0x4113fc
lea edx, [ebp - 0x84]
mov ax, 6
call fcn.0040c814
mov eax, dword [esi + 0xe8]
mov edx, dword [ebp - 0x84]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x10], edx
mov eax, dword [esi + 0x28]
push eax
push 0x41134c
lea edx, [ebp - 0x84]
mov ax, 3
call fcn.0040c814
mov eax, dword [esi + 0xf0]
mov edx, dword [ebp - 0x84]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x80]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x7c]
mov dword [eax + 0x10], edx
xor edx, edx
mov eax, dword [esi + 4]
call fcn.0040e2c4
xor edx, edx
mov eax, dword [esi + 4]
call fcn.0040e29c
xor edx, edx
mov eax, dword [esi + 4]
call fcn.0040e94c
mov eax, dword [esi + 4]
xor edx, edx
mov dword [eax + 0x1bc], edx
mov edx, 0x417e14
mov eax, dword [esi + 0x30]
call fcn.00411694
mov edx, 0x41c288
mov eax, dword [esi + 0x3c]
call fcn.00411694
mov edx, 0x41db20
mov eax, dword [esi + 0x40]
call fcn.00411f5c
mov edx, 0x41de98
mov eax, dword [esi + 0xec]
call fcn.00411f5c
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x7c]
call fcn.0040a50c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x420307
lea eax, [ebp - 0x78]
call fcn.0040307c
lea eax, [ebp - 0x74]
mov edx, dword [0x40c62c]
call fcn.004036d0
ret