Function at 0x4113f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
push 0x78
call fcn.00401ac2
pop ecx
mov dword [ebp - 8], eax
and dword [ebp - 0xc], 0
cmp dword [0x45e684], 0
jne 0x411457
push 0x28
call fcn.00401ac2
pop ecx
mov dword [0x45e684], eax
mov eax, dword [0x45e684]
and dword [eax], 0
mov eax, dword [0x45e684]
and dword [eax + 4], 0
mov eax, dword [0x45e684]
and dword [eax + 8], 0
mov eax, dword [0x45e684]
mov dword [eax + 0x24], 0x45ca38
mov eax, dword [0x45e684]
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor eax, eax
jne 0x411453
push 0x5c
push dword [ebp + 8]
call fcn.00403740
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x411473
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x411483
mov eax, dword [ebp - 0xc]
movsx eax, byte [eax]
test eax, eax
jne 0x41149f
push 0x2f
push dword [ebp + 8]
call fcn.00403740
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x41149f
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4114af
mov eax, dword [ebp - 0xc]
movsx eax, byte [eax]
test eax, eax
jne 0x4114b5
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x10], 1
mov eax, dword [ebp - 8]
and dword [eax + 0x14], 0
push dword [ebp - 0xc]
call fcn.00409c44
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
push dword [ebp + 8]
call fcn.00409c44
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 8]
and dword [eax + 8], 0
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.00403648
pop ecx
mov eax, dword [ebp - 8]
push dword [eax + 4]
call fcn.00403648
pop ecx
push 0x2e
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.00403330
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x41153a
push str..DLL
push dword [ebp - 4]
call fcn.004036b0
pop ecx
pop ecx
test eax, eax
jne 0x41153a
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
jmp 0x41154c
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax]
test eax, eax
je 0x411569
mov eax, dword [ebp - 4]
movsx eax, byte [eax]
cmp eax, 0x2f
jne 0x411567
mov eax, dword [ebp - 4]
mov byte [eax], 0x5c
jmp 0x411545
mov eax, dword [0x45e684]
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0xfeedbeef
mov dword [ebp - 0x20], 0x9e3779b9
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], 4
cmp dword [ebp - 0x14], 0xc
jb 0x411765
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 1]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 2]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 3]
shl ecx, 0x18
add ecx, dword [ebp - 0x1c]
add ecx, eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 4]
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 5]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 6]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 7]
shl ecx, 0x18
add ecx, dword [ebp - 0x20]
add ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 8]
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 9]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 0xa]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ecx + 0xb]
shl ecx, 0x18
add ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 0xd
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 8
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 0xd
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 0xc
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 0x10
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 5
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 3
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 0xa
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 0xf
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
xor eax, eax
jne 0x411638
mov eax, dword [ebp - 0x18]
add eax, 0xc
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
sub eax, 0xc
mov dword [ebp - 0x14], eax
jmp 0x41159c
mov eax, dword [ebp - 0x10]
add eax, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
dec eax
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0xa
ja case.default.0x411797
mov eax, dword [ebp - 0xac]
jmp dword [eax*4 + 0x413120]
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0xa]
shl eax, 0x18
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 9]
shl eax, 0x10
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 8]
shl eax, 8
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 7]
shl eax, 0x18
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 6]
shl eax, 0x10
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 5]
shl eax, 8
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 4]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 3]
shl eax, 0x18
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 2]
shl eax, 0x10
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 1]
shl eax, 8
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 0xd
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 8
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 0xd
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 0xc
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 0x10
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 5
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
shr eax, 3
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
shl eax, 0xa
xor eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x20]
shr eax, 0xf
xor eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
xor eax, eax
jne case.default.0x411797
xor eax, eax
jne 0x411578
xor eax, eax
jne 0x411578
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x74], ecx
mov eax, dword [ebp - 8]
add eax, 0xc
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x70], 4
mov eax, dword [0x45e684]
cmp dword [eax], 0
jne 0x411a83
mov eax, dword [ebp - 8]
and dword [eax + 0x60], 0
mov eax, dword [ebp - 8]
and dword [eax + 0x5c], 0
push 0x2c
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x58], 0
jne 0x4119cb
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x411a6f
push 0x2c
push 0
mov eax, dword [ebp - 8]
push dword [eax + 0x58]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
add eax, 0x58
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov dword [eax + 4], 0x20
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov dword [eax + 8], 5
mov eax, dword [ebp - 8]
add eax, 0x58
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0x14], eax
push 0x180
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov dword [eax + 0x28], 0xa0111fe1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
cmp dword [eax], 0
jne 0x411a58
push 0xffffffffffffffff
call fcn.00403a0d
mov eax, dword [ebp - 8]
push dword [eax + 0x58]
call fcn.004019e5
pop ecx
jmp 0x411a6f
push 0x180
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
push dword [eax]
call fcn.00401c20
add esp, 0xc
xor eax, eax
jne 0x4119a8
mov eax, dword [0x45e684]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
jmp 0x411ae6
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov dword [ecx + 0x58], eax
mov eax, dword [ebp - 8]
and dword [eax + 0x60], 0
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov ecx, dword [0x45e684]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x58]
mov eax, dword [eax + 0x10]
sub eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x5c], eax
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 8]
add eax, 0x58
mov ecx, dword [0x45e684]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0x10], eax
xor eax, eax
jne 0x411a93
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0xc]
inc eax
mov ecx, dword [0x45e684]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0xc], eax
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 4]
dec eax
and eax, dword [ebp - 0x10]
mov dword [ebp - 0x24], eax
xor eax, eax
jne 0x411b02
mov eax, dword [0x45e684]
mov eax, dword [eax]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x24]
imul ecx, ecx, 0xc
add ecx, dword [eax]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov dword [eax + 0x68], ecx
mov eax, dword [ebp - 8]
and dword [eax + 0x64], 0
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
je 0x411b64
mov eax, dword [ebp - 8]
add eax, 0x58
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 8]
add eax, 0x58
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 8]
inc eax
imul eax, eax, 0xa
mov ecx, dword [ebp - 0x28]
cmp dword [ecx + 4], eax
jb 0x411dbf
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
cmp dword [eax + 0x24], 0
jne 0x411dbf
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
call fcn.00401ac2
pop ecx
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x411bbf
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x411db7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
push 0
push dword [ebp - 0x38]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov ecx, dword [ecx + 8]
inc ecx
mov eax, dword [eax + 0xc]
shr eax, cl
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x58]
mov edx, dword [edx + 4]
lea edx, [edx + edx - 1]
and edx, dword [ecx + 0xc]
neg edx
sbb edx, edx
neg edx
add eax, edx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
and dword [eax + 0x1c], 0
and dword [ebp - 0x34], 0
jmp 0x411c2e
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x34]
cmp ecx, dword [eax + 4]
jae 0x411d20
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x34]
imul ecx, ecx, 0xc
mov eax, dword [eax]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x411d1b
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 4]
lea eax, [eax + eax - 1]
mov ecx, dword [ebp - 0x3c]
and eax, dword [ecx + 0x1c]
mov dword [ebp - 0x2c], eax
xor eax, eax
jne 0x411c67
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0xc
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 4]
cmp ecx, dword [eax + 0x18]
jbe 0x411ce3
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x1c]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 8]
imul ecx, dword [eax + 0x18]
mov eax, dword [ebp - 0x40]
cmp dword [eax + 4], ecx
jbe 0x411ce3
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 0x40]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x3c]
and dword [eax + 0xc], 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
je 0x411d08
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x3c], eax
jmp 0x411c54
jmp 0x411c27
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
push dword [eax]
call fcn.004019e5
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 4]
shl eax, 1
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x58]
mov ecx, dword [ecx + 0xc]
shr ecx, 1
cmp dword [eax + 0x1c], ecx
jbe 0x411d88
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x20]
inc eax
mov dword [ebp - 0xb0], eax
jmp 0x411d8f
and dword [ebp - 0xb0], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov ecx, dword [ebp - 0xb0]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
cmp dword [eax + 0x20], 1
jbe 0x411db7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x58]
mov dword [eax + 0x24], 1
xor eax, eax
jne 0x411b95
xor eax, eax
jne 0x411b1a
xor eax, eax
jne 0x411ae6
xor eax, eax
jne 0x41196d
xor eax, eax
jne 0x411578
xor eax, eax
jne 0x411ddf
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], 0xfeedbeef
mov dword [ebp - 0x54], 0x9e3779b9
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.00401b90
pop ecx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0xc
jb 0x411fd6
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax]
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 1]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 2]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 3]
shl ecx, 0x18
add ecx, dword [ebp - 0x50]
add ecx, eax
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 4]
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 5]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 6]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 7]
shl ecx, 0x18
add ecx, dword [ebp - 0x54]
add ecx, eax
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 8]
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 9]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 0xa]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x4c]
movzx ecx, byte [ecx + 0xb]
shl ecx, 0x18
add ecx, dword [ebp - 0x44]
add ecx, eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 0xd
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 8
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 0xd
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 0xc
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 0x10
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 5
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 3
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 0xa
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 0xf
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
xor eax, eax
jne 0x411ea9
mov eax, dword [ebp - 0x4c]
add eax, 0xc
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
sub eax, 0xc
mov dword [ebp - 0x48], eax
jmp 0x411e0d
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.00401b90
pop ecx
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
dec eax
mov dword [ebp - 0xb4], eax
cmp dword [ebp - 0xb4], 0xa
ja case.default.0x412010
mov eax, dword [ebp - 0xb4]
jmp dword [eax*4 + 0x41314c]
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 0xa]
shl eax, 0x18
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 9]
shl eax, 0x10
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 8]
shl eax, 8
add eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 7]
shl eax, 0x18
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 6]
shl eax, 0x10
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 5]
shl eax, 8
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 4]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 3]
shl eax, 0x18
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 2]
shl eax, 0x10
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax + 1]
shl eax, 8
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 0xd
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 8
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 0xd
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 0xc
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 0x10
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 5
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x44]
shr eax, 3
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
shl eax, 0xa
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x54]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x54]
shr eax, 0xf
xor eax, dword [ebp - 0x44]
mov dword [ebp - 0x44], eax
xor eax, eax
jne case.default.0x412010
xor eax, eax
jne 0x411de3
xor eax, eax
jne 0x411de3
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x34], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 8]
push dword [eax]
call fcn.00401b90
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x30], eax
mov eax, dword [0x45e684]
cmp dword [eax + 4], 0
jne 0x412304
mov eax, dword [ebp - 8]
and dword [eax + 0x20], 0
mov eax, dword [ebp - 8]
and dword [eax + 0x1c], 0
push 0x2c
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x18], 0
jne 0x41224b
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x4122ef
push 0x2c
push 0
mov eax, dword [ebp - 8]
push dword [eax + 0x18]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
add eax, 0x18
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [eax + 4], 0x20
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [eax + 8], 5
mov eax, dword [ebp - 8]
add eax, 0x18
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0x14], eax
push 0x180
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [eax + 0x28], 0xa0111fe1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp dword [eax], 0
jne 0x4122d8
push 0xffffffffffffffff
call fcn.00403a0d
mov eax, dword [ebp - 8]
push dword [eax + 0x18]
call fcn.004019e5
pop ecx
jmp 0x4122ef
push 0x180
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
push dword [eax]
call fcn.00401c20
add esp, 0xc
xor eax, eax
jne 0x412228
mov eax, dword [0x45e684]
mov ecx, dword [ebp - 8]
mov dword [eax + 4], ecx
jmp 0x41236c
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 8]
and dword [eax + 0x20], 0
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov eax, dword [eax + 0x10]
sub eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 8]
add eax, 0x18
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0x10], eax
xor eax, eax
jne 0x412315
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
inc eax
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0xc], eax
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
dec eax
and eax, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
xor eax, eax
jne 0x41238a
mov eax, dword [0x45e684]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x58]
imul ecx, ecx, 0xc
add ecx, dword [eax]
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 8]
and dword [eax + 0x24], 0
mov eax, dword [ebp - 0x5c]
cmp dword [eax], 0
je 0x4123ee
mov eax, dword [ebp - 8]
add eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov ecx, dword [ecx]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 8]
add eax, 0x18
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 8]
inc eax
imul eax, eax, 0xa
mov ecx, dword [ebp - 0x5c]
cmp dword [ecx + 4], eax
jb 0x412649
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0x24], 0
jne 0x412649
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
call fcn.00401ac2
pop ecx
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
jne 0x412449
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x412641
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
push 0
push dword [ebp - 0x6c]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 8]
inc ecx
mov eax, dword [eax + 0xc]
shr eax, cl
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x18]
mov edx, dword [edx + 4]
lea edx, [edx + edx - 1]
and edx, dword [ecx + 0xc]
neg edx
sbb edx, edx
neg edx
add eax, edx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
and dword [eax + 0x1c], 0
and dword [ebp - 0x68], 0
jmp 0x4124b8
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [eax + 4]
jae 0x4125aa
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x68]
imul ecx, ecx, 0xc
mov eax, dword [eax]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x4125a5
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax - 1]
mov ecx, dword [ebp - 0x70]
and eax, dword [ecx + 0x1c]
mov dword [ebp - 0x60], eax
xor eax, eax
jne 0x4124f1
mov eax, dword [ebp - 0x60]
imul eax, eax, 0xc
add eax, dword [ebp - 0x6c]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0x74]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx + 4]
cmp ecx, dword [eax + 0x18]
jbe 0x41256d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx + 8]
imul ecx, dword [eax + 0x18]
mov eax, dword [ebp - 0x74]
cmp dword [eax + 4], ecx
jbe 0x41256d
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 0x74]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x70]
and dword [eax + 0xc], 0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0x74]
cmp dword [eax], 0
je 0x412592
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x70]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x70], eax
jmp 0x4124de
jmp 0x4124b1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
push dword [eax]
call fcn.004019e5
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 4]
shl eax, 1
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0xc]
shr ecx, 1
cmp dword [eax + 0x1c], ecx
jbe 0x412612
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
inc eax
mov dword [ebp - 0xb8], eax
jmp 0x412619
and dword [ebp - 0xb8], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0xb8]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0x20], 1
jbe 0x412641
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x18]
mov dword [eax + 0x24], 1
xor eax, eax
jne 0x41241f
xor eax, eax
jne 0x4123a3
xor eax, eax
jne 0x41236c
xor eax, eax
jne 0x4121e6
xor eax, eax
jne 0x411de3
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x78], 0xfeedbeef
mov dword [ebp - 0x88], 0x9e3779b9
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 8]
push dword [eax + 4]
call fcn.00401b90
pop ecx
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0xc
jb 0x412915
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 1]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 2]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 3]
shl ecx, 0x18
add ecx, dword [ebp - 0x84]
add ecx, eax
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 4]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 5]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 6]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 7]
shl ecx, 0x18
add ecx, dword [ebp - 0x88]
add ecx, eax
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 8]
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 9]
shl ecx, 8
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 0xa]
shl ecx, 0x10
add eax, ecx
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx + 0xb]
shl ecx, 0x18
add ecx, dword [ebp - 0x78]
add ecx, eax
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 0xd
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 8
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 0xd
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 0xc
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 0x10
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 5
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 3
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 0xa
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 0xf
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
xor eax, eax
jne 0x412746
mov eax, dword [ebp - 0x80]
add eax, 0xc
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x7c]
sub eax, 0xc
mov dword [ebp - 0x7c], eax
jmp 0x41269e
mov eax, dword [ebp - 8]
push dword [eax + 4]
call fcn.00401b90
pop ecx
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xbc]
dec eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0xa
ja case.default.0x412950
mov eax, dword [ebp - 0xbc]
jmp dword [eax*4 + 0x413178]
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 0xa]
shl eax, 0x18
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 9]
shl eax, 0x10
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 8]
shl eax, 8
add eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 7]
shl eax, 0x18
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 6]
shl eax, 0x10
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 5]
shl eax, 8
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 4]
add eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 3]
shl eax, 0x18
add eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 2]
shl eax, 0x10
add eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax + 1]
shl eax, 8
add eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x80]
movzx eax, byte [eax]
add eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 0xd
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 8
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 0xd
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 0xc
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 0x10
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 5
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x78]
shr eax, 3
xor eax, dword [ebp - 0x84]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x78]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x84]
shl eax, 0xa
xor eax, dword [ebp - 0x88]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x84]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x88]
shr eax, 0xf
xor eax, dword [ebp - 0x78]
mov dword [ebp - 0x78], eax
xor eax, eax
jne case.default.0x412950
xor eax, eax
jne 0x412669
xor eax, eax
jne 0x412669
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x78]
mov dword [eax + 0x54], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebp - 8]
push dword [eax + 4]
call fcn.00401b90
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x50], eax
mov eax, dword [0x45e684]
cmp dword [eax + 8], 0
jne 0x412d18
mov eax, dword [ebp - 8]
and dword [eax + 0x40], 0
mov eax, dword [ebp - 8]
and dword [eax + 0x3c], 0
push 0x2c
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x38], 0
jne 0x412c5f
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x412d03
push 0x2c
push 0
mov eax, dword [ebp - 8]
push dword [eax + 0x38]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
add eax, 0x38
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [eax + 4], 0x20
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [eax + 8], 5
mov eax, dword [ebp - 8]
add eax, 0x38
sub eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x14], eax
push 0x180
call fcn.00401ac2
pop ecx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [eax + 0x28], 0xa0111fe1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp dword [eax], 0
jne 0x412cec
push 0xffffffffffffffff
call fcn.00403a0d
mov eax, dword [ebp - 8]
push dword [eax + 0x38]
call fcn.004019e5
pop ecx
jmp 0x412d03
push 0x180
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
push dword [eax]
call fcn.00401c20
add esp, 0xc
xor eax, eax
jne 0x412c3c
mov eax, dword [0x45e684]
mov ecx, dword [ebp - 8]
mov dword [eax + 8], ecx
jmp 0x412d80
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 8]
and dword [eax + 0x40], 0
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax + 0x10]
sub eax, dword [ecx + 0x14]
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x3c], eax
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 8]
add eax, 0x38
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x10], eax
xor eax, eax
jne 0x412d29
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0xc]
inc eax
mov ecx, dword [0x45e684]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0xc], eax
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
dec eax
and eax, dword [ebp - 0x78]
mov dword [ebp - 0x8c], eax
xor eax, eax
jne 0x412d9e
mov eax, dword [0x45e684]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0x8c]
imul ecx, ecx, 0xc
add ecx, dword [eax]
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx]
mov dword [eax + 0x48], ecx
mov eax, dword [ebp - 8]
and dword [eax + 0x44], 0
mov eax, dword [ebp - 0x90]
cmp dword [eax], 0
je 0x412e1a
mov eax, dword [ebp - 8]
add eax, 0x38
mov ecx, dword [ebp - 0x90]
mov ecx, dword [ecx]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 8]
add eax, 0x38
mov ecx, dword [ebp - 0x90]
mov dword [ecx], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 8]
inc eax
imul eax, eax, 0xa
mov ecx, dword [ebp - 0x90]
cmp dword [ecx + 4], eax
jb 0x4130e7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp dword [eax + 0x24], 0
jne 0x4130e7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
call fcn.00401ac2
pop ecx
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
jne 0x412e84
push 0xffffffffffffffff
call fcn.00403a0d
jmp 0x4130df
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
shl eax, 1
imul eax, eax, 0xc
push eax
push 0
push dword [ebp - 0xa0]
call fcn.00401c20
add esp, 0xc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx + 8]
inc ecx
mov eax, dword [eax + 0xc]
shr eax, cl
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x38]
mov edx, dword [edx + 4]
lea edx, [edx + edx - 1]
and edx, dword [ecx + 0xc]
neg edx
sbb edx, edx
neg edx
add eax, edx
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
and dword [eax + 0x1c], 0
and dword [ebp - 0x9c], 0
jmp 0x412eff
mov eax, dword [ebp - 0x9c]
inc eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0x9c]
cmp ecx, dword [eax + 4]
jae 0x413045
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0x9c]
imul ecx, ecx, 0xc
mov eax, dword [eax]
mov eax, dword [ecx + eax]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
je 0x413040
mov eax, dword [ebp - 0xa4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
lea eax, [eax + eax - 1]
mov ecx, dword [ebp - 0xa4]
and eax, dword [ecx + 0x1c]
mov dword [ebp - 0x94], eax
xor eax, eax
jne 0x412f4a
mov eax, dword [ebp - 0x94]
imul eax, eax, 0xc
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 4]
inc eax
mov ecx, dword [ebp - 0xa8]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + 4]
cmp ecx, dword [eax + 0x18]
jbe 0x412fea
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x1c]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + 8]
imul ecx, dword [eax + 0x18]
mov eax, dword [ebp - 0xa8]
cmp dword [eax + 4], ecx
jbe 0x412fea
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 0xa8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xa4]
and dword [eax + 0xc], 0
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xa8]
cmp dword [eax], 0
je 0x413021
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xa4]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
mov dword [eax], ecx
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xa4], eax
jmp 0x412f2e
jmp 0x412ef2
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
push dword [eax]
call fcn.004019e5
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 4]
shl eax, 1
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
inc eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0xa0]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0xc]
shr ecx, 1
cmp dword [eax + 0x1c], ecx
jbe 0x4130b0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x20]
inc eax
mov dword [ebp - 0xc0], eax
jmp 0x4130b7
and dword [ebp - 0xc0], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
cmp dword [eax + 0x20], 1
jbe 0x4130df
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x38]
mov dword [eax + 0x24], 1
xor eax, eax
jne 0x412e54
xor eax, eax
jne 0x412dba
xor eax, eax
jne 0x412d80
xor eax, eax
jne 0x412bf8
xor eax, eax
jne 0x412669
mov eax, dword [0x45e684]
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jne 0x413116
mov eax, dword [ebp - 8]
leave
ret