Function at 0x10017cd2
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x228
mov eax, dword [0x100da4b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ecx]
and dword [ebp - 0xec], 0
and dword [ebp - 0x158], 0
cmp dword [ecx + 0x50], 0xbdf20da3
mov dword [ebp - 0xe0], eax
mov eax, dword [eax + 4]
push esi
push edi
mov dword [ebp - 0xdc], ecx
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [ebp - 0x128], al
je 0x10017d23
push 0x15
pop eax
jmp 0x100196dd
mov edi, dword [ecx + 0x2c]
push 7
pop eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
cmp dword [ecx + 0x80], eax
je 0x10019697
and dword [ecx + 0x80], 0
mov edx, dword [ecx + 0x22c]
test edx, edx
je 0x10017d76
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov ecx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], edi
and dword [ecx + 0x22c], 0
mov edx, dword [ebp - 0xe0]
mov byte [ecx + 0x234], 0
and dword [edx + 0x11c], 0
cmp dword [edx + 0x98], 0
jne 0x1001c02e
mov eax, dword [ecx + 0x7c]
mov dword [ebp - 0xe4], eax
call fcn.1000b991
test eax, eax
jne 0x10019697
imul esi, dword [ebp - 0xe4], 0x14
add esi, dword [ecx + 0x18]
mov dword [ebp - 0xfc], esi
cmp dword [edx + 0xa8], eax
je 0x10017e3e
mov eax, dword [ebp - 0x158]
cmp dword [edx + 0xb0], eax
jne 0x10017e31
mov ecx, edx
call fcn.1000b666
test eax, eax
jne 0x1001b77b
push dword [edx + 0xac]
call dword [edx + 0xa8]
pop ecx
test eax, eax
je 0x10017e14
mov edx, dword [ebp - 0xe0]
mov ecx, edx
call fcn.1000b63b
push 4
pop eax
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xdc]
jmp 0x1001bdef
mov ecx, dword [ebp - 0xe0]
xor edx, edx
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
mov ecx, dword [ebp - 0xdc]
jmp 0x10017e37
mov edx, dword [ebp - 0x158]
inc edx
mov dword [ebp - 0x158], edx
mov al, byte [esi]
movzx edx, al
mov byte [ebp - 0x115], al
mov dword [ebp - 0x11c], edx
lea eax, [edx - 1]
cmp eax, 0x8d
ja case.0x10017e5d.13
jmp dword [eax*4 + 0x1001c086]
mov edx, dword [ebp - 0xe0]
cmp dword [edx + 0x98], 0
jne 0x1001c02e
mov esi, dword [esi + 8]
dec esi
jmp 0x1001bdf5
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xe4]
inc ecx
mov eax, dword [edx + 0x220]
mov dword [edx + eax*4 + 0x90], ecx
mov ecx, edx
inc dword [ecx + 0x220]
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 0xe4], edx
jmp case.0x10017e5d.13
dec dword [ecx + 0x220]
mov eax, dword [ecx + 0x220]
mov edx, dword [ecx + eax*4 + 0x90]
jmp 0x10017ea5
add edi, 0x40
push 4
pop eax
mov dword [ebp - 0xf0], edi
mov word [edi + 0x18], ax
mov eax, dword [esi + 4]
cdq
mov dword [edi], eax
mov dword [ebp - 0xe8], edi
mov dword [edi + 4], edx
jmp case.0x10017e5d.13
add edi, 0x40
mov eax, 0xa2
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x10], ecx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10017f0b
sub ecx, edx
mov dword [edi + 0x14], ecx
mov ecx, edi
mov byte [edi + 0x1b], 1
call fcn.10014c78
mov dword [edi], eax
push 4
pop eax
mov dword [edi + 4], edx
or word [edi + 0x18], ax
mov ecx, dword [ebp - 0xdc]
jmp case.0x10017e5d.13
add edi, 0x40
mov eax, 0xa2
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x10], ecx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10017f5a
sub ecx, edx
mov dword [edi + 0x14], ecx
mov ecx, edi
mov byte [edi + 0x1b], 1
call fcn.10014cd7
movzx edx, byte [ebp - 0x128]
mov ecx, edi
push 8
pop eax
movsd qword [edi + 8], xmm0
or word [edi + 0x18], ax
call fcn.100149c9
jmp 0x10017f2e
mov edx, dword [esi + 0xc]
mov ecx, edx
mov byte [esi], 0x1a
lea eax, [ecx + 1]
mov dword [ebp - 0xf8], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10017f9e
sub ecx, dword [ebp - 0xf8]
xor eax, eax
inc eax
mov dword [esi + 4], ecx
cmp byte [ebp - 0x128], al
je case.0x10017e5d.26
push 0
push eax
add edi, 0x40
or eax, 0xffffffff
push eax
mov ecx, edi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
call fcn.10014e73
movzx edx, byte [ebp - 0x128]
add esp, 0xc
mov ecx, edi
call fcn.100149c9
test eax, eax
jne 0x10019691
mov ecx, edi
call fcn.100149de
test eax, eax
jne 0x10019691
mov ax, word [edi + 0x18]
mov ecx, 0xffbf
and ax, cx
mov ecx, 0x80
or ax, cx
mov word [edi + 0x18], ax
or eax, 0xffffffff
cmp dword [esi + 0x10], eax
jne 0x1001802e
push dword [esi + 0xc]
call fcn.1000af1e
pop ecx
or eax, 0xffffffff
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 4], eax
jmp 0x10017f2e
add edi, 0x40
mov eax, 0xa2
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 4]
mov dword [edi + 0x14], eax
mov al, byte [ebp - 0x128]
mov byte [edi + 0x1b], al
jmp 0x10017f2e
add edi, 0x40
xor eax, eax
inc eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
and dword [edi + 0x14], 0
jmp case.0x10017e5d.13
mov edx, dword [esi + 0xc]
mov byte [esi], 0x7a
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x1001809c
sub edx, ecx
shr edx, 1
mov dword [esi + 4], edx
je 0x100180e4
mov ecx, dword [esi + 0xc]
call fcn.1000b8b1
mov dword [ebp - 0xf8], eax
test eax, eax
je 0x10019691
or ecx, 0xffffffff
cmp dword [esi + 0x10], ecx
jne 0x100180d9
push dword [esi + 0xc]
call fcn.1000af1e
mov eax, dword [ebp - 0xf8]
pop ecx
mov dword [esi + 0xc], eax
or eax, 0xffffffff
mov dword [esi + 0x10], eax
jmp case.0x10017e5d.122
or eax, 0xffffffff
cmp dword [esi + 0x10], eax
jne 0x100180f5
push dword [esi + 0xc]
call fcn.1000af1e
pop ecx
mov dword [esi + 0x10], 0xfffffffe
mov dword [esi + 0xc], 0x100bc7cc
mov edx, dword [esi + 0xc]
add edi, 0x40
push 0
push 0
push dword [esi + 4]
mov ecx, edi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
call fcn.10014e73
add esp, 0xc
jmp 0x10017f2e
mov ecx, dword [esi + 4]
add edi, 0x40
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
shl ecx, 6
push 8
mov esi, dword [eax + 0x44]
add esi, 0xffffffc0
mov dword [ebp - 0xf0], edi
add esi, ecx
mov dword [ebp - 0xe8], edi
pop eax
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe4]
movzx eax, word [edi + 0x18]
and dword [edi + 0x1c], 0
test al, 0x12
je 0x1001bdf5
and eax, 0xfcbf
or eax, 0x80
mov word [edi + 0x18], ax
jmp 0x1001bdf5
mov edx, dword [esi + 4]
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], edi
jmp 0x10017f2e
mov eax, dword [esi + 4]
mov esi, edi
shl eax, 6
add edi, 0x40
sub esi, eax
mov dword [ebp - 0xf0], edi
push 8
pop eax
mov ecx, eax
mov dword [ebp - 0xe8], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
mov ecx, 0x100
movzx eax, word [edi + 0x18]
and dword [edi + 0x1c], 0
test al, 0x12
je 0x100181f1
and eax, 0xfd3f
or eax, ecx
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0xfc]
cmp dword [eax + 8], 0
je 0x10017f2e
test word [edi + 0x18], cx
je 0x10017f2e
mov ecx, edi
call fcn.10014a3e
mov ecx, dword [ebp - 0xdc]
test eax, eax
jne 0x10019697
jmp case.0x10017e5d.13
mov eax, dword [esi + 4]
mov edx, edi
shl eax, 6
lea edi, [ebp - 0x228]
sub edx, eax
push 0x10
pop ecx
mov esi, edx
mov dword [ebp - 0xf8], edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
mov ecx, 0x100
test word [edi + 0x18], cx
je 0x10018267
mov ecx, edi
call fcn.10014a3e
test eax, eax
jne 0x10019691
mov ecx, 0x100
mov edx, dword [ebp - 0xfc]
xor eax, eax
mov dword [ebp - 0x104], eax
cmp dword [edx + 4], eax
jle 0x100182ef
mov esi, dword [ebp - 0xf8]
add esi, 0x40
mov dword [ebp - 0xf4], esi
test word [esi + 0x18], cx
je 0x100182aa
mov ecx, esi
call fcn.10014a3e
test eax, eax
jne 0x1001c074
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x104]
push 0x10
lea edi, [esi - 0x40]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0xf4]
mov ecx, 0x200
test word [esi - 0x28], cx
je 0x100182cf
lea eax, [esi - 0x20]
mov dword [esi - 0x30], eax
mov eax, dword [ebp - 0x104]
inc eax
add esi, 0x40
mov ecx, 0x100
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf4], esi
cmp eax, dword [edx + 4]
jl 0x10018289
mov edi, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xe0]
lea esi, [ebp - 0x228]
push 0x10
pop eax
mov ecx, eax
mov eax, 0x200
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe4]
test word [edi + 0x18], ax
je 0x1001bdf5
lea eax, [edi + 0x20]
mov dword [edi + 0x10], eax
jmp 0x1001bdf5
mov eax, dword [esi + 4]
mov ecx, edi
shl eax, 6
mov edx, edi
sub ecx, eax
call fcn.10014e1a
sub edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
jmp 0x10017f2e
mov edx, dword [esi + 4]
mov eax, edi
add edx, 2
mov ecx, edx
mov dword [ebp - 0x100], edx
shl ecx, 6
sub eax, ecx
xor ecx, ecx
and dword [ebp - 0x104], ecx
add eax, 0x40
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0xf4], ecx
test edx, edx
jle 0x10018430
movzx edx, word [eax + 0x18]
mov dword [ebp - 0xf8], edx
test dl, 1
mov edx, dword [ebp - 0x100]
jne 0x100183f5
test byte [ebp - 0xf8], 0x12
jne 0x100183d3
movzx edx, byte [ebp - 0x128]
mov ecx, eax
call fcn.10014b28
test eax, eax
jne 0x10019691
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x100]
add ecx, dword [eax + 0x14]
add eax, 0x40
inc dword [ebp - 0x104]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x104], edx
jl 0x1001838d
jmp 0x100183fa
or eax, 0xffffffff
mov ecx, eax
test ecx, ecx
jns 0x10018430
cmp dword [esi + 8], 0
jne 0x10018415
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
xor ecx, ecx
inc ecx
mov word [edi + 0x18], cx
jmp 0x10017f2e
add ecx, 2
test ecx, ecx
jle 0x1001844c
call fcn.1000aed0
mov edx, dword [ebp - 0x100]
mov ecx, eax
mov dword [ebp - 0x12c], eax
jmp 0x10018454
xor ecx, ecx
mov dword [ebp - 0x12c], ecx
test ecx, ecx
je 0x10019691
xor eax, eax
mov dword [ebp - 0x114], eax
test edx, edx
jle 0x100184d2
mov eax, dword [ebp - 0x130]
mov edi, dword [ebp - 0x114]
add eax, 0x10
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x104], edx
mov esi, dword [eax + 4]
push esi
push dword [eax]
lea eax, [edi + ecx]
push eax
call fcn.1008fd00
mov eax, dword [ebp - 0xf4]
add esp, 0xc
mov ecx, dword [ebp - 0x12c]
add eax, 0x40
add edi, esi
mov dword [ebp - 0xf4], eax
dec dword [ebp - 0x104]
jne 0x10018483
mov esi, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x114], edi
mov edi, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x114]
mov word [eax + ecx], 0
cmp dword [esi + 8], 0
jne 0x100184fb
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x12c]
add edi, 0x40
push 0x62
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi + 0x14], eax
pop eax
mov word [edi + 0x18], ax
and dword [edi + 0x1c], 0
mov al, byte [ebp - 0x128]
mov byte [edi + 0x1b], al
mov dword [edi + 0x10], ecx
jmp 0x10017f2e
lea eax, [edi - 0x40]
movzx ecx, word [eax + 0x18]
mov dword [ebp - 0x110], eax
mov esi, ecx
movzx eax, word [edi + 0x18]
or esi, eax
movzx eax, word [edi + 0x18]
mov dword [ebp - 0xf4], esi
test byte [ebp - 0xf4], 1
mov esi, dword [ebp - 0xfc]
je 0x1001858a
test al, 0x40
je 0x10018562
mov ecx, edi
call fcn.10014c26
mov edi, dword [ebp - 0x110]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
test byte [edi + 0x18], 0x40
je 0x10018424
mov ecx, edi
call fcn.10014c26
jmp 0x10018424
and cl, al
push 4
pop eax
test al, cl
je 0x1001864e
mov eax, dword [ebp - 0x110]
mov esi, dword [eax]
mov ecx, dword [eax + 4]
sub edx, 0x4e
je 0x100185fd
dec edx
je 0x100185f6
dec edx
je 0x100185e0
mov eax, dword [edi]
dec edx
je 0x100185c9
or eax, dword [edi + 4]
je 0x100186ca
push dword [edi + 4]
push dword [edi]
push ecx
push esi
call fcn.1009da30
jmp 0x100185ec
or eax, dword [edi + 4]
je 0x100186ca
push dword [edi + 4]
push dword [edi]
push ecx
push esi
call fcn.100905f0
jmp 0x100185ec
push dword [edi + 4]
push dword [edi]
push ecx
push esi
call fcn.100906d0
mov esi, eax
mov dword [ebp - 0x114], edx
jmp 0x10018608
sub esi, dword [edi]
sbb ecx, dword [edi + 4]
jmp 0x10018602
add esi, dword [edi]
adc ecx, dword [edi + 4]
mov dword [ebp - 0x114], ecx
movzx ecx, word [edi + 0x18]
test cl, 0x40
je 0x10018618
mov ecx, edi
call fcn.10014c26
mov edi, dword [ebp - 0x110]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
test byte [edi + 0x18], 0x40
je 0x10018637
mov ecx, edi
call fcn.10014c26
mov eax, dword [ebp - 0x114]
mov dword [edi], esi
mov dword [edi + 4], eax
push 4
pop eax
mov word [edi + 0x18], ax
jmp 0x10017f2e
mov ecx, edi
call fcn.10014cd7
mov ecx, dword [ebp - 0x110]
movsd qword [ebp - 0x120], xmm0
call fcn.10014cd7
movzx eax, byte [esi]
movapd xmm1, xmm0
sub eax, 0x4e
je 0x100186ed
dec eax
je 0x100186e3
dec eax
je 0x100186d9
dec eax
je 0x100186b4
cvttsd2si ecx, qword [ebp - 0x120]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm0, qword [0x100cd4b8]
lahf
test ah, 0x44
jnp 0x100186ca
cvttsd2si eax, xmm1
cdq
idiv ecx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x120], xmm0
jmp 0x100186fd
movsd xmm0, qword [ebp - 0x120]
ucomisd xmm0, qword [0x100cd4b8]
lahf
test ah, 0x44
jp 0x100186d3
test byte [edi + 0x18], 0x40
jmp 0x10018559
divsd xmm1, xmm0
jmp 0x100186f5
mulsd xmm1, qword [ebp - 0x120]
jmp 0x100186f5
subsd xmm1, qword [ebp - 0x120]
jmp 0x100186f5
addsd xmm1, qword [ebp - 0x120]
movsd qword [ebp - 0x120], xmm1
test byte [edi + 0x18], 0x40
je 0x1001870a
mov ecx, edi
call fcn.10014c26
mov edi, dword [ebp - 0x110]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
test byte [edi + 0x18], 0x40
je 0x10018729
mov ecx, edi
call fcn.10014c26
movsd xmm0, qword [ebp - 0x120]
push 8
pop eax
movsd qword [edi + 8], xmm0
mov word [edi + 0x18], ax
test byte [ebp - 0xf4], al
jne 0x10017f2e
mov ecx, edi
call fcn.10014d42
jmp 0x10017f2e
mov ecx, dword [ecx + 0x30]
xor edx, edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xf4], ecx
mov ecx, edi
mov dword [ebp - 0x100], eax
shl eax, 6
sub ecx, eax
add ecx, 0x40
cmp dword [ebp - 0x100], edx
jle 0x100187a3
mov esi, dword [ebp - 0x100]
mov edi, dword [ebp - 0xf4]
mov dword [edi + edx*4], ecx
call fcn.10017b71
inc edx
add ecx, 0x40
cmp edx, esi
jl 0x10018787
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xfc]
cmp dword [esi + 0x10], 0xfffffffb
jne 0x100187b5
mov edx, dword [esi + 0xc]
and dword [ebp - 0xd4], 0
jmp 0x100187c0
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd4], eax
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0xd8], edx
inc eax
mov word [ebp - 0xb8], ax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0x8c], al
cmp byte [edx + 3], al
je 0x100187f2
mov eax, dword [esi - 8]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
test eax, eax
jne 0x1001b77b
push dword [ebp - 0xf4]
lea eax, [ebp - 0xd8]
push dword [ebp - 0x100]
push eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xe0]
add esp, 0xc
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
call fcn.1000b991
test eax, eax
jne 0x10019691
mov edx, dword [ebp - 0x100]
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
je 0x10018871
mov edx, dword [esi + 4]
call fcn.10016646
mov eax, dword [ebp - 0xd4]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0xfffffff9
cmp byte [ebp - 0x8c], 0
je 0x100188aa
push 0
push ecx
mov dl, 1
lea ecx, [ebp - 0xd0]
call fcn.100151f8
pop ecx
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
push eax
call fcn.1000aff5
add esp, 0xc
mov dword [ebp - 0xec], 1
movzx edx, byte [ebp - 0x128]
lea ecx, [ebp - 0xd0]
call fcn.100149c9
mov edi, dword [ebp - 0xe8]
lea edx, [ebp - 0xd0]
add edi, 0x40
xor eax, eax
mov ecx, edi
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
call fcn.10014e1a
jmp 0x10017f2e
lea ecx, [edi - 0x40]
mov al, byte [ecx + 0x18]
or al, byte [edi + 0x18]
mov dword [ebp - 0xf8], ecx
test al, 1
je 0x10018904
push 2
pop edx
jmp 0x10018404
call fcn.10014c78
mov ecx, edi
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xfc], edx
call fcn.10014c78
movzx ecx, byte [esi]
mov dword [ebp - 0xf4], eax
sub ecx, 0x4a
je 0x1001897d
dec ecx
je 0x1001896d
dec ecx
je 0x1001894c
dec ecx
jne 0x1001898d
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
call fcn.100ac140
jmp 0x10018963
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
call fcn.100ac120
mov esi, eax
mov dword [ebp - 0xfc], edx
jmp 0x10018993
mov esi, dword [ebp - 0x114]
or esi, eax
or dword [ebp - 0xfc], edx
jmp 0x10018993
mov esi, dword [ebp - 0x114]
and esi, eax
and dword [ebp - 0xfc], edx
jmp 0x10018993
mov esi, dword [ebp - 0x114]
test byte [edi + 0x18], 0x40
je 0x100189a0
mov ecx, edi
call fcn.10014c26
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
test byte [edi + 0x18], 0x40
je 0x100189bf
mov ecx, edi
call fcn.10014c26
mov ecx, dword [ebp - 0xfc]
mov dword [edi], esi
mov dword [edi + 4], ecx
jmp 0x10018642
mov ecx, edi
call fcn.10014d6d
mov eax, dword [esi + 4]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
jmp 0x10017f2e
mov ecx, edi
call fcn.10017bfa
test byte [edi + 0x18], 8
je 0x100189f8
mov ecx, edi
call fcn.10014d42
movzx eax, word [edi + 0x18]
test al, 0xc
jne 0x10018a29
test al, 0x40
je 0x10018a0b
mov ecx, edi
call fcn.10014c26
sub edi, 0x40
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xf0], edi
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 0xe4], ecx
jmp 0x10017f2e
push 4
pop ecx
test cl, al
je 0x10018a87
cmp dword [esi + 4], 0
je 0x10018a3d
xor ecx, ecx
inc ecx
xor edx, edx
jmp 0x10018a54
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
mov eax, dword [edi]
add eax, ecx
mov ecx, dword [edi + 4]
mov dword [ebp - 0xfc], eax
adc ecx, edx
mov dword [ebp - 0x10c], ecx
mov esi, dword [ebp - 0xfc]
test byte [edi + 0x18], 0x40
je 0x10018a7c
mov ecx, edi
call fcn.10014c26
mov eax, dword [ebp - 0x10c]
jmp 0x1001863d
mov ecx, edi
call fcn.10014d8c
cvttsd2si eax, qword [edi + 8]
cdq
mov ecx, edx
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x10c], ecx
mov ecx, eax
call fcn.10090aaf
movsd xmm1, qword [edi + 8]
comisd xmm1, xmm0
mov eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x10c]
jbe 0x10018ad2
add eax, 1
mov dword [ebp - 0xfc], eax
adc ecx, 0
mov dword [ebp - 0x10c], ecx
cmp dword [esi + 4], 0
je 0x10018a69
mov edx, ecx
mov ecx, eax
call fcn.10090aaf
movsd xmm1, qword [edi + 8]
mov esi, dword [ebp - 0xfc]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x10018a6f
add esi, 1
adc dword [ebp - 0x10c], 0
jmp 0x10018a6f
mov ecx, edi
call fcn.10017bfa
test byte [edi + 0x18], 8
je 0x10018b1d
mov ecx, edi
call fcn.10014d42
movzx eax, word [edi + 0x18]
push 4
pop ecx
test cl, al
jne 0x10018b55
cmp dword [esi + 8], 0
je 0x1001be25
cmp dword [esi + 4], 0
je 0x10018a1a
xor edx, edx
lea ecx, [ebp - 0xe8]
inc edx
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
jmp 0x10018a14
test al, 0x40
je 0x10018642
mov ecx, edi
call fcn.10014c26
jmp 0x10018642
push 4
pop eax
test byte [edi + 0x18], al
je case.0x10017e5d.13
mov ecx, edi
call fcn.10014d8c
jmp 0x10017f2e
movzx ecx, word [edi + 0x18]
test cl, 1
jne 0x10017f2e
push dword [ebp - 0x128]
mov eax, ecx
mov dl, 0x61
shr eax, 3
and eax, 2
or eax, ecx
mov ecx, edi
mov word [edi + 0x18], ax
call fcn.10017c6f
pop ecx
mov eax, 0xffe3
and word [edi + 0x18], ax
jmp 0x10017f2e
movzx eax, word [edi + 0x18]
test al, 1
jne case.0x10017e5d.13
test al, 0x10
jne 0x10018be1
push dword [ebp - 0x128]
mov dl, 0x61
mov ecx, edi
call fcn.10017c6f
pop ecx
push 0x10
pop eax
or word [edi + 0x18], ax
mov eax, 0xfff1
jmp 0x10018bb1
test byte [edi + 0x18], 1
jne case.0x10017e5d.13
mov ecx, edi
call fcn.10014d8c
jmp 0x10018749
test byte [edi + 0x18], 1
jne case.0x10017e5d.13
mov ecx, edi
call fcn.10014d6d
jmp 0x10017f2e
test byte [edi + 0x18], 1
jne case.0x10017e5d.13
jmp 0x10018b75
movzx ecx, word [edi + 0x18]
lea eax, [edi - 0x40]
mov al, byte [eax + 0x18]
xor edx, edx
or al, cl
inc edx
test dl, al
je 0x10018c6b
mov eax, 0x200
test dword [esi + 4], eax
je 0x10018cca
not ecx
and ecx, edx
mov eax, ecx
mov ecx, edi
cdq
push edx
push eax
call fcn.10014dab
lea ecx, [edi - 0x40]
movzx eax, word [ecx + 0x18]
not eax
and eax, 1
cdq
push edx
push eax
call fcn.10014dab
add esp, 0x10
mov al, byte [esi + 4]
mov byte [ebp - 0x115], al
test al, al
je 0x10018c9d
push dword [ebp - 0x128]
mov dl, al
lea ecx, [edi - 0x40]
call fcn.10017c6f
mov dl, byte [ebp - 0x115]
pop ecx
push dword [ebp - 0x128]
mov ecx, edi
call fcn.10017c6f
pop ecx
push dword [esi + 0xc]
mov edx, edi
lea ecx, [edi - 0x40]
call fcn.10014f6a
pop ecx
movzx ecx, byte [esi]
mov edx, eax
xor eax, eax
sub ecx, 0x43
je 0x10018d1b
dec ecx
je 0x10018d14
dec ecx
je 0x10018d0d
dec ecx
je 0x10018d06
dec ecx
je 0x10018cff
test edx, edx
setns al
jmp 0x10018d20
push 2
pop edx
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov eax, dword [esi + 8]
test eax, eax
je 0x1001840f
mov ecx, 0x100
test dword [esi + 4], ecx
je 0x1001819e
lea ecx, [eax - 1]
mov dword [ebp - 0xe4], ecx
jmp 0x1001819e
test edx, edx
sets al
jmp 0x10018d20
test edx, edx
setle al
jmp 0x10018d20
test edx, edx
setg al
jmp 0x10018d20
test edx, edx
sete al
jmp 0x10018d20
test edx, edx
setne al
push 2
pop edx
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x10c], eax
call fcn.10017b9c
mov eax, dword [esi + 8]
test eax, eax
je 0x10018d44
cmp dword [ebp - 0x10c], 0
jmp 0x10018ceb
mov edi, dword [ebp - 0xe8]
add edi, 0x40
push 4
pop eax
mov dword [ebp - 0xf0], edi
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0x10c]
cdq
mov dword [edi], eax
mov dword [ebp - 0xe8], edi
mov dword [edi + 4], edx
jmp 0x10017f2e
test byte [edi + 0x18], 1
lea eax, [edi - 0x40]
mov dword [ebp - 0xf8], eax
je 0x10018d8c
mov dword [ebp - 0x100], 2
jmp 0x10018dad
mov ecx, edi
call fcn.10014d6d
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x10018da6
mov dword [ebp - 0x100], 1
jmp 0x10018dad
and dword [ebp - 0x100], 0
mov edi, dword [ebp - 0xf8]
test byte [edi + 0x18], 1
je 0x10018dbe
push 2
pop ecx
jmp 0x10018dcf
mov ecx, edi
call fcn.10014d6d
mov eax, dword [edi]
xor ecx, ecx
or eax, dword [edi + 4]
jne 0x10018dcf
inc ecx
imul eax, dword [ebp - 0x100], 3
cmp byte [esi], 0x3d
jne 0x10018de5
movzx esi, byte [eax + ecx + 0x100c27f0]
jmp 0x10018ded
movzx esi, byte [eax + ecx + 0x100bfce4]
push 2
pop edx
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
cmp esi, 2
je 0x10018424
xor eax, eax
test esi, esi
sete al
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10018642
movzx eax, word [edi + 0x18]
test al, 8
jne 0x10018e8a
push 4
pop edx
test dl, al
je 0x10018e74
test al, 0x40
je 0x10018e48
mov ecx, edi
call fcn.10014c26
push 4
pop edx
cmp byte [esi], 0x55
je 0x10018e5a
cmp dword [edi + 4], 0
jg 0x10018e6b
jl 0x10018e5a
cmp dword [edi], 0
jae 0x10018e6b
mov ecx, dword [edi]
mov eax, dword [edi + 4]
neg ecx
mov dword [edi], ecx
adc eax, 0
neg eax
mov dword [edi + 4], eax
mov word [edi + 0x18], dx
jmp 0x10017f2e
test al, 1
jne case.0x10017e5d.13
mov ecx, edi
call fcn.10014d8c
mov ecx, edi
call fcn.10014d42
test byte [edi + 0x18], 0x40
je 0x10018e97
mov ecx, edi
call fcn.10014c26
cmp byte [esi], 0x55
je 0x10018ea6
xorps xmm0, xmm0
comisd xmm0, xmmword [edi + 8]
jbe 0x10018eb8
movsd xmm0, qword [edi + 8]
xorpd xmm0, xmmword [0x100cd6b0]
movsd qword [edi + 8], xmm0
push 8
jmp 0x10018644
test byte [edi + 0x18], 1
jne case.0x10017e5d.13
mov ecx, edi
call fcn.10014d6d
mov eax, dword [edi]
or eax, dword [edi + 4]
jne 0x10018edd
inc eax
jmp 0x10018e20
xor eax, eax
jmp 0x10018e20
test byte [edi + 0x18], 1
jne case.0x10017e5d.13
mov ecx, edi
call fcn.10014d6d
not dword [edi]
not dword [edi + 4]
jmp 0x10018642
test byte [edi + 0x18], 1
je 0x10018f10
mov ecx, dword [esi + 4]
mov dword [ebp - 0x100], ecx
jmp 0x10018f40
mov ecx, edi
call fcn.10014cd7
ucomisd xmm0, qword [0x100cd4b8]
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x10018f28
inc ecx
cmp byte [esi], 0x56
mov dword [ebp - 0x100], ecx
jne 0x10018f40
xor eax, eax
test ecx, ecx
sete al
mov dword [ebp - 0x100], eax
test byte [edi + 0x18], 0x40
je 0x10018f4d
mov ecx, edi
call fcn.10014c26
mov edx, dword [ebp - 0xe0]
sub edi, 0x40
cmp dword [ebp - 0x100], 0
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
je 0x10017e09
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 0xe4], ecx
jmp 0x10017e09
test byte [edi + 0x18], 1
je 0x10018fae
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
dec ecx
mov dword [ebp - 0xe4], ecx
test edx, edx
jns 0x10018fae
neg edx
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], edi
mov edx, dword [esi + 4]
test edx, edx
jle 0x10017f2e
jmp 0x10018193
mov edx, dword [esi + 4]
test edx, edx
jns 0x10018fc7
neg edx
and dword [ebp - 0xf8], 0
test edx, edx
jle 0x10018ff5
mov eax, edx
mov ecx, edi
shl eax, 6
sub ecx, eax
mov eax, dword [ebp - 0xf8]
add ecx, 0x58
test byte [ecx], 1
jne 0x10018ff1
inc eax
add ecx, 0x40
cmp eax, edx
jl 0x10018fe4
cmp eax, edx
jl 0x10018fff
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 0xe4], ecx
cmp dword [esi + 4], 0
jmp 0x10018fb3
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov dword [ecx + 0x50], eax
jmp 0x10017f2e
mov eax, dword [esi + 8]
add edi, 0x40
mov ecx, dword [esi + 4]
mov dword [ebp - 0x104], eax
xor eax, eax
mov word [ebp - 0xa8], ax
inc eax
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov eax, dword [eax + 0x3c]
mov edx, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x10c], edx
cmp dword [edx], ecx
je 0x100190f9
mov ecx, edx
call fcn.10016749
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov edx, dword [ebp - 0x10c]
and dword [ebp - 0x110], eax
mov ecx, dword [edx]
mov dword [ebp - 0x12c], ecx
cmp byte [edx + 0x1c], al
je 0x1001909c
and dword [ebp - 0x138], eax
jmp 0x100190ee
mov esi, dword [ebp - 0xdc]
mov eax, dword [edx + 0x68]
cmp eax, dword [esi + 0x60]
jne 0x100190be
mov eax, dword [edx + 0x6c]
mov dword [ebp - 0x138], eax
mov eax, dword [edx + 0x78]
mov dword [ebp - 0x110], eax
jmp 0x100190ee
cmp byte [edx + 0x21], 0
je 0x100190dd
lea edx, [ebp - 0x1e8]
call fcn.100110c6
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x138], eax
jmp 0x100190e8
lea edx, [ebp - 0x138]
call fcn.10011106
mov edx, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x50]
mov eax, dword [ebp - 0x138]
jmp 0x1001912e
cmp byte [edx + 0x1e], cl
je 0x1001911a
mov ecx, dword [edx + 0x38]
and dword [edx + 0x68], 0
mov eax, dword [edx + 0x34]
and dword [ebp - 0x12c], 0
mov dword [ebp - 0x110], ecx
mov ecx, dword [edx + 0x50]
jmp 0x10019128
mov dword [ebp - 0x110], ecx
mov eax, ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x130], ecx
test eax, eax
je 0x10017f2e
mov esi, dword [ebp - 0xdc]
mov eax, dword [edx + 0x68]
cmp eax, dword [esi + 0x60]
jne 0x10019161
mov ecx, dword [edx + 0x70]
mov eax, dword [edx + 0x74]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x124], eax
jmp 0x100193a4
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x114], eax
test eax, eax
jne 0x10019195
shl ecx, 3
test ecx, ecx
jle 0x10019182
call fcn.1000aed0
mov edx, dword [ebp - 0x10c]
jmp 0x10019184
xor eax, eax
mov dword [ebp - 0x114], eax
mov dword [edx + 0x70], eax
test eax, eax
je 0x1001c07f
mov ecx, dword [ebp - 0x130]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x124], eax
mov dword [edx + 0x74], eax
mov eax, dword [ebp - 0x138]
mov dword [edx + 0x6c], eax
mov eax, esi
mov eax, dword [eax + 0x60]
mov dword [edx + 0x68], eax
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x100191ca
mov dword [ebp - 0xec], eax
jmp 0x10019224
cmp byte [edx + 0x21], 0
mov eax, dword [ebp - 0x12c]
je 0x100191f4
cmp byte [eax + 0x41], 1
jne 0x100191ff
push 0
lea edx, [ebp - 0x15c]
mov ecx, eax
call fcn.10011300
mov edx, dword [ebp - 0x10c]
pop ecx
jmp 0x10019201
xor ecx, ecx
inc ecx
cmp byte [eax + 0x41], cl
jne 0x100191ff
push ecx
jmp 0x100191de
xor eax, eax
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0x15c], ecx
jb 0x10019220
mov dword [ebp - 0x110], eax
mov dword [edx + 0x78], eax
jmp 0x10019224
and dword [edx + 0x78], 0
movzx ecx, byte [eax]
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xf4], ecx
cmp ecx, 0x7f
ja 0x10019244
mov dword [ebp - 0xf8], 1
jmp 0x1001926f
lea edx, [ebp - 0xf4]
mov ecx, eax
call fcn.1000b816
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x100], ecx
cmp dword [ebp - 0x110], 0
jne 0x100192b3
cmp dword [ebp - 0x15c], ecx
jae 0x100192b3
lea eax, [ebp - 0xc0]
push eax
movzx eax, byte [edx + 0x21]
xor edx, edx
push eax
push ecx
mov ecx, dword [ebp - 0x12c]
call fcn.1001511a
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001bde7
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x100]
lea ecx, [edx + eax]
add eax, dword [ebp - 0xf8]
cmp dword [ebp - 0x130], 0
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xf4], eax
jbe 0x10019350
mov eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0x114]
sub eax, esi
mov edi, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], eax
cmp edi, ecx
jae 0x10019335
mov dword [eax + esi], edx
movzx eax, byte [edi]
mov dword [esi], eax
cmp eax, 0x7f
ja 0x10019307
xor eax, eax
inc eax
jmp 0x10019316
mov edx, esi
mov ecx, edi
call fcn.1000b816
mov edx, dword [ebp - 0x100]
mov ecx, dword [esi]
add edi, eax
call fcn.1001687d
mov ecx, dword [ebp - 0xec]
add edx, eax
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x100], edx
jmp 0x10019339
and dword [eax + esi], 0
add esi, 4
dec dword [ebp - 0x130]
jne 0x100192f1
mov dword [ebp - 0xf4], edi
mov edi, dword [ebp - 0xf0]
test byte [ebp - 0xa8], 0x40
je 0x1001936a
lea ecx, [ebp - 0xc0]
call fcn.10014c26
mov edx, dword [ebp - 0x100]
xor eax, eax
inc eax
mov word [ebp - 0xa8], ax
mov eax, dword [ebp - 0xec]
cmp dword [ebp - 0xf4], eax
ja 0x10019499
cmp edx, dword [ebp - 0x138]
ja 0x10019499
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0x104]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0xfc]
test eax, eax
je 0x10019435
mov esi, dword [ebp - 0x110]
test esi, esi
je 0x100193c6
lea ecx, [esi + eax]
jmp 0x10019414
mov eax, dword [ebp - 0x104]
mov ecx, dword [ecx + eax*4]
call fcn.1001687d
movzx esi, byte [edx + 0x21]
lea ecx, [ebp - 0xc0]
push ecx
mov ecx, dword [ebp - 0x104]
push esi
push eax
mov eax, dword [ebp - 0x124]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x12c]
call fcn.1001511a
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x10017f2e
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x114]
push edi
mov edx, dword [edx + eax*4]
call fcn.1001690e
mov al, byte [ebp - 0x128]
pop ecx
mov byte [edi + 0x1b], al
jmp 0x1001946a
cmp dword [esi + 0x10], 0xfffffff8
jne 0x10019463
mov esi, dword [esi + 0xc]
push 8
pop eax
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
movzx eax, word [edi + 0x18]
and dword [edi + 0x1c], 0
test al, 0x12
je 0x1001946a
and eax, 0xfcbf
or eax, 0x80
jmp 0x10019466
xor eax, eax
inc eax
mov word [edi + 0x18], ax
test byte [ebp - 0xa8], 0x40
je 0x10019487
mov ax, word [edi + 0x18]
mov ecx, 0xfeff
and ax, cx
or ax, 0x60
mov word [edi + 0x18], ax
mov ecx, edi
call fcn.10014a3e
mov dword [ebp - 0xec], eax
jmp 0x10017f2e
mov dword [ebp - 0xec], 0xb
jmp 0x10017f2e
and dword [ebp - 0x12c], 0
xor eax, eax
and dword [ebp - 0x100], 0
xor ecx, ecx
cmp dword [esi + 4], eax
mov edx, dword [esi + 0xc]
setl al
mov dword [ebp - 0xfc], ecx
inc ecx
mov dword [ebp - 0x10c], eax
test eax, eax
mov dword [ebp - 0xf8], edx
push 0xffffffffffffffff
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
imul ecx, dword [esi + 4]
mov dword [ebp - 0x11c], eax
xor eax, eax
cmp byte [esi], 0x36
mov esi, edi
sete al
and dword [ebp - 0x130], 0
mov dword [ebp - 0x124], eax
mov eax, ecx
shl eax, 6
mov dword [ebp - 0xf0], ecx
sub esi, eax
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x110], esi
lea eax, [esi + 0x40]
movzx ecx, byte [ecx + 0x239]
mov dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x104], eax
cmp eax, edi
ja 0x100195db
push 0xffffffffffffffe8
pop esi
sub esi, eax
test edx, edx
je 0x10019571
push dword [ebp - 0x128]
mov ecx, dword [ebp - 0x104]
add eax, 0x18
add eax, esi
sar eax, 6
mov dl, byte [eax + edx]
call fcn.10017c6f
mov eax, dword [ebp - 0x104]
pop ecx
mov ecx, dword [ebp - 0x130]
xor edx, edx
inc edx
test byte [eax + 0x18], dl
cmovne ecx, edx
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0x130], ecx
mov ecx, eax
call fcn.100167b1
mov ecx, eax
call fcn.1001687d
add dword [ebp - 0x100], eax
push 0
push ecx
call fcn.1000b874
mov edx, dword [ebp - 0xf8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xfc]
add ecx, eax
mov eax, dword [ebp - 0x104]
add eax, 0x40
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x104], eax
cmp eax, edi
jbe 0x1001954a
mov esi, dword [ebp - 0x110]
cmp dword [ebp - 0x124], 0
je 0x1001961f
mov ecx, esi
mov dword [ebp - 0x12c], esi
call fcn.10014d6d
xor edx, edx
mov ecx, esi
call fcn.100167b1
mov ecx, eax
call fcn.1001687d
add dword [ebp - 0x100], eax
push 0
push ecx
call fcn.1000b874
pop ecx
pop ecx
mov ecx, dword [ebp - 0xfc]
add ecx, eax
mov dword [ebp - 0xfc], ecx
mov eax, ecx
cdq
push edx
push eax
call fcn.1000b874
mov esi, eax
mov eax, dword [ebp - 0xfc]
add eax, esi
mov dword [ebp - 0xfc], eax
cdq
push edx
push eax
call fcn.1000b874
add esp, 0x10
cmp esi, eax
mov eax, dword [ebp - 0xfc]
jge 0x10019655
inc eax
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0x100]
add ecx, eax
mov dword [ebp - 0x100], ecx
cmp ecx, 0x20
jbe 0x100196ed
test ecx, ecx
jle 0x10019685
call fcn.1000aed0
mov ecx, eax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xfc]
jmp 0x1001968d
xor ecx, ecx
mov dword [ebp - 0x104], ecx
test ecx, ecx
jne 0x100196f6
mov ecx, dword [ebp - 0xdc]
push 0
lea eax, [ecx + 0x230]
push 0x100bd1dc
push eax
call fcn.1000aff5
add esp, 0xc
push 7
pop eax
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xec]
xor esi, esi
mov dword [eax + 0x80], ecx
inc esi
mov ecx, eax
call fcn.10016345
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x2c], edi
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1008a221
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x104], ecx
cdq
push edx
push eax
call fcn.1000b6ae
pop ecx
mov esi, eax
add esi, dword [ebp - 0x104]
pop ecx
mov ecx, dword [ebp - 0x114]
mov eax, ecx
mov dword [ebp - 0xf8], ecx
cmp ecx, edi
ja 0x10019748
mov edx, dword [ebp - 0xf4]
mov ecx, eax
call fcn.100167b1
push 0
push eax
mov ecx, esi
call fcn.1000b6ae
add esi, eax
mov eax, dword [ebp - 0xf8]
add eax, 0x40
mov dword [ebp - 0xf8], eax
pop ecx
pop ecx
cmp eax, edi
jbe 0x1001971a
cmp dword [ebp - 0x124], 0
je 0x1001976c
mov ecx, dword [ebp - 0x12c]
xor edx, edx
call fcn.100167b1
push 0
push eax
mov ecx, esi
call fcn.1000b6ae
pop ecx
pop ecx
add esi, eax
mov eax, dword [ebp - 0x114]
jmp 0x10019795
push dword [ebp - 0xf4]
mov edx, eax
mov ecx, esi
call fcn.10016890
add esi, eax
mov eax, dword [ebp - 0x114]
add eax, 0x40
pop ecx
mov dword [ebp - 0x114], eax
cmp eax, edi
jbe 0x10019774
mov eax, dword [ebp - 0x124]
test eax, eax
je 0x100197b9
mov edx, dword [ebp - 0x12c]
mov ecx, esi
push 0
call fcn.10016890
mov eax, dword [ebp - 0x124]
pop ecx
cmp dword [ebp - 0x10c], 0
jne 0x100197dc
mov edx, dword [ebp - 0xf0]
lea ecx, [ebp - 0xe8]
lea edx, [eax + edx]
call fcn.10017b9c
mov edi, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x100]
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi + 0x14], ecx
cmp ecx, 0x20
ja 0x10019818
push ecx
lea ecx, [ebp - 0x24]
lea eax, [edi + 0x20]
push ecx
push eax
mov dword [edi + 0x10], eax
call fcn.1008fd00
mov eax, 0x210
add esp, 0xc
mov word [edi + 0x18], ax
jmp 0x1001982c
mov eax, dword [ebp - 0x104]
mov dword [edi + 0x10], eax
push 0x50
pop eax
mov word [edi + 0x18], ax
and dword [edi + 0x1c], 0
mov eax, dword [ebp - 0x11c]
mov byte [edi + 0x1b], 1
test eax, eax
je 0x10017f2e
cmp dword [ebp - 0x130], 0
mov edx, dword [ebp - 0xe0]
je 0x10017e09
lea ecx, [eax - 1]
jmp 0x10018f73
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0xe0]
test eax, eax
js 0x1001bdef
cmp eax, dword [edx]
jge 0x1001bdef
imul ecx, eax, 0x18
mov eax, dword [edx + 4]
mov eax, dword [ecx + eax + 4]
test eax, eax
je 0x10017e09
cmp byte [edx + 0x14], 0
jne 0x10017e09
mov esi, dword [eax + 4]
test esi, esi
je 0x1001989f
cmp byte [esi + 0xc], 0
jne 0x10017e09
cmp byte [eax + 8], 2
jne 0x100198d6
cmp byte [esi + 0xc], 0
jne 0x100198d6
cmp byte [esi + 0xd], 0
je 0x100198ba
and dword [ebp - 0xec], 0
jmp 0x100198cd
mov ecx, dword [esi]
call fcn.1000f322
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xec], eax
mov byte [esi + 0xc], 1
jmp 0x10017e09
xor ecx, ecx
inc ecx
cmp byte [esi + 0xd], 0
push 8
pop eax
cmovne ecx, eax
mov dword [ebp - 0xec], ecx
jmp 0x10017e09
mov edx, dword [ebp - 0xe0]
mov al, byte [esi + 4]
mov cl, byte [esi + 8]
mov byte [ebp - 0x13d], al
cmp dword [edx + 0x54], 1
mov byte [ebp - 0x115], cl
jle 0x10019955
test al, al
je 0x10019955
cmp byte [edx + 0x14], 0
jne 0x10019955
push 0
test cl, cl
mov edx, 0x100bd030
push 0x100bcff8
mov eax, 0x100bd024
cmove eax, edx
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
push 0x100bd038
push eax
call fcn.1000aff5
add esp, 0x14
mov dword [ebp - 0xec], 1
jmp 0x10017f2e
cmp al, byte [edx + 0x14]
jne 0x1001be2c
xor edx, edx
mov ecx, 0x100bd070
test al, al
mov eax, 0x100bd09c
push 0
sete dl
cmp byte [ebp - 0x115], 0
cmove ecx, eax
test edx, edx
mov eax, 0x100bd040
cmove eax, ecx
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
push eax
call fcn.1000aff5
add esp, 0xc
jmp 0x10019946
imul ecx, dword [esi + 4], 0x18
mov edx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x10017e09
mov edx, dword [esi + 8]
call fcn.10010818
push 5
mov ecx, eax
pop edx
mov dword [ebp - 0xec], ecx
cmp ecx, edx
je 0x1001bea4
test ecx, ecx
je 0x10017f2e
push 8
pop eax
cmp ecx, eax
jne 0x1001b784
jmp 0x10017f2e
mov ecx, dword [ebp - 0xe0]
lea eax, [ebp - 0x190]
mov edx, dword [esi + 8]
push eax
imul eax, dword [esi + 4], 0x18
inc edx
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx + 4]
call fcn.10013d02
add edi, 0x40
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x190]
pop ecx
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
jmp 0x10018e20
imul eax, dword [esi + 4], 0x18
mov ecx, dword [ebp - 0xe0]
add eax, dword [ecx + 4]
mov ecx, edi
mov dword [ebp - 0xf4], eax
call fcn.10014d6d
mov ecx, dword [ebp - 0xf4]
mov edx, dword [esi + 8]
push dword [edi]
inc edx
mov ecx, dword [ecx + 4]
call fcn.10013d67
cmp dword [esi + 8], 0
mov edx, dword [ebp - 0xe0]
pop ecx
mov dword [ebp - 0xec], eax
jne 0x10019a80
mov eax, dword [ebp - 0xf4]
push 0x10
mov ecx, dword [eax + 0x14]
mov eax, dword [edi]
mov dword [ecx], eax
pop eax
or dword [edx + 8], eax
jmp 0x10019a94
cmp dword [esi + 8], 1
jne 0x10019a94
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x14]
mov al, byte [edi]
mov byte [ecx + 0x78], al
sub edi, 0x40
cmp dword [esi + 4], 1
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
jne 0x10017e09
mov ecx, edx
call fcn.10016eaf
jmp 0x10017e09
imul ecx, dword [esi + 4], 0x18
mov edx, dword [ebp - 0xe0]
mov eax, dword [edx + 4]
mov ecx, dword [ecx + eax + 4]
test ecx, ecx
je 0x10019aee
lea eax, [ebp - 0x150]
xor edx, edx
push eax
inc edx
call fcn.10013d02
mov edx, dword [ebp - 0xe0]
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x150]
jmp 0x10019af8
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x10017e09
cmp eax, dword [esi + 8]
je 0x10017e09
mov eax, dword [ebp - 0xdc]
push ecx
add eax, 0x230
push 0x100bd0c8
push eax
call fcn.1000aff5
mov edx, dword [esi + 4]
add esp, 0xc
mov esi, dword [ebp - 0xe0]
imul ecx, edx, 0x18
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax + 0x14]
mov ecx, dword [ebp - 0x150]
cmp dword [eax], ecx
je 0x10019b4d
mov ecx, esi
call fcn.1002079b
mov edx, esi
mov ecx, edx
call fcn.10016eaf
mov dword [ebp - 0xec], 0x11
jmp 0x10017e09
mov eax, dword [esi + 4]
mov ecx, edi
mov dword [ebp - 0x104], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xf4], eax
call fcn.10014d6d
mov eax, dword [edi]
sub edi, 0x40
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x11c], eax
imul eax, eax, 0x18
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
add eax, dword [ecx + 4]
cmp byte [esi], 9
mov ecx, dword [eax + 4]
mov dword [ebp - 0x124], ecx
jne 0x10019bd5
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xf8], 1
mov al, byte [eax + 0x78]
cmp al, byte [ecx + 0x239]
jae 0x10019bdc
mov byte [ecx + 0x239], al
jmp 0x10019bdc
and dword [ebp - 0xf8], 0
cmp dword [ebp - 0xf4], 0
jg 0x10019c03
mov ecx, edi
call fcn.10014d6d
mov eax, dword [edi]
sub edi, 0x40
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
push dword [ebp - 0x11c]
mov edx, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xdc]
call fcn.10017bc2
mov dword [ebp - 0x104], eax
pop ecx
test eax, eax
je 0x10019691
mov ecx, dword [ebp - 0x124]
mov byte [eax + 0x1c], 1
test ecx, ecx
je 0x10017f2e
mov edx, dword [ebp - 0xf4]
push eax
push dword [esi + 0xc]
push fcn.10016ace
push dword [ebp - 0xf8]
call fcn.10010f57
mov edx, dword [ebp - 0x104]
add esp, 0x10
cmp dword [esi + 0x10], 0xfffffffa
mov ecx, eax
mov dword [ebp - 0xec], ecx
jne 0x10019c94
mov eax, dword [esi + 0xc]
mov dword [edx + 0x4c], eax
inc eax
mov ecx, dword [edx + 0x4c]
mov dword [edx + 0x48], eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [ecx], al
mov ecx, dword [ebp - 0xec]
jmp 0x10019c9e
and dword [edx + 0x4c], 0
lea eax, [edx + 0x22]
mov dword [edx + 0x48], eax
test ecx, ecx
je 0x10019cd6
push 5
pop eax
cmp ecx, eax
je 0x1001bebe
push 0x10
pop eax
cmp ecx, eax
jne 0x1001b784
cmp dword [esi + 0x10], 0xfffffffa
setne al
test al, al
mov byte [edx + 0x20], al
sete al
and dword [ebp - 0xec], 0
mov byte [edx + 0x21], al
jmp 0x10017f2e
mov eax, dword [edx]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x10019cec
movzx ecx, byte [eax + 8]
mov eax, dword [eax + 0x44]
movzx ecx, byte [ecx + eax]
jmp 0x10019cee
xor ecx, ecx
test cl, 0xf0
jne 0x10019d2d
mov eax, ecx
and eax, 7
cmp eax, 5
je 0x10019d02
cmp eax, 2
jne 0x10019d2d
mov al, cl
shr ecx, 1
and al, 1
and cl, 1
mov byte [edx + 0x20], al
mov byte [edx + 0x21], cl
test al, al
je 0x10019d1b
cmp dword [esi + 0x10], 0xfffffffa
je 0x10019d2d
test cl, cl
je 0x10017f2e
cmp dword [esi + 0x10], 0xfffffffa
je 0x10017f2e
push 0xb
jmp 0x1001b77d
mov edx, dword [esi + 4]
or eax, 0xffffffff
push eax
call fcn.10017bc2
mov dword [ebp - 0x110], eax
pop ecx
test eax, eax
je 0x10019691
xor ecx, ecx
xor edx, edx
inc ecx
mov byte [eax + 0x1c], cl
add eax, 0x30
push eax
push 0x1f4
push ecx
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x104], eax
call fcn.10035457
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x10019e64
mov ecx, dword [ebp - 0x104]
xor edx, edx
inc edx
mov ecx, dword [ecx]
call fcn.10010818
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x10019e64
cmp dword [esi + 0xc], eax
je 0x10019e2e
mov eax, dword [ebp - 0x104]
lea edx, [ebp - 0x194]
push 2
mov ecx, dword [eax]
call fcn.1001383d
mov dword [ebp - 0xec], eax
pop ecx
test eax, eax
jne 0x10019e22
push dword [ebp - 0x110]
mov eax, dword [ebp - 0x104]
push dword [esi + 0xc]
mov edx, dword [ebp - 0x194]
push fcn.10016ace
mov ecx, dword [eax]
push 1
call fcn.10010f57
mov edx, dword [ebp - 0x110]
add esp, 0x10
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xdc]
mov dword [edx + 0x4c], ecx
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x14]
mov al, byte [eax + 0x79]
mov byte [ecx], al
mov eax, dword [edx + 0x4c]
inc eax
mov dword [edx + 0x48], eax
jmp 0x10019e28
mov edx, dword [ebp - 0x110]
mov byte [edx + 0x20], 0
jmp 0x10019e6a
push dword [ebp - 0x110]
push eax
push eax
xor eax, eax
inc eax
push eax
mov edx, eax
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax]
call fcn.10010f57
mov edx, dword [ebp - 0x110]
add esp, 0x10
mov dword [ebp - 0xec], eax
lea eax, [edx + 0x22]
mov byte [edx + 0x20], 1
mov dword [edx + 0x48], eax
jmp 0x10019e6a
mov edx, dword [ebp - 0x110]
mov eax, dword [esi + 8]
cmp byte [edx + 0x20], 0
mov dword [edx + 0x50], eax
sete al
mov byte [edx + 0x21], al
jmp 0x10017f2e
mov edx, dword [esi + 4]
or eax, 0xffffffff
push eax
call fcn.10017bc2
pop ecx
test eax, eax
je 0x10019691
xor ecx, ecx
mov word [eax + 0x20], 1
inc ecx
mov byte [eax + 0x1c], cl
mov byte [eax + 0x1e], cl
lea ecx, [eax + 0x22]
mov dword [eax + 0x48], ecx
jmp 0x10017f2e
mov esi, dword [esi + 4]
test esi, esi
js case.0x10017e5d.13
cmp esi, dword [ecx + 0x38]
jge case.0x10017e5d.13
mov edx, dword [ecx + 0x3c]
mov edx, dword [edx + esi*4]
call fcn.10015d3a
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x3c]
and dword [eax + esi*4], 0
jmp case.0x10017e5d.13
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x110], ecx
cmp dword [ecx], 0
je 0x1001a06c
mov byte [ecx + 0x1c], 0
cmp edx, 7
je 0x10019f0f
cmp edx, 0x54
je 0x10019f0f
xor edx, edx
jmp 0x10019f12
xor edx, edx
inc edx
mov eax, dword [ecx + 0x48]
mov byte [eax], dl
cmp byte [ecx + 0x20], 0
je 0x10019f97
mov ecx, edi
call fcn.10014d6d
cmp dword [esi + 8], 0
mov eax, dword [edi]
mov edx, dword [edi + 4]
jne 0x10019f49
cmp byte [esi], 0x7f
jne 0x10019f49
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], edx
mov byte [ecx + 0x1f], 1
jmp 0x1001833f
lea ecx, [ebp - 0x13c]
push ecx
mov ecx, dword [ebp - 0x110]
push 0
push edx
push eax
mov ecx, dword [ecx]
xor edx, edx
call fcn.1001154e
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0x110]
mov eax, dword [edi]
mov edx, dword [ebp - 0x13c]
test edx, edx
mov dword [ecx + 8], eax
mov eax, dword [edi + 4]
mov dword [ecx + 0xc], eax
sete al
mov byte [ecx + 0x19], al
jmp 0x10019fd2
mov ecx, dword [ecx]
lea eax, [ebp - 0x13c]
push eax
mov eax, dword [edi + 0x14]
cdq
push 0
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.1001154e
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x13c]
mov byte [ecx + 0x19], al
mov eax, dword [ecx + 0x48]
and dword [ecx + 0x68], 0
mov byte [ecx + 0x1f], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x11c]
cmp eax, 0x7f
je 0x1001a01c
cmp eax, 7
je 0x1001a01c
test edx, edx
js 0x1001a003
mov ecx, dword [ecx]
lea edx, [ebp - 0x13c]
call fcn.1001185b
jmp 0x1001a02d
mov eax, dword [ecx]
xor ecx, ecx
cmp byte [eax + 0x41], 1
setne cl
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x110]
jmp 0x1001a04f
test edx, edx
jns 0x1001a048
mov ecx, dword [ecx]
lea edx, [ebp - 0x13c]
call fcn.1001178b
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0x110]
mov byte [ecx + 0x19], al
jmp 0x1001a04f
and dword [ebp - 0x13c], 0
cmp dword [ebp - 0x13c], 0
je 0x1001a06c
mov eax, dword [esi + 8]
test eax, eax
jle 0x1001a068
dec eax
mov dword [ebp - 0xe4], eax
jmp 0x1001a06c
mov byte [ecx + 0x1c], 1
test byte [edi + 0x18], 0x40
je 0x1001833f
mov ecx, edi
call fcn.10014c26
jmp 0x1001833f
mov eax, dword [ebp - 0xdc]
xor edx, edx
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xf8], eax
cmp dword [eax], edx
je 0x1001a0fc
test byte [edi + 0x18], 0x12
jne 0x1001a0b9
movzx edx, byte [ebp - 0x128]
mov ecx, edi
call fcn.10014b28
test eax, eax
jne 0x10019691
mov ecx, dword [ebp - 0xf8]
lea eax, [ebp - 0x18c]
push eax
mov eax, dword [edi + 0x14]
cdq
mov ecx, dword [ecx]
push 0
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.1001154e
add esp, 0x10
test eax, eax
jne 0x1001a0ec
cmp dword [ebp - 0x18c], eax
jne 0x1001a0ec
xor edx, edx
inc edx
jmp 0x1001a0ee
xor edx, edx
mov eax, dword [ebp - 0xf8]
and dword [eax + 0x68], 0
mov byte [eax + 0x1f], 0
mov al, byte [esi]
cmp al, 0x85
jne 0x1001a108
test edx, edx
je 0x1001a116
jmp 0x1001a10c
test edx, edx
jne 0x1001a116
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 0xe4], ecx
cmp al, 0x6f
je 0x10017f2e
jmp 0x1001a06c
mov esi, dword [esi + 4]
lea eax, [edi - 0x40]
mov ecx, edi
mov dword [ebp - 0xf8], eax
call fcn.10014d6d
mov eax, dword [edi]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x11c], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xf8]
mov dword [ebp - 0x124], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x104], eax
mov eax, dword [eax]
mov dword [ebp - 0xf4], eax
test eax, eax
je case.0x10017e5d.13
mov esi, edi
test byte [esi + 0x18], 0x12
jne 0x1001a199
movzx edx, byte [ebp - 0x128]
mov ecx, esi
call fcn.10014b28
test eax, eax
jne 0x10019691
mov eax, dword [esi + 0x10]
mov ecx, eax
mov dword [ebp - 0xf8], eax
call fcn.10016d32
mov esi, dword [esi + 0x14]
mov ecx, dword [ebp - 0xf4]
sub esi, eax
mov eax, dword [ebp - 0x104]
and dword [eax + 0x68], 0
lea eax, [ebp - 0x14c]
push eax
mov eax, esi
cdq
push 0
push edx
mov edx, dword [ebp - 0xf8]
push eax
call fcn.1001154e
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
cmp dword [ebp - 0x14c], eax
jge 0x1001a220
mov ecx, dword [ebp - 0xf4]
lea edx, [ebp - 0x14c]
call fcn.1001178b
cmp dword [ebp - 0x14c], 0
mov dword [ebp - 0xec], eax
je 0x1001a220
mov eax, dword [ebp - 0xfc]
mov ecx, dword [eax + 8]
jmp 0x10018a1d
mov ecx, dword [ebp - 0x104]
lea eax, [ebp - 0x14c]
push eax
push dword [ebp - 0xf8]
mov edx, esi
call fcn.10016e15
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
cmp dword [ebp - 0x14c], eax
jg 0x1001a212
mov ecx, dword [ebp - 0xf4]
lea edx, [ebp - 0x1b0]
call fcn.10016d5c
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1ac]
cmp ecx, dword [ebp - 0x11c]
jne 0x1001a291
cmp eax, dword [ebp - 0x124]
je 0x1001a212
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi], ecx
jmp 0x1001863f
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x11c], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x1001a06c
lea eax, [ebp - 0x198]
xor edx, edx
push eax
push 0
push dword [edi + 4]
push dword [edi]
call fcn.1001154e
mov edx, dword [ebp - 0x11c]
add esp, 0x10
mov ecx, dword [ebp - 0x198]
test ecx, ecx
mov dword [ebp - 0xec], eax
mov eax, dword [edi]
mov dword [edx + 8], eax
mov eax, dword [edi + 4]
mov dword [edx + 0xc], eax
sete al
and dword [edx + 0x68], 0
mov byte [edx + 0x19], al
mov byte [edx + 0x1c], 0
test ecx, ecx
je 0x1001a06c
mov eax, dword [esi + 8]
dec eax
mov byte [edx + 0x19], 0
mov dword [ebp - 0xe4], eax
jmp 0x1001a06c
mov eax, dword [ecx + 0x3c]
add edi, 0x40
mov edx, dword [esi + 4]
push 4
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x58]
mov dword [edi], eax
mov eax, dword [ecx + 0x5c]
mov ecx, dword [ebp - 0xdc]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + edx*4]
add dword [eax + 0x58], 1
adc dword [eax + 0x5c], 0
pop eax
mov word [edi + 0x18], ax
jmp case.0x10017e5d.13
mov eax, dword [ebp - 0xdc]
xorps xmm0, xmm0
mov ecx, dword [esi + 4]
movlpd qword [ebp - 0x108], xmm0
mov eax, dword [eax + 0x3c]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x10c], edx
mov ecx, dword [edx]
test ecx, ecx
je 0x1001a673
and dword [ebp - 0xf4], 0
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x1001a3b0
movzx ecx, byte [eax + 8]
mov eax, dword [eax + 0x44]
movzx eax, byte [ecx + eax]
mov ecx, dword [edx]
jmp 0x1001a3b2
xor eax, eax
and al, 3
cmp al, 1
jne 0x10019d2d
cmp byte [edx + 0x1b], 0
jne 0x1001a531
cmp byte [edx + 0x1d], 0
je 0x1001a3d4
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x14]
jmp 0x1001a44c
lea edx, [ebp - 0x134]
call fcn.10011523
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
cmp dword [ebp - 0x134], eax
je 0x1001a3fa
inc eax
jmp 0x1001a446
mov ecx, dword [ebp - 0x10c]
lea edx, [ebp - 0x108]
mov ecx, dword [ecx]
call fcn.100110c6
mov eax, dword [ebp - 0x108]
or ecx, 0xffffffff
cmp eax, ecx
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0xfc], ecx
jne 0x1001a440
cmp ecx, 0x7fffffff
jne 0x1001a440
mov edx, dword [ebp - 0x10c]
mov byte [edx + 0x1b], 1
jmp 0x1001a458
add eax, 1
adc ecx, 0
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xfc], ecx
mov esi, dword [esi + 8]
test esi, esi
je 0x1001a4ee
mov eax, dword [ebp - 0xdc]
shl esi, 6
add esi, dword [eax + 0x58]
mov ecx, esi
call fcn.10014d6d
mov ecx, dword [esi]
or edx, 0xffffffff
mov eax, dword [esi + 4]
cmp ecx, edx
jne 0x1001a48d
cmp eax, 0x7fffffff
je 0x1001bee9
mov edx, dword [ebp - 0x10c]
cmp byte [edx + 0x1b], 0
jne 0x1001bee9
add ecx, 1
mov dword [ebp - 0xf8], ecx
mov ecx, dword [ebp - 0xfc]
adc eax, 0
mov dword [ebp - 0x11c], eax
cmp ecx, eax
jg 0x1001a4e3
jl 0x1001a4c9
mov eax, dword [ebp - 0xe8]
cmp eax, dword [ebp - 0xf8]
jae 0x1001a4e9
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xfc], ecx
jmp 0x1001a4e9
mov eax, dword [ebp - 0xe8]
mov dword [esi], eax
mov dword [esi + 4], ecx
cmp ecx, 0x7fffffff
ja 0x1001a525
jb 0x1001a4ff
or esi, 0xffffffff
cmp eax, esi
jae 0x1001a525
mov ecx, eax
mov byte [edx + 0x1d], 1
mov eax, dword [ebp - 0xfc]
add ecx, 1
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0xfc]
adc eax, 0
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0xe8]
jmp 0x1001a53d
mov eax, dword [ebp - 0xe8]
mov byte [edx + 0x1d], 0
jmp 0x1001a53d
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
cmp byte [edx + 0x1b], 0
je 0x1001a665
mov eax, dword [ebp - 0xe0]
xor esi, esi
mov ecx, dword [eax + 0x2c]
mov edi, dword [eax + 0x28]
mov dword [ebp - 0x108], edi
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x104], ecx
mov eax, edi
or eax, ecx
je 0x1001a5a1
cmp esi, 2
jg 0x1001a5a1
xor ecx, ecx
lea edx, [ebp - 0x13e]
inc ecx
call fcn.1000a6d6
movzx eax, byte [ebp - 0x13e]
mov ecx, dword [ebp - 0xfc]
inc eax
cdq
add edi, eax
adc ecx, edx
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x104], ecx
jmp 0x1001a5ce
push 8
pop eax
lea edx, [ebp - 0x108]
mov ecx, eax
call fcn.1000a6d6
mov edi, dword [ebp - 0x108]
push 5
pop eax
cmp esi, eax
jge 0x1001a5c8
and edi, 0xffffff
xor ecx, ecx
jmp 0x1001a593
mov ecx, dword [ebp - 0x104]
mov eax, edi
mov dword [ebp - 0xfc], ecx
or eax, ecx
je 0x1001a606
lea eax, [ebp - 0x134]
xor edx, edx
push eax
mov eax, dword [ebp - 0x10c]
push 0
push ecx
push edi
mov ecx, dword [eax]
call fcn.1001154e
mov ecx, dword [ebp - 0xfc]
add esp, 0x10
mov dword [ebp - 0xf4], eax
inc esi
jmp 0x1001a60c
mov eax, dword [ebp - 0xf4]
cmp esi, 0x3e8
jge 0x1001a624
test eax, eax
jne 0x1001a624
cmp dword [ebp - 0x134], eax
je 0x1001a567
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe8], edi
mov dword [edx + 0x28], edi
mov edi, dword [ebp - 0xf0]
mov dword [edx + 0x2c], ecx
test eax, eax
jne 0x1001a659
cmp dword [ebp - 0x134], 0
je 0x1001bee9
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xe8]
and dword [edx + 0x68], 0
mov byte [edx + 0x19], 0
mov byte [edx + 0x1f], 0
jmp 0x1001a67f
mov ecx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x108]
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi], eax
jmp 0x100189c7
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x104], ecx
cmp dword [ecx], 0
jne 0x1001a6b9
cmp byte [ecx + 0x1e], 0
je 0x1001a849
test byte [esi + 8], 1
mov edx, dword [edi - 0x40]
mov eax, dword [edi - 0x3c]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], eax
je 0x1001a6dd
mov eax, dword [ebp - 0xdc]
inc dword [eax + 0x23c]
test byte [esi + 8], 2
je 0x1001a6fb
mov esi, dword [ebp - 0xe0]
mov eax, dword [edi - 0x40]
mov dword [esi + 0x20], eax
mov eax, dword [edi - 0x3c]
mov dword [esi + 0x24], eax
mov esi, dword [ebp - 0xfc]
cmp byte [ecx + 0x1d], 0
je 0x1001a717
mov eax, dword [edi - 0x3c]
cmp eax, dword [ecx + 0x14]
jl 0x1001a717
jg 0x1001a713
mov eax, dword [edi - 0x40]
cmp eax, dword [ecx + 0x10]
jb 0x1001a717
mov byte [ecx + 0x1d], 0
test byte [edi + 0x18], 1
je 0x1001a725
and dword [edi + 0x10], 0
and dword [edi + 0x14], 0
cmp byte [ecx + 0x1e], 0
je 0x1001a7c2
push dword [ecx + 0x38]
call fcn.1000af1e
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf8]
pop ecx
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0xf4]
mov dword [edx + 0x44], eax
mov ecx, dword [edi + 0x14]
mov dword [edx + 0x34], ecx
test byte [edi + 0x18], 0x40
je 0x1001a76b
mov eax, dword [edi + 0x10]
mov dword [edx + 0x38], eax
xor eax, eax
inc eax
mov word [edi + 0x18], ax
jmp 0x1001a7b6
add ecx, 2
test ecx, ecx
jle 0x1001a77f
call fcn.1000aed0
mov edx, dword [ebp - 0x104]
jmp 0x1001a781
xor eax, eax
mov dword [edx + 0x38], eax
test eax, eax
je 0x10019691
push dword [edx + 0x34]
push dword [edi + 0x10]
push eax
call fcn.1008fd00
mov edx, dword [ebp - 0x104]
add esp, 0xc
mov ecx, dword [edx + 0x38]
mov eax, dword [edx + 0x34]
mov byte [ecx + eax], 0
mov ecx, dword [edx + 0x38]
mov eax, dword [edx + 0x34]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0xec]
mov byte [edx + 0x1c], 0
jmp 0x1001a7ef
mov eax, dword [esi + 8]
mov ecx, dword [ecx]
and eax, 8
push eax
push dword [edi + 0x14]
mov eax, dword [ebp - 0xf4]
push dword [edi + 0x10]
push eax
push edx
xor edx, edx
call fcn.10013478
mov edx, dword [ebp - 0x104]
add esp, 0x14
mov dword [ebp - 0xec], eax
and dword [edx + 0x68], 0
mov byte [edx + 0x19], 0
mov byte [edx + 0x1f], 0
test eax, eax
jne 0x1001a849
mov eax, dword [ebp - 0xe0]
mov edi, dword [eax + 0x7c]
test edi, edi
je 0x1001a849
cmp dword [esi + 0xc], 0
je 0x1001a849
push dword [ebp - 0xf4]
imul ecx, dword [edx + 4], 0x18
push dword [ebp - 0xf8]
mov eax, dword [eax + 4]
push dword [esi + 0xc]
push dword [ecx + eax]
push 4
pop eax
test byte [esi + 8], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xe0]
push dword [eax + 0x78]
call edi
add esp, 0x18
push 2
pop edx
jmp 0x10018193
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ecx]
test eax, eax
je 0x1001a93d
mov edx, dword [ebp - 0xe0]
cmp dword [edx + 0x7c], 0
je 0x1001a8bf
cmp dword [esi + 0xc], 0
je 0x1001a8bf
cmp byte [ecx + 0x19], 0
je 0x1001a89c
mov eax, dword [ecx + 8]
mov dword [ebp - 0x188], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x184], eax
jmp 0x1001a8bf
lea edx, [ebp - 0x188]
mov ecx, eax
call fcn.100110c6
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0xf4]
call fcn.10016749
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
mov ecx, dword [ebp - 0xf4]
mov ecx, dword [ecx]
call fcn.10013609
mov ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xec], ecx
and dword [eax + 0x68], 0
mov byte [eax + 0x1d], 0
test ecx, ecx
jne 0x1001a93d
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx + 0x7c]
test edx, edx
je 0x1001a93d
cmp dword [esi + 0xc], 0
je 0x1001a93d
imul ecx, dword [eax + 4], 0x18
push dword [ebp - 0x184]
mov eax, dword [ebp - 0xe0]
push dword [ebp - 0x188]
push dword [esi + 0xc]
mov eax, dword [eax + 4]
push dword [ecx + eax]
mov eax, dword [ebp - 0xe0]
push 9
push dword [eax + 0x78]
call edx
add esp, 0x18
test byte [esi + 8], 1
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe4]
je 0x1001bdf5
inc dword [ecx + 0x23c]
jmp 0x1001bdf5
cmp dword [esi + 4], 0
mov edx, dword [ebp - 0xe0]
je 0x1001a97c
mov eax, dword [ecx + 0x23c]
add dword [edx + 0x38], eax
mov dword [edx + 0x34], eax
and dword [ecx + 0x23c], 0
jmp 0x1001bdef
mov eax, dword [ebp - 0xdc]
add edi, 0x40
mov ecx, dword [esi + 4]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov eax, dword [eax + 0x3c]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x11c], esi
cmp byte [esi + 0x1c], 0
jne 0x1001aaa6
mov eax, dword [esi]
mov dword [ebp - 0x104], eax
test eax, eax
je 0x1001aa83
mov ecx, esi
call fcn.10016749
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
cmp byte [esi + 0x1c], al
jne 0x10018424
mov ecx, dword [ebp - 0x104]
cmp byte [esi + 0x21], al
je 0x1001aa0a
lea edx, [ebp - 0x1e0]
call fcn.100110c6
mov esi, dword [ebp - 0x1e0]
mov dword [ebp - 0x178], esi
jmp 0x1001aa1b
lea edx, [ebp - 0x178]
call fcn.10011106
mov esi, dword [ebp - 0x178]
mov dword [edi + 0x14], esi
cmp esi, 0x20
ja 0x1001aa31
mov eax, 0x210
mov word [edi + 0x18], ax
lea eax, [edi + 0x20]
jmp 0x1001aa53
test esi, esi
jle 0x1001aa3e
mov ecx, esi
call fcn.1000aed0
jmp 0x1001aa40
xor eax, eax
test eax, eax
je 0x10019691
push 0x50
pop ecx
mov word [edi + 0x18], cx
and dword [edi + 0x1c], 0
mov ecx, dword [ebp - 0x104]
xor edx, edx
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x11c]
push dword [edi + 0x10]
push esi
cmp byte [eax + 0x21], dl
je 0x1001aa74
call fcn.1001128a
jmp 0x1001aa79
call fcn.100112cc
pop ecx
pop ecx
mov dword [ebp - 0xec], eax
jmp 0x1001aa9e
cmp byte [esi + 0x1e], 0
je 0x1001aaa6
mov eax, dword [esi + 0x34]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x38]
mov dword [edi + 0x10], eax
mov eax, 0x110
mov word [edi + 0x18], ax
xor eax, eax
inc eax
jmp 0x1001806c
xor eax, eax
inc eax
mov word [edi + 0x18], ax
jmp 0x1001806c
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.10016749
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
add edi, 0x40
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
cmp byte [esi + 0x19], al
je 0x1001aaf4
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
jmp 0x1001ab00
cmp byte [esi + 0x1e], 0
je 0x1001ab11
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], ecx
jmp 0x1001a68e
cmp byte [esi + 0x1c], 0
jne 0x10018424
mov ecx, dword [esi]
test ecx, ecx
je 0x10018424
lea edx, [ebp - 0x170]
call fcn.100110c6
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x170]
jmp 0x1001a68e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp 0x10017f2e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x11c], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x1001abbe
lea edx, [ebp - 0x1a0]
call fcn.10011523
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x1a0]
and dword [ecx + 0x68], 0
mov byte [ecx + 0x1f], 0
mov byte [ecx + 0x1c], al
test eax, eax
je 0x10017f2e
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0xe0]
test eax, eax
jle 0x10017e09
jmp 0x10019851
mov byte [eax + 0x1c], 0
jmp 0x10017f2e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xf8], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x11c], eax
test eax, eax
je 0x1001ac46
mov ecx, eax
call fcn.10011401
mov edx, eax
mov dword [ebp - 0xec], edx
test edx, edx
jne 0x1001ac27
mov ecx, dword [ebp - 0x11c]
cmp byte [ecx + 0x41], al
jne 0x1001ac15
inc eax
and dword [ebp - 0xec], edx
mov dword [ebp - 0x144], eax
jmp 0x1001ac2d
and dword [ebp - 0x144], 0
call fcn.100114ac
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0xf8]
test eax, eax
sete al
mov byte [ecx + 0x1a], al
mov eax, dword [ebp - 0x144]
jmp 0x1001ab95
xor eax, eax
inc eax
mov dword [ebp - 0x144], eax
jmp 0x1001ab9d
mov edx, dword [ebp - 0xe0]
cmp dword [edx + 0x98], 0
jne 0x1001c02e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x11c], ecx
test ecx, ecx
je 0x10017e09
mov eax, dword [ecx]
test eax, eax
je 0x1001acef
cmp byte [ecx + 0x1c], 0
je 0x1001ac9c
mov dword [ebp - 0x164], 1
jmp 0x1001ace6
cmp byte [ebp - 0x115], 0x6d
lea edx, [ebp - 0x164]
mov ecx, eax
jne 0x1001acb4
call fcn.1001178b
jmp 0x1001acb9
call fcn.1001185b
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x164]
and dword [ecx + 0x68], 0
mov byte [ecx + 0x1c], al
test eax, eax
jne 0x1001ace0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 0xe4], edx
mov edx, dword [ebp - 0xe0]
mov byte [ecx + 0x19], 0
jmp 0x10017e09
mov byte [ecx + 0x1c], 1
jmp 0x1001ace6
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x11c], eax
mov ecx, dword [eax]
test ecx, ecx
je 0x1001a06c
push dword [esi + 8]
mov eax, dword [edi + 0x14]
push 0
cdq
push 0x100bc7cc
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.10013478
add esp, 0x14
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x11c]
and dword [eax + 0x68], 0
jmp 0x1001a06c
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x11c], eax
mov esi, dword [eax]
test esi, esi
je 0x1001a06c
lea eax, [ebp - 0x19c]
mov ecx, esi
push eax
mov eax, dword [edi + 0x14]
cdq
push 0
push edx
mov edx, dword [edi + 0x10]
push eax
call fcn.1001154e
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001ad35
cmp dword [ebp - 0x19c], eax
jne 0x1001ad35
mov ecx, esi
call fcn.10013609
jmp 0x1001ad2f
mov ecx, dword [esi + 4]
add edi, 0x40
xor eax, eax
mov dword [ebp - 0xf0], edi
inc eax
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
test ecx, ecx
je 0x10017f2e
cmp byte [eax + 0x1c], 0
jne 0x10018424
lea edx, [ebp - 0x1b8]
call fcn.10016d5c
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b784
push 4
pop eax
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0x1b8]
mov dword [edi], eax
mov eax, dword [ebp - 0x1b4]
mov dword [edi + 4], eax
jmp 0x10017f2e
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xf4], eax
cmp dword [eax], 0
je 0x1001a06c
test byte [edi + 0x18], 0x12
jne 0x1001ae4d
movzx edx, byte [ebp - 0x128]
mov ecx, edi
call fcn.10014b28
test eax, eax
jne 0x10019691
mov eax, dword [ebp - 0xf4]
cmp dword [esi + 0xc], 0
mov eax, dword [eax + 0x48]
setne cl
mov byte [eax], cl
lea eax, [ebp - 0x148]
mov edx, dword [edi + 0x14]
mov ecx, dword [ebp - 0xf4]
push eax
push dword [edi + 0x10]
call fcn.10016e15
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xec], ecx
mov eax, dword [eax + 0x48]
mov byte [eax], 0
test ecx, ecx
jne 0x10017f2e
mov al, byte [esi]
cmp al, 0x26
jne 0x1001ae9f
mov eax, dword [ebp - 0x148]
neg eax
jmp 0x1001aeaa
cmp al, 0x3f
mov eax, dword [ebp - 0x148]
jne 0x1001aeb0
inc eax
mov dword [ebp - 0x148], eax
test eax, eax
jle 0x1001a06c
mov eax, dword [esi + 8]
jmp 0x1001a05f
mov edx, dword [ebp - 0xe0]
xor ecx, ecx
mov eax, dword [edx + 0x50]
test eax, eax
je 0x1001af03
cmp dword [eax + 0x50], 0xbdf20da3
jne 0x1001aee8
cmp byte [eax + 0x23a], 2
jae 0x1001aee8
cmp dword [eax + 0x7c], 0
jl 0x1001aee8
inc ecx
mov eax, dword [eax + 8]
test eax, eax
jne 0x1001aecf
cmp ecx, 1
jle 0x1001af03
mov dword [ebp - 0xec], 6
jmp 0x10017e09
mov ecx, dword [edx + 4]
lea eax, [ebp - 0x160]
mov edx, dword [esi + 4]
push eax
imul eax, dword [esi + 8], 0x18
mov ecx, dword [eax + ecx + 4]
call fcn.10013b82
add edi, 0x40
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0
pop ecx
mov ecx, dword [ebp - 0x160]
push 4
pop eax
mov word [edi + 0x18], ax
mov eax, ecx
cdq
mov dword [edi], eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi + 4], edx
jne 0x10017f2e
test ecx, ecx
je 0x10017f2e
mov eax, dword [esi + 4]
imul edx, dword [esi + 8], 0x18
mov esi, ecx
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xe0]
add edx, dword [eax + 4]
mov dword [ebp - 0x11c], edx
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1001afa2
mov edx, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x1001af96
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x1001af8b
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x10017f2e
mov edi, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x1001afc1
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x1001afb6
mov edi, dword [ebp - 0xf0]
jmp 0x10017f2e
imul eax, dword [esi + 8], 0x18
mov ecx, dword [ebp - 0xe0]
mov edx, dword [esi + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx + 4]
call fcn.10013b38
jmp 0x1001948e
imul ecx, dword [esi + 4], 0x18
mov eax, dword [ebp - 0xe0]
push 2
add ecx, dword [eax + 4]
cmp byte [ebp - 0x115], 0x33
pop eax
push 5
mov ecx, dword [ecx + 4]
pop edx
cmove eax, edx
lea edx, [ebp - 0x154]
push eax
call fcn.1001383d
mov esi, dword [ebp - 0xe4]
add edi, 0x40
pop ecx
mov ecx, eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], edi
test ecx, ecx
jne 0x1001b053
mov eax, dword [ebp - 0x154]
cdq
mov dword [edi], eax
push 4
pop eax
mov dword [edi + 4], edx
mov word [edi + 0x18], ax
jmp 0x1001b05a
xor ecx, ecx
inc ecx
mov word [edi + 0x18], cx
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
jmp 0x1001bdf5
cmp dword [esi + 8], 0
mov edx, dword [esi + 4]
jne 0x1001b08e
mov eax, dword [ebp - 0xe0]
imul ecx, edx, 0x18
mov eax, dword [eax + 4]
mov eax, dword [ecx + eax + 0x14]
test byte [eax + 0x7a], 1
je 0x10017f2e
push dword [esi + 0xc]
cmp edx, 1
mov dword [ebp - 0x1d4], edx
mov eax, 0x100bd0f8
mov ecx, 0x100bd0e4
cmovne ecx, eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x1d8], eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
mov dword [ebp - 0x1d0], eax
mov eax, dword [ebp - 0xe0]
push ecx
imul ecx, edx, 0x18
mov eax, dword [eax + 4]
push dword [ecx + eax]
push 0x100bd108
call fcn.1000a501
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10019691
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
push 0
lea eax, [ebp - 0x1d8]
mov byte [ecx + 0x44], 1
push eax
push fcn.1002910f
push esi
push ecx
call fcn.100276d7
add esp, 0x14
push 4
pop ecx
cmp eax, ecx
push esi
cmove eax, dword [ebp - 0x1cc]
mov dword [ebp - 0xec], eax
call fcn.1000af1e
mov edx, dword [ebp - 0xe0]
pop ecx
mov ecx, edx
mov byte [edx + 0x44], 0
call fcn.1000b63b
cmp dword [ebp - 0xec], 7
jne 0x10017e09
call fcn.1000b9aa
jmp 0x10019691
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
call fcn.1001f91f
jmp 0x10017f2e
push dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
call fcn.10020a2c
pop ecx
jmp 0x10017f2e
push dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
call fcn.10020717
jmp 0x1001b177
push dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
call fcn.1002e225
jmp 0x1001b177
xor edx, edx
mov dword [ebp - 0xf4], edx
cmp edi, dword [ecx + 0x28]
jb 0x1001b1d5
mov ecx, edi
push 4
pop eax
test byte [ecx + 0x18], al
je 0x1001b1cf
inc edx
mov ecx, edi
mov eax, edx
shl eax, 6
sub ecx, eax
mov eax, dword [ebp - 0xdc]
cmp ecx, dword [eax + 0x28]
jae 0x1001b1b2
mov dword [ebp - 0xf4], edx
lea ecx, [edx*4 + 4]
test ecx, ecx
jle 0x1001b1ed
call fcn.1000aed0
mov edx, dword [ebp - 0xf4]
jmp 0x1001b1ef
xor eax, eax
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x100], eax
test eax, eax
je 0x10019697
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [ecx + 0x58]
xor ecx, ecx
mov dword [ebp - 0xf8], eax
test edx, edx
jle 0x1001b231
mov esi, dword [ebp - 0x100]
mov eax, dword [edi]
lea edi, [edi - 0x40]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edx
jl 0x1001b21e
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
and dword [eax + ecx*4], 0
lea ecx, [ebp - 0xe8]
call fcn.10017b9c
mov ecx, dword [ebp - 0xe0]
lea eax, [ebp - 0x174]
mov edi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x100]
add edi, 0x40
push eax
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
push dword [eax]
imul eax, dword [esi + 8], 0x18
push dword [ebp - 0xf4]
mov ecx, dword [eax + ecx + 4]
call fcn.10014546
mov esi, dword [ebp - 0xf8]
mov ecx, eax
mov eax, dword [ebp - 0x174]
add esp, 0xc
cdq
sub dword [esi], eax
sbb dword [esi + 4], edx
cmp dword [ebp - 0x174], 0
jne 0x1001b2b5
xor eax, eax
inc eax
mov word [edi + 0x18], ax
jmp 0x1001b2d5
mov dword [edi + 0x10], ecx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001b2bb
sub ecx, edx
push 0x62
pop eax
mov dword [edi + 0x14], ecx
mov word [edi + 0x18], ax
xor eax, eax
and dword [edi + 0x1c], 0
inc eax
movzx edx, byte [ebp - 0x128]
mov ecx, edi
mov byte [edi + 0x1b], al
call fcn.100149c9
push dword [ebp - 0x100]
call fcn.1000af1e
jmp 0x1001b177
mov ecx, edi
call fcn.10014d6d
push dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
push dword [edi]
lea ecx, [ecx + 0x64]
call fcn.100148fb
pop ecx
pop ecx
jmp 0x1001833f
mov edx, dword [ebp - 0xe0]
cmp dword [edx + 0x98], 0
jne 0x1001c02e
add ecx, 0x64
lea edx, [ebp - 0x1c8]
call fcn.10014958
mov edx, dword [ebp - 0xe0]
cmp eax, 0x65
je 0x10018f6f
mov eax, dword [ebp - 0x1c8]
add edi, 0x40
push 4
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
mov dword [edi], eax
mov eax, dword [ebp - 0x1c4]
mov dword [edi + 4], eax
pop eax
mov word [edi + 0x18], ax
jmp 0x10017e09
mov esi, dword [ecx + 0x70]
lea eax, [esi + 1]
mov dword [ecx + 0x70], eax
cmp esi, dword [ecx + 0x74]
jl 0x1001b3a3
mov dword [ecx + 0x74], eax
lea eax, [esi + 1]
mov ecx, dword [ecx + 0x78]
imul edx, eax, 0x18
call fcn.1000af63
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + 0x78], eax
test eax, eax
je 0x10019697
mov edx, dword [ebp - 0xe0]
imul edi, esi, 0x18
lea esi, [ecx + 0x64]
mov eax, dword [edx + 0x20]
add edi, dword [ecx + 0x78]
mov dword [edi], eax
mov eax, dword [edx + 0x24]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x23c]
mov dword [edi + 8], eax
add edi, 0xc
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ecx + 0x64]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0xf0]
jmp 0x10017e09
dec dword [ecx + 0x70]
lea edi, [ecx + 0x64]
imul esi, dword [ecx + 0x70], 0x18
mov edx, dword [ebp - 0xe0]
add esi, dword [ecx + 0x78]
mov eax, dword [esi]
mov dword [edx + 0x20], eax
mov eax, dword [esi + 4]
mov dword [edx + 0x24], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0x23c], eax
mov ecx, edi
call fcn.100149a6
add esi, 0xc
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x1001afc7
mov eax, dword [ebp - 0xdc]
mov edx, edi
mov ecx, dword [esi + 4]
shl ecx, 6
add ecx, dword [eax + 0x58]
call fcn.10014e1a
sub edi, 0x40
mov dword [ebp - 0xec], eax
cmp dword [esi + 8], 0
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
jne 0x10017f2e
mov esi, dword [esi + 4]
add edi, 0x40
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
shl esi, 6
push 8
add esi, dword [eax + 0x58]
pop eax
mov ecx, eax
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xe8], edi
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xe4]
movzx eax, word [edi + 0x18]
and dword [edi + 0x1c], 0
test al, 0x12
je 0x1001b4a0
and eax, 0xfd3f
mov ecx, 0x100
or eax, ecx
mov word [edi + 0x18], ax
mov ecx, dword [ebp - 0xdc]
jmp 0x1001bdf5
mov esi, dword [esi + 4]
shl esi, 6
add esi, dword [ecx + 0x58]
mov ecx, esi
call fcn.10014d6d
mov ecx, edi
call fcn.10014d6d
mov ecx, dword [edi + 4]
mov eax, dword [edi]
cmp dword [esi + 4], ecx
jg 0x10017f2e
jl 0x1001b4da
cmp dword [esi], eax
jae 0x10017f2e
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10017f2e
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 0xdc]
shl ecx, 6
add ecx, dword [eax + 0x58]
mov eax, dword [esi + 4]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp 0x10017f2e
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x58]
shl eax, 6
cmp dword [eax + ecx + 4], 0
jl 0x10017f2e
jg 0x10018a1a
cmp dword [eax + ecx], 0
jbe 0x10017f2e
jmp 0x10018a1a
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x58]
shl eax, 6
cmp dword [eax + ecx + 4], 0
jg 0x10017f2e
jl 0x10018a1a
cmp dword [eax + ecx], 0
jae 0x10017f2e
jmp 0x10018a1a
mov edx, dword [esi + 4]
mov ecx, dword [ecx + 0x58]
shl edx, 6
mov eax, dword [edx + ecx]
or eax, dword [edx + ecx + 4]
mov edx, dword [ebp - 0xe0]
jne 0x10017e09
jmp 0x10018f6f
mov esi, dword [esi + 4]
shl esi, 6
add esi, dword [ecx + 0x58]
mov ecx, esi
call fcn.10014c26
xor ecx, ecx
push 5
inc ecx
and dword [esi + 0x14], 0
pop eax
mov word [esi + 0x18], cx
mov byte [esi + 0x1a], al
jmp 0x10017f2e
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
cdq
push edx
push eax
mov eax, dword [ebp - 0xdc]
shl ecx, 6
add ecx, dword [eax + 0x58]
call fcn.10014dab
pop ecx
jmp 0x1001b177
mov edx, dword [esi + 8]
mov eax, dword [ebp - 0xdc]
shl edx, 6
add edx, dword [ecx + 0x58]
mov ecx, dword [esi + 4]
shl ecx, 6
add ecx, dword [eax + 0x58]
call fcn.10014e1a
jmp 0x1001948e
mov ecx, dword [esi + 8]
xor edx, edx
mov eax, ecx
mov dword [ebp - 0xf4], ecx
shl eax, 6
sub edi, eax
mov eax, dword [ebp - 0xdc]
add edi, 0x40
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xf8], eax
test ecx, ecx
jle 0x1001b62a
mov esi, ecx
mov ecx, edi
mov dword [eax + edx*4], edi
call fcn.10017b71
mov eax, dword [ebp - 0xf8]
inc edx
add edi, 0x40
cmp edx, esi
jl 0x1001b606
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
mov eax, dword [esi + 0xc]
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0xd8], eax
mov eax, dword [esi + 4]
shl eax, 6
add eax, dword [edi + 0x58]
mov dword [ebp - 0x90], eax
inc dword [eax + 0x14]
xor eax, eax
mov edx, dword [ebp - 0xd8]
inc eax
mov word [ebp - 0xb8], ax
xor eax, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb4], eax
mov byte [ebp - 0x8c], al
mov dword [ebp - 0x88], eax
cmp byte [edx + 3], al
je 0x1001b683
mov eax, dword [esi - 8]
mov dword [ebp - 0x88], eax
push dword [ebp - 0xf8]
lea eax, [ebp - 0xd8]
push ecx
push eax
call dword [edx + 0x14]
mov edx, dword [ebp - 0xf4]
lea ecx, [ebp - 0xe8]
add esp, 0xc
call fcn.10017b9c
cmp byte [ebp - 0x8c], 0
je 0x1001b6dc
push 0
push ecx
mov dl, 1
lea ecx, [ebp - 0xd0]
call fcn.100151f8
pop ecx
push eax
lea eax, [edi + 0x230]
push eax
call fcn.1000aff5
add esp, 0xc
mov dword [ebp - 0xec], 1
lea ecx, [ebp - 0xd0]
call fcn.10014c26
jmp 0x1001819e
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
shl eax, 6
add eax, dword [ecx + 0x58]
mov ecx, eax
mov dword [ebp - 0x11c], eax
call fcn.10014b9a
mov ecx, eax
mov dword [ebp - 0xec], ecx
cmp ecx, 1
jne 0x10017f2e
push 0
push ecx
mov ecx, dword [ebp - 0x11c]
mov dl, al
call fcn.100151f8
pop ecx
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
push eax
call fcn.1000aff5
jmp 0x10018123
mov edx, dword [ebp - 0xe0]
mov ecx, edx
call fcn.1000b666
test eax, eax
jne 0x1001b77b
mov ecx, dword [ebp - 0xdc]
lea ecx, [ecx + 0x230]
call fcn.1002f36a
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0xe0]
mov ecx, edx
call fcn.1000b63b
test eax, eax
je 0x10017e09
push 0x15
pop ecx
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0xdc]
lea edx, [eax + 0x230]
cmp dword [edx], 0
jne 0x1001be0f
call fcn.1000b991
push 7
test eax, eax
pop eax
cmovne ecx, eax
push 0x65
mov dword [ebp - 0xec], ecx
movzx ecx, cl
pop esi
cmp ecx, esi
jg 0x1001bef0
call fcn.10034efc
jmp 0x1001bef5
cmp dword [esi + 4], 0
mov edx, dword [ebp - 0xe0]
je 0x10019aad
mov byte [ecx + 0x238], 1
jmp 0x1001bdef
mov ecx, dword [esi + 4]
test ecx, ecx
sets dl
test dl, dl
je 0x1001b7f3
or eax, 0xffffffff
sub eax, ecx
mov ecx, eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xe0]
imul ecx, ecx, 0x18
test dl, dl
mov edx, dword [ebp - 0xf8]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + eax + 4]
setne al
inc al
mov dword [ebp - 0x11c], ecx
mov byte [ebp - 0x17c], al
push dword [ebp - 0x17c]
call fcn.1000f5da
pop ecx
mov ecx, eax
mov dword [ebp - 0xec], ecx
test ecx, ecx
jne 0x1001b85d
push dword [ebp - 0x17c]
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x11c]
call fcn.1000f639
pop ecx
mov ecx, eax
mov dword [ebp - 0xec], ecx
cmp ecx, 6
jne 0x10017f2e
mov eax, dword [ebp - 0xdc]
push 0
push dword [esi + 0xc]
add eax, 0x230
push 0x100bd13c
push eax
call fcn.1000aff5
add esp, 0x10
jmp 0x10017f2e
mov edx, dword [esi + 0xc]
mov ecx, dword [ebp - 0xe0]
call fcn.1002fe00
jmp 0x1001948e
mov edx, dword [esi + 4]
lea eax, [ecx + 0x230]
mov ecx, dword [ebp - 0xe0]
push eax
push dword [esi + 0xc]
call fcn.1002fbc2
pop ecx
pop ecx
jmp 0x1001948e
mov byte [ecx + 0x23a], 2
push dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
call fcn.1002fd3c
pop ecx
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], eax
mov byte [ecx + 0x23a], 0
jmp case.0x10017e5d.13
mov edx, dword [esi + 0xc]
and dword [ebp - 0x100], 0
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x11c], edx
mov eax, dword [edx]
mov dword [ebp - 0xf8], eax
call fcn.1000b666
test eax, eax
jne 0x1001b77b
lea eax, [ebp - 0x100]
push eax
mov eax, dword [ebp - 0xf8]
push edx
call dword [eax + 0x18]
mov edx, dword [ebp - 0xe0]
pop ecx
pop ecx
mov ecx, edx
mov dword [ebp - 0xec], eax
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
cmp dword [ebp - 0xec], eax
jne 0x10017e09
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x11c]
mov dword [eax], ecx
or eax, 0xffffffff
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xdc]
push eax
call fcn.10017bc2
pop ecx
test eax, eax
je 0x1001b991
mov ecx, dword [ebp - 0x100]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebp - 0x100]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov dword [eax + 0x64], ecx
jmp 0x10017f2e
mov eax, dword [ebp - 0xf8]
push dword [ebp - 0x100]
call dword [eax + 0x1c]
jmp 0x1001b177
mov edx, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
and dword [ebp - 0x11c], 0
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edx + 0x30]
xor edx, edx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xf8], ecx
mov eax, dword [eax + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x124], eax
mov eax, dword [edi - 0x40]
mov dword [ebp - 0xf4], eax
test eax, eax
jle 0x1001ba16
mov esi, dword [ebp - 0xf4]
inc eax
mov ecx, edi
shl eax, 6
mov edi, dword [ebp - 0xf8]
sub ecx, eax
mov dword [edi + edx*4], ecx
call fcn.10017b71
inc edx
add ecx, 0x40
cmp edx, esi
jl 0x1001b9fa
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
test eax, eax
jne 0x1001b77b
push dword [ebp - 0xf8]
mov eax, dword [ebp - 0xdc]
push dword [ebp - 0xf4]
mov byte [eax + 0x23a], 1
push dword [esi + 0xc]
mov eax, dword [ebp - 0x104]
push dword [edi]
push dword [eax + 0x60]
mov eax, dword [ebp - 0x124]
call dword [eax + 0x20]
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xec], ecx
mov byte [eax + 0x23a], 0
test ecx, ecx
jne 0x1001ba8c
mov eax, dword [ebp - 0x104]
push dword [eax + 0x60]
mov eax, dword [ebp - 0x124]
call dword [eax + 0x28]
pop ecx
mov edx, eax
jmp 0x1001ba92
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xe0]
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
test edx, edx
je 0x1001bab3
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0xf4]
lea edx, [edx + 2]
jmp 0x10018193
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x3c]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 0x60]
mov eax, dword [eax]
mov esi, dword [eax]
cmp dword [esi + 0x30], 0
jne 0x1001bae9
push 0
push 0x100bd158
jmp 0x10019986
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
test eax, eax
jne 0x1001b77b
lea eax, [ebp - 0x1c0]
push eax
push dword [edx + 0x60]
call dword [esi + 0x30]
mov edx, dword [ebp - 0xe0]
pop ecx
pop ecx
mov ecx, edx
mov dword [ebp - 0xec], eax
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
add edi, 0x40
push 4
pop eax
mov dword [ebp - 0xf0], edi
mov word [edi + 0x18], ax
mov eax, dword [ebp - 0x1c0]
mov dword [edi], eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0xe8], edi
mov dword [edi + 4], eax
jmp 0x10017e09
mov edx, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x11c], eax
mov eax, dword [eax + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
cmp dword [eax + 0x2c], ecx
jne 0x1001bb8c
push ecx
push 0x100bd180
lea eax, [edx + 0x230]
jmp 0x10019991
push 0x58
push ecx
lea eax, [ebp - 0x80]
push eax
call fcn.10090560
mov ecx, dword [ebp - 0xe0]
xor eax, eax
add esp, 0xc
inc eax
mov word [ebp - 0x60], ax
call fcn.1000b666
test eax, eax
jne 0x1001b77b
push dword [esi + 8]
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x11c]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xf8]
call dword [eax + 0x2c]
movzx edx, byte [ebp - 0x128]
lea ecx, [ebp - 0x78]
add esp, 0xc
mov dword [ebp - 0xec], eax
call fcn.100149c9
add edi, 0x40
lea edx, [ebp - 0x78]
xor eax, eax
mov dword [ebp - 0xf0], edi
mov ecx, edi
mov dword [ebp - 0xe8], edi
mov word [edi + 0x18], ax
call fcn.10014e1a
jmp 0x1001b766
mov eax, dword [ebp - 0xdc]
mov ecx, dword [esi + 4]
and dword [ebp - 0xf4], 0
mov eax, dword [eax + 0x3c]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x11c], edx
mov eax, dword [edx + 0x60]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0xf8], eax
cmp dword [eax + 0x24], 0
jne 0x1001bc45
push 0
push 0x100bd1a8
jmp 0x10019986
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
test eax, eax
jne 0x1001b77b
mov eax, dword [ebp - 0xdc]
mov byte [eax + 0x23a], 1
mov eax, dword [ebp - 0xf8]
push dword [edx + 0x60]
call dword [eax + 0x24]
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xec], ecx
mov byte [eax + 0x23a], 0
test ecx, ecx
jne 0x1001bca2
mov eax, dword [ebp - 0x11c]
push dword [eax + 0x60]
mov eax, dword [ebp - 0xf8]
call dword [eax + 0x28]
pop ecx
mov edx, eax
jmp 0x1001bca8
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe0]
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
test edx, edx
jmp 0x1001b563
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x104], eax
mov ecx, dword [edx]
mov dword [ebp - 0x11c], ecx
cmp dword [ecx + 0x34], 0
jne 0x1001bd0c
mov eax, dword [ebp - 0xdc]
push 0
add eax, 0x230
push 0x100bd1cc
push eax
call fcn.1000aff5
add esp, 0xc
mov dword [ebp - 0xec], 1
jmp 0x1001bddc
mov ecx, dword [ebp - 0xdc]
xor edx, edx
shl eax, 6
mov ecx, dword [ecx + 0x30]
mov dword [ebp - 0xf8], ecx
mov ecx, edi
sub ecx, eax
add ecx, 0x40
cmp dword [ebp - 0x104], edx
jle 0x1001bd57
mov esi, dword [ebp - 0x104]
mov edi, dword [ebp - 0xf8]
call fcn.10017b71
mov dword [edi + edx*4], ecx
inc edx
add ecx, 0x40
cmp edx, esi
jl 0x1001bd3b
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xe0]
call fcn.1000b666
test eax, eax
jne 0x1001b77b
mov eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x1a8]
push ecx
push dword [ebp - 0xf8]
push dword [ebp - 0x104]
inc dword [eax + 4]
push eax
mov eax, dword [ebp - 0x11c]
call dword [eax + 0x34]
mov edx, dword [ebp - 0xf4]
add esp, 0x10
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xec], eax
call fcn.1002f620
mov ecx, dword [ebp - 0xe0]
call fcn.1000b63b
test eax, eax
jne 0x1001b77b
cmp dword [esi + 4], eax
je 0x1001bddc
cmp dword [ebp - 0xec], eax
jne 0x1001bddc
mov eax, dword [ebp - 0x1a8]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0x104]
jmp 0x10018193
mov ecx, esi
mov edx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe4]
inc esi
cmp dword [ebp - 0xec], 0
mov dword [ebp - 0xe4], esi
je 0x10017da0
mov eax, dword [ebp - 0xdc]
push 0x65
pop esi
mov ecx, dword [ebp - 0xec]
test ecx, ecx
jne 0x100196c2
jmp 0x100196cb
push 0x14
jmp 0x1001b77d
cmp dword [esi + 8], 0
je 0x1001be4d
mov ecx, edx
call fcn.10034e73
mov ecx, dword [ebp - 0xe0]
xor eax, eax
mov esi, dword [ebp - 0xdc]
inc eax
mov byte [ecx + 0x14], al
jmp 0x1001be92
mov esi, dword [ebp - 0xdc]
mov ecx, esi
mov byte [edx + 0x14], al
call fcn.10016345
push 5
pop edx
cmp eax, edx
jne 0x1001be8f
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
mov dword [esi + 0x7c], eax
xor eax, eax
inc eax
mov dword [esi + 0x2c], edi
sub al, byte [ebp - 0x13d]
mov byte [ecx + 0x14], al
mov dword [esi + 0x80], edx
mov eax, edx
jmp 0x100196dd
xor eax, eax
inc eax
cmp dword [esi + 0x80], 0
push 0x65
pop ecx
cmove eax, ecx
jmp 0x100196dd
mov eax, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe4]
mov dword [eax + 0x7c], esi
mov dword [eax + 0x80], edx
mov dword [eax + 0x2c], edi
jmp 0x1001be88
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe4]
push 5
pop edx
mov dword [ecx + 0x7c], eax
xor eax, eax
mov dword [ecx + 0x80], edx
cmp dword [esi + 8], eax
setle al
inc eax
shl eax, 6
add eax, edi
mov dword [ecx + 0x2c], eax
jmp 0x1001be88
push 0xd
jmp 0x1001b77d
mov eax, 0x100bc790
push 0
push eax
push edx
call fcn.1000aff5
mov eax, dword [ebp - 0xdc]
add esp, 0xc
jmp 0x1001be12
mov dword [ecx + 0x2c], edi
mov eax, dword [esi + 4]
mov dword [ecx + 0x80], eax
mov eax, dword [ebp - 0xe4]
mov dword [ecx + 0x7c], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0x88], eax
cmp dword [esi + 0xc], 0
je 0x1001bf4a
push 0
push dword [esi + 0xc]
lea eax, [ecx + 0x230]
push eax
call fcn.1000aff5
mov ecx, dword [ebp - 0xdc]
add esp, 0xc
call fcn.10016345
push 5
pop ecx
cmp eax, ecx
mov eax, dword [ebp - 0xdc]
jne 0x1001bf69
mov dword [eax + 0x80], ecx
mov eax, ecx
jmp 0x100196dd
cmp dword [eax + 0x80], 0
push 1
pop eax
push 0x65
pop ecx
cmovne ecx, eax
jmp 0x1001bf62
mov eax, dword [esi + 4]
mov edx, edi
mov ecx, dword [ecx + 0x28]
shl eax, 6
sub edx, eax
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x154], edx
cmp ecx, edx
jae 0x1001bfce
mov eax, 0x100
test word [ecx + 0x18], ax
je 0x1001bfc1
call fcn.10014a3e
test eax, eax
jne 0x10019691
mov ecx, dword [ebp - 0x134]
mov eax, 0x100
mov edx, dword [ebp - 0x154]
add ecx, 0x40
mov dword [ebp - 0x134], ecx
cmp ecx, edx
jb 0x1001bf9d
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x60]
add eax, 2
or eax, 1
mov dword [edx + 0x60], eax
cmp ecx, edi
ja 0x1001c007
call fcn.10014ab1
mov ecx, dword [ebp - 0x134]
call fcn.10017b71
add ecx, 0x40
mov dword [ebp - 0x134], ecx
cmp ecx, edi
jbe 0x1001bfe4
mov edx, dword [ebp - 0xdc]
inc dword [edx + 0x5c]
mov byte [edx + 0x234], 1
mov eax, dword [esi + 4]
mov dword [edx + 0x22c], eax
mov eax, dword [ebp - 0xe4]
inc eax
mov dword [edx + 0x2c], edi
mov dword [edx + 0x7c], eax
push 0x64
jmp 0x10017d1d
cmp dword [edx + 0x30], 0xf03b7906
push 9
pop eax
push 0x15
pop esi
cmovne eax, esi
push 0x65
mov dword [ecx + 0x80], eax
movzx ecx, al
pop esi
mov dword [ebp - 0xec], eax
cmp ecx, esi
jg 0x1001c05b
call fcn.10034efc
jmp 0x1001c060
mov eax, 0x100bc790
push 0
push eax
mov eax, dword [ebp - 0xdc]
add eax, 0x230
push eax
jmp 0x1001bef9
mov edi, dword [ebp - 0xf0]
jmp 0x10019691
mov ecx, esi
jmp 0x10019697