Function at 0x816876
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x200
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x18], 0
mov eax, dword [ebp + 0x10]
add eax, 0x50
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax + 0x34]
movzx edx, al
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 3
add eax, ecx
add eax, 8
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp + 0x10]
add eax, 0x1e8
sub esp, 8
push dword [ebp - 0xb8]
push eax
call fcn.0081be9e
add esp, 0x10
mov ecx, eax
not ecx
mov ebx, ecx
mov eax, edx
not eax
mov esi, eax
mov eax, ebx
and eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x1d8], eax
mov eax, esi
and eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp - 0x1d8]
mov esi, dword [ebp - 0x1d4]
mov dword [eax + 0x50], ebx
mov dword [eax + 0x54], esi
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 0x40]
mov esi, dword [eax + 0x44]
mov ecx, dword [ebp + 0x14]
mov eax, ebx
mov edx, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x81697a
mov eax, edx
xor edx, edx
and eax, 1
mov dword [ebp - 0xbc], eax
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c59d3
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x10], edx
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp + 0x18]
mov dword [eax + 0xc], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc0], eax
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c59d3
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x18], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax + 0x34]
test al, al
je 0x816a21
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax + 0x24]
movzx eax, al
and eax, 8
test eax, eax
je 0x816a21
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp + 0x18]
mov dword [eax], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
push eax
push 0
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xc], eax
jmp 0x816a2d
sub dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jle 0x816a49
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x58
add eax, edx
add eax, 0x2f0
mov eax, dword [eax]
test eax, eax
je 0x816a29
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
imul eax, eax, 0x58
add eax, edx
add eax, 0x2fc
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax + 0x28]
and eax, 0x10
test al, al
je 0x816ad0
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x18]
sub esp, 0xc
push eax
push 0
push dword [ebp - 0x170]
push 0xd
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
push dword [ebp - 0xc0]
push dword [ebp - 0x170]
push 0xe
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 0xb
jmp 0x8188d3
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x400
test eax, eax
je 0x816e68
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x28]
movzx eax, ax
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x154]
add eax, 2
sub esp, 8
push eax
push dword [ebp + 8]
call fcn.007e6879
add esp, 0x10
mov dword [ebp - 0x158], eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], 0
jmp 0x816bc9
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xc]
add eax, edx
add eax, 2
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0xc]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x816bc4
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 1
test eax, eax
je 0x816b9b
sub esp, 8
push dword [ebp - 0x168]
push dword [ebp - 0xbc]
push dword [ebp - 0xc]
push dword [ebp + 0x18]
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.00815c8d
add esp, 0x20
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x20], eax
jmp 0x816bc5
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x16c], eax
push 1
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
push dword [ebp + 8]
call fcn.0081659f
add esp, 0x10
jmp 0x816bc5
nop
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x154]
jl 0x816b2c
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x18]
push dword [ebp - 0x158]
push eax
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0x158]
add eax, 1
push eax
push dword [ebp - 0x154]
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0xb0]
movzx eax, byte [eax + 0x1c]
test al, al
je 0x816c27
mov edx, 0xfffffff9
jmp 0x816c2c
mov edx, 0xffffffff
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x20]
sub esp, 4
push edx
push eax
push dword [ebp - 0x158]
push dword [ebp - 0x20]
push dword [ebp - 0xb8]
push 9
push dword [ebp + 0xc]
call fcn.007c5769
add esp, 0x20
mov eax, dword [ebp - 0xb0]
mov byte [eax + 0x1c], 0
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0x38], eax
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x31]
test al, al
je 0x816c7e
mov edx, 0xffffffaa
jmp 0x816c83
mov edx, 0x3c
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], dl
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x154]
sub eax, 1
mov dword [ebp - 0xc], eax
jmp 0x816e59
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp - 0xc]
shl eax, 2
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], 0xf
jg 0x816d08
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x1e]
movzx edx, ax
mov eax, dword [ebp - 0xc]
mov ecx, eax
sar edx, cl
mov eax, edx
and eax, 1
test eax, eax
je 0x816d08
sub esp, 8
push dword [ebp - 0x14]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
jmp 0x816e55
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 1
test eax, eax
je 0x816e55
mov eax, dword [ebp - 0xac]
movzx eax, byte [eax + 0x51]
test al, al
jne 0x816d95
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x44]
sub dword [ebp - 0x24], 1
mov edx, dword [ebp - 0x24]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax + 4]
sub esp, 8
push eax
push dword [ebp + 0xc]
call fcn.007c6402
add esp, 0x10
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x15c]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x15c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x15c]
movzx eax, byte [eax]
movzx eax, al
sub esp, 0xc
push ebx
push ecx
push edx
push eax
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
push 0
push 0
push 0x35
push dword [ebp + 8]
call fcn.007df7fe
add esp, 0x10
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
je 0x816e55
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x160]
mov dword [eax + 0xc], edx
sub esp, 4
push 0
push 0xab
push dword [ebp - 0xac]
call fcn.007df73a
add esp, 0x10
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x164]
mov dword [edx + 0x10], eax
cmp dword [ebp - 0x164], 0
je 0x816e31
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0xc]
add eax, edx
lea edx, [eax + 2]
mov eax, dword [ebp - 0x164]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x18]
push 0
push eax
push dword [ebp - 0x160]
push dword [ebp + 8]
call fcn.007e5293
add esp, 0x10
mov eax, dword [ebp - 0x160]
mov dword [eax + 0xc], 0
sub esp, 8
push dword [ebp - 0x160]
push dword [ebp - 0xac]
call fcn.007dfd85
add esp, 0x10
sub dword [ebp - 0xc], 1
cmp dword [ebp - 0xc], 0
jns 0x816cb9
jmp 0x8188d3
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x100
test eax, eax
je 0x816fb2
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 5
test eax, eax
je 0x816fb2
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xa4], eax
sub esp, 8
push dword [ebp - 0xa4]
push dword [ebp - 0xbc]
push 0
push dword [ebp + 0x18]
push dword [ebp - 0x14]
push dword [ebp + 8]
call fcn.00815c8d
add esp, 0x20
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0xa4]
je 0x816f05
sub esp, 8
push dword [ebp - 0xa4]
push dword [ebp + 8]
call fcn.007e6842
add esp, 0x10
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xcc], eax
sub esp, 0xc
push dword [ebp - 0xa0]
push dword [ebp - 0xcc]
push dword [ebp - 0xb8]
push 0x1e
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 0xaa
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
mov esi, ecx
and esi, eax
mov dword [ebp - 0x1e0], esi
mov esi, ebx
and esi, edx
mov dword [ebp - 0x1dc], esi
mov eax, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x1dc]
mov ebx, eax
xor bh, 0
mov dword [ebp - 0x1f8], ebx
mov eax, edx
xor ah, 0
mov dword [ebp - 0x1f4], eax
mov ebx, dword [ebp - 0x1f8]
mov esi, dword [ebp - 0x1f4]
mov eax, esi
or eax, ebx
test eax, eax
jne 0x8188d3
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
or eax, 4
mov edx, eax
mov eax, dword [ebp - 0x14]
mov word [eax + 0xa], dx
jmp 0x8188d3
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x100
test eax, eax
je 0x817365
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 2
test eax, eax
je 0x817365
mov dword [ebp - 0x28], 0xaa
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
je 0x81702c
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0xc]
lea eax, [edx + 1]
mov dword [ebp - 0xc], eax
mov eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x10
test eax, eax
je 0x81705a
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0xc]
lea eax, [edx + 1]
mov dword [ebp - 0xc], eax
mov eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0xbc], 0
je 0x817075
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x30], 0
je 0x8171a2
mov byte [ebp - 0x188], 0x19
mov byte [ebp - 0x187], 0x17
mov byte [ebp - 0x186], 0x16
mov byte [ebp - 0x185], 0x18
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x10]
sub esp, 0xc
push eax
call fcn.007def6c
add esp, 0x10
test eax, eax
je 0x81711b
sub esp, 0xc
push dword [ebp + 8]
call fcn.007e67f7
add esp, 0x10
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x10]
push 1
push dword [ebp - 0x38]
push eax
push dword [ebp + 8]
call fcn.0081659f
add esp, 0x10
mov eax, dword [ebp - 0xd0]
movzx eax, byte [eax]
movzx eax, al
sub eax, 0x37
and eax, 2
or eax, 1
movzx eax, byte [ebp + eax - 0x188]
movzx eax, al
mov dword [ebp - 0x3c], eax
jmp 0x81716b
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0x10]
sub esp, 4
lea eax, [ebp - 0x184]
push eax
push edx
push dword [ebp + 8]
call fcn.007e4928
add esp, 0x10
mov dword [ebp - 0x38], eax
sub esp, 8
push dword [ebp - 0x30]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
mov eax, dword [ebp - 0xd0]
movzx eax, byte [eax]
movzx eax, al
sub eax, 0x36
movzx eax, byte [ebp + eax - 0x188]
movzx eax, al
mov dword [ebp - 0x3c], eax
sub esp, 0xc
push dword [ebp - 0x38]
push dword [ebp - 0xc0]
push dword [ebp - 0xb8]
push dword [ebp - 0x3c]
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
mov eax, dword [ebp - 0x184]
sub esp, 8
push eax
push dword [ebp + 8]
call fcn.007e6842
add esp, 0x10
jmp 0x8171cf
cmp dword [ebp - 0xbc], 0
je 0x8171b2
mov eax, 0x20
jmp 0x8171b7
mov eax, 0x24
push dword [ebp - 0xc8]
push dword [ebp - 0xb8]
push eax
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
cmp dword [ebp - 0x34], 0
je 0x8172a5
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x10]
push 1
push dword [ebp - 0x2c]
push eax
push dword [ebp + 8]
call fcn.0081659f
add esp, 0x10
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x10]
sub esp, 0xc
push eax
call fcn.007def6c
add esp, 0x10
test eax, eax
jne 0x817263
mov eax, dword [ebp - 0xd4]
movzx eax, byte [eax]
cmp al, 0x38
je 0x817249
mov eax, dword [ebp - 0xd4]
movzx eax, byte [eax]
cmp al, 0x36
jne 0x817263
cmp dword [ebp - 0xbc], 0
je 0x817259
mov eax, 0x37
jmp 0x81725e
mov eax, 0x39
mov dword [ebp - 0x28], eax
jmp 0x81727b
cmp dword [ebp - 0xbc], 0
je 0x817273
mov eax, 0x38
jmp 0x817278
mov eax, 0x36
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x10]
sub esp, 0xc
push eax
call fcn.007def6c
add esp, 0x10
test eax, eax
jne 0x8172a5
sub esp, 8
push dword [ebp - 0x34]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xbc], 0
je 0x8172c9
mov edx, 4
jmp 0x8172ce
mov edx, 5
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], dl
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0x38], eax
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xd8]
mov dword [edx + 0x3c], eax
cmp dword [ebp - 0x28], 0xaa
je 0x8188d2
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xa0], eax
push dword [ebp - 0xa0]
push dword [ebp - 0xb8]
push pe_nt_image_headers32
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0xa0]
push dword [ebp - 0xc0]
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
sub esp, 8
push 0x53
push dword [ebp + 0xc]
call fcn.007c5ead
add esp, 0x10
jmp 0x8188d2
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x200
test eax, eax
je 0x817f6a
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x18]
mov word [ebp - 0x12a], ax
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x1a]
mov word [ebp - 0x3e], ax
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x1c]
mov word [ebp - 0x40], ax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x61], 0
mov byte [ebp - 0x62], 0
mov dword [ebp - 0x68], 0
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
mov dword [ebp - 0x130], eax
movzx eax, word [ebp - 0x12a]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
je 0x81743a
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0xc]
lea eax, [edx + 1]
mov dword [ebp - 0xc], eax
mov eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x1a]
movzx eax, ax
cmp dword [ebp - 0x5c], eax
cmovge eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x10
test eax, eax
je 0x817569
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0xc]
lea eax, [edx + 1]
mov dword [ebp - 0xc], eax
mov eax, edx
shl eax, 2
add eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x1c]
movzx eax, ax
cmp dword [ebp - 0x5c], eax
cmovge eax, dword [ebp - 0x5c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x48]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 0x100
test eax, eax
je 0x817522
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x2c]
push eax
push 1
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x30], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x2c]
lea edx, [eax + eax]
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x1c]
movzx eax, word [ebp - 0x12a]
add eax, edx
movzx eax, byte [eax]
cmp al, 1
sete al
movzx eax, al
xor eax, dword [ebp - 0xbc]
or ecx, eax
mov edx, ecx
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x2c], edx
cmp dword [ebp - 0x44], 0
jne 0x817569
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
movzx eax, word [ebp - 0x12a]
add eax, eax
add eax, edx
movzx eax, word [eax]
cwde
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x81755f
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
shl eax, 4
add eax, edx
movzx eax, byte [eax + 0xc]
test al, al
je 0x817565
cmp dword [ebp - 0xc], 0xfffffffe
jne 0x817569
mov byte [ebp - 0x61], 1
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x30
test eax, eax
jne 0x8175cd
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x80000
test eax, eax
je 0x8175cd
mov dword [ebp - 0x5c], 1
mov byte [ebp - 0x61], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x68]
mov dword [edx + 0x24], eax
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c59d3
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 0x32]
cmp word [ebp - 0x12a], ax
jae 0x8175ff
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x1c]
movzx eax, word [ebp - 0x12a]
add eax, edx
movzx eax, byte [eax]
test al, al
sete al
movzx eax, al
cmp dword [ebp - 0xbc], eax
je 0x817618
cmp dword [ebp - 0xbc], 0
je 0x817668
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 0x32]
cmp word [ebp - 0x12a], ax
jne 0x817668
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x44], eax
movzx eax, byte [ebp - 0x61]
mov byte [ebp - 0x135], al
movzx eax, byte [ebp - 0x62]
mov byte [ebp - 0x61], al
movzx eax, byte [ebp - 0x135]
mov byte [ebp - 0x62], al
movzx eax, word [ebp - 0x3e]
mov byte [ebp - 0x136], al
movzx eax, word [ebp - 0x40]
mov word [ebp - 0x3e], ax
movzx eax, byte [ebp - 0x136]
mov word [ebp - 0x40], ax
sub esp, 0xc
lea eax, [ebp - 0x18c]
push eax
push dword [ebp - 0x5c]
push dword [ebp - 0xbc]
push dword [ebp + 0x18]
push dword [ebp + 8]
call fcn.0081612d
add esp, 0x20
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x18c]
test eax, eax
je 0x8176c4
cmp word [ebp - 0x40], 0
je 0x8176c4
mov edx, dword [ebp - 0x18c]
movzx eax, word [ebp - 0x12a]
add eax, edx
sub esp, 8
push eax
push dword [ebp - 0xac]
call fcn.0079c30f
add esp, 0x10
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x68], 0
je 0x8176d2
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x28]
jmp 0x8176d8
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0x44], 0
je 0x8176f5
mov eax, dword [ebp - 0x44]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x28
test eax, eax
je 0x8176fc
mov eax, 1
jmp 0x817701
mov eax, 0
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x48], 0
je 0x81771b
mov eax, dword [ebp - 0x48]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x28
test eax, eax
je 0x817722
mov eax, 1
jmp 0x817727
mov eax, 0
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x44], 0
jne 0x81773a
cmp word [ebp - 0x12a], 0
je 0x817741
mov eax, 1
jmp 0x817746
mov eax, 0
mov dword [ebp - 0x54], eax
movzx eax, word [ebp - 0x12a]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x44], 0
je 0x817849
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x140], eax
movzx ecx, word [ebp - 0x3e]
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push ecx
push eax
push dword [ebp - 0x140]
push dword [ebp + 8]
call fcn.0081659f
add esp, 0x10
sub esp, 4
push dword [ebp - 0x44]
push dword [ebp + 0x18]
push dword [ebp + 0xc]
call fcn.0081642f
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x140]
call fcn.007e15f3
add esp, 0x10
test eax, eax
je 0x8177dd
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push dword [ebp - 0xcc]
push eax
push 0x32
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0x18c]
test eax, eax
je 0x81780d
mov edx, dword [ebp - 0x18c]
movzx eax, word [ebp - 0x12a]
add edx, eax
movzx eax, word [ebp - 0x3e]
sub esp, 4
push edx
push eax
push dword [ebp - 0x140]
call fcn.008159ea
add esp, 0x10
movzx eax, word [ebp - 0x3e]
add dword [ebp - 0x58], eax
sub esp, 0xc
push dword [ebp - 0x140]
call fcn.007def6c
add esp, 0x10
test eax, eax
jne 0x81783c
sub esp, 8
push dword [ebp - 0x44]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
jmp 0x817843
mov dword [ebp - 0x4c], 1
mov byte [ebp - 0x61], 0
jmp 0x8178b2
cmp byte [ebp - 0x61], 0
je 0x817882
mov dword [ebp - 0x4c], 0
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push eax
push 0
push 0x49
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov dword [ebp - 0x54], 1
add dword [ebp - 0x58], 1
jmp 0x8178b2
cmp dword [ebp - 0x68], 0
je 0x8178b2
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push eax
push 0
push 0x49
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov dword [ebp - 0x54], 1
add dword [ebp - 0x58], 1
mov ecx, dword [ebp - 0x18c]
movzx edx, byte [ebp - 0x61]
mov eax, dword [ebp - 0x58]
sub eax, edx
push ecx
push eax
push dword [ebp - 0x13c]
push dword [ebp + 8]
call fcn.00815970
add esp, 0x10
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x2a]
test ax, ax
je 0x8178f9
mov eax, dword [ebp - 0xb0]
movzx eax, word [eax + 0x2a]
movzx eax, ax
cmp dword [ebp - 0x58], eax
je 0x817a09
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x40000
test eax, eax
je 0x817921
sub esp, 4
push dword [ebp - 0x130]
push 0x77
push dword [ebp + 0xc]
call fcn.007c5629
add esp, 0x10
cmp dword [ebp - 0x68], 0
je 0x817939
push dword [ebp - 0x68]
push 1
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0x54]
lea edx, [eax*4]
mov eax, dword [ebp - 0x4c]
add eax, eax
add edx, eax
mov eax, dword [ebp - 0xbc]
add eax, edx
movzx eax, byte [eax + 0xcdd2f8]
movzx eax, al
mov dword [ebp - 0x144], eax
sub esp, 8
push dword [ebp - 0x58]
push dword [ebp - 0x13c]
push dword [ebp - 0xcc]
push dword [ebp - 0x130]
push dword [ebp - 0x144]
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
cmp dword [ebp - 0x68], 0
je 0x817a09
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
add eax, 2
push eax
push 0
push 0xb
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
cmp dword [ebp - 0x58], 1
jle 0x8179bf
mov edx, 6
jmp 0x8179c4
mov edx, 2
mov eax, dword [ebp - 0xbc]
add eax, edx
movzx eax, byte [eax + 0xcdd2f8]
movzx eax, al
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x4c]
sub esp, 8
push eax
push dword [ebp - 0x13c]
push dword [ebp - 0xcc]
push dword [ebp - 0x130]
push dword [ebp - 0x144]
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
movzx eax, word [ebp - 0x12a]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x48], 0
je 0x817b17
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x148], eax
movzx ecx, word [ebp - 0x40]
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push ecx
push eax
push dword [ebp - 0x148]
push dword [ebp + 8]
call fcn.0081659f
add esp, 0x10
sub esp, 4
push dword [ebp - 0x48]
push dword [ebp + 0x18]
push dword [ebp + 0xc]
call fcn.0081642f
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0x148]
call fcn.007e15f3
add esp, 0x10
test eax, eax
je 0x817a9d
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push dword [ebp - 0xcc]
push eax
push 0x32
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
cmp dword [ebp - 0x60], 0
je 0x817adf
movzx eax, word [ebp - 0x40]
sub esp, 4
push dword [ebp - 0x60]
push eax
push dword [ebp - 0x148]
call fcn.008159ea
add esp, 0x10
movzx ecx, word [ebp - 0x40]
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push dword [ebp - 0x60]
push ecx
push eax
push dword [ebp + 8]
call fcn.00815970
add esp, 0x10
movzx eax, word [ebp - 0x40]
add dword [ebp - 0x58], eax
sub esp, 0xc
push dword [ebp - 0x148]
call fcn.007def6c
add esp, 0x10
test eax, eax
jne 0x817b0e
sub esp, 8
push dword [ebp - 0x48]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
jmp 0x817b4d
mov dword [ebp - 0x50], 1
jmp 0x817b4d
cmp byte [ebp - 0x62], 0
je 0x817b4d
cmp dword [ebp - 0x68], 0
jne 0x817b49
movzx edx, word [ebp - 0x12a]
mov eax, dword [ebp - 0x13c]
add eax, edx
push eax
push 0
push 0x49
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov dword [ebp - 0x50], 0
add dword [ebp - 0x58], 1
mov eax, dword [ebp - 0x18c]
sub esp, 8
push eax
push dword [ebp - 0xac]
call fcn.0079bcee
add esp, 0x10
sub esp, 8
push dword [ebp - 0x60]
push dword [ebp - 0xac]
call fcn.0079bcee
add esp, 0x10
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x3c], edx
cmp dword [ebp - 0x58], 0
je 0x817c04
cmp dword [ebp - 0x68], 0
je 0x817bbd
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
add eax, 3
push eax
push dword [ebp - 0x68]
push 0x14
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0xbc]
lea edx, [eax + eax]
mov eax, dword [ebp - 0x50]
add eax, edx
movzx eax, byte [eax + 0xcdd300]
movzx eax, al
mov dword [ebp - 0x144], eax
sub esp, 8
push dword [ebp - 0x58]
push dword [ebp - 0x13c]
push dword [ebp - 0xcc]
push dword [ebp - 0x130]
push dword [ebp - 0x144]
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
cmp dword [ebp - 0x68], 0
je 0x817c7b
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
add eax, 2
push eax
push dword [ebp - 0x68]
push 0x12
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0xbc]
lea edx, [eax + eax]
movzx eax, byte [ebp - 0x61]
add eax, edx
movzx eax, byte [eax + 0xcdd300]
movzx eax, al
mov dword [ebp - 0x144], eax
movzx edx, byte [ebp - 0x61]
mov eax, dword [ebp - 0x58]
add eax, edx
sub esp, 8
push eax
push dword [ebp - 0x13c]
push dword [ebp - 0xcc]
push dword [ebp - 0x130]
push dword [ebp - 0x144]
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x40000
test eax, eax
je 0x817ca2
push 1
push dword [ebp - 0x130]
push 0x77
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x40
test eax, eax
je 0x817cca
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x20
test eax, eax
jne 0x817cca
mov eax, 1
jmp 0x817ccf
mov eax, 0
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jne 0x817e87
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
jne 0x817da0
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x400
test eax, eax
jne 0x817d27
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x1000
test eax, eax
je 0x817d81
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x31]
cmp al, 1
jne 0x817d81
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xa0], eax
push dword [ebp - 0xa0]
push dword [ebp - 0x130]
push 0x87
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
sub esp, 0xc
push dword [ebp - 0xa0]
push 0
push dword [ebp - 0xb8]
push 0x1f
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
jmp 0x817e87
push dword [ebp - 0x130]
push dword [ebp - 0xb8]
push dword [ebp - 0x18]
push dword [ebp + 0x10]
call fcn.00816480
add esp, 0x10
jmp 0x817e87
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0x130]
je 0x817e87
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
sub esp, 0xc
push eax
call fcn.007ecd84
add esp, 0x10
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x150]
movzx eax, word [eax + 0x32]
movzx eax, ax
sub esp, 8
push eax
push dword [ebp + 8]
call fcn.007e6879
add esp, 0x10
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xc], 0
jmp 0x817e45
mov eax, dword [ebp - 0x150]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
add eax, eax
add eax, edx
movzx eax, word [eax]
cwde
sub esp, 8
push eax
push dword [ebp - 0x18]
call fcn.007ecdb7
add esp, 0x10
cwde
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xc]
add eax, edx
sub esp, 0xc
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x130]
push 0x5a
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
add dword [ebp - 0xc], 1
mov eax, dword [ebp - 0x150]
movzx eax, word [eax + 0x32]
movzx eax, ax
cmp dword [ebp - 0xc], eax
jl 0x817df5
mov eax, dword [ebp - 0x150]
movzx eax, word [eax + 0x32]
movzx eax, ax
sub esp, 8
push eax
push dword [ebp - 0xa0]
push dword [ebp - 0xc4]
push dword [ebp - 0xb8]
push 0x1c
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test eax, eax
jne 0x817ebb
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x20
test eax, eax
jne 0x817ebb
push dword [ebp + 0x10]
push dword [ebp - 0x130]
push dword [ebp - 0xb8]
push dword [ebp - 0x18]
call fcn.008166f6
add esp, 0x10
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x817ee3
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x24]
sub esp, 4
push dword [ebp - 0xa8]
push dword [ebp - 0xb8]
push eax
call fcn.008167d5
add esp, 0x10
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x1000
test eax, eax
je 0x817efe
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 0xaa
jmp 0x817f17
cmp dword [ebp - 0xbc], 0
je 0x817f10
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 4
jmp 0x817f17
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 5
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x130]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
shr eax, 0x10
and eax, 1
mov edx, eax
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x36], dl
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0xf
test eax, eax
jne 0x817f51
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x37], 1
cmp dword [ebp - 0x14c], 0
je 0x8188d3
mov dword [ebp - 0x18], 0
jmp 0x8188d3
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x24]
and eax, 0x2000
test eax, eax
je 0x81885d
mov dword [ebp - 0x70], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
lea edx, [ecx + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], edx
mov dword [ebp - 0xdc], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c59d3
add esp, 0x10
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x84], 0
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax + 0x30]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 0x42
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xe0]
mov dword [edx + 0x38], eax
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x2e]
cmp al, 1
jbe 0x818143
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x2e]
movzx eax, al
sub eax, dword [ebp + 0x14]
sub eax, 1
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 3
add eax, 0x50
mov edx, 0
sub esp, 4
push edx
push eax
push dword [ebp - 0xac]
call fcn.0079c03a
add esp, 0x10
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
jne 0x818090
mov eax, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
jmp 0x818e11
mov eax, dword [ebp - 0xf0]
add eax, 1
movzx edx, al
mov eax, dword [ebp - 0x6c]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
mov edx, eax
mov eax, dword [ebp - 0x6c]
mov dword [eax], edx
mov eax, dword [ebp - 0x6c]
add eax, 8
sub esp, 4
push 0x48
push dword [ebp - 0xb4]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
add eax, 8
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x10], 1
jmp 0x818136
mov eax, dword [ebp - 0x10]
imul edx, eax, 0x58
mov eax, dword [ebp + 0x18]
add eax, edx
movzx eax, byte [eax + 0x34]
movzx edx, al
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0xf4]
lea ecx, [edx + eax]
mov eax, dword [ebp - 0x10]
mov edx, eax
shl edx, 3
add edx, eax
lea eax, [edx*8]
mov edx, eax
mov eax, dword [ebp - 0x6c]
add eax, edx
add eax, 8
sub esp, 4
push 0x48
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
add dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xf0]
jle 0x8180e1
jmp 0x81814c
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x10
test eax, eax
jne 0x818210
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
jne 0x81819d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x74], eax
push dword [ebp - 0x74]
push 0
push 0x49
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
jmp 0x8181f8
sub esp, 0xc
push dword [ebp - 0xe8]
call fcn.007ecd84
add esp, 0x10
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
lea edx, [ecx + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x28], edx
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp - 0xf8]
movzx eax, word [eax + 0x32]
movzx eax, ax
push eax
push dword [ebp - 0x74]
push 0x70
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
sub esp, 8
push dword [ebp - 0xf8]
push dword [ebp + 8]
call fcn.007c63c3
add esp, 0x10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
lea edx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x78], eax
push dword [ebp - 0xe0]
push 0
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
cmp eax, 1
jle 0x81836e
mov dword [ebp - 0x88], 0
jmp 0x818332
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
add eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
add eax, ecx
cmp dword [ebp - 0x14], eax
je 0x818324
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
add eax, ecx
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 6
test eax, eax
jne 0x818327
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x88]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
add eax, ecx
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x1fff
test eax, eax
je 0x81832a
sub esp, 4
push 0
push dword [ebp - 0x100]
push dword [ebp - 0xac]
call fcn.007e042f
add esp, 0x10
mov dword [ebp - 0x100], eax
sub esp, 4
push dword [ebp - 0x100]
push dword [ebp - 0x84]
push dword [ebp + 8]
call fcn.007df8f4
add esp, 0x10
mov dword [ebp - 0x84], eax
jmp 0x81832b
nop
jmp 0x81832b
nop
jmp 0x81832b
nop
add dword [ebp - 0x88], 1
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
cmp dword [ebp - 0x88], eax
jl 0x81824c
cmp dword [ebp - 0x84], 0
je 0x81836e
push dword [ebp - 0x84]
push 0
push 0x1002c
push dword [ebp + 8]
call fcn.007df7fe
add esp, 0x10
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
and ax, 0x400
or eax, 0x20
mov word [ebp - 0x102], ax
sub esp, 4
push str.MULTI_INDEX_OR
push 1
push dword [ebp + 8]
call fcn.007c5845
add esp, 0x10
mov dword [ebp - 0x80], 0
jmp 0x81876d
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x80]
mov eax, edx
add eax, eax
add eax, edx
shl eax, 4
add eax, ecx
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
mov eax, dword [eax + 0x14]
cmp dword [ebp - 0xb8], eax
je 0x8183ec
mov eax, dword [ebp - 0x108]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x400
test eax, eax
je 0x818769
mov eax, dword [ebp - 0x108]
mov eax, dword [eax]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 0
cmp dword [ebp - 0x84], 0
je 0x818428
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x8c]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x80]
add eax, 1
push eax
push str.INDEX__d
push 1
push dword [ebp + 8]
call fcn.007c5845
add esp, 0x10
movzx eax, word [ebp - 0x102]
sub esp, 4
push dword [ebp - 0xdc]
push eax
push 0
push 0
push dword [ebp - 0x8c]
push dword [ebp - 0x6c]
push dword [ebp + 8]
call fcn.00822b93
add esp, 0x20
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
je 0x818769
mov eax, dword [ebp - 0x10c]
add eax, 0x2f0
push 0
push eax
push dword [ebp - 0x6c]
push dword [ebp + 8]
call fcn.008154fa
add esp, 0x10
mov dword [ebp - 0x110], eax
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 0x2c]
movzx eax, ax
and eax, 0x10
test eax, eax
jne 0x81868e
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0xc]
sub eax, 1
cmp dword [ebp - 0x80], eax
je 0x8184ca
mov eax, dword [ebp - 0x80]
jmp 0x8184cf
mov eax, 0xffffffff
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
jne 0x81852d
sub esp, 0xc
push dword [ebp - 0x78]
push 0xffffffffffffffff
push dword [ebp - 0xb8]
push dword [ebp - 0xe8]
push dword [ebp + 0xc]
call fcn.007e338e
add esp, 0x20
sub esp, 8
push dword [ebp - 0x114]
push dword [ebp - 0x78]
push 0
push dword [ebp - 0x74]
push 0x2a
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
mov dword [ebp - 0x90], eax
jmp 0x81868e
sub esp, 0xc
push dword [ebp - 0xe8]
call fcn.007ecd84
add esp, 0x10
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x118]
movzx eax, word [eax + 0x32]
movzx eax, ax
mov dword [ebp - 0x11c], eax
sub esp, 8
push dword [ebp - 0x11c]
push dword [ebp + 8]
call fcn.007e6879
add esp, 0x10
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x94], 0
jmp 0x8185d0
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x94]
add eax, eax
add eax, edx
movzx eax, word [eax]
cwde
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x94]
add eax, edx
sub esp, 0xc
push eax
push dword [ebp - 0x124]
push dword [ebp - 0xb8]
push dword [ebp - 0xe8]
push dword [ebp + 0xc]
call fcn.007e338e
add esp, 0x20
add dword [ebp - 0x94], 1
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x11c]
jl 0x81857d
cmp dword [ebp - 0x114], 0
je 0x81860e
sub esp, 8
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push 0
push dword [ebp - 0x74]
push 0x1d
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x114], 0
js 0x818674
sub esp, 0xc
push dword [ebp - 0x78]
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push 0x5c
push dword [ebp + 0xc]
call fcn.007c5569
add esp, 0x20
sub esp, 8
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push dword [ebp - 0x78]
push dword [ebp - 0x74]
push 0x84
push dword [ebp + 0xc]
call fcn.007c5943
add esp, 0x20
cmp dword [ebp - 0x114], 0
je 0x818674
sub esp, 8
push 0x10
push dword [ebp + 0xc]
call fcn.007c5ead
add esp, 0x10
sub esp, 4
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push dword [ebp + 8]
call fcn.007e68f2
add esp, 0x10
push dword [ebp - 0xe4]
push dword [ebp - 0xe0]
push 0xc
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
cmp dword [ebp - 0x90], 0
je 0x8186c4
sub esp, 8
push dword [ebp - 0x90]
push dword [ebp + 0xc]
call fcn.007c5eec
add esp, 0x10
mov eax, dword [ebp - 0x10c]
movzx eax, byte [eax + 0x32]
test al, al
je 0x8186d9
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x10c]
mov eax, dword [eax + 0x338]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x24]
and eax, 0x200
test eax, eax
je 0x818743
cmp dword [ebp - 0x80], 0
je 0x818711
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x20]
cmp dword [ebp - 0x70], eax
jne 0x818743
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0x24]
and eax, 0x20
test eax, eax
je 0x818735
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x20]
movzx eax, byte [eax + 0x38]
and eax, 3
cmp al, 2
je 0x818743
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x70], eax
jmp 0x81874a
mov dword [ebp - 0x70], 0
sub esp, 0xc
push dword [ebp - 0x10c]
call fcn.00823afa
add esp, 0x10
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c58ce
add esp, 0x10
add dword [ebp - 0x80], 1
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0xc]
cmp dword [ebp - 0x80], eax
jl 0x8183a4
sub esp, 0xc
push dword [ebp + 8]
call fcn.007c58ce
add esp, 0x10
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x70]
mov dword [edx + 0x40], eax
cmp dword [ebp - 0x70], 0
je 0x8187a8
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xdc]
mov dword [edx + 8], eax
cmp dword [ebp - 0x84], 0
je 0x8187d5
mov eax, dword [ebp - 0x84]
mov dword [eax + 0xc], 0
sub esp, 8
push dword [ebp - 0x84]
push dword [ebp - 0xac]
call fcn.007dfd85
add esp, 0x10
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
sub esp, 4
push eax
push dword [ebp - 0xfc]
push dword [ebp + 0xc]
call fcn.007c5e47
add esp, 0x10
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xc]
sub esp, 8
push eax
push dword [ebp + 0xc]
call fcn.007c566a
add esp, 0x10
sub esp, 8
push dword [ebp - 0xe4]
push dword [ebp + 0xc]
call fcn.007c5a6b
add esp, 0x10
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax + 0x2e]
cmp al, 1
jbe 0x818840
sub esp, 8
push dword [ebp - 0x6c]
push dword [ebp - 0xac]
call fcn.0079bcee
add esp, 0x10
cmp dword [ebp - 0x7c], 0
jne 0x8188d3
sub esp, 8
push dword [ebp - 0x14]
push dword [ebp + 0x18]
call fcn.00815852
add esp, 0x10
jmp 0x8188d3
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax + 0x28]
and eax, 0x20
test al, al
je 0x818877
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], 0xaa
jmp 0x8188d3
mov eax, dword [ebp - 0xbc]
add eax, 0xcdd304
movzx edx, byte [eax]
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x35], dl
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0xbc]
add eax, str.__regexp
movzx eax, byte [eax]
movzx eax, al
push dword [ebp - 0xc8]
push dword [ebp - 0xb8]
push eax
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
lea edx, [eax + 1]
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp + 0x18]
mov byte [eax + 0x37], 1
jmp 0x8188d3
nop
cmp dword [ebp - 0x18], 0
je 0x8188e0
mov eax, 1
jmp 0x8188e5
mov eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x98], 0
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
jmp 0x818aeb
mov dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 6
test eax, eax
jne 0x818adc
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
mov esi, ecx
and esi, eax
mov dword [ebp - 0x1e8], esi
and ebx, edx
mov dword [ebp - 0x1e4], ebx
mov eax, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
mov esi, eax
xor esi, 0
mov dword [ebp - 0x200], esi
mov eax, edx
xor ah, 0
mov dword [ebp - 0x1fc], eax
mov ebx, dword [ebp - 0x200]
mov esi, dword [ebp - 0x1fc]
mov eax, esi
or eax, ebx
test eax, eax
je 0x818994
mov eax, dword [ebp + 0x10]
mov byte [eax + 0x32], 1
jmp 0x818ae3
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0xb4]
movzx eax, byte [eax + 0x24]
movzx eax, al
and eax, 8
test eax, eax
je 0x8189c7
mov eax, dword [ebp - 0x17c]
mov eax, dword [eax + 4]
and eax, 1
test eax, eax
je 0x818adf
cmp dword [ebp - 0x1c], 1
jne 0x8189fb
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
sub esp, 4
push dword [ebp - 0x18]
push eax
push dword [ebp - 0x17c]
call fcn.007e6190
add esp, 0x10
test eax, eax
jne 0x8189fb
mov dword [ebp - 0x98], 2
jmp 0x818ae3
cmp dword [ebp - 0x1c], 2
jg 0x818a30
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 0x1000
test eax, eax
je 0x818a30
cmp dword [ebp - 0x98], 0
jne 0x818ae2
mov dword [ebp - 0x98], 3
jmp 0x818ae2
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 0x200
test eax, eax
je 0x818a91
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0
je 0x818a91
mov eax, dword [ebp - 0x180]
shr eax, 1
mov edx, eax
mov eax, dword [ebp - 0x180]
and eax, 1
test eax, eax
je 0x818a76
mov eax, 0x14
jmp 0x818a7b
mov eax, 0x12
sub esp, 4
push edx
push eax
push dword [ebp + 0xc]
call fcn.007c5629
add esp, 0x10
mov dword [ebp - 0x9c], eax
push 0x10
push dword [ebp - 0xc4]
push dword [ebp - 0x17c]
push dword [ebp + 8]
call fcn.007e5293
add esp, 0x10
cmp dword [ebp - 0x9c], 0
je 0x818ac7
sub esp, 8
push dword [ebp - 0x9c]
push dword [ebp + 0xc]
call fcn.007c5eec
add esp, 0x10
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
or eax, 4
mov edx, eax
mov eax, dword [ebp - 0x14]
mov word [eax + 0xa], dx
jmp 0x818ae3
nop
jmp 0x818ae3
nop
jmp 0x818ae3
nop
sub dword [ebp - 0xc], 1
add dword [ebp - 0x14], 0x30
cmp dword [ebp - 0xc], 0
jg 0x81890f
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jg 0x8188e8
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
jmp 0x818cf3
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 6
test eax, eax
jne 0x818cd5
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x82
test eax, eax
je 0x818cd8
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 0x800
test eax, eax
je 0x818cdb
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x14]
cmp dword [ebp - 0xb8], eax
jne 0x818cde
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test eax, eax
jne 0x818ce1
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x1c]
sub esp, 4
push 0
push 0x83
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push eax
push dword [ebp - 0xb8]
push dword [ebp - 0xa8]
call fcn.0081c3ee
add esp, 0x20
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
je 0x818ce4
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 4
test eax, eax
jne 0x818ce7
mov eax, dword [ebp - 0x178]
movzx eax, word [eax + 0xc]
movzx eax, ax
and eax, 1
test eax, eax
je 0x818c2e
mov eax, dword [ebp - 0x178]
mov eax, dword [eax]
mov eax, dword [eax + 4]
and eax, 0x800
test eax, eax
je 0x818c2e
mov eax, dword [ebp - 0x178]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
jg 0x818cea
mov eax, dword [ebp - 0x178]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [ebp - 0x1c0], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x1bc], edx
mov edx, dword [eax + 8]
mov dword [ebp - 0x1b8], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1b4], edx
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x1b0], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x1ac], edx
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x1a8], edx
mov edx, dword [eax + 0x1c]
mov dword [ebp - 0x1a4], edx
mov edx, dword [eax + 0x20]
mov dword [ebp - 0x1a0], edx
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x19c], edx
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x198], edx
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x194], edx
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x174]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x1b4], eax
push 0x10
push dword [ebp - 0xc4]
lea eax, [ebp - 0x1c0]
push eax
push dword [ebp + 8]
call fcn.007e5293
add esp, 0x10
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
jmp 0x818ceb
nop
sub dword [ebp - 0xc], 1
add dword [ebp - 0x14], 0x30
cmp dword [ebp - 0xc], 0
jg 0x818b25
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
test eax, eax
je 0x818e08
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.007c5cb5
add esp, 0x10
mov edx, eax
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
push eax
push 1
push 0x46
push dword [ebp + 0xc]
call fcn.007c5649
add esp, 0x10
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], 0
jmp 0x818df6
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
movzx eax, ax
and eax, 6
test eax, eax
jne 0x818dea
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
mov esi, ecx
and esi, eax
mov dword [ebp - 0x1f0], esi
and ebx, edx
mov dword [ebp - 0x1ec], ebx
mov eax, dword [ebp - 0x1f0]
mov edx, dword [ebp - 0x1ec]
mov ebx, eax
xor bh, 0
mov dword [ebp - 0x208], ebx
mov eax, edx
xor ah, 0
mov dword [ebp - 0x204], eax
mov ebx, dword [ebp - 0x208]
mov esi, dword [ebp - 0x204]
mov eax, esi
or eax, ebx
test eax, eax
jne 0x818ded
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
push 0x10
push dword [ebp - 0xc4]
push eax
push dword [ebp + 8]
call fcn.007e5293
add esp, 0x10
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0xa]
or eax, 4
mov edx, eax
mov eax, dword [ebp - 0x14]
mov word [eax + 0xa], dx
jmp 0x818dee
nop
jmp 0x818dee
nop
add dword [ebp - 0xc], 1
add dword [ebp - 0x14], 0x30
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0xc]
cmp dword [ebp - 0xc], eax
jl 0x818d4d
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret