Function at 0x20817171
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
mov al, byte [edx + 0x1e]
test al, al
jne 0x208190cd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x14]
xor edx, edx
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*4]
lea ebp, [ecx + eax*4]
mov al, byte [edx + 0x20722eb4]
test al, 2
je 0x20815421
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
mov dword [esp + 0x2c], edi
call fcn.207ed1e0
add esp, 4
mov word [edi + 0x1c], 1
jmp 0x20815496
test al, 4
je 0x20815468
mov ecx, dword [ebp + 4]
mov edi, dword [esi + 0x4c]
test al, 8
lea edx, [ecx + ecx*4]
lea ebx, [edi + edx*8]
mov dword [esp + 0x48], ebx
je 0x20815459
mov ecx, dword [ebp + 8]
test al, 0x20
lea ecx, [ecx + ecx*4]
lea edx, [edi + ecx*8]
mov dword [esp + 0x34], edx
je 0x20815492
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x28], edi
jmp 0x20815496
test al, 0x10
je 0x20815492
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea edx, [edi + ecx*8]
jmp 0x2081548e
test al, 8
je 0x2081547e
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x34], edx
jmp 0x20815492
test al, 0x10
je 0x20815492
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x44], edx
mov edi, dword [esp + 0x28]
mov al, byte [ebp]
mov ecx, eax
and ecx, 0xff
mov dword [esp + 0x2c], ecx
lea edx, [ecx - 1]
cmp edx, 0x8c
ja case.0x208154b4.12
jmp dword [edx*4 + 0x20819158]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
jne 0x2081909c
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + ecx*8]
cdq
mov dword [ecx], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 4], edx
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], eax
jmp case.0x208154b4.12
mov ecx, dword [ebx]
mov dword [esp + 0x1c], ecx
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov eax, dword [esi + 0x4c]
lea edx, [ebp + ebp*4]
mov esi, dword [eax + edx*8]
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
cdq
mov dword [ecx], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 4], edx
mov dword [esp + 0x1c], esi
jmp case.0x208154b4.12
mov word [edi + 0x1c], 4
mov eax, dword [ebp + 4]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov word [edi + 0x1c], 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [edi], edx
mov eax, dword [ecx + 4]
mov dword [edi + 4], eax
jmp case.0x208154b4.12
mov word [edi + 0x1c], 8
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [edi + 8], edx
mov eax, dword [ecx + 4]
mov dword [edi + 0xc], eax
jmp case.0x208154b4.12
mov edi, dword [ebp + 0x10]
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp], 0x1c
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x14]
not ecx
dec ecx
mov dword [ebp + 4], ecx
mov eax, dword [edx + 0x50]
cmp ecx, eax
jg 0x208190a6
mov edi, dword [esp + 0x28]
mov dl, byte [esp + 0x4c]
mov word [edi + 0x1c], 0xa2
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x14], eax
mov ecx, dword [ebp + 4]
mov dword [edi + 0x18], ecx
mov byte [edi + 0x1f], dl
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
dec ebp
lea edi, [ebp + ebp*4]
mov ebp, dword [esi + 0x38]
shl edi, 3
mov eax, edi
add eax, ebp
push eax
call fcn.207eda10
add esp, 4
test eax, eax
jne 0x208190a6
mov ebx, dword [esi + 0x38]
mov eax, dword [esp + 0x28]
add edi, ebx
push 0x80
push edi
push eax
call fcn.207eda30
add esp, 0xc
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov esi, dword [esi + 0x4c]
lea ecx, [ecx + ecx*4]
lea edx, [ebp + ebp*4]
lea edi, [esi + ecx*8]
mov ecx, eax
lea esi, [esi + edx*8]
dec eax
test ecx, ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], esi
je case.0x208154b4.12
lea ebp, [eax + 1]
mov ebx, dword [esi + 0x24]
push edi
push esi
mov dword [esi + 0x24], 0
call fcn.207edc40
mov dword [edi + 0x24], ebx
add esp, 8
add edi, 0x28
add esi, 0x28
dec ebp
jne 0x20815638
mov dword [esp + 0x28], esi
mov dword [esp + 0x48], edi
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x4c]
mov ebp, dword [ebp + 8]
push 0x100
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
lea edx, [ebp + ebp*4]
push ecx
mov dword [esp + 0x50], ecx
lea edi, [eax + edx*8]
push edi
mov dword [esp + 0x34], edi
call fcn.207eda30
add esp, 0xc
test byte [edi + 0x1d], 1
je case.0x208154b4.12
push edi
call fcn.207ed050
add esp, 4
test eax, eax
jne 0x208190cd
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov esi, dword [esi + 0x4c]
push 0x100
lea eax, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea ecx, [esi + eax*8]
lea eax, [esi + edx*8]
push ecx
push eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], eax
call fcn.207eda30
add esp, 0xc
jmp case.0x208154b4.12
mov ecx, dword [esp + 0x34]
mov ax, word [ebx + 0x1c]
mov dl, byte [ecx + 0x1c]
or dl, al
test dl, 1
je 0x20815704
push edi
call fcn.207ed750
add esp, 4
jmp case.0x208154b4.12
test al, 0x12
jne 0x20815723
mov eax, dword [esp + 0x4c]
and eax, 0xff
push eax
push ebx
call fcn.207ed0f0
add esp, 8
test eax, eax
jne 0x208190cd
mov eax, dword [esp + 0x34]
test byte [eax + 0x1c], 0x12
jne 0x20815749
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
push ecx
push eax
call fcn.207ed0f0
add esp, 8
test eax, eax
jne 0x208190cd
mov edx, dword [esp + 0x34]
mov eax, dword [ebx + 0x18]
add eax, dword [edx + 0x18]
cdq
mov ebp, eax
mov eax, dword [esp + 0x14]
mov ecx, edx
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x208190a6
jl 0x20815772
cmp ebp, eax
ja 0x208190a6
mov eax, dword [esp + 0x28]
xor edx, edx
mov cx, word [eax + 0x1c]
and ecx, 0xffe2
or ecx, 2
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x34]
cmp eax, ecx
lea ecx, [ebp + 2]
sete dl
push edx
push ecx
push eax
call fcn.207ecf70
add esp, 0xc
test eax, eax
jne 0x208190cd
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
cmp eax, edx
je 0x208157d3
mov eax, edx
mov ecx, dword [eax + 0x18]
mov esi, dword [eax + 0x14]
mov eax, dword [esp + 0x28]
mov edx, ecx
shr ecx, 2
mov edi, dword [eax + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x208157d7
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 0x14]
mov edi, dword [edx + 0x18]
mov edx, dword [eax + 0x14]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x14]
mov byte [ecx + ebp], 0
mov edx, dword [eax + 0x14]
mov cl, byte [esp + 0x4c]
mov byte [edx + ebp + 1], 0
or byte [eax + 0x1c], 0x20
mov dword [eax + 0x18], ebp
mov byte [eax + 0x1f], cl
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 0xc
jne 0x208158aa
push ebx
call fcn.207ed0a0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 2
je 0x208158aa
mov dl, byte [ebx + 0x1f]
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0xec]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x208158aa
push 1
push ebx
call fcn.207ecf50
mov eax, dword [esp + 0xf4]
add esp, 8
test eax, eax
jne 0x208158a1
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x150]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x208158a1
mov ax, word [ebx + 0x1c]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x154]
and eax, 0xffe4
or al, 4
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov word [ebx + 0x1c], ax
jmp 0x208158aa
push ebx
call fcn.207ed660
add esp, 4
mov ecx, dword [esp + 0x34]
mov esi, ecx
test byte [ecx + 0x1c], 0xc
jne 0x20815941
push esi
call fcn.207ed0a0
mov al, byte [esi + 0x1c]
add esp, 4
test al, 2
je 0x20815941
mov dl, byte [esi + 0x1f]
mov ecx, dword [esi + 0x14]
lea eax, [esp + 0xf4]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x20815941
push 1
push esi
call fcn.207ecf50
mov eax, dword [esp + 0xfc]
add esp, 8
test eax, eax
jne 0x20815938
mov eax, dword [esi + 0x14]
lea edx, [esp + 0x188]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x20815938
mov ax, word [esi + 0x1c]
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
and eax, 0xffe4
or al, 4
mov dword [esi], ecx
mov dword [esi + 4], edx
mov word [esi + 0x1c], ax
jmp 0x20815941
push esi
call fcn.207ed660
add esp, 4
mov cx, word [ebx + 0x1c]
mov dx, word [esi + 0x1c]
mov eax, ecx
and edx, 0xffff
and eax, 0xffff
or eax, edx
test al, 1
mov dword [esp + 0x18], eax
jne 0x20815ad4
and cl, byte [esi + 0x1c]
and cl, 4
cmp cl, 4
jne 0x20815a17
mov ecx, dword [ebx]
mov eax, dword [esi]
mov ebx, dword [ebx + 4]
mov esi, dword [esi + 4]
xor edx, edx
mov dl, byte [ebp]
add edx, 0xffffffb2
cmp edx, 3
ja case.default.0x2081598a
jmp dword [edx*4 + 0x2081938c]
add eax, ecx
adc esi, ebx
jmp 0x208159fe
sub eax, ecx
sbb esi, ebx
jmp 0x208159fe
push ebx
push ecx
push esi
push eax
call fcn.208487d0
jmp 0x208159fc
mov edx, ecx
or edx, ebx
je 0x20815ad4
mov edx, ecx
and edx, ebx
cmp edx, 0xffffffff
jne 0x208159ce
test eax, eax
jne 0x208159ce
cmp esi, 0x80000000
jne 0x208159ce
mov ecx, 1
xor ebx, ebx
push ebx
push ecx
push esi
push eax
call fcn.20848720
jmp 0x208159fc
mov edx, ecx
or edx, ebx
je 0x20815ad4
mov edx, ecx
and edx, ebx
cmp edx, 0xffffffff
jne 0x208159f3
mov ecx, 1
xor ebx, ebx
push ebx
push ecx
push esi
push eax
call fcn.20848970
mov esi, edx
mov dword [edi], eax
mov ax, word [edi + 0x1c]
and eax, 0xffe4
mov dword [edi + 4], esi
or al, 4
mov word [edi + 0x1c], ax
jmp case.0x208154b4.12
push ebx
call fcn.207ed430
push esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
call fcn.207ed430
mov esi, eax
xor eax, eax
mov al, byte [ebp]
add esp, 8
add eax, 0xffffffb2
mov ebx, edx
cmp eax, 3
ja case.default.0x20815a3f
jmp dword [eax*4 + 0x2081939c]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
add esi, ecx
adc ebx, eax
jmp 0x20815ac6
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
sub esi, ecx
sbb ebx, eax
jmp 0x20815ac6
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
push ecx
push edx
push ebx
push esi
call fcn.208487d0
jmp 0x20815ac2
fild qword [esp + 0x64]
fcomp qword [0x2072fd90]
fnstsw ax
test ah, 0x40
jne 0x20815ad4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push eax
push ecx
push ebx
push esi
call fcn.20848720
jmp 0x20815ac2
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ebp, eax
mov ecx, eax
or ebp, edx
je 0x20815ad4
mov ebp, edx
and eax, ebp
cmp eax, 0xffffffff
jne 0x20815ab9
mov ecx, 1
xor edx, edx
push edx
push ecx
push ebx
push esi
call fcn.20848970
mov esi, eax
mov ebx, edx
push ebx
push esi
call fcn.207e1f30
add esp, 8
test eax, eax
je 0x20815ae2
push edi
call fcn.207ed750
add esp, 4
jmp case.0x208154b4.12
mov dx, word [edi + 0x1c]
mov al, byte [esp + 0x18]
and edx, 0xffe8
mov dword [edi + 8], esi
or edx, 8
mov dword [edi + 0xc], ebx
test al, 8
mov word [edi + 0x1c], dx
jne case.0x208154b4.12
push edi
call fcn.207ed510
add esp, 4
jmp case.0x208154b4.12
mov eax, dword [ebp + 8]
mov edi, dword [esi + 0x4c]
mov edx, dword [esi + 0x24]
xor ecx, ecx
mov cl, byte [ebp + 3]
lea eax, [eax + eax*4]
test ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
lea eax, [edi + eax*8]
jle 0x20815b76
mov edi, ecx
xor ecx, ecx
mov dword [edx], eax
mov cx, word [eax + 0x1c]
test cl, 1
je 0x20815b48
mov byte [eax + 0x1e], 5
jmp 0x20815b6d
test cl, 4
je 0x20815b53
mov byte [eax + 0x1e], 1
jmp 0x20815b6d
test cl, 8
je 0x20815b5e
mov byte [eax + 0x1e], 2
jmp 0x20815b6d
test cl, 2
je 0x20815b69
mov byte [eax + 0x1e], 3
jmp 0x20815b6d
mov byte [eax + 0x1e], 4
add edx, 4
add eax, 0x28
dec edi
jne 0x20815b35
cmp byte [ebp + 1], 0xfb
jne 0x20815b93
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1e0], ecx
jmp 0x20815ba6
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1e4], eax
mov edx, dword [eax]
mov dword [esp + 0x1e0], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x4c]
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x1e8]
lea eax, [eax + eax*4]
mov word [esp + 0x204], 1
mov dword [esp + 0x1f8], ebx
lea edi, [ecx + eax*8]
xor eax, eax
push edi
push edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x210], eax
mov dword [esp + 0x214], eax
call fcn.207edc40
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x21c], 0
and eax, 0xffe1
add esp, 8
or al, 1
mov word [esp + 0x204], ax
mov eax, dword [esp + 0x1e0]
mov cl, byte [eax + 3]
test cl, cl
je 0x20815c25
mov ecx, dword [ebp - 4]
mov dword [esp + 0x218], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push edx
lea edx, [esp + 0x1e4]
push ecx
push edx
call dword [eax + 0x10]
mov al, byte [ebx + 0x1e]
add esp, 0xc
test al, al
jne 0x20818fdb
mov eax, dword [esp + 0x1e4]
test eax, eax
je 0x20815c6e
mov ecx, dword [ebp + 4]
push ecx
push eax
call fcn.207e9ab0
mov edx, dword [esp + 0x1ec]
add esp, 8
mov dword [ebp + 0x10], edx
mov byte [ebp + 1], 0xf9
mov eax, dword [esp + 0x214]
test eax, eax
je 0x20815ca7
lea eax, [esp + 0x1e8]
push eax
call fcn.207f56c0
push eax
push 0x20716418
lea ecx, [esi + 0x90]
push ebx
push ecx
call fcn.207e1e20
mov edx, dword [esp + 0x228]
add esp, 0x14
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x1e8]
and eax, 0xff
push eax
push ecx
call fcn.207ecf50
lea edx, [esp + 0x1f0]
push edx
push edi
call fcn.207edc40
push edi
call fcn.207eda10
add esp, 0x14
test eax, eax
jne 0x208190a6
jmp case.0x208154b4.12
mov eax, dword [esp + 0x34]
mov dl, byte [ebx + 0x1c]
mov cl, byte [eax + 0x1c]
or cl, dl
test cl, 1
je 0x20815d01
push edi
call fcn.207ed750
add esp, 4
jmp case.0x208154b4.12
mov edx, dword [esp + 0x34]
push edx
call fcn.207ed340
push ebx
mov esi, eax
mov dword [esp + 0x94], edx
call fcn.207ed340
xor ecx, ecx
add esp, 8
mov cl, byte [ebp]
sub ecx, 0x4a
je 0x20815d88
dec ecx
je 0x20815d6c
mov edx, dword [esp + 0x8c]
dec ecx
mov ecx, eax
mov eax, esi
je 0x20815d52
call fcn.20848940
mov esi, eax
mov eax, edx
mov dword [edi], esi
mov dword [esp + 0x8c], edx
mov dword [edi + 4], eax
jmp 0x2081771b
call fcn.20848920
mov esi, eax
mov eax, edx
mov dword [edi], esi
mov dword [esp + 0x8c], edx
mov dword [edi + 4], eax
jmp 0x2081771b
or esi, eax
mov eax, dword [esp + 0x8c]
or eax, edx
mov dword [edi], esi
mov dword [esp + 0x8c], eax
mov dword [edi + 4], eax
jmp 0x2081771b
and esi, eax
mov eax, dword [esp + 0x8c]
and eax, edx
mov dword [edi], esi
mov dword [esp + 0x8c], eax
mov dword [edi + 4], eax
jmp 0x2081771b
push ebx
call fcn.207ed570
mov eax, dword [ebp + 8]
mov ecx, dword [ebx]
cdq
add esp, 4
add ecx, eax
mov dword [ebx], ecx
mov eax, dword [ebx + 4]
adc eax, edx
mov dword [ebx + 4], eax
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 0xc
jne 0x20815e55
push ebx
call fcn.207ed0a0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 2
je 0x20815e55
mov dl, byte [ebx + 0x1f]
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x12c]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x20815e55
push 1
push ebx
call fcn.207ecf50
mov eax, dword [esp + 0x134]
add esp, 8
test eax, eax
jne 0x20815e4c
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x198]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x20815e4c
mov ax, word [ebx + 0x1c]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x19c]
and eax, 0xffe4
or al, 4
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov word [ebx + 0x1c], ax
jmp 0x20815e55
push ebx
call fcn.207ed660
add esp, 4
test byte [ebx + 0x1c], 8
je 0x20815e64
push ebx
call fcn.207ed510
add esp, 4
mov ax, word [ebx + 0x1c]
test al, 0xc
je 0x208176ca
test al, 4
je 0x20815e8a
mov edi, dword [ebp + 0xc]
mov esi, dword [ebx]
xor eax, eax
mov ecx, dword [ebx + 4]
test edi, edi
setne al
cdq
add eax, esi
adc edx, ecx
jmp 0x20815e9d
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
test ecx, ecx
je 0x20815e9d
add eax, 1
adc edx, 0
mov cx, word [ebx + 0x1c]
mov dword [ebx], eax
and ecx, 0xffe4
mov dword [ebx + 4], edx
or ecx, 4
mov word [ebx + 0x1c], cx
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 0xc
jne 0x20815f49
push ebx
call fcn.207ed0a0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 2
je 0x20815f49
mov dl, byte [ebx + 0x1f]
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x108]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x20815f49
push 1
push ebx
call fcn.207ecf50
mov eax, dword [esp + 0x110]
add esp, 8
test eax, eax
jne 0x20815f40
mov eax, dword [ebx + 0x14]
lea edx, [esp + 0x1a8]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x20815f40
mov ax, word [ebx + 0x1c]
mov ecx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1ac]
and eax, 0xffe4
or al, 4
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov word [ebx + 0x1c], ax
jmp 0x20815f49
push ebx
call fcn.207ed660
add esp, 4
test byte [ebx + 0x1c], 8
je 0x20815f58
push ebx
call fcn.207ed510
add esp, 4
mov ax, word [ebx + 0x1c]
test al, 4
jne 0x20815f75
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x20818ff0
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
and eax, 0xffe4
or al, 4
mov word [ebx + 0x1c], ax
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 4
je case.0x208154b4.12
push ebx
call fcn.207ed660
add esp, 4
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 1
jne case.0x208154b4.12
push ebx
call fcn.207ed570
add esp, 4
jmp case.0x208154b4.12
mov edi, dword [esp + 0x44]
mov ax, word [ebx + 0x1c]
mov cl, byte [edi + 0x1c]
or cl, al
test cl, 1
je 0x20815ffd
mov al, byte [ebp + 3]
test al, 0x10
je 0x20815ff6
mov ebp, dword [ebp + 8]
mov eax, dword [esi + 0x4c]
lea edx, [ebp + ebp*4]
mov cx, word [eax + edx*8 + 0x1c]
lea eax, [eax + edx*8]
and ecx, 0xffe1
mov dword [esp + 0x28], eax
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x208154b4.12
test al, 8
jmp 0x208176c4
mov cl, byte [ebp + 3]
and cl, 0x67
mov byte [esp + 0x53], cl
je 0x208161c7
cmp cl, 0x61
jne 0x2081606b
test al, 2
jne 0x20816032
test al, 0xc
je 0x20816032
mov edx, dword [esp + 0x4c]
and edx, 0xff
push edx
push ebx
call fcn.207ed0f0
mov edi, dword [esp + 0x4c]
add esp, 8
and word [ebx + 0x1c], 0xfff3
mov ax, word [edi + 0x1c]
test al, 2
jne 0x20816060
test al, 0xc
je 0x20816060
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
and edx, 0xff
push edx
push eax
call fcn.207ed0f0
mov edi, dword [esp + 0x4c]
add esp, 8
and word [edi + 0x1c], 0xfff3
jmp 0x208161c7
cmp cl, 0x62
je 0x208161c7
test al, 0xc
jne 0x20816105
push ebx
call fcn.207ed0a0
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 2
je 0x20816105
mov al, byte [ebx + 0x1f]
mov edx, dword [ebx + 0x14]
lea ecx, [esp + 0xd4]
push eax
push ecx
push edx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x20816105
push 1
push ebx
call fcn.207ecf50
mov eax, dword [esp + 0xdc]
add esp, 8
test eax, eax
jne 0x208160fc
mov ecx, dword [ebx + 0x14]
lea eax, [esp + 0x168]
push eax
push ecx
call fcn.207e2400
add esp, 8
test eax, eax
je 0x208160fc
mov cx, word [ebx + 0x1c]
mov edx, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
and ecx, 0xffe4
or ecx, 4
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov word [ebx + 0x1c], cx
jmp 0x20816105
push ebx
call fcn.207ed660
add esp, 4
test byte [ebx + 0x1c], 8
je 0x20816114
push ebx
call fcn.207ed510
add esp, 4
mov cl, byte [esp + 0x53]
cmp cl, 0x62
je 0x208161c7
mov ecx, dword [esp + 0x44]
mov edi, ecx
test byte [ecx + 0x1c], 0xc
jne 0x208161b8
push edi
call fcn.207ed0a0
mov al, byte [edi + 0x1c]
add esp, 4
test al, 2
je 0x208161b8
mov dl, byte [edi + 0x1f]
mov ecx, dword [edi + 0x14]
lea eax, [esp + 0xe4]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x208161b8
push 1
push edi
call fcn.207ecf50
mov eax, dword [esp + 0xec]
add esp, 8
test eax, eax
jne 0x208161af
mov eax, dword [edi + 0x14]
lea edx, [esp + 0x178]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x208161af
mov ax, word [edi + 0x1c]
mov ecx, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
and eax, 0xffe4
or al, 4
mov dword [edi], ecx
mov dword [edi + 4], edx
mov word [edi + 0x1c], ax
jmp 0x208161b8
push edi
call fcn.207ed660
add esp, 4
test byte [edi + 0x1c], 8
je 0x208161c7
push edi
call fcn.207ed510
add esp, 4
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x44]
push ecx
push ebx
push edx
call fcn.207edfd0
xor ecx, ecx
add esp, 0xc
mov cl, byte [ebp]
add ecx, 0xffffffbd
cmp ecx, 4
ja case.default.0x208161e6
jmp dword [ecx*4 + 0x208193ac]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x20816229
xor edx, edx
test eax, eax
setne dl
jmp 0x20816227
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x20816229
xor edx, edx
test eax, eax
setle dl
jmp 0x20816227
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x20816229
xor edx, edx
test eax, eax
setge dl
mov eax, edx
test byte [ebp + 3], 0x10
je 0x208176c2
mov ebp, dword [ebp + 8]
mov edx, dword [esi + 0x4c]
lea ecx, [ebp + ebp*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x28], ecx
mov dx, word [ecx + 0x1c]
and edx, 0xffe4
or edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x7c], eax
jmp case.0x208154b4.12
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 8]
xor edi, edi
test ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
jle 0x20816322
mov ecx, dword [esp + 0x7c]
lea ebp, [eax + 0x10]
mov dword [esp + 0x20], ecx
jmp 0x208162a3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x208162b3
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
jmp 0x208162b5
mov edx, edi
mov ecx, dword [ebp]
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [esp + 0x28]
xor ebx, ebx
add ecx, edx
mov bl, byte [eax + edi]
mov eax, dword [esi + 0x4c]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
push ecx
mov ecx, dword [esp + 0x40]
add ecx, edx
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
push eax
call fcn.207edfd0
add esp, 0xc
mov dword [esp + 0x9c], eax
test eax, eax
jne 0x20816315
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
inc edi
add edx, 4
add ebp, 4
cmp edi, eax
mov dword [esp + 0x20], edx
jl 0x2081629f
mov dword [esp + 0x7c], 0
jmp case.0x208154b4.12
test ebx, ebx
je 0x20816322
neg eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x7c], 0
jmp case.0x208154b4.12
mov eax, dword [esp + 0x9c]
test eax, eax
jge 0x20816347
mov ebp, dword [ebp + 4]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
je 0x208176ca
mov ebp, dword [ebp + 0xc]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 1
je 0x20816367
mov esi, 2
jmp 0x2081637d
push ebx
call fcn.207ed340
add esp, 4
or eax, edx
je 0x2081637b
mov esi, 1
jmp 0x2081637d
xor esi, esi
mov eax, dword [esp + 0x34]
test byte [eax + 0x1c], 1
je 0x2081638e
mov eax, 2
jmp 0x208163a4
push eax
call fcn.207ed340
add esp, 4
or eax, edx
je 0x208163a2
mov eax, 1
jmp 0x208163a4
xor eax, eax
cmp byte [ebp], 0x3d
jne 0x208163b8
lea ecx, [eax + esi*2]
xor eax, eax
mov al, byte [esi + ecx + 0x20730fb0]
jmp 0x208163c4
lea edx, [eax + esi*2]
xor eax, eax
mov al, byte [esi + edx + 0x20730fbc]
cmp eax, 2
jne 0x208163dd
mov ax, word [edi + 0x1c]
and eax, 0xffe1
or al, 1
mov word [edi + 0x1c], ax
jmp case.0x208154b4.12
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x2081771b
test byte [ebx + 0x1c], 1
jne case.0x208154b4.12
push ebx
call fcn.207ed570
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
add esp, 4
or edx, eax
jne 0x20816414
mov eax, 1
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x208154b4.12
xor eax, eax
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 1
jne case.0x208154b4.12
push ebx
call fcn.207ed570
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
not eax
not ecx
mov dword [ebx], eax
add esp, 4
mov dword [ebx + 4], ecx
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 1
je 0x20816455
mov eax, dword [ebp + 0xc]
jmp 0x208176c2
push ebx
call fcn.207ed340
mov cl, byte [ebp]
add esp, 4
cmp cl, 0x55
jne 0x208176c2
xor edx, edx
test eax, eax
sete dl
mov eax, edx
jmp 0x208176c2
mov cl, byte [ebx + 0x1c]
mov eax, dword [ebp + 0xc]
test cl, 1
jne 0x208176ca
add ebx, 0x28
dec eax
test eax, eax
jle 0x20818ecc
test byte [ebx + 0x1c], 1
je 0x20816487
mov ebp, dword [ebp + 8]
mov dword [esp + 0x48], ebx
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
test byte [ebx + 0x1c], 1
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov eax, dword [ebp + 8]
mov edi, dword [esi + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
xor edx, edx
lea eax, [eax + eax*4]
mov word [esp + 0x1cc], dx
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1d4], edx
lea eax, [edi + eax*8]
mov dword [esp + 0x20], eax
mov di, word [eax + 0x1c]
and edi, 0xffe1
or edi, 1
mov word [eax + 0x1c], di
mov eax, dword [esi + 0x30]
mov edi, dword [eax + ecx*4]
cmp dword [edi], edx
je 0x208165b6
push edi
call fcn.207e9d40
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov al, byte [edi + 0x1c]
mov ecx, dword [edi]
test al, al
mov dword [esp + 0x30], ebx
mov dword [esp + 0x60], ecx
je 0x2081654a
mov dword [esp + 0x5c], ebx
mov eax, dword [edi + 0x50]
mov dword [esp + 0x18], eax
jmp 0x208165d4
mov edx, dword [edi + 0x68]
mov eax, dword [esi + 0x54]
cmp edx, eax
jne 0x2081656b
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x5c], eax
mov ebx, dword [edi + 0x78]
mov eax, dword [edi + 0x50]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], eax
jmp 0x208165d4
mov al, byte [edi + 0x22]
test al, al
je 0x2081659b
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x230]
push ecx
push edx
call fcn.207c1dc0
mov eax, dword [esp + 0x238]
add esp, 8
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x50]
mov dword [esp + 0x18], eax
jmp 0x208165d4
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x5c]
push ecx
push edx
call fcn.207c1e80
mov eax, dword [edi + 0x50]
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x208165d4
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x30], eax
mov dword [edi + 0x68], edx
mov dword [esp + 0x18], ecx
mov ebx, eax
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x208154b4.12
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + 0x50]
ja 0x208190a6
mov ecx, dword [edi + 0x68]
mov edx, dword [esi + 0x54]
mov eax, dword [edi + 0x70]
cmp ecx, edx
mov dword [esp + 0x24], eax
jne 0x2081660a
mov edx, dword [edi + 0x74]
mov dword [esp + 0x38], edx
jmp 0x208167be
mov ecx, dword [esp + 0x18]
test ebx, ebx
lea eax, [eax + ecx*4]
mov dword [edi + 0x74], eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
mov dword [edi + 0x6c], edx
mov eax, dword [esi + 0x54]
mov dword [edi + 0x68], eax
je 0x2081662d
mov esi, ebx
jmp 0x2081667e
mov al, byte [edi + 0x22]
test al, al
je 0x20816648
mov edx, dword [esp + 0x60]
lea ecx, [esp + 0x94]
push ecx
push edx
call fcn.207c23d0
jmp 0x2081665a
mov ecx, dword [esp + 0x60]
lea eax, [esp + 0x94]
push eax
push ecx
call fcn.207c2460
mov edx, dword [esp + 0x9c]
mov esi, eax
mov eax, dword [esp + 0x64]
add esp, 8
cmp edx, eax
jb 0x20816677
mov dword [esp + 0x30], esi
mov dword [edi + 0x78], esi
jmp 0x2081667e
mov dword [edi + 0x78], 0
mov cl, byte [esi]
cmp cl, 0x80
jae 0x20816696
and ecx, 0xff
mov ebx, 1
mov dword [esp + 0x6c], ecx
jmp 0x208166aa
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.207e29e0
mov ecx, dword [esp + 0x74]
add esp, 8
mov ebx, eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x20816700
cmp dword [esp + 0x94], ecx
jae 0x20816700
xor esi, esi
xor eax, eax
mov word [esp + 0x1cc], si
mov dword [esp + 0x1c0], esi
mov al, byte [edi + 0x22]
lea edx, [esp + 0x1b0]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x6c]
push esi
push ecx
call fcn.207ee190
add esp, 0x14
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x208154b4.12
mov esi, dword [esp + 0x1c4]
mov ecx, dword [esp + 0x6c]
lea edx, [ecx + esi]
add ebx, esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x18]
test edx, edx
jbe 0x2081677c
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
sub eax, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x58], eax
cmp ebx, dword [esp + 0x10]
jae 0x20816767
mov dword [eax + esi], ecx
mov al, byte [ebx]
cmp al, 0x80
jae 0x20816740
and eax, 0xff
mov dword [esi], eax
mov eax, 1
jmp 0x2081674a
push esi
push ebx
call fcn.207e29e0
add esp, 8
add ebx, eax
mov eax, dword [esi]
push eax
call fcn.207e9ed0
mov ecx, dword [esp + 0x70]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x6c], ecx
jmp 0x2081676e
mov dword [eax + esi], 0
mov edx, dword [esp + 0x18]
add esi, 4
dec edx
mov dword [esp + 0x18], edx
jne 0x20816723
lea ecx, [esp + 0x1b0]
push ecx
call fcn.207ed290
mov edx, dword [esp + 0x14]
add esp, 4
cmp ebx, edx
mov word [esp + 0x1cc], 1
ja 0x208168e0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
ja 0x208168e0
cmp ebx, edx
jne 0x208167be
cmp eax, ecx
jne 0x208168e0
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
cmp dword [edx + esi*4], 0
je 0x2081687c
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x20816809
mov ebp, dword [esp + 0x20]
push ebp
call fcn.207ed1e0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x3c]
push ebp
mov ecx, dword [eax + esi*4]
mov eax, dword [edx + esi*4]
add eax, ebx
push ecx
push eax
call fcn.207e9f90
mov al, byte [esp + 0x5c]
add esp, 0x10
mov byte [ebp + 0x1f], al
jmp 0x2081689e
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + esi*4]
push edx
call fcn.207e9ed0
mov ebp, dword [esp + 0x24]
mov ebx, eax
lea eax, [esp + 0x1b4]
push ebp
push eax
call fcn.207edc40
mov eax, dword [esp + 0x44]
xor edx, edx
mov dl, byte [edi + 0x22]
lea ecx, [esp + 0x1bc]
push ecx
mov ecx, dword [eax + esi*4]
push edx
mov edx, dword [esp + 0x74]
push ebx
push ecx
push edx
call fcn.207ee190
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x208154b4.12
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c4]
push ebp
mov ecx, dword [eax + esi*4]
push ecx
push edx
call fcn.207e9f90
mov al, byte [esp + 0x58]
add esp, 0xc
mov byte [ebp + 0x1f], al
jmp 0x2081689e
cmp byte [ebp + 1], 0xf8
jne 0x2081689a
mov ecx, dword [ebp + 0x10]
mov ebp, dword [esp + 0x20]
push 0x80
push ecx
push ebp
call fcn.207eda30
add esp, 0xc
jmp 0x2081689e
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x1d4]
test eax, eax
je 0x208168ce
mov dx, word [ebp + 0x1c]
and edx, 0xfe7f
or edx, 0x20
mov word [ebp + 0x1c], dx
mov eax, dword [esp + 0x1c4]
mov dword [ebp + 0x14], eax
mov ecx, dword [esp + 0x1d4]
mov dword [ebp + 0x24], ecx
push ebp
call fcn.207ed050
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x208154b4.12
mov dword [esp + 0x10], 0xb
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 0x4c]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], edx
lea edx, [ebp + ebp*4]
lea ebx, [ecx + eax*8]
lea ebp, [ebx + edx*8 - 0x28]
cmp ebx, ebp
ja case.0x208154b4.12
lea esi, [ebx + 0x1c]
lea edi, [esi - 0x1c]
mov eax, 0x66666667
mov ecx, edi
sub ecx, ebx
imul ecx
mov ecx, dword [esp + 0x2c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ecx]
cmp dl, 0x61
jne 0x20816963
mov ax, word [esi]
test al, 2
jne 0x20816959
test al, 0xc
je 0x20816959
mov edx, dword [esp + 0x4c]
and edx, 0xff
push edx
push edi
call fcn.207ed0f0
add esp, 8
and word [esi], 0xfff3
jmp 0x20816a09
cmp dl, 0x62
je 0x20816a09
test byte [esi], 0xc
jne 0x208169fb
push edi
call fcn.207ed0a0
mov al, byte [esi]
add esp, 4
test al, 2
je 0x208169fb
mov al, byte [esi + 3]
mov edx, dword [esi - 8]
lea ecx, [esp + 0xfc]
push eax
push ecx
push edx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x208169fb
push 1
push edi
call fcn.207ecf50
mov eax, dword [esp + 0x104]
add esp, 8
test eax, eax
jne 0x208169f2
mov ecx, dword [esi - 8]
lea eax, [esp + 0x170]
push eax
push ecx
call fcn.207e2400
add esp, 8
test eax, eax
je 0x208169f2
mov cx, word [esi]
mov edx, dword [esp + 0x170]
mov eax, dword [esp + 0x174]
and ecx, 0xffe4
or ecx, 4
mov dword [edi], edx
mov dword [edi + 4], eax
mov word [esi], cx
jmp 0x208169fb
push edi
call fcn.207ed660
add esp, 4
test byte [esi], 8
je 0x20816a09
push edi
call fcn.207ed510
add esp, 4
add esi, 0x28
lea edx, [esi - 0x1c]
cmp edx, ebp
jbe 0x20816916
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
xor ebx, ebx
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
lea ecx, [edx + ecx*8]
lea eax, [eax + eax*4]
xor edx, edx
mov dword [esp + 0x30], ebx
mov dl, byte [esi + 0x9b]
lea edi, [ecx + eax*8 - 0x28]
cmp ecx, edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edx
ja 0x20816bd5
mov eax, ecx
lea edi, [eax + 0x1c]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x20816b6f
mov edx, dword [esp + 0x20]
lea ebx, [edi - 0x1c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, edx
imul ecx
mov eax, dword [esp + 0x38]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dl, byte [edx + eax]
cmp dl, 0x61
jne 0x20816acb
mov ax, word [edi]
test al, 2
jne 0x20816ac1
test al, 0xc
je 0x20816ac1
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
push ecx
push ebx
call fcn.207ed0f0
add esp, 8
and word [edi], 0xfff3
jmp 0x20816b6f
cmp dl, 0x62
je 0x20816b6f
test byte [edi], 0xc
jne 0x20816b61
push ebx
call fcn.207ed0a0
mov al, byte [edi]
add esp, 4
test al, 2
je 0x20816b61
mov dl, byte [edi + 3]
mov ecx, dword [edi - 8]
lea eax, [esp + 0x104]
push edx
push eax
push ecx
call fcn.207e2220
add esp, 0xc
test eax, eax
je 0x20816b61
push 1
push ebx
call fcn.207ecf50
mov eax, dword [esp + 0x10c]
add esp, 8
test eax, eax
jne 0x20816b58
mov eax, dword [edi - 8]
lea edx, [esp + 0x1a0]
push edx
push eax
call fcn.207e2400
add esp, 8
test eax, eax
je 0x20816b58
mov ax, word [edi]
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
and eax, 0xffe4
or al, 4
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov word [edi], ax
jmp 0x20816b61
push ebx
call fcn.207ed660
add esp, 4
test byte [edi], 8
je 0x20816b6f
push ebx
call fcn.207ed510
add esp, 4
mov ecx, dword [esp + 0x18]
lea edx, [edi - 0x1c]
push ecx
push edx
call fcn.207e9df0
mov ebx, eax
push ebx
call fcn.207e9ed0
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x38], eax
cdq
add ecx, eax
mov eax, dword [esp + 0xb0]
adc eax, edx
push 0
push ebx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
call fcn.207e2ac0
mov ecx, dword [esp + 0x44]
add edi, 0x28
add ecx, eax
add esp, 0x14
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
lea eax, [edi - 0x1c]
cmp eax, ecx
jbe 0x20816a6e
mov ebx, dword [esp + 0x30]
mov eax, ebx
cdq
push edx
push eax
call fcn.207e2ac0
mov edi, eax
add ebx, edi
mov eax, ebx
mov dword [esp + 0x38], ebx
cdq
push edx
push eax
call fcn.207e2ac0
add esp, 0x10
cmp edi, eax
jge 0x20816bfd
inc ebx
mov dword [esp + 0x30], ebx
xor eax, eax
cdq
mov edi, eax
mov eax, ebx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], edi
cdq
mov ebx, eax
mov eax, dword [esp + 0xa4]
sub ebx, edi
mov edi, dword [esp + 0xcc]
mov ecx, edx
mov edx, dword [esp + 0xa0]
sbb ecx, edi
add ebx, edx
mov edx, dword [esp + 0x14]
adc ecx, eax
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
ja 0x208190a6
jb 0x20816c4e
cmp ebx, eax
ja 0x208190a6
mov ebp, dword [ebp + 0xc]
mov ecx, dword [esi + 0x4c]
push 0
push ebx
lea eax, [ebp + ebp*4]
lea edi, [ecx + eax*8]
push edi
mov dword [esp + 0x34], edi
call fcn.207ecf70
add esp, 0xc
test eax, eax
jne 0x208190cd
mov eax, dword [esp + 0x30]
mov ebp, dword [edi + 0x14]
cmp eax, 0x80
jae 0x20816c8b
mov byte [ebp], al
mov esi, 1
jmp 0x20816c97
push eax
push ebp
call fcn.207e2740
add esp, 8
mov esi, eax
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
cmp edi, eax
ja 0x20816d08
mov edx, dword [esp + 0x18]
push edx
push edi
call fcn.207e9df0
add esp, 8
cmp eax, 0x80
jae 0x20816cc2
mov byte [esi + ebp], al
mov eax, 1
jmp 0x20816ccf
push eax
lea eax, [esi + ebp]
push eax
call fcn.207e2740
add esp, 8
add esi, eax
mov eax, dword [esp + 0x24]
add edi, 0x28
cmp edi, eax
jbe 0x20816ca3
mov edi, dword [esp + 0x20]
cmp edi, eax
ja 0x20816d08
mov ecx, dword [esp + 0x18]
mov edx, ebx
push ecx
sub edx, esi
push edi
lea eax, [esi + ebp]
push edx
push eax
call fcn.207e9ef0
add esi, eax
mov eax, dword [esp + 0x34]
add edi, 0x28
add esp, 0x10
cmp edi, eax
jbe 0x20816ce4
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, 0x50
test ecx, ecx
mov dword [eax + 0x18], ebx
mov word [eax + 0x1c], dx
mov dword [eax + 0x20], 0
je 0x20816d3c
mov ecx, dword [esp + 0xc8]
mov word [eax + 0x1c], dx
mov dword [eax], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
mov byte [eax + 0x1f], 1
jmp case.0x208154b4.12
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x20816d5d
cmp dword [eax + 0x90], 1
jle case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov eax, dword [eax + 8]
lea edx, [ebp + ebp*2]
mov edi, dword [eax + edx*8 + 4]
push edi
call fcn.207c82c0
add esp, 4
test eax, eax
jne case.0x208154b4.12
push edi
call fcn.207c1950
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esi + 0xec], 1
jmp case.0x208154b4.12
mov edi, dword [esp + 0x14]
mov bl, byte [ebp + 4]
mov al, byte [ebp + 8]
cmp dword [edi + 0x90], 1
jle 0x20816de7
test bl, bl
je 0x20816de7
mov cl, byte [edi + 0x1c]
test cl, cl
jne 0x20816de7
test al, al
mov eax, 0x2072306c
jne 0x20816dc4
mov eax, 0x20723064
push eax
push 0x20723030
add esi, 0x90
push edi
push esi
call fcn.207e1e20
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.0x208154b4.12
cmp bl, byte [edi + 0x1c]
jne 0x2081900e
test bl, bl
jne 0x20816e00
mov eax, 0x20723000
push eax
push edi
jmp 0x20818d90
test al, al
mov eax, 0x20722fd4
jne 0x20816e0e
mov eax, 0x20722fa8
push eax
push edi
jmp 0x20818d90
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je case.0x208154b4.12
mov ecx, dword [ebp + 8]
push ecx
push eax
call fcn.207c0f20
mov ebx, eax
add esp, 8
cmp ebx, 5
mov dword [esp + 0x10], ebx
je 0x20819060
test ebx, ebx
je case.0x208154b4.12
cmp ebx, 8
jne 0x20818ff5
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 0xc]
test eax, eax
jge 0x20816e73
or edx, 0xffffffff
sub edx, eax
mov eax, edx
neg ebp
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10c]
inc ebp
push ecx
mov ecx, dword [eax + 8]
push ebp
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.207c6ee0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x118]
cdq
add esp, 0xc
mov dword [edi], eax
jmp 0x20817dbb
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x44]
mov edx, dword [ebx + 8]
lea ecx, [eax + eax*2]
push edi
lea esi, [edx + ecx*8]
call fcn.207ed570
mov ecx, dword [ebp + 8]
mov eax, dword [edi]
mov edx, dword [esi + 4]
inc ecx
push eax
push ecx
push edx
call fcn.207c7040
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
add esp, 0x10
test eax, eax
jne 0x20816ef1
mov eax, dword [esi + 0x14]
mov ecx, dword [edi]
mov dword [eax], ecx
mov eax, dword [ebx + 0xc]
or al, 0x10
mov dword [ebx + 0xc], eax
jmp 0x20816efe
cmp eax, 1
jne 0x20816efe
mov edx, dword [esi + 0x14]
mov al, byte [edi]
mov byte [edx + 0x58], al
cmp dword [ebp + 4], 1
jne case.0x208154b4.12
push ebx
call fcn.207ea8e0
add esp, 4
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov edx, dword [edi + 8]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x20816fbe
lea ecx, [esp + 0x98]
push ecx
push 1
push eax
call fcn.207c6ee0
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x10], eax
jne case.0x208154b4.12
mov edx, dword [esp + 0x98]
mov eax, dword [ebp + 8]
cmp edx, eax
je case.0x208154b4.12
mov eax, dword [esi + 0x90]
push eax
push edi
call fcn.207e0aa0
push 0x20721ac8
push edi
call fcn.207e1980
mov dword [esi + 0x90], eax
mov ebp, dword [ebp + 4]
mov edx, dword [edi + 8]
add esp, 0x10
lea ecx, [ebp + ebp*2]
mov eax, dword [edx + ecx*8 + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0x98]
cmp ecx, eax
je 0x20816fa8
push ebp
push edi
call fcn.207f0560
add esp, 8
push edi
call fcn.207ea8e0
add esp, 4
mov dword [esp + 0x10], 0x11
jmp case.0x208154b4.12
mov dword [esp + 0x10], ebx
mov dword [esp + 0x98], ebx
jmp 0x20816f50
mov edx, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x14]
mov ebx, dword [ebp + 8]
lea ecx, [edi + edi*2]
mov edx, dword [edx + 8]
cmp al, 9
lea ecx, [edx + ecx*8]
mov edx, dword [ecx + 4]
mov dword [esp + 0x58], edx
jne 0x20817010
mov eax, dword [ecx + 0x14]
mov cl, byte [esi + 0x9b]
mov dword [esp + 0x18], 1
mov al, byte [eax + 0x58]
cmp al, cl
jae 0x20817018
mov byte [esi + 0x9b], al
jmp 0x20817018
mov dword [esp + 0x18], 0
mov al, byte [ebp + 3]
test al, al
je 0x20817037
mov edx, dword [esi + 0x4c]
lea ecx, [ebx + ebx*4]
lea ebx, [edx + ecx*8]
push ebx
mov dword [esp + 0x38], ebx
call fcn.207ed570
mov ebx, dword [ebx]
add esp, 4
mov ecx, dword [esp + 0x2c]
push 1
lea eax, [ebp - 0x14]
push edi
push eax
push ecx
push esi
call fcn.208193c0
mov edi, eax
add esp, 0x14
test edi, edi
je 0x208190cd
mov edx, dword [edi]
mov ecx, dword [esp + 0x18]
mov byte [edi + 0x1c], 1
mov eax, dword [ebp + 0x10]
push edx
mov edx, dword [esp + 0x5c]
push eax
push ecx
push ebx
push edx
call fcn.207c1a80
mov ebx, eax
mov al, byte [ebp + 1]
add esp, 0x14
cmp al, 0xfa
mov dword [esp + 0x10], ebx
jne 0x208170a0
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x4c], eax
add eax, 5
mov dword [edi + 0x48], eax
mov eax, dword [esi]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x4c]
mov edx, dword [ecx + 0x14]
mov cl, byte [edx + 0x59]
mov byte [eax + 4], cl
jmp 0x208170ad
lea edx, [edi + 0x23]
mov dword [edi + 0x4c], 0
mov dword [edi + 0x48], edx
test ebx, ebx
je 0x208170ea
cmp ebx, 5
je 0x20819074
cmp ebx, 0x10
jne 0x20818ff5
mov dl, byte [ebp + 1]
mov dword [edi], 0
cmp dl, 0xfa
mov dword [esp + 0x10], 0
setne al
test al, al
mov byte [edi + 0x21], al
sete al
mov byte [edi + 0x22], al
jmp case.0x208154b4.12
mov ecx, dword [edi]
push ecx
call fcn.207c70c0
add esp, 4
test al, 0xf0
jne 0x20819088
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x20817110
cmp ecx, 2
jne 0x20819088
mov dl, al
and dl, 1
shr eax, 1
mov cl, dl
and al, 1
test cl, cl
mov byte [edi + 0x21], dl
mov byte [edi + 0x22], al
je 0x2081712f
cmp byte [ebp + 1], 0xfa
je 0x20819088
test al, al
je case.0x208154b4.12
cmp byte [ebp + 1], 0xfa
jne 0x20819088
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push ebp
push eax
push esi
call fcn.208193c0
mov edi, eax
add esp, 0x14
test edi, edi
je 0x208190cd
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x1c], 1
mov eax, dword [0x20730fc8]
lea ebx, [edi + 0x30]
xor byte [ebx + 0x50], dl
xor byte [ebx + 0x50], dl
push 0x1f4
push 1
push 0
push ecx
call fcn.207c8e70
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x20817242
mov edx, dword [ebx]
push 1
push edx
call fcn.207c0f20
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x20817242
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x20817220
mov ecx, dword [ebx]
lea eax, [esp + 0xd0]
push 2
push eax
push ecx
call fcn.207c66f0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x2081720c
mov edx, dword [edi]
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [ebx]
push eax
push 1
push ecx
push edx
call fcn.207c1a80
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
mov dword [edi + 0x4c], ebp
mov eax, dword [esi]
add esp, 0x14
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x14]
mov al, byte [edx + 0x59]
mov byte [ebp + 4], al
mov ecx, dword [edi + 0x4c]
add ecx, 5
mov dword [edi + 0x48], ecx
mov byte [edi + 0x21], 0
mov al, byte [edi + 0x21]
test al, al
sete dl
mov byte [edi + 0x22], dl
jmp case.0x208154b4.12
mov edx, dword [edi]
mov eax, dword [ebx]
push edx
push 0
push 1
push 1
push eax
call fcn.207c1a80
lea ecx, [edi + 0x23]
add esp, 0x14
mov dword [esp + 0x10], eax
mov byte [edi + 0x21], 1
mov dword [edi + 0x48], ecx
mov al, byte [edi + 0x21]
test al, al
sete dl
mov byte [edi + 0x22], dl
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
push 0
lea ecx, [ebp - 0x14]
push 0xffffffffffffffff
push ecx
push eax
push esi
call fcn.208193c0
add esp, 0x14
test eax, eax
je 0x208190cd
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov dl, byte [ebp + 8]
lea ecx, [eax + 0x23]
mov byte [eax + 0x1f], dl
mov dword [eax + 0x48], ecx
mov byte [eax + 0x21], 1
mov byte [eax + 0x22], 0
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + ebp*4]
push eax
push esi
call fcn.207e8e00
mov ecx, dword [esi + 0x30]
add esp, 8
mov dword [ecx + ebp*4], 0
jmp case.0x208154b4.12
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x30]
mov edi, dword [eax + edx*4]
cmp dword [edi], 0
je 0x2081745e
cmp ecx, 6
mov byte [edi + 0x1c], 0
je 0x208172d6
cmp ecx, 0x54
je 0x208172d6
xor eax, eax
jmp 0x208172db
mov eax, 1
mov ecx, dword [edi + 0x48]
mov byte [ecx], al
mov al, byte [edi + 0x21]
test al, al
je 0x20817376
mov edx, dword [esp + 0x44]
push edx
call fcn.207ed340
mov ecx, dword [ebp + 8]
add esp, 4
test ecx, ecx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jne 0x20817320
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
mov byte [edi + 0x19], 0
mov byte [edi + 0x20], 1
jmp case.0x208154b4.12
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc0]
lea eax, [esp + 0x54]
push eax
mov eax, dword [edi]
push 0
push ecx
push edx
push 0
push 0
push eax
call fcn.207c2a10
mov ebx, eax
add esp, 0x1c
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [edi + 8], ecx
test eax, eax
sete al
mov dword [edi + 0xc], edx
mov byte [edi + 0x19], al
jmp 0x208173e0
mov ecx, dword [edi + 0x4c]
mov eax, dword [ebp + 0xc]
mov dx, word [ebp + 0x10]
mov dword [esp + 0x134], ecx
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
mov word [esp + 0x138], dx
mov byte [esp + 0x13a], 0
lea edx, [ecx + eax*8]
lea eax, [esp + 0x54]
push eax
push 0
push 0
lea ecx, [esp + 0x140]
mov dword [esp + 0x148], edx
mov edx, dword [edi]
push 0
push ecx
push 0
push edx
mov byte [esp + 0x157], 0
call fcn.207c2a10
mov ebx, eax
add esp, 0x1c
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov byte [edi + 0x19], al
mov eax, dword [edi + 0x48]
xor ecx, ecx
mov byte [edi + 0x20], 0
mov dword [edi + 0x68], ecx
mov byte [eax], cl
mov eax, dword [esp + 0x2c]
cmp eax, 0x78
je 0x20817440
cmp eax, 6
je 0x20817440
cmp dword [esp + 0x54], ecx
jl 0x2081742c
mov edx, dword [edi]
lea ecx, [esp + 0x54]
push ecx
push edx
call fcn.207c3490
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov byte [edi + 0x19], al
mov eax, dword [esp + 0x54]
jmp 0x208176c2
mov eax, dword [edi]
push eax
call fcn.207c2fa0
add esp, 4
mov dword [esp + 0x54], eax
jmp 0x208176c2
cmp dword [esp + 0x54], ecx
jge 0x20817455
mov edx, dword [edi]
lea ecx, [esp + 0x54]
push ecx
push edx
call fcn.207c2fc0
jmp 0x2081740f
mov dword [esp + 0x54], ecx
jmp case.0x208154b4.12
mov al, byte [edi + 0x1e]
test al, al
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov edx, dword [ebp + 4]
mov esi, dword [esi + 0x30]
xor ecx, ecx
mov esi, dword [esi + edx*4]
cmp dword [esi], 0
je 0x208174e2
cmp al, 0x7e
jne 0x20817491
mov eax, dword [esi + 0x4c]
mov byte [eax + 6], 1
lea ecx, [esp + 0x128]
push ecx
mov ecx, dword [esp + 0x48]
push 0
mov eax, dword [ecx + 0x18]
cdq
push edx
mov edx, dword [ecx + 0x14]
push eax
mov eax, dword [esi]
push 0
push edx
push eax
call fcn.207c2a10
mov ecx, dword [esi + 0x4c]
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
mov byte [ecx + 6], 0
jne case.0x208154b4.12
mov eax, dword [esp + 0x128]
xor ecx, ecx
test eax, eax
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
sete cl
cmp byte [ebp], 0x7e
jne 0x208174fd
test ecx, ecx
je case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
test ecx, ecx
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0x4c]
mov edi, dword [esp + 0x44]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
push edi
mov dword [esp + 0x30], edx
lea ebx, [ecx + eax*8]
call fcn.207ed570
mov edx, dword [edi]
mov ecx, dword [esi + 0x30]
mov eax, dword [edi + 4]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x11c], eax
add esp, 4
mov edi, dword [ecx + edx*4]
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x18], eax
je case.0x208154b4.12
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x18]
lea ecx, [esp + 0xe8]
mov dword [esp + 0x20], eax
push ecx
push ebx
push eax
call fcn.207ea550
mov eax, dword [esp + 0xf4]
lea edx, [esp + 0x80]
sub ebx, eax
mov ecx, dword [esp + 0x24]
mov eax, ebx
push edx
mov dword [esp + 0x3c], eax
push 0
cdq
push edx
push eax
mov eax, dword [esp + 0x3c]
push 0
push eax
push ecx
mov dword [edi + 0x68], 0
call fcn.207c2a10
mov ebx, eax
add esp, 0x28
test ebx, ebx
jne 0x20818ff5
mov eax, dword [esp + 0x74]
test eax, eax
jge 0x208175e1
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x74]
push edx
push eax
call fcn.207c2fc0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
add esp, 8
test eax, eax
jne 0x208176ca
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x74]
push ecx
push edx
push eax
push 0
push edi
call fcn.207ea6f0
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov eax, dword [esp + 0x74]
test eax, eax
jg 0x208176ca
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x180]
push ecx
push edx
call fcn.207ea5e0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov ecx, dword [esp + 0x180]
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x184]
cmp ecx, eax
jne 0x2081765a
cmp edx, dword [esp + 0x118]
je 0x208176ca
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x208176d7
mov edi, dword [esp + 0x44]
lea ebx, [esp + 0x110]
push ebx
push 0
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push edx
push ecx
push 0
push 0
push eax
call fcn.207c2a10
mov edx, dword [edi]
mov dword [esp + 0x2c], eax
mov dword [esi + 8], edx
mov eax, dword [edi + 4]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x12c]
add esp, 0x1c
test eax, eax
sete cl
mov byte [esi + 0x19], cl
mov byte [esi + 0x1c], 0
mov dword [esi + 0x68], 0
test eax, eax
je case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov al, byte [esi + 0x1e]
test al, al
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + ebp*4]
mov ecx, dword [eax + 0x58]
mov dword [edi], ecx
mov edx, dword [eax + 0x5c]
mov dword [edi + 4], edx
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ebp*4]
mov ebx, dword [eax + 0x58]
add ebx, 1
mov dword [eax + 0x58], ebx
mov esi, dword [eax + 0x5c]
adc esi, 0
mov dword [eax + 0x5c], esi
mov cx, word [edi + 0x1c]
and ecx, 0xffe4
or ecx, 4
mov word [edi + 0x1c], cx
jmp case.0x208154b4.12
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov ebp, dword [eax + edx*4]
mov eax, dword [ebp]
cmp eax, ecx
je 0x20817935
push eax
mov dword [esp + 0x24], ecx
call fcn.207c70c0
and eax, 3
add esp, 4
cmp al, 1
jne 0x20819088
mov al, byte [ebp + 0x1b]
test al, al
jne 0x2081783d
mov al, byte [ebp + 0x1d]
test al, al
je 0x20817789
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x40], edx
jmp 0x20817801
mov ecx, dword [ebp]
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.207c28a0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
cmp dword [esp + 0x80], ebx
je 0x208177c2
mov dword [esp + 0x3c], 1
mov dword [esp + 0x40], ebx
jmp 0x20817814
mov eax, dword [ebp]
lea edx, [esp + 0x3c]
push edx
push eax
call fcn.207c1dc0
mov eax, dword [esp + 0x44]
add esp, 8
cmp eax, 0xffffffff
jne 0x208177ec
cmp dword [esp + 0x40], 0x7fffffff
jne 0x208177ec
mov byte [ebp + 0x1b], 1
jmp 0x20817801
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], 0x7fffffff
ja 0x2081782e
jb 0x20817814
cmp dword [esp + 0x3c], 0xffffffff
jae 0x2081782e
mov byte [ebp + 0x1d], 1
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
add ecx, 1
adc edx, 0
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x14], edx
jmp 0x20817832
mov byte [ebp + 0x1d], 0
mov al, byte [ebp + 0x1b]
test al, al
je 0x20817926
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x38]
mov edx, dword [ecx + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
test ebx, ebx
jne 0x20817880
mov ecx, eax
and ecx, 0xffffff
cmp ecx, eax
jne 0x2081787c
cmp ebx, edx
jne 0x2081787c
add eax, 1
adc edx, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
jmp 0x208178b6
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x3c]
push eax
push 8
call fcn.20814f00
add esp, 8
cmp ebx, 5
jge 0x208178ae
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
and eax, 0xffffff
and edx, 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
jmp 0x208178b6
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, eax
or ecx, edx
je 0x208178e9
lea ecx, [esp + 0x80]
push ecx
push 0
push edx
mov edx, dword [ebp]
push eax
push 0
push 0
push edx
call fcn.207c2a10
mov edx, dword [esp + 0x5c]
add esp, 0x1c
inc ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
cmp ebx, 0x64
jge 0x20817905
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x20817905
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x20817855
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov dword [ecx + 0x3c], edx
jne 0x20817926
mov eax, dword [esp + 0x80]
test eax, eax
je 0x20819092
mov byte [ebp + 0x19], 0
mov byte [ebp + 0x20], 0
mov dword [ebp + 0x68], 0
mov ax, word [edi + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
and eax, 0xffe4
or al, 4
mov word [edi + 0x1c], ax
mov dword [edi], ecx
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov edx, dword [esp + 0x2bc]
mov ecx, dword [ebp + 8]
mov eax, dword [edx + 0x4c]
lea ecx, [ecx + ecx*4]
mov edi, dword [edx + 0x30]
lea esi, [eax + ecx*8]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp + 4]
mov ebx, dword [edi + ecx*4]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0xbc], ecx
mov cl, byte [ebp + 3]
mov dword [esp + 0xb8], edi
test cl, 1
je 0x2081799c
inc dword [edx + 0xa0]
test byte [ebp + 3], 2
je 0x208179b3
mov ecx, dword [esp + 0x14]
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x34], edx
jmp 0x208179b7
mov ecx, dword [esp + 0x14]
mov dl, byte [ebx + 0x1d]
test dl, dl
je 0x208179d5
mov edx, dword [eax + 4]
cmp edx, dword [ebx + 0x14]
jl 0x208179d5
jg 0x208179d1
mov eax, dword [eax]
mov edx, dword [ebx + 0x10]
cmp eax, edx
jb 0x208179d5
mov byte [ebx + 0x1d], 0
test byte [esi + 0x1c], 1
je 0x208179e3
xor eax, eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov al, byte [ebx + 0x1e]
test al, al
je 0x20817a94
mov al, byte [ebx + 0x1f]
test al, al
jne 0x20817a02
mov edx, dword [ebx + 0x38]
push edx
push ecx
call fcn.207e0aa0
add esp, 8
mov eax, dword [esp + 0xbc]
mov dword [ebx + 0x40], edi
mov dword [ebx + 0x44], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x34], eax
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x24]
je 0x20817a6c
mov dl, byte [ebx + 0x1f]
test dl, dl
jne 0x20817a6c
add eax, 2
push eax
call fcn.207e02c0
add esp, 4
mov dword [ebx + 0x38], eax
test eax, eax
je 0x208190c6
mov ecx, dword [ebx + 0x34]
mov esi, dword [esi + 0x14]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x38]
mov byte [eax + ecx], 0
mov edx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x38]
mov byte [edx + eax + 1], 0
mov byte [ebx + 0x1c], 0
jmp 0x20817abf
mov dword [ebx + 0x38], ecx
mov al, byte [ebx + 0x1f]
test al, al
jne 0x20817a8e
mov cx, word [esi + 0x1c]
and ecx, 0xffbf
or ch, 1
mov word [esi + 0x1c], cx
mov dword [esi + 0x24], 0
mov byte [ebx + 0x1c], 0
jmp 0x20817abf
mov dl, byte [ebp + 3]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
and edx, 8
push edx
mov edx, dword [esp + 0xc0]
push 0
push eax
mov eax, dword [ebx]
push ecx
push edx
push edi
push 0
push eax
call fcn.207c3790
add esp, 0x20
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x19], 0
mov byte [ebx + 0x20], 0
mov dword [ebx + 0x68], 0
test eax, eax
jne case.0x208154b4.12
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xb8]
test ecx, ecx
je case.0x208154b4.12
mov eax, dword [ebp + 0x10]
test eax, eax
je case.0x208154b4.12
mov edx, dword [esp + 0xbc]
mov ebx, dword [ebx + 4]
push edx
mov edx, dword [esp + 0xbc]
push edx
push eax
mov eax, dword [esp + 0x20]
lea edx, [ebx + ebx*2]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xb4]
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [ebp + 3]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [esp + 0x14]
mov edi, dword [edx + ecx*4]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je 0x20817b6d
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x20817b6d
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], edx
push edi
call fcn.207e9d40
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x20818ff5
mov eax, dword [edi]
push eax
call fcn.207c5f10
add esp, 4
mov byte [edi + 0x1d], bl
test eax, eax
mov dword [esp + 0x10], eax
mov dword [edi + 0x68], ebx
jne 0x20817bda
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xb8]
test ecx, ecx
je 0x20817bda
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x20817bda
mov ebx, dword [esp + 0x124]
mov edi, dword [edi + 4]
push ebx
mov ebx, dword [esp + 0x124]
push ebx
push eax
lea eax, [edi + edi*2]
mov edi, dword [edx + 8]
mov edx, dword [edx + 0xb4]
mov eax, dword [edi + eax*8]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x208154b4.12
inc dword [esi + 0xa0]
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
test eax, eax
je 0x20817c0a
mov eax, dword [esi + 0xa0]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.207ea8b0
add esp, 8
mov dword [esi + 0xa0], 0
jmp case.0x208154b4.12
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edi, [eax + edx*8]
mov edx, dword [esi + 0x30]
mov dword [esp + 0x28], edi
mov ebp, dword [edx + ecx*4]
push ebp
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
call fcn.207e9d40
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x20818ff5
mov al, byte [ebp + 0x22]
test al, al
je 0x20817c98
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x1d8]
push ecx
push ebx
call fcn.207c1dc0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1e4]
add esp, 8
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
mov ecx, dword [esp + 0x1d8]
jg 0x208190a6
jl 0x20817c90
cmp ecx, eax
ja 0x208190a6
mov eax, ecx
mov dword [esp + 0x70], eax
jmp 0x20817cbf
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.207c1e80
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x78]
add esp, 8
cmp eax, dword [ecx + 0x50]
ja 0x208190a6
mov ebx, dword [esp + 0x18]
push 0
push eax
push edi
call fcn.207ecf70
add esp, 0xc
test eax, eax
jne 0x208190cd
mov edx, dword [esp + 0x70]
mov dword [edi + 0x18], edx
mov ax, word [edi + 0x1c]
and eax, 0xfff0
or al, 0x10
mov word [edi + 0x1c], ax
mov al, byte [ebp + 0x22]
test al, al
je 0x20817d11
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x70]
push ecx
push edx
push 0
push ebx
call fcn.207c22c0
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [edi + 0x1f], 1
jmp case.0x208154b4.12
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x70]
push eax
push ecx
push 0
push ebx
call fcn.207c2350
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [edi + 0x1f], 1
jmp case.0x208154b4.12
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x30]
mov ebp, dword [eax + edx*4]
push ebp
call fcn.207e9d40
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov al, byte [ebp + 0x19]
test al, al
je 0x20817d6f
mov ecx, dword [ebp + 8]
mov dword [esp + 0xa8], ecx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xac], edx
jmp 0x20817dab
mov al, byte [ebp + 0x1e]
test al, al
je 0x20817d8c
mov eax, dword [ebp + 0x40]
mov dword [esp + 0xa8], eax
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0xac], ecx
jmp 0x20817dab
mov al, byte [ebp + 0x1c]
test al, al
jne case.0x208154b4.12
mov eax, dword [ebp]
lea edx, [esp + 0xa8]
push edx
push eax
call fcn.207c1dc0
add esp, 8
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
mov dword [edi], ecx
mov dword [edi + 4], edx
mov ax, word [edi + 0x1c]
and eax, 0xffe4
or al, 4
mov word [edi + 0x1c], ax
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + ecx*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
lea edx, [esp + 0xb0]
mov esi, dword [ecx + eax*4]
push edx
mov eax, dword [esi]
push eax
call fcn.207c28a0
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xb8]
mov byte [esi + 0x1c], al
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
mov eax, dword [esp + 0xb8]
add esp, 8
test eax, eax
je case.0x208154b4.12
mov ebp, dword [ebp + 8]
test ebp, ebp
jle case.0x208154b4.12
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
test eax, eax
je 0x20817e95
lea ecx, [esp + 0x84]
push ecx
push eax
call fcn.207c24e0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x8c]
add esp, 8
test eax, eax
sete dl
mov byte [esi + 0x1a], dl
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
mov al, byte [esp + 0x84]
mov byte [esi + 0x1c], al
mov eax, dword [esp + 0x84]
jmp 0x208176c2
mov dword [esp + 0x84], 1
mov al, byte [esp + 0x84]
mov byte [esi + 0x1c], al
mov eax, dword [esp + 0x84]
jmp 0x208176c2
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xd8]
test eax, eax
jne 0x2081909c
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x30]
mov esi, dword [eax + edx*4]
test esi, esi
je case.0x208154b4.12
mov eax, dword [esi]
mov dword [esp + 0x78], 1
cmp byte [ebp], 0x6a
jne 0x20817ef6
lea ecx, [esp + 0x78]
push ecx
push eax
call fcn.207c2fc0
jmp 0x20817f01
lea edx, [esp + 0x78]
push edx
push eax
call fcn.207c3490
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x80]
mov byte [esi + 0x1c], al
mov dword [esi + 0x68], 0
mov eax, dword [esp + 0x80]
add esp, 8
test eax, eax
jne 0x20817f2c
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov byte [esi + 0x19], 0
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esi]
test ecx, ecx
je case.0x208154b4.12
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x18]
mov edi, dword [edx + 0x14]
mov edx, dword [ebp + 0xc]
push edx
push 0
cdq
push 0
push 0x20729a6c
push edx
push eax
push edi
push ecx
call fcn.207c3790
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [esi + 0x68], 0
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov ebx, dword [ecx + eax*4]
mov edi, dword [ebx]
test edi, edi
je case.0x208154b4.12
mov ax, word [ebp + 0xc]
mov edx, dword [ebx + 0x4c]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x144], edx
mov edx, dword [esi + 0x4c]
mov word [esp + 0x148], ax
lea ecx, [ebp + ebp*4]
mov byte [esp + 0x14a], 0
mov byte [esp + 0x14b], 0
lea eax, [edx + ecx*8]
lea ecx, [esp + 0xf0]
push ecx
push 0
push 0
lea edx, [esp + 0x150]
push 0
push edx
push 0
push edi
mov dword [esp + 0x168], eax
call fcn.207c2a10
add esp, 0x1c
mov dword [esp + 0x10], eax
test eax, eax
jne 0x2081800a
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x2081800a
push edi
call fcn.207c5f10
add esp, 4
mov dword [esp + 0x10], eax
mov dword [ebx + 0x68], 0
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x208154b4.12
mov dl, byte [eax + 0x1c]
test dl, dl
jne case.0x208154b4.12
lea edx, [esp + 0x190]
push edx
push ecx
call fcn.207ea5e0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x20818ff5
mov ax, word [edi + 0x1c]
mov ecx, dword [esp + 0x190]
mov edx, dword [esp + 0x194]
and eax, 0xffe4
or al, 4
mov word [edi + 0x1c], ax
mov dword [edi], ecx
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov edi, dword [ecx + eax*4]
cmp dword [edi], 0
je case.0x208154b4.12
mov edx, dword [edi + 0x4c]
mov dword [esp + 0xd8], edx
mov ax, word [ebp + 0x10]
mov edx, dword [esi + 0x4c]
mov word [esp + 0xdc], ax
mov byte [esp + 0xde], 0
mov byte [esp + 0xdf], 0
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [edi + 0x48]
mov dword [esp + 0xe0], eax
mov dl, byte [ebp + 3]
lea eax, [esp + 0x90]
mov byte [ecx], dl
push eax
push 0
lea ecx, [esp + 0xe0]
push 0
push ecx
push edi
call fcn.207ea6f0
mov edx, dword [edi + 0x48]
mov dword [esp + 0x24], eax
add esp, 0x14
mov byte [edx], 0
mov al, byte [ebp]
cmp al, 0x29
mov eax, dword [esp + 0x90]
jne 0x20818106
neg eax
jmp 0x20818107
inc eax
test eax, eax
mov dword [esp + 0x90], eax
jle case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov ecx, dword [esp + 0x14]
xor edx, edx
mov eax, dword [ecx + 0x8c]
test eax, eax
je 0x20818170
mov ebx, 0xbdf20da3
cmp dword [eax + 0x44], ebx
jne 0x2081814d
cmp byte [eax + 0x9c], 2
jae 0x2081814d
cmp dword [eax + 0x74], 0
jl 0x2081814d
inc edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x20818138
cmp edx, 1
jle 0x20818170
mov dword [esp + 0x10], 6
mov dword [esi + 0x80], 2
jmp case.0x208154b4.12
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x140]
push edx
mov edx, dword [ebp + 4]
lea eax, [eax + eax*2]
push edx
mov edx, dword [ecx + eax*8 + 4]
push edx
call fcn.207c6bb0
mov dword [esp + 0x1c], eax
mov ax, word [edi + 0x1c]
and eax, 0xffe4
add esp, 0xc
or al, 4
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x140]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x14]
push ecx
lea edx, [ebp + ebp*2]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.207c67a0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x14]
sub al, 0x33
mov edx, dword [edx + 8]
lea ecx, [ebp + ebp*2]
neg al
sbb eax, eax
lea ecx, [edx + ecx*8]
and al, 0xfd
mov ecx, dword [ecx + 4]
add eax, 5
push eax
lea eax, [esp + 0xfc]
push eax
push ecx
call fcn.207c66f0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x208154b4.12
mov eax, dword [esp + 0xf8]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov dx, word [edi + 0x1c]
and edx, 0xffe4
or edx, 4
mov word [edi + 0x1c], dx
jmp case.0x208154b4.12
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 4]
test ecx, ecx
jne 0x20818268
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov edi, dword [ecx + 8]
mov edx, dword [edi + edx*8 + 0x14]
mov dl, byte [edx + 0x5a]
and dl, 1
cmp dl, 1
jne case.0x208154b4.12
jmp 0x2081826c
mov ecx, dword [esp + 0x14]
lea edx, [esi + 0x90]
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], edx
mov edx, dword [ebp + 0x10]
push edx
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov dword [esp + 0x224], ecx
push 0x2072209c
mov eax, dword [edx + eax*8]
push eax
push 0x20722f74
push ecx
call fcn.207eb530
mov edi, eax
add esp, 0x14
test edi, edi
je 0x208190cd
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x220]
push 0
push ecx
push fcn.207fcb30
push edi
push ebx
mov byte [ebx + 0x80], 1
call fcn.207d3f70
mov ebp, eax
add esp, 0x14
cmp ebp, 4
mov dword [esp + 0x10], ebp
jne 0x208182ec
mov ebp, dword [esp + 0x22c]
mov dword [esp + 0x10], ebp
push edi
push ebx
call fcn.207e0aa0
add esp, 8
cmp ebp, 7
mov byte [ebx + 0x80], 0
je 0x208190cd
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push ebp
push edx
call fcn.20829590
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.207f0810
add esp, 0xc
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.207f04d0
add esp, 0xc
jmp case.0x208154b4.12
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.20826d00
add esp, 0xc
jmp case.0x208154b4.12
mov ebx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
lea eax, [ebx*4 + 4]
push eax
push ecx
call fcn.207e1330
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x208190cd
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x4c]
test ebx, ebx
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x30], 0
lea ecx, [ecx + ecx*4]
lea edi, [eax + edx*8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x48], eax
jle 0x20818400
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x18]
push eax
call fcn.207ed340
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
add eax, 0x28
add ecx, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
dec eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], eax
jne 0x208183d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0xb4]
mov dword [eax + ecx*4], 0
mov ecx, dword [edi]
push edx
push ecx
push ebx
mov ebx, dword [esp + 0x20]
push eax
xor eax, eax
mov al, byte [ebp + 3]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + edx*8 + 4]
push ecx
call fcn.207c7140
mov edx, dword [esp + 0x34]
mov ebp, eax
push edx
push ebx
call fcn.207e0aa0
mov eax, dword [esp + 0xd0]
mov ecx, dword [edi]
cdq
sub ecx, eax
mov eax, dword [esp + 0x64]
mov dword [edi], ecx
mov ebx, dword [edi + 4]
sbb ebx, edx
push eax
mov dword [edi + 4], ebx
call fcn.207ed750
mov eax, dword [esp + 0xd4]
add esp, 0x20
test eax, eax
je 0x2081848f
test ebp, ebp
je 0x208190cd
mov ecx, dword [esp + 0x48]
push fcn.207e0a40
push 1
push 0xffffffffffffffff
push ebp
push ecx
call fcn.207edd10
add esp, 0x14
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
and edx, 0xff
push edx
push eax
call fcn.207ecf50
add esp, 8
jmp case.0x208154b4.12
mov ecx, dword [esp + 0x14]
push ebx
mov dword [esi + 0x5c], ecx
call fcn.207ed340
push edx
lea edx, [esi + 0x58]
push eax
push edx
call fcn.208194c0
add esp, 0x10
cmp eax, 7
je 0x208190cd
jmp case.0x208154b4.12
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
jne 0x2081909c
mov eax, dword [ebp + 4]
mov edx, dword [esi + 0x4c]
add esi, 0x58
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
push eax
push esi
mov cx, word [eax + 0x1c]
mov dword [esp + 0x30], eax
and ecx, 0xffe4
or ecx, 4
mov word [eax + 0x1c], cx
call fcn.20819580
add esp, 8
cmp eax, 0x65
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov edi, dword [esi + 0x68]
lea eax, [edi + 1]
mov dword [esi + 0x68], eax
mov ecx, dword [esi + 0x6c]
cmp edi, ecx
jl 0x2081855e
mov dword [esi + 0x6c], eax
mov edx, dword [esi + 0x70]
shl eax, 5
push eax
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.207e1780
add esp, 0xc
mov dword [esi + 0x70], eax
test eax, eax
je 0x208190cd
mov ebx, dword [esi + 0x70]
mov eax, dword [esp + 0x14]
shl edi, 5
mov ecx, dword [eax + 0x30]
add edi, ebx
add esi, 0x58
push eax
mov dword [edi], ecx
mov edx, dword [eax + 0x34]
mov dword [edi + 4], edx
mov ecx, dword [esi + 0x48]
mov edx, esi
mov dword [edi + 8], ecx
add edi, 0xc
push esi
mov ecx, dword [edx]
mov dword [edi], ecx
mov ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov ecx, dword [edx + 8]
mov dword [edi + 8], ecx
mov edx, dword [edx + 0xc]
mov dword [edi + 0xc], edx
call fcn.208194a0
add esp, 8
jmp case.0x208154b4.12
mov ebx, dword [esi + 0x68]
add esi, 0x58
dec ebx
push esi
mov eax, ebx
mov dword [esi + 0x10], ebx
mov edx, dword [esi + 0x18]
shl eax, 5
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [edi]
mov dword [eax + 0x30], ecx
mov edx, dword [edi + 4]
mov dword [eax + 0x34], edx
mov eax, dword [edi + 8]
mov dword [esi + 0x48], eax
call fcn.208195f0
add esp, 4
add edi, 0xc
mov ecx, dword [edi]
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0xc], ecx
jmp case.0x208154b4.12
mov eax, dword [ebx + 4]
test eax, eax
jl case.0x208154b4.12
jg 0x208176ca
cmp dword [ebx], 0
jbe case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov eax, dword [ebx + 4]
test eax, eax
jg case.0x208154b4.12
jl 0x208176ca
cmp dword [ebx], 0
jae case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
or edx, eax
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x4c]
xor ecx, ecx
xor ebx, ebx
mov cl, byte [ebp + 3]
lea eax, [eax + eax*4]
cmp ecx, ebx
mov dword [esp + 0x58], ecx
lea eax, [edx + eax*8]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x2c], edx
jle 0x208186cf
mov edi, ecx
xor ecx, ecx
mov dword [edx], eax
mov cx, word [eax + 0x1c]
test cl, 1
je 0x20818699
mov byte [eax + 0x1e], 5
jmp 0x208186be
test cl, 4
je 0x208186a4
mov byte [eax + 0x1e], 1
jmp 0x208186be
test cl, 8
je 0x208186af
mov byte [eax + 0x1e], 2
jmp 0x208186be
test cl, 2
je 0x208186ba
mov byte [eax + 0x1e], 3
jmp 0x208186be
mov byte [eax + 0x1e], 4
add edx, 4
add eax, 0x28
dec edi
jne 0x20818686
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
mov eax, dword [ebp + 0x10]
mov edi, dword [esi + 0x4c]
mov dword [esp + 0x238], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x268], eax
mov edi, dword [eax + 0x18]
inc edi
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x238]
mov word [esp + 0x25c], 1
mov dword [esp + 0x254], ebx
mov dword [esp + 0x264], ebx
mov dword [esp + 0x260], ebx
mov dword [esp + 0x250], edi
mov dword [esp + 0x26c], ebx
mov dword [esp + 0x270], ebx
cmp byte [eax + 3], 0
je 0x20818742
mov ebp, dword [ebp - 4]
mov dword [esp + 0x270], ebp
push edx
push ecx
lea ecx, [esp + 0x240]
push ecx
call dword [eax + 0x14]
mov eax, dword [esp + 0x278]
add esp, 0xc
cmp eax, ebx
je 0x2081878b
lea edx, [esp + 0x240]
push edx
call fcn.207f56c0
push eax
push 0x20716418
add esi, 0x90
push edi
push esi
call fcn.207e1e20
mov eax, dword [esp + 0x280]
add esp, 0x14
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x240]
push ecx
call fcn.207ed290
add esp, 4
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edi, [eax + edx*8]
push edi
call fcn.207ed160
add esp, 8
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x208187e2
push edi
call fcn.207f56c0
mov edx, dword [esp + 0x18]
push eax
push 0x20716418
lea eax, [esi + 0x90]
push edx
push eax
call fcn.207e1e20
add esp, 0x14
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
push ecx
push edi
call fcn.207ecf50
push edi
call fcn.207eda10
add esp, 0xc
test eax, eax
jne 0x208190a6
jmp case.0x208154b4.12
mov edx, dword [esp + 0x14]
add esi, 0x90
push edx
push esi
call fcn.20836720
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
test eax, eax
jne 0x2081883f
mov eax, dword [esp + 0x14]
push eax
call fcn.207ea8e0
add esp, 4
jmp case.0x208154b4.12
mov byte [esi + 0x9a], 1
jmp case.0x208154b4.12
mov cl, byte [ebp + 0xc]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
mov byte [esp + 0x11c], cl
mov edx, dword [esp + 0x11c]
mov ecx, dword [ebp + 8]
push edx
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
push ecx
mov ecx, dword [eax + edx*8 + 4]
push ecx
call fcn.207c83d0
add esp, 0xc
cmp eax, 6
mov dword [esp + 0x10], eax
jne case.0x208154b4.12
mov edx, dword [ebp + 0x10]
add esi, 0x90
push edx
push 0x20722f54
push edi
push esi
call fcn.207e1e20
add esp, 0x10
jmp case.0x208154b4.12
mov ebp, dword [ebp + 0x10]
mov edi, dword [esp + 0x14]
push ebp
push edi
call fcn.207efc30
add esp, 8
mov dword [esp + 0x10], eax
test ebp, ebp
je case.0x208154b4.12
mov eax, dword [esi + 0x90]
push eax
push edi
call fcn.207e0aa0
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [esi + 0x90], ecx
mov dword [ebp + 8], 0
jmp case.0x208154b4.12
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
add esi, 0x90
push esi
push edx
push eax
push ecx
call fcn.207ef890
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.0x208154b4.12
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x9c], 2
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
push eax
push ecx
call fcn.207ef990
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 0x9c], 0
jmp case.0x208154b4.12
mov edi, dword [ebp + 0x10]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], 0
push edx
mov eax, dword [edi]
push edi
mov dword [esp + 0x34], eax
call dword [eax + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [esi + 0x90]
mov dword [esp + 0x18], ebx
push eax
push ecx
call fcn.207e0aa0
mov edx, dword [edi + 8]
add esp, 0x10
mov dword [esi + 0x90], edx
mov dword [edi + 8], 0
test ebx, ebx
jne case.0x208154b4.12
mov eax, dword [esp + 0x24]
push ebx
lea ecx, [ebp - 0x14]
push 0xffffffffffffffff
mov dword [eax], edi
mov edx, dword [ebp + 4]
push ecx
push edx
push esi
call fcn.208193c0
add esp, 0x14
test eax, eax
je 0x208189ba
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x60], ecx
mov edx, dword [esp + 0x24]
mov ecx, dword [edx]
mov edx, dword [ecx]
mov dword [eax + 0x64], edx
jmp case.0x208154b4.12
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push ecx
mov byte [eax + 0x1e], 1
call dword [edx + 0x1c]
add esp, 4
jmp case.0x208154b4.12
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x4c]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [eax + 0x28]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx + 0x60]
mov dword [esp + 0x20], ecx
mov edi, dword [ecx]
mov ecx, dword [eax]
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x24]
mov edx, dword [edi]
mov dword [esp + 0x2c], ecx
test ebx, ebx
mov dword [esp + 0x24], edx
jle 0x20818a5d
mov edx, ecx
lea ecx, [eax + 0x6e]
mov dword [esp + 0x18], ebx
lea eax, [ecx - 0x1e]
mov dword [edx], eax
xor eax, eax
mov ax, word [ecx - 2]
test al, 1
je 0x20818a2f
mov byte [ecx], 5
jmp 0x20818a4c
test al, 4
je 0x20818a38
mov byte [ecx], 1
jmp 0x20818a4c
test al, 8
je 0x20818a41
mov byte [ecx], 2
jmp 0x20818a4c
and al, 2
neg al
sbb al, al
add eax, 4
mov byte [ecx], al
mov eax, dword [esp + 0x18]
add ecx, 0x28
add edx, 4
dec eax
mov dword [esp + 0x18], eax
jne 0x20818a1b
push edi
call fcn.207eeef0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
mov byte [esi + 0x9c], 1
mov edx, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x28]
push ebx
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
call dword [edx + 0x20]
mov ecx, dword [esp + 0x2c]
mov ebx, eax
mov byte [esi + 0x9c], 0
mov eax, dword [esi + 0x90]
push eax
push ecx
mov dword [esp + 0x30], ebx
call fcn.207e0aa0
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x34]
push edi
mov dword [esi + 0x90], edx
push eax
mov dword [edi + 8], 0
call fcn.207eef00
add esp, 0x28
test ebx, ebx
jne 0x20818ae0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push ecx
call dword [edx + 0x28]
add esp, 4
test eax, eax
je 0x20818ae0
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x38]
mov byte [eax + 0x1c], 0
jmp case.0x208154b4.12
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + ecx*4]
mov cl, byte [eax + 0x1c]
test cl, cl
jne case.0x208154b4.12
mov eax, dword [eax + 0x60]
lea edx, [esp + 0x160]
push edx
push eax
mov ebx, dword [eax]
mov ecx, dword [ebx]
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x90]
push eax
push ecx
call fcn.207e0aa0
mov edx, dword [ebx + 8]
add esp, 0x10
mov dword [esi + 0x90], edx
mov dword [ebx + 8], 0
mov ax, word [edi + 0x1c]
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x164]
and eax, 0xffe4
or al, 4
mov word [edi + 0x1c], ax
mov dword [edi], ecx
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
mov dl, byte [ecx + 0x1c]
test dl, dl
mov dword [esp + 0x20], eax
je 0x20818b95
push eax
call fcn.207ed750
add esp, 4
jmp case.0x208154b4.12
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0x278]
mov edx, dword [ecx + 0x60]
mov ecx, 0x10
mov ebx, dword [edx]
lea edx, [esp + 0x280]
mov eax, dword [ebx]
mov dword [esp + 0x2c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x20]
push ecx
push edx
call fcn.207edc40
mov eax, dword [esp + 0x2a4]
mov ecx, dword [ebp + 8]
and eax, 0xffe1
lea edx, [esp + 0x280]
or al, 1
push ecx
mov word [esp + 0x2a8], ax
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [eax + 0x60]
push ecx
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x90]
push eax
push ecx
call fcn.207e0aa0
mov eax, dword [esp + 0x68]
mov edx, dword [ebx + 8]
and eax, 0xff
lea ecx, [esp + 0x29c]
push eax
mov dword [esi + 0x90], edx
push ecx
mov dword [ebx + 8], 0
call fcn.207ecf50
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x2a4]
push edx
push edi
call fcn.207edc40
push edi
call fcn.207eda10
add esp, 0x30
test eax, eax
jne 0x208190a6
jmp case.0x208154b4.12
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x30]
mov ebx, dword [ecx + eax*4]
mov al, byte [ebx + 0x1c]
test al, al
jne case.0x208154b4.12
mov edx, dword [ebx + 0x60]
mov edi, dword [edx]
push edi
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
call fcn.207eeef0
mov edx, dword [esp + 0x1c]
mov byte [esi + 0x9c], 1
mov ecx, dword [ebx + 0x60]
push ecx
call dword [edx + 0x24]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov byte [esi + 0x9c], 0
mov eax, dword [esi + 0x90]
push eax
push ecx
call fcn.207e0aa0
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x24]
push edi
mov dword [esi + 0x90], edx
push eax
mov dword [edi + 8], 0
call fcn.207eef00
mov eax, dword [esp + 0x28]
add esp, 0x18
test eax, eax
jne 0x208176ca
mov ecx, dword [ebx + 0x60]
mov edx, dword [esp + 0x18]
push ecx
call dword [edx + 0x28]
add esp, 4
test eax, eax
jne case.0x208154b4.12
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x1c], ebp
jmp case.0x208154b4.12
mov edi, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov ecx, dword [esi + 0x4c]
lea eax, [ebp + ebp*4]
lea ebx, [ecx + eax*8]
mov al, byte [ecx + eax*8 + 0x1c]
test al, 0x12
jne 0x20818d2f
mov edx, dword [esp + 0x4c]
and edx, 0xff
push edx
push ebx
call fcn.207ed0f0
add esp, 8
test eax, eax
jne 0x208190cd
push edi
call fcn.207eeef0
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x4c]
mov edx, dword [esi + 0x90]
mov ebx, dword [esp + 0x20]
push edx
push ebx
mov dword [esp + 0x24], eax
call fcn.207e0aa0
mov eax, dword [edi + 8]
push edi
mov dword [esi + 0x90], eax
push ebx
mov dword [edi + 8], 0
call fcn.207eef00
add esp, 0x1c
jmp case.0x208154b4.12
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [edi]
mov dword [esp + 0x58], eax
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x20818dac
mov ecx, dword [esp + 0x14]
push 0x20722f44
push ecx
add esi, 0x90
push esi
call fcn.207e1e20
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x208154b4.12
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x24]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], edx
test ebx, ebx
lea eax, [ecx + eax*8]
jle 0x20818e10
mov dword [esp + 0x18], ebx
xor ecx, ecx
mov cx, word [eax + 0x1c]
test cl, 1
je 0x20818dd8
mov byte [eax + 0x1e], 5
jmp 0x20818dfd
test cl, 4
je 0x20818de3
mov byte [eax + 0x1e], 1
jmp 0x20818dfd
test cl, 8
je 0x20818dee
mov byte [eax + 0x1e], 2
jmp 0x20818dfd
test cl, 2
je 0x20818df9
mov byte [eax + 0x1e], 3
jmp 0x20818dfd
mov byte [eax + 0x1e], 4
mov ecx, dword [esp + 0x18]
mov dword [edx], eax
add eax, 0x28
add edx, 4
dec ecx
mov dword [esp + 0x18], ecx
jne 0x20818dc7
push edi
call fcn.207eeef0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x15c]
push edx
push eax
push ebx
push edi
call dword [ecx + 0x34]
mov edx, dword [esi + 0x90]
mov ebx, dword [esp + 0x28]
push edx
push ebx
mov dword [esp + 0x2c], eax
call fcn.207e0aa0
mov eax, dword [edi + 8]
push edi
mov dword [esi + 0x90], eax
push ebx
mov dword [edi + 8], 0
call fcn.207eef00
mov eax, dword [ebp + 4]
add esp, 0x24
test eax, eax
je 0x20818e7e
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x20818e7e
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x15c]
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], edx
inc dword [esi + 0xa0]
jmp case.0x208154b4.12
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
lea eax, [ebp + ebp*2]
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.207c7130
lea ecx, [esp + 0x104]
push ecx
push eax
call fcn.207e31e0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x208154b4.12
mov eax, dword [esp + 0x100]
mov word [edi + 0x1c], 4
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x208154b4.12
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x2bc]
inc ecx
test ebx, ebx
mov dword [esp + 0x1c], ecx
je 0x208153d1
jmp 0x20819119
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x78], edx
mov dword [esi + 0x74], eax
mov ecx, dword [ebp + 8]
mov dword [esi + 0x80], ecx
mov ebp, dword [ebp + 0x10]
test ebp, ebp
je 0x20818f28
mov edx, dword [esp + 0x14]
push ebp
push 0x20716418
lea eax, [esi + 0x90]
push edx
push eax
call fcn.207e1e20
add esp, 0x10
push esi
call fcn.207e8f90
mov edi, 5
add esp, 4
cmp eax, edi
jne 0x20819022
mov dword [esi + 0x78], edi
jmp 0x2081913a
mov ecx, dword [esi + 0x54]
xor ebx, ebx
add ecx, 2
or ecx, 1
mov dword [esi + 0x54], ecx
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
mov dword [esi + 0x94], eax
mov ecx, dword [ebp + 8]
test ecx, ecx
jle 0x20818fb3
lea edi, [eax + 0x1e]
lea ecx, [edi - 0x1e]
push ecx
call fcn.207ed0a0
xor eax, eax
add esp, 4
mov ax, word [edi - 2]
test al, 1
je 0x20818f8b
mov byte [edi], 5
jmp 0x20818fa8
test al, 4
je 0x20818f94
mov byte [edi], 1
jmp 0x20818fa8
test al, 8
je 0x20818f9d
mov byte [edi], 2
jmp 0x20818fa8
and al, 2
neg al
sbb al, al
add eax, 4
mov byte [edi], al
mov eax, dword [ebp + 8]
inc ebx
add edi, 0x28
cmp ebx, eax
jl 0x20818f70
mov edx, dword [esp + 0x14]
mov al, byte [edx + 0x1e]
test al, al
jne 0x208190cd
mov eax, dword [esi + 0x50]
mov edi, 0x64
inc eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esi + 0x74], eax
jmp 0x2081913a
lea ecx, [esp + 0x1e8]
push ecx
call fcn.207ed290
add esp, 4
jmp 0x208190cd
mov ebx, 0x14
mov edx, dword [esp + 0x14]
mov al, byte [edx + 0x1e]
test al, al
je 0x208190f1
mov ebx, 7
jmp 0x208190f9
mov eax, dword [ebp + 8]
test eax, eax
je 0x20819034
push edi
call fcn.207c8a50
add esp, 4
mov byte [edi + 0x1c], 1
mov edi, dword [esi + 0x78]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x2081913a
push esi
mov byte [edi + 0x1c], bl
call fcn.207e8f90
add esp, 4
cmp eax, 5
jne 0x20819022
mov edx, dword [esp + 0x1c]
mov al, 1
sub al, bl
mov dword [esi + 0x74], edx
mov byte [edi + 0x1c], al
mov edi, 5
mov dword [esi + 0x78], edi
jmp 0x2081913a
mov ecx, dword [esp + 0x1c]
mov edi, 5
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], edi
jmp 0x2081913a
mov edx, dword [esp + 0x1c]
mov edi, 5
mov dword [esi + 0x74], edx
mov dword [esi + 0x78], edi
jmp 0x2081913a
mov ebx, 0xb
jmp 0x20818ff5
mov ebx, 0xd
jmp 0x20818ff5
mov ebx, 9
mov dword [esi + 0x78], ebx
jmp 0x208190f9
mov edx, dword [esp + 0x14]
push 0x20722804
lea eax, [esi + 0x90]
push edx
push eax
call fcn.207e1e20
add esp, 0xc
mov ebx, 0x12
jmp 0x20819119
mov esi, dword [esp + 0x2bc]
mov eax, dword [esp + 0x14]
push 0x207181d8
lea ecx, [esi + 0x90]
push eax
push ecx
mov byte [eax + 0x1e], 1
call fcn.207e1e20
add esp, 0xc
mov ebx, 7
jmp 0x20819119
cmp ebx, 0xc0a
je 0x20819119
push ebx
call fcn.207c8b00
push eax
mov eax, dword [esp + 0x1c]
push 0x20716418
lea ecx, [esi + 0x90]
push eax
push ecx
call fcn.207e1e20
add esp, 0x14
push esi
mov dword [esi + 0x78], ebx
call fcn.207e8f90
add esp, 4
cmp ebx, 0xc0a
jne 0x20819135
mov edx, dword [esp + 0x14]
mov byte [edx + 0x1e], 1
mov edi, 1
mov eax, dword [esp + 0x130]
push eax
call fcn.207e80b0
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a8
ret