Function at 0x10066f4b
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x22c
mov eax, dword [0x100ff008]
xor eax, esp
mov dword [esp + 0x224], eax
push ebx
push ebp
push esi
mov ebx, ecx
mov ecx, 0x10103106
push edi
mov dword [esp + 0x14], ebx
call fcn.100d96c4
mov eax, dword [ebx + 0x68]
mov ecx, ebx
mov ebp, dword [ebx]
mov edi, dword [ebx + 0x58]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
xor al, al
mov byte [esp + 0x6b], al
mov al, byte [ebp + 0x4e]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], ebp
mov byte [esp + 0x50], al
mov dword [esp + 0x84], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], edi
call fcn.1005f6b0
cmp dword [ebp + 0x148], 0
je 0x1006631c
mov esi, dword [ebp + 0x150]
xor edx, edx
mov eax, dword [ebx + 0xb4]
div esi
sub esi, edx
jmp 0x1006631f
or esi, 0xffffffff
mov edx, ebx
mov dword [esp + 0x24], esi
cmp dword [edx + 0x28], 7
je 0x100681c7
mov dword [edx + 0x38], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x78], 0
cmp dword [ebp + 0x110], 0
mov dword [ebp + 0x19c], 0
jne 0x1006c1b8
mov eax, dword [edx + 0x24]
xorps xmm0, xmm0
mov esi, dword [esp + 0x1c]
movsd qword [esp + 0x178], xmm0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
xor eax, eax
mov dl, byte [ecx]
inc eax
movzx ebx, dl
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x4b], dl
cmp ebx, 0xa8
ja case.0x10066394.86
jmp dword [ebx*4 + 0x1006c270]
mov edx, dword [esp + 0x10]
mov ecx, edx
sub ecx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
lea edi, [esi + eax*4]
mov eax, 0x80
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x28]
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
mov dword [edi + ecx*8 + 4], edx
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jne 0x100663d2
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x100663ee
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x1c]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8]
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x10066987
mov ebx, dword [esp + 0x14]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x1006bcb8
mov edx, dword [ebx + 0xc8]
test edx, edx
je 0x1006bcb4
mov eax, dword [edx + 4]
mov ecx, edx
dec dword [ebx + 0xd0]
mov dword [ebx + 0xc8], eax
mov eax, dword [ebx + 0x2c]
add dword [ebp + 0x68], eax
mov dword [ebp + 0x64], eax
call fcn.10060310
mov ecx, eax
mov edx, ebx
mov eax, dword [esp + 0x10]
mov esi, dword [edx + 0x68]
cmp dword [eax + 8], 4
mov dword [esp + 0x1c], esi
jne 0x10066530
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + eax*4 + 8]
dec ecx
mov edi, dword [edx + 0x58]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*4]
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10066590
call fcn.10066210
mov esi, dword [esp + 0x1c]
mov ecx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov esi, dword [esp + 0x1c]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x100665e4
mov ecx, edx
call fcn.10066210
mov edx, eax
jmp 0x100665ed
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10066634
call fcn.10066210
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x18]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x10066686
mov ecx, esi
call fcn.10066210
mov esi, eax
jmp 0x1006668f
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x10]
mov byte [ecx], 0x48
test edx, edx
jne 0x100666a1
xor ecx, ecx
jmp 0x100666b9
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100666a6
sub ecx, edi
mov edi, dword [esp + 0x28]
and ecx, 0x3fffffff
mov eax, dword [esp + 0x10]
mov bl, byte [esp + 0x50]
mov dword [eax + 4], ecx
cmp bl, 1
je 0x10066741
push 0
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.1005d8d0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bf98
test byte [esi + 8], 2
je 0x10066701
cmp byte [esi + 0xa], bl
je 0x10066701
mov dl, bl
mov ecx, esi
call fcn.10041910
test eax, eax
jne 0x100681c3
mov ecx, dword [esp + 0x10]
mov eax, 0x800
or word [esi + 8], ax
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xf9
jne 0x1006672d
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x1006672d
mov ecx, ebp
call fcn.1003eb40
mov ecx, dword [esp + 0x10]
mov byte [ecx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
cmp ecx, dword [ebp + 0x6c]
jg 0x1006bf98
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10066770
call fcn.10066210
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x50]
mov byte [ecx + 0xa], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x10066865
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
jne 0x10066865
cmp dword [edi + esi*8 + 4], edx
jne 0x10066865
mov esi, dword [esp + 0x1c]
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x10066801
mov ecx, edx
call fcn.10066210
mov edx, eax
jmp 0x1006680a
mov eax, 4
mov word [edx + 8], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 8]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x10066865
mov eax, 0x2400
nop dword [eax]
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x10066856
lea ecx, [esi - 8]
call fcn.1005ceb0
mov eax, 0x2400
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x10066840
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
mov edx, 0xff41
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x100668d3
mov ecx, esi
call fcn.10066210
mov esi, eax
jmp 0x100668dc
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.1005d8d0
mov al, byte [esp + 0x5c]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.1005d770
test eax, eax
jne 0x1006bf98
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x10066956
mov ecx, esi
call fcn.1005ceb0
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xebff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov edi, dword [esp + 0x28]
mov word [esi + 8], ax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
jne 0x100669c1
cmp dword [esi + 0x18], 0
je 0x100669c8
mov ecx, esi
call fcn.1005cf00
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x10066a0a
mov ecx, esi
call fcn.1005cc20
test eax, eax
jne 0x100681c3
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x100669b0
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop word [eax + eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.1005d7e0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x10066a7b
mov ecx, esi
call fcn.1005cc20
test eax, eax
jne 0x100681c3
mov eax, ebx
dec ebx
test eax, eax
je 0x10066865
add esi, 0x28
add edi, 0x28
jmp 0x10066a50
mov edx, dword [esp + 0x10]
push 0x1000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d7e0
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ebx, 0x2400
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
test word [ecx + 8], bx
je 0x10066b04
push eax
push edx
call fcn.1005d590
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x18]
mov dword [ecx], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov al, byte [edi + 8]
or al, cl
mov dword [esp + 0x40], ecx
test al, 1
je 0x10066b8c
mov eax, 0x2400
test word [esi + 8], ax
je 0x10066b82
mov ecx, esi
call fcn.1005ceb0
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, 1
jmp 0x10066977
test cl, 0x12
jne 0x10066ba3
mov dl, byte [esp + 0x50]
mov ecx, ebx
push 0
call fcn.1005cce0
add esp, 4
jmp 0x10066bb2
test ecx, 0x4000
je 0x10066bcd
mov ecx, ebx
call fcn.1005cc80
test eax, eax
jne 0x100681c3
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x40], eax
movzx edx, word [edi + 8]
mov dword [esp + 0x44], edx
test dl, 0x12
jne 0x10066c03
mov dl, byte [esp + 0x50]
mov ecx, edi
push 0
call fcn.1005cce0
add esp, 4
test eax, eax
jne 0x100681c3
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x10066c2f
test edx, 0x4000
je 0x10066c2b
mov ecx, edi
call fcn.1005cc80
test eax, eax
jne 0x100681c3
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x10066c2f
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov edx, dword [ebx + 0xc]
add edx, dword [edi + 0xc]
mov dword [esp + 0x44], edx
cmp edx, dword [eax + 0x6c]
jg 0x1006bf96
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.1005ca90
add esp, 4
test eax, eax
jne 0x100681bf
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x10066c90
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [edi + 8], bp
push dword [ebx + 0xc]
mov eax, dword [esi + 0x10]
push dword [ebx + 0x10]
add eax, dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov ecx, dword [esp + 0x44]
mov word [ebx + 8], ax
mov eax, dword [esi + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 2], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x50]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.100661e0
movzx ebx, ax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov ecx, esi
mov dword [esp + 0x58], esi
call fcn.100661e0
movzx ecx, ax
mov eax, dword [ebp + 0xc]
and cl, bl
lea eax, [eax + eax*4]
lea ebp, [edi + eax*8]
mov ax, word [esi + 8]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x34], ebp
or ax, word [esi + 8]
movzx eax, ax
test cl, 4
je 0x10066efd
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x58]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ebp
movzx eax, byte [eax]
add eax, 0xffffff9c
cmp eax, 3
ja case.default.0x10066d85
jmp dword [eax*4 + 0x1006c514]
test esi, esi
jl 0x10066df8
jg 0x10066d96
test edx, edx
jb 0x10066df8
test ebp, ebp
jl 0x10066e28
jg 0x10066da8
test edi, edi
je 0x10066e28
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, ebp
cmp eax, esi
jg 0x10066e28
jl 0x10066dbe
cmp ecx, edx
jae 0x10066e28
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.1005d0c0
mov ebx, dword [esp + 0x58]
mov ecx, ebx
movsd qword [esp + 0x38], xmm0
call fcn.1005d0c0
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffff9c
cmp eax, 3
ja case.default.0x10066df1
jmp dword [eax*4 + 0x1006c524]
test ebp, ebp
jg 0x10066e28
jl 0x10066e02
test edi, edi
jae 0x10066e28
mov ebx, 1
mov ecx, 0x80000000
sub ebx, edi
mov eax, esi
mov edi, edx
sbb ecx, ebp
add edi, 1
adc eax, 0
cmp ecx, eax
jg 0x10066dbe
jl 0x10066e24
cmp ebx, edi
ja 0x10066dbe
mov edi, dword [esp + 0x40]
add edx, edi
mov dword [esp + 0x88], edx
adc esi, ebp
mov dword [esp + 0x8c], esi
jmp 0x10066ed0
push esi
push edx
lea ecx, [esp + 0x90]
call fcn.10043340
add esp, 8
test eax, eax
jne 0x10066dbe
jmp 0x10066ed0
push esi
push edx
lea ecx, [esp + 0x90]
call fcn.100433a0
add esp, 8
test eax, eax
jne 0x10066dbe
jmp 0x10066ed0
mov eax, edx
or eax, esi
je 0x10066f05
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10066e98
test edi, edi
jne 0x10066e98
cmp ebp, 0x80000000
je 0x10066dbe
push esi
push edx
push ebp
push edi
call fcn.100d9700
jmp 0x10066ec2
mov eax, edx
or eax, esi
je 0x10066f05
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10066eb9
mov edx, 1
xor esi, esi
push esi
push edx
push ebp
push edi
call fcn.100d98d0
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov ebp, dword [esp + 0x34]
mov ecx, 0x3e40
mov eax, dword [esp + 0x88]
mov dword [ebp], eax
mov eax, dword [esp + 0x8c]
mov dword [ebp + 4], eax
mov ax, word [ebp + 8]
and ax, cx
or ax, 4
jmp 0x10066ffb
test al, 1
je 0x10066dc6
mov eax, dword [esp + 0x34]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x1006701e
mov ecx, eax
call fcn.1005ceb0
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
addsd xmm0, qword [esp + 0x38]
jmp 0x10066fba
subsd xmm0, qword [esp + 0x38]
jmp 0x10066fba
mulsd xmm0, qword [esp + 0x38]
jmp 0x10066fba
movsd xmm1, qword [esp + 0x38]
ucomisd xmm1, qword [esp + 0x178]
lahf
test ah, 0x44
jnp 0x10066f05
divsd xmm0, xmm1
jmp 0x10066fba
mov ecx, esi
call fcn.1005d010
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.1005d010
mov ecx, eax
mov dword [esp + 0x8c], edx
mov eax, esi
mov dword [esp + 0x88], ecx
or eax, edi
je 0x10066f05
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x10066faa
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.100d98d0
mov ecx, eax
call fcn.100d9f10
movsd qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x3c]
mov eax, ecx
and eax, 0x7ff00000
xor edx, edx
cmp eax, 0x7ff00000
jne 0x10066fe6
mov eax, dword [esp + 0x38]
and ecx, 0xfffff
or eax, ecx
jne 0x10066f05
mov ax, word [ebp + 8]
mov ecx, 0x3e40
and ax, cx
movsd qword [ebp], xmm0
or ax, 8
movzx eax, ax
mov word [ebp + 8], ax
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebp, dword [esp + 0x2c]
mov ecx, 1
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov word [eax + 8], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
test eax, eax
je 0x10066987
lea eax, [eax + eax*4]
mov edx, 0x2400
test word [edi + eax*8 + 8], dx
lea eax, [edi + eax*8]
je 0x1006707e
push 0
push 0
mov ecx, eax
call fcn.1005d590
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], dx
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
test al, 1
je 0x10067118
mov eax, 0x2400
test word [ebp + 8], ax
je 0x100670f7
mov ecx, ebp
call fcn.1005ceb0
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x10]
mov eax, 1
mov edi, dword [esp + 0x28]
mov word [ebp + 8], ax
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
call fcn.1005d010
mov ebx, eax
mov esi, edx
mov ecx, edi
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], esi
call fcn.1005d010
mov edi, eax
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x60
jne 0x10067149
and ebx, edi
and esi, edx
jmp 0x100671af
cmp cl, 0x61
jne 0x10067154
or ebx, edi
or esi, edx
jmp 0x100671af
mov eax, edi
or eax, edx
je 0x100671af
test edx, edx
jg 0x10067188
jl 0x10067164
test edi, edi
jae 0x1006717d
mov al, 0xc5
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10067188
jg 0x10067176
cmp edi, 0xffffffc0
jbe 0x10067188
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x100671ca
jg 0x10067188
cmp edi, 0x40
jb 0x100671ca
test esi, esi
jg 0x1006719e
jl 0x10067192
test ebx, ebx
jae 0x1006719e
cmp cl, 0x62
je 0x1006719e
or ebx, 0xffffffff
or esi, ebx
jmp 0x100671af
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ax, word [ebp + 8]
mov ecx, 0x3e40
and ax, cx
mov dword [ebp], ebx
mov dword [ebp + 4], esi
or ax, 4
jmp 0x10066ffe
movq xmm1, qword [esp + 0xe8]
movd xmm0, edi
cmp cl, 0x62
jne 0x100671e8
psllq xmm1, xmm0
movq qword [esp + 0x38], xmm1
jmp 0x100671a7
psrlq xmm1, xmm0
movq qword [esp + 0x38], xmm1
test esi, esi
jg 0x100671a7
jl 0x100671fc
test ebx, ebx
jae 0x100671a7
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.100d9990
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
or ebx, eax
or esi, edx
jmp 0x100671af
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov ecx, esi
call fcn.1005d010
mov dword [esi], eax
mov ecx, 0x3e40
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x10]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x18]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x100672af
push dword [esp + 0x50]
mov dl, 0x43
mov ecx, esi
call fcn.10066080
movzx eax, word [esi + 8]
add esp, 4
mov ecx, eax
test al, 4
jne 0x100672af
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jne 0x100663ce
mov eax, 0x14
jmp 0x100685d7
mov eax, dword [esp + 0x18]
and ecx, 0x3e40
or ecx, 4
mov word [esi + 8], cx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x24
lea esi, [edi + eax*8]
je 0x10066983
mov ecx, esi
call fcn.1005d0c0
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
movsd qword [esi], xmm0
mov ecx, dword [esp + 0x10]
or ax, 8
mov word [esi + 8], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x1006733c
mov ecx, esi
call fcn.1005cc80
mov dword [esp + 0x20], eax
jmp 0x10067344
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x50]
mov dl, byte [eax + 8]
call fcn.1005d400
mov eax, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x1006697f
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
jmp 0x100685df
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx esi, word [edi + eax*8 + 8]
lea edi, [edi + eax*8]
movzx eax, word [ebx + 8]
mov ecx, esi
mov edx, ecx
mov dword [esp + 0x34], eax
or edx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x10]
test dl, 1
je 0x10067447
movzx eax, word [eax + 2]
test al, al
jns 0x100673e0
mov al, byte [esp + 0x30]
and al, byte [esp + 0x34]
test al, 1
je 0x100673cf
test ecx, 0x100
jne 0x100673cf
xor ecx, ecx
jmp 0x10067553
not ecx
and ecx, 1
lea ecx, [ecx*2 - 1]
jmp 0x10067553
test al, 0x20
je 0x10067427
mov eax, dword [esp + 0x10]
mov edx, 0x3e40
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x84], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
test al, 0x10
jne 0x100663ce
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x100674d4
mov ecx, esi
test dl, 2
je 0x10067492
mov al, byte [esp + 0x34]
and al, 0x2e
cmp al, 2
jne 0x10067476
xor edx, edx
mov ecx, ebx
call fcn.10065fb0
movzx eax, word [edi + 8]
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x30]
movzx ecx, word [esp + 0x30]
and al, 0x2e
cmp al, 2
jne 0x10067492
xor edx, edx
mov ecx, edi
call fcn.10065fb0
movzx ecx, word [edi + 8]
mov al, byte [ebx + 8]
and al, cl
test al, 4
je 0x1006753e
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 4]
mov esi, dword [edi]
mov edx, dword [ebx]
cmp ecx, eax
jl 0x100674cf
jg 0x100674b3
cmp esi, edx
jbe 0x100674bd
mov ecx, 1
jmp 0x10067553
cmp ecx, eax
jg 0x100673c8
jl 0x100674cf
cmp esi, edx
jae 0x100673c8
or ecx, 0xffffffff
jmp 0x10067553
cmp al, 0x42
jne 0x1006753e
mov al, byte [esp + 0x34]
test al, 2
jne 0x1006750c
test al, 0x2c
je 0x1006750c
mov dl, byte [esp + 0x50]
mov ecx, ebx
push 1
call fcn.1005cce0
mov ax, word [ebx + 8]
mov esi, 0x3e40
xor ax, word [esp + 0x38]
add esp, 4
and ax, si
xor word [esp + 0x34], ax
jmp 0x10067511
mov esi, 0x3e40
mov al, byte [esp + 0x30]
test al, 2
jne 0x1006753e
test al, 0x2c
je 0x1006753e
mov dl, byte [esp + 0x50]
mov ecx, edi
push 1
call fcn.1005cce0
mov ax, word [edi + 8]
add esp, 4
xor ax, word [esp + 0x30]
and ax, si
xor word [esp + 0x30], ax
mov eax, dword [esp + 0x10]
mov edx, ebx
mov ecx, edi
push dword [eax + 0x10]
call fcn.10061f50
add esp, 4
mov ecx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
test ecx, ecx
jns 0x10067566
mov al, byte [eax + 0x100e7b8c]
jmp 0x10067576
jne 0x10067570
mov al, byte [eax + 0x100e3cfc]
jmp 0x10067576
mov al, byte [eax + 0x100e24e8]
movzx edx, al
movzx eax, word [esp + 0x34]
mov word [ebx + 8], ax
movzx eax, word [esp + 0x30]
mov word [edi + 8], ax
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, 0x20
je 0x100675f8
mov dword [esp + 0x84], ecx
test al, 8
je 0x100675b6
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp byte [ecx], 0x35
sete al
cmp eax, edx
je 0x10066869
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
mov eax, 0x3e40
mov cx, word [edi + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [edi + esi*8 + 8], cx
mov ecx, dword [esp + 0x10]
mov dword [edi + esi*8], eax
mov eax, dword [esp + 0x18]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov esi, dword [esp + 0x1c]
test edx, edx
jne 0x100663d2
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
cmp dword [esp + 0x84], 0
jne 0x100663d2
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x1006763c
xor ebx, ebx
jmp 0x10067642
mov ebx, dword [edx - 4]
add ebx, 4
mov ebp, dword [edx + 0xc]
xor esi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x78], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x70], edx
test ebp, ebp
jle 0x10067bc1
lea edi, [eax + 0x14]
test ebx, ebx
je 0x10067670
mov ecx, dword [ebx + esi*4]
jmp 0x10067672
mov ecx, esi
mov eax, dword [eax + 0x10]
push dword [edi]
mov al, byte [esi + eax]
mov byte [esp + 0x4f], al
lea eax, [ecx + edx]
mov edx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x48]
add eax, ecx
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10061f50
mov edx, eax
add esp, 4
mov dword [esp + 0x84], edx
test edx, edx
jne 0x100676c5
mov eax, dword [esp + 0x78]
inc esi
mov edx, dword [esp + 0x70]
add edi, 4
cmp esi, ebp
jl 0x10067667
jmp 0x10067002
cmp byte [esp + 0x4b], 0
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
je 0x10066869
mov edi, dword [esp + 0x28]
neg edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], edx
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x1006771c
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
jne 0x10067736
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov edx, 2
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d100
mov ecx, dword [ebx + 8]
mov edx, 2
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
call fcn.1005d100
mov ecx, ebx
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x1006778d
mov dl, byte [esi + eax + 0x100e4488]
jmp 0x10067794
mov dl, byte [esi + eax + 0x100e4004]
mov eax, dword [ecx + 0xc]
mov ebx, 0x3e40
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, bx
movzx esi, ax
cmp dl, 2
jne 0x100677cf
mov eax, 1
or eax, esi
mov esi, dword [esp + 0x1c]
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
movzx eax, dl
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
or eax, esi
mov dword [edi + ecx*8 + 4], edx
mov esi, dword [esp + 0x1c]
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d100
mov ecx, dword [esp + 0x10]
mov ebx, 0x2400
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
test word [edi + ecx*8 + 8], bx
lea ecx, [edi + ecx*8]
je 0x10067846
push edx
push eax
call fcn.1005d590
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov dword [ecx], eax
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jne 0x100678e1
xor edx, edx
call fcn.1005d100
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x100678bb
push 0
push eax
mov ecx, esi
call fcn.1005d590
mov ecx, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], 0
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov eax, 0x2400
test word [esi + 8], ax
je 0x10067907
mov ecx, esi
call fcn.1005ceb0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x10]
mov eax, 1
mov word [esi + 8], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x10067954
mov ecx, esi
call fcn.1005ceb0
jmp 0x1006795d
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x10066865
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.1005d010
mov ecx, dword [esp + 0x10]
not eax
mov edi, dword [esp + 0x28]
not edx
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0xc8]
test edi, edi
je 0x10067a07
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [edx + 0x68]
mov edi, dword [edi + 0x18]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x100663ce
mov eax, dword [esp + 0x14]
bts edx, ecx
mov byte [esi + edi], dl
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov ecx, dword [eax + 0x68]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [edx + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x100663d2
mov ecx, edi
mov edi, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d100
test eax, eax
jne 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
xor edx, edx
cmp dword [ecx + 0xc], edx
sete dl
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d100
test eax, eax
je 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
jne 0x100663d2
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x100663d2
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x10066403
mov eax, dword [esp + 0x10]
mov ecx, 0x2400
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test word [edi + eax*8 + 8], cx
lea eax, [edi + eax*8]
je 0x10067b07
mov ecx, eax
call fcn.1005ceb0
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov ebp, dword [esp + 0x10]
mov ecx, 1
mov word [eax + 8], cx
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 8]
lea edx, [esp + 0x74]
mov dword [esp + 0x74], eax
call fcn.10061510
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006c1f4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + 0xc]
mov ebp, dword [ecx + 0x48]
mov dword [esp + 0x30], ebp
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x6c], ebx
cmp eax, dword [esi + 0x20]
je 0x10067cb0
cmp byte [ecx + 2], 0
je 0x10067bfa
cmp byte [ecx], 3
jne 0x10067baf
mov eax, dword [ecx + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ecx + 0x54], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [edi + edx*8 + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x4c]
jmp 0x10067c3b
mov eax, 0x2400
test word [ebx + 8], ax
je 0x10067bd9
mov ecx, ebx
call fcn.1005ceb0
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebp, dword [esp + 0x2c]
mov eax, 1
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov word [ebx + 8], ax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov esi, dword [ecx + 0x28]
mov ecx, esi
call fcn.10054f40
mov eax, dword [esp + 0x4c]
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x50], ecx
mov ecx, esi
mov edx, dword [esp + 0x4c]
add edx, 0x54
call fcn.10055550
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x6c]
ja 0x1006bf92
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x10067c58
movzx eax, al
mov dword [ebp], eax
mov al, 1
jmp 0x10067c5f
mov edx, ebp
call fcn.100430d0
movzx ecx, al
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x30], ecx
xor ecx, ecx
mov eax, dword [esp + 0x4c]
mov word [eax + 0x3a], cx
mov ecx, dword [esp + 0x4c]
mov edi, dword [ebp]
cmp dword [ecx + 0x54], edi
jae 0x10067d7d
mov dword [ecx + 0x4c], 0
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x54], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x10067e8e
mov ecx, dword [esp + 0x4c]
cmp eax, dword [ecx + 0x50]
ja 0x10067e8e
movzx eax, word [ecx + 0x3a]
mov esi, dword [esp + 0x74]
cmp eax, esi
jg 0x10067f16
mov edi, dword [ebp]
cmp dword [ecx + 0x30], edi
jae 0x10067ec2
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x10067d29
xorps xmm0, xmm0
lea eax, [esp + 0x150]
movups xmmword [esp + 0x150], xmm0
push eax
movups xmmword [esp + 0x164], xmm0
xor edx, edx
movq qword [esp + 0x174], xmm0
push dword [ebp]
mov ecx, dword [ecx + 0x28]
call fcn.1005dc50
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
mov eax, dword [esp + 0x160]
mov edi, dword [ebp]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x34], eax
movzx ebx, word [ecx + 0x3a]
xor edx, edx
mov esi, dword [ecx + 0x30]
add esi, dword [esp + 0x34]
add edi, dword [esp + 0x34]
mov eax, dword [ebp + ebx*4]
mov dword [esp + 0x58], edi
lea edi, [ebx*4 + 0x58]
mov dword [esp + 0x40], ebx
nop dword [eax]
mov ebp, eax
mov dword [esp + 0x44], edx
movzx eax, byte [esi]
mov dword [esp + 0x54], eax
mov dword [edi + ecx], eax
mov eax, dword [esp + 0x54]
cmp eax, 0x80
jae 0x10067d82
movzx eax, al
mov ebx, 1
movzx eax, byte [eax + 0x100e4510]
cdq
jmp 0x10067db6
mov eax, dword [ecx + 0x4c]
jmp 0x10067d25
lea edx, [esp + 0x54]
mov ecx, esi
call fcn.100430d0
mov ecx, dword [esp + 0x54]
movzx ebx, al
mov eax, dword [esp + 0x4c]
mov dword [edi + eax], ecx
mov eax, dword [esp + 0x54]
cmp eax, 0x80
jb 0x10067dad
add eax, 0xfffffff4
shr eax, 1
jmp 0x10067db4
movzx eax, byte [eax + 0x100e4510]
xor edx, edx
mov ecx, dword [esp + 0x30]
add eax, ebp
mov ebp, dword [esp + 0x58]
adc edx, dword [esp + 0x44]
add esi, ebx
mov ebx, dword [esp + 0x40]
add edi, 4
inc ebx
mov dword [esp + 0x40], ebx
mov dword [ecx + edi - 0x58], eax
mov ecx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x74]
jg 0x10067dea
cmp esi, ebp
jb 0x10067d50
jmp 0x10067dee
cmp esi, ebp
jb 0x10067dfb
cmp esi, ebp
ja 0x10067e06
cmp eax, dword [ecx + 0x50]
jne 0x10067e06
test edx, edx
jne 0x10067e06
test edx, edx
jb 0x10067e13
ja 0x10067e06
cmp eax, dword [ecx + 0x50]
jbe 0x10067e13
mov eax, dword [esp + 0x30]
cmp dword [eax], 0
jne 0x10067e65
xor ebx, ebx
mov esi, ebp
sub esi, dword [esp + 0x34]
mov word [ecx + 0x3a], bx
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x30], esi
mov ecx, dword [esp + 0x4c]
cmp dword [ecx + 0x4c], 0
jne 0x10067e53
test dword [esp + 0x158], 0x2400
jne 0x10067e43
cmp dword [esp + 0x168], 0
je 0x10067e53
lea ecx, [esp + 0x150]
call fcn.1005cf00
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x30]
jmp 0x10067ec8
cmp dword [ecx + 0x4c], 0
jne 0x10067e8e
test dword [esp + 0x158], 0x2400
jne 0x10067e82
cmp dword [esp + 0x168], 0
je 0x10067e8e
lea ecx, [esp + 0x150]
call fcn.1005cf00
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x1006bd74
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [esi + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
xor edx, edx
mov dword [esp + 0x54], edx
movzx eax, word [ecx + 0x3a]
cmp eax, esi
jg 0x10067f1e
mov ebp, dword [esp + 0x10]
cmp byte [ebp + 1], 0xf5
jne 0x10067ef1
mov edx, dword [ebp + 0x10]
mov ecx, ebx
push 0x800
call fcn.1005d7e0
add esp, 4
jmp 0x10067002
mov eax, 0x2400
test word [ebx + 8], ax
je 0x10067f08
mov ecx, ebx
call fcn.1005ceb0
jmp 0x10067002
mov eax, 1
mov word [ebx + 8], ax
jmp 0x10067002
mov edx, dword [ecx + esi*4 + 0x58]
mov dword [esp + 0x54], edx
mov eax, 0x2400
test word [ebx + 8], ax
je 0x10067f3c
mov ecx, ebx
call fcn.1005ceb0
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x54]
mov eax, dword [ecx + 0x54]
cmp eax, dword [ebp + esi*4 + 4]
jb 0x10067fd6
mov edi, dword [ecx + 0x4c]
add edi, dword [ebp + esi*4]
cmp edx, 0xc
jae 0x10067f65
push ebx
mov ecx, edi
call fcn.100617b0
add esp, 4
jmp 0x10067002
mov al, byte [esp + 0x50]
lea esi, [edx - 0xc]
shr esi, 1
mov dword [ebx + 0xc], esi
mov byte [ebx + 0xa], al
lea edx, [esi + 2]
cmp dword [ebx + 0x18], edx
jge 0x10067f9e
mov eax, 1
mov ecx, ebx
push 0
mov word [ebx + 8], ax
call fcn.1005ca90
add esp, 4
test eax, eax
jne 0x100681bf
mov eax, dword [ebx + 0x10]
jmp 0x10067fa4
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
push esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x54]
and eax, 1
mov ax, word [eax*2 + 0x100e4b1c]
mov word [ebx + 8], ax
jmp 0x10067002
mov al, byte [esp + 0x50]
mov byte [ebx + 0xa], al
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x10067ffb
cmp edx, 0xc
jb 0x10067ff7
test dl, 1
je 0x10068015
test al, al
js 0x10068015
cmp edx, 0x80
jb 0x1006800a
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x10068011
movzx eax, byte [edx + 0x100e4510]
test eax, eax
jne 0x10068028
push ebx
mov ecx, 0x101016f8
call fcn.100617b0
add esp, 4
jmp 0x10067002
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x4c]
push ebx
push eax
mov edx, dword [ebp + edx*4]
mov ecx, dword [ecx + 0x28]
call fcn.1005dc50
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
mov edx, dword [esp + 0x54]
mov ecx, dword [ebx + 0x10]
push ebx
call fcn.100617b0
mov eax, 0xefff
add esp, 4
and word [ebx + 8], ax
jmp 0x10067002
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
push dword [esp + 0x50]
mov dl, al
mov ecx, esi
call fcn.10066080
add esp, 4
cmp byte [edi], 0x45
jne 0x100680aa
movzx eax, word [esi + 8]
test al, 4
je 0x100680aa
and eax, 0xfffb
or eax, 0x20
mov word [esi + 8], ax
mov al, byte [edi + 1]
inc edi
test al, al
je 0x10066865
add esi, 0x28
jmp 0x10068081
mov edx, dword [esp + 0x10]
xor eax, eax
mov esi, dword [esp + 0x28]
xorps xmm0, xmm0
mov dword [esp + 0x30], eax
movlpd qword [esp + 0x78], xmm0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [esp + 0x58], xmm0
lea eax, [eax + eax*4]
lea ebp, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x38], ebp
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [eax*8]
mov eax, dword [esp + 0x14]
add ebx, ebp
mov dword [esp + 0x44], ebx
movzx ecx, byte [eax + 0x93]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x70], ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x34], eax
test edi, edi
je 0x1006815f
mov al, byte [edi]
lea esi, [ebp + 8]
mov ebx, dword [esp + 0x50]
push ebx
lea ecx, [esi - 8]
mov dl, al
call fcn.10066080
add esp, 4
cmp byte [edi], 0x45
jne 0x1006814c
movzx eax, word [esi]
test al, 4
je 0x1006814c
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x10068127
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x78]
mov edi, ebx
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
nop dword [eax]
lea eax, [esp + 0x98]
mov edx, ecx
push eax
mov ecx, edi
call fcn.10061570
mov ebx, eax
add esp, 4
mov eax, 0x4000
test word [edi + 8], ax
je 0x10068201
test ebx, ebx
jne 0x100681ac
mov ebx, 0xa
jmp 0x10068201
mov eax, dword [esp + 0x6c]
or eax, esi
je 0x100681ed
mov ecx, edi
call fcn.1005cc80
test eax, eax
je 0x10068201
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov ecx, ebp
call fcn.1003f1e0
push str.out_of_memory
push dword [esp + 0x18]
call fcn.1005e3d0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, 7
jmp 0x100685df
mov ecx, dword [edi]
mov eax, ecx
cdq
add dword [esp + 0x58], eax
adc dword [esp + 0x40], edx
sub dword [esp + 0x98], ecx
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x98]
mov dword [esp + 0x6c], eax
adc esi, 0
mov dword [esp + 0x78], esi
mov esi, 1
cmp ebx, 0x7f
jbe 0x1006823e
mov edx, ebx
xor ecx, ecx
shr edx, 7
mov eax, edx
or eax, ecx
je 0x1006823e
nop
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x10068230
mov eax, dword [esp + 0x30]
add eax, esi
mov dword [edi + 0x1c], ebx
mov dword [esp + 0x30], eax
cmp edi, ebp
je 0x1006825f
mov esi, dword [esp + 0x78]
sub edi, 0x28
mov ecx, dword [esp + 0x70]
jmp 0x10068180
cmp eax, 0x7e
jle 0x100682c6
cdq
mov ebx, 1
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x1006828e
nop dword [eax]
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x10068280
mov eax, dword [esp + 0x30]
mov edi, 1
add eax, ebx
mov dword [esp + 0x30], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x100682be
nop dword [eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x100682b0
mov eax, dword [esp + 0x30]
cmp ebx, edi
jge 0x100682cb
inc eax
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x34]
cdq
mov esi, eax
mov dword [esp + 0x70], eax
add esi, dword [esp + 0x6c]
mov ebp, edx
mov ebx, dword [ebx + 0x18]
mov ecx, ebp
adc ecx, dword [esp + 0x78]
mov edi, esi
add edi, dword [esp + 0x58]
mov eax, ebx
cdq
adc ecx, dword [esp + 0x40]
cmp ecx, edx
jg 0x10068308
jl 0x100682fc
cmp edi, eax
ja 0x10068308
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
jmp 0x10068355
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x6c]
cdq
cmp ecx, edx
jg 0x1006bf8c
jl 0x10068322
cmp edi, eax
ja 0x1006bf8c
cmp ebx, esi
jge 0x1006833c
mov ecx, dword [esp + 0x34]
mov edx, esi
push 0
call fcn.1005ca90
mov edx, dword [esp + 0x38]
add esp, 4
jmp 0x1006834d
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x14]
and word [edx + 8], 0x2d
mov dword [edx + 0x10], eax
xor eax, eax
test eax, eax
jne 0x100681bf
mov ecx, dword [esp + 0x58]
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x40]
mov dword [edx + 0xc], esi
je 0x10068378
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov eax, dword [esp + 0x30]
mov esi, dword [edx + 0x10]
lea edi, [esi + eax]
cmp eax, 0x80
jae 0x10068392
mov byte [esi], al
mov eax, 1
jmp 0x100683a1
push ebp
push dword [esp + 0x74]
mov ecx, esi
call fcn.10042ea0
add esp, 8
mov ebp, dword [esp + 0x38]
movzx eax, al
add esi, eax
nop word [eax + eax]
mov ebx, dword [ebp + 0x1c]
cmp ebx, 0x80
jae 0x100683c4
mov byte [esi], bl
mov eax, 1
jmp 0x100683d1
push 0
push ebx
mov ecx, esi
call fcn.10042ea0
add esp, 8
movzx eax, al
mov edx, ebp
push ebx
mov ecx, edi
add esi, eax
call fcn.10061740
add ebp, 0x28
add esp, 4
add edi, eax
cmp ebp, dword [esp + 0x44]
jbe 0x100683b0
jmp 0x10067002
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov esi, dword [esp + 0x14]
mov ecx, dword [edx + 4]
lea edx, [esp + 0xf0]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [esp + 0xf0], xmm0
call fcn.1005aba0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006c1f4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10068474
call fcn.10066210
mov esi, dword [esp + 0x1c]
mov ecx, eax
mov eax, dword [esp + 0xf0]
mov dword [ecx], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov esi, dword [esp + 0x1c]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0xf0]
mov dword [ecx], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x34], edi
test edi, edi
jne 0x10068595
cmp dword [ebp + 0xb4], edi
jg 0x1006bda0
test ebx, ebx
jne 0x100684ce
xor esi, esi
jmp 0x100684e2
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100684d3
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1d0]
xor edx, edx
add eax, dword [ebp + 0x1cc]
mov ecx, ebp
push eax
call fcn.100a2f10
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
lea eax, [esi + 0x21]
mov ecx, ebp
push 0
push eax
call fcn.1003ee80
mov edi, eax
add esp, 8
test edi, edi
je 0x10066865
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [ebp + 0x4f], 0
je 0x10068544
mov byte [ebp + 0x4f], 0
mov byte [ebp + 0x57], 1
jmp 0x1006854a
inc dword [ebp + 0x1cc]
mov eax, dword [ebp + 0x1c4]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x1d8]
mov dword [ebp + 0x1c4], edi
mov dword [edi + 8], eax
mov eax, dword [ebp + 0x1dc]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x1e0]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x1e4]
mov dword [edi + 0x14], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edi, dword [esp + 0x2c]
xor ebp, ebp
mov esi, dword [edi + 0x1c4]
test esi, esi
je 0x100685be
mov ecx, dword [esi]
mov edx, ebx
call fcn.10042210
test eax, eax
je 0x100686a3
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x100685a5
push ebx
push str.no_such_savepoint:__s
push dword [esp + 0x1c]
call fcn.1005e3d0
add esp, 0xc
mov eax, 1
mov ebp, edi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
cmp byte [ebp + 0x51], 0
mov edx, 7
cmovne eax, edx
cmp dword [ecx + 0x7c], 0
mov dword [esp + 0x20], eax
jne 0x1006861d
cmp eax, 0xc0a
je 0x1006861d
mov ecx, eax
call fcn.100b83e0
push eax
push 0x100f1c04
push dword [esp + 0x1c]
call fcn.1005e3d0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], eax
mov edx, eax
mov ecx, ebp
call fcn.10041fa0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x1c]
push dword [eax + 0x7c]
push dword [eax + 0xc0]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x30]
call fcn.10041660
mov ecx, dword [esp + 0x28]
add esp, 0x14
call fcn.10060d90
cmp dword [esp + 0x20], 0xc0a
jne 0x1006867b
mov ecx, ebp
call fcn.1003f1e0
mov al, byte [esp + 0x6b]
mov dword [esp + 0x20], 1
test al, al
je 0x1006c207
movzx edx, al
mov ecx, ebp
dec edx
call fcn.1007ece0
mov ebx, dword [esp + 0x20]
jmp 0x1006c20c
cmp dword [edi + 0xb4], 0
mov edx, dword [esp + 0x34]
jle 0x100686b9
cmp edx, 1
je 0x1006bdbb
cmp dword [esi + 0x18], 0
jne 0x10068712
cmp byte [edi + 0x57], 0
je 0x10068712
mov ebx, 1
mov dword [esp + 0x58], ebx
cmp edx, ebx
jne 0x1006871a
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.10060d10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006c1fb
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x4f], bl
call fcn.10060d90
cmp eax, 5
je 0x1006bdd6
mov eax, dword [esp + 0x14]
mov byte [edi + 0x57], 0
mov eax, dword [eax + 0x28]
mov dword [esp + 0x20], eax
jmp 0x1006880c
mov dword [esp + 0x58], 0
mov eax, dword [edi + 0x1cc]
sub eax, ebp
lea ebp, [eax - 1]
mov eax, dword [edi + 0x14]
mov dword [esp + 0x38], ebp
cmp edx, 2
jne 0x10068792
mov ecx, dword [edi + 0x18]
xor ebx, ebx
and ecx, 1
mov dword [esp + 0x40], ecx
test eax, eax
jle 0x10068798
mov ebp, ecx
xor ebp, 1
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esp + 0x2c]
mov edx, 0x204
push ebp
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.10054a10
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
mov eax, dword [esp + 0x2c]
inc ebx
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x10068750
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
jmp 0x10068798
xor ecx, ecx
mov dword [esp + 0x40], ecx
xor ebx, ebx
test eax, eax
jle 0x100687d5
mov eax, dword [esp + 0x2c]
xor edi, edi
mov ecx, dword [eax + 0x10]
push ebp
mov ecx, dword [edi + ecx + 4]
call fcn.10054c90
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
mov eax, dword [esp + 0x2c]
inc ebx
mov edx, dword [esp + 0x34]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x100687a4
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
test ecx, ecx
je 0x10068808
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100687fd
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x100687e4
mov ecx, edi
call fcn.1007ed50
or dword [edi + 0x18], 1
mov ebx, dword [esp + 0x58]
mov ecx, dword [edi + 0x1c4]
cmp ecx, esi
je 0x10068838
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1c4], eax
call fcn.1003eb40
mov ecx, dword [edi + 0x1c4]
dec dword [edi + 0x1cc]
cmp ecx, esi
jne 0x10068816
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
cmp edi, 1
jne 0x10068896
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1c4], eax
mov esi, ecx
call fcn.1003eb40
test ebx, ebx
jne 0x100688c3
dec dword [esi + 0x1cc]
push ebp
mov ebp, dword [esp + 0x30]
mov edx, edi
mov ecx, ebp
call fcn.100a2f10
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esi + 8]
mov dword [ecx + 0x1d8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1dc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1e0], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1e4], eax
test ebx, ebx
je 0x10068861
cmp edi, 2
je 0x10068861
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], 0
mov edx, dword [edx + 8]
test edx, edx
je 0x1006890f
mov eax, dword [ebp + 0x20]
and eax, 0x100000
or eax, 0
jne 0x1006be11
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x100689dc
lea eax, [esp + 0x6c]
mov ecx, esi
push eax
call fcn.10053a40
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006be1b
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp dword [ecx + 8], eax
je 0x100689e8
test byte [edx + 0x98], 0x80
je 0x100689e8
cmp byte [ebp + 0x4f], al
je 0x1006896e
cmp dword [ebp + 0xb0], 1
jle 0x100689e8
mov eax, dword [edx + 0x30]
test eax, eax
jne 0x1006898a
mov eax, dword [ebp + 0x1cc]
inc dword [ebp + 0x1d0]
add eax, dword [ebp + 0x1d0]
mov dword [edx + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, ebp
call fcn.100a2f10
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100689b2
mov eax, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [eax + 0x30]
call fcn.10054c30
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1d8]
mov dword [edx + 0x48], eax
mov eax, dword [ebp + 0x1dc]
mov dword [edx + 0x4c], eax
mov eax, dword [ebp + 0x1e0]
mov dword [edx + 0x50], eax
mov eax, dword [ebp + 0x1e4]
mov dword [edx + 0x54], eax
jmp 0x100689e0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
cmp word [ecx + 2], 0
je 0x10068a20
mov eax, dword [esp + 0x6c]
cmp eax, dword [ecx + 0xc]
jne 0x1006be55
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x1006be55
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xdc]
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1005aa70
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10068a9e
call fcn.10066210
mov ecx, eax
mov eax, dword [esp + 0xdc]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0xdc]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
call fcn.1005aae0
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x10068b00
mov ecx, dword [esi + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
or dword [ebp + 0x18], 1
jmp 0x10068b0e
cmp eax, 2
jne 0x10068b0e
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 1
jne 0x10068b44
mov ecx, dword [ebp + 4]
test ecx, ecx
je 0x10068b39
nop
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x10068b20
mov edx, dword [esp + 0x14]
and dword [edx + 0x98], 0xfffffffc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x10066394.108
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x10068ca6
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x98]
and al, 3
cmp al, 1
je 0x1006bebb
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov edi, dword [esp + 0x2c]
xor ebx, ebx
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], esi
mov edi, dword [eax + 4]
mov dword [esp + 0x78], edi
cmp dl, 0x6d
jne 0x10068bef
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov edx, dword [esp + 0x14]
and edi, 8
mov al, byte [eax + 0x4c]
or edi, 4
cmp al, byte [edx + 0x93]
jae 0x10068bf1
mov byte [edx + 0x93], al
jmp 0x10068bf1
xor edi, edi
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x10068c2f
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1005d010
mov dword [esi], eax
mov ecx, 0x3e40
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esi]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xf7
jne 0x10068c43
mov ebx, dword [ecx + 0x10]
movzx ebp, word [ebx + 8]
jmp 0x10068c4a
cmp al, 0xfd
jne 0x10068c4a
mov ebp, dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
push 0
push esi
push ebp
call fcn.10065eb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x100681bf
push dword [esi + 0x28]
mov eax, dword [esp + 0x48]
mov edx, eax
mov ecx, dword [esp + 0x7c]
or dword [esi + 8], 4
push ebx
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.10054d60
mov ebp, dword [esp + 0x38]
add esp, 0xc
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x2c], ebx
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, edi
movsx eax, word [ebx + 0x38]
push eax
call fcn.10065eb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x100681c3
or dword [edi + 8], 1
push dword [edi + 0x28]
mov byte [edi + 2], 1
mov esi, dword [ebx + 0x2c]
mov dword [edi + 0x2c], esi
mov al, byte [ebx + 4]
mov byte [edi + 4], al
mov edx, dword [ebx + 0x34]
mov dword [edi + 0x34], edx
mov eax, dword [ebx + 8]
xor eax, dword [edi + 8]
and eax, 4
xor dword [edi + 8], eax
mov ecx, dword [ebx + 0xc]
push esi
push 4
call fcn.10054d60
mov edi, dword [esp + 0x34]
mov ecx, eax
mov esi, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [edx + 4]
mov eax, dword [ecx + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x10068da7
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
test ecx, ecx
je 0x10068e9e
mov edx, dword [esi + 0x34]
push 0
call fcn.1005a670
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x10068ea2
mov eax, dword [esp + 0x10]
push 0
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.10065eb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x100681c3
mov eax, dword [esp + 0x10]
lea edi, [esi + 0xc]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
or ecx, 5
push ecx
mov ecx, dword [ebp]
push edi
push ebp
call fcn.10052950
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10068e7c
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.10053a40
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10068e7c
mov eax, dword [esp + 0x10]
mov ecx, dword [edi]
mov ebx, dword [eax + 0x10]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x10068e55
movzx eax, word [eax + 2]
lea edx, [esi + 0x34]
or eax, 2
push eax
call fcn.1005a460
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x10068e4f
push dword [esi + 0x28]
mov edx, dword [esi + 0x34]
mov ecx, dword [edi]
push ebx
push 4
call fcn.10054d60
add esp, 0xc
mov dword [esp + 0x20], eax
mov byte [esi + 4], 0
jmp 0x10068e78
push dword [esi + 0x28]
mov edx, 1
mov dword [esi + 0x34], 1
push 0
push 4
call fcn.10054d60
add esp, 0xc
mov dword [esp + 0x20], eax
mov byte [esi + 4], 1
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edi, dword [esp + 0x28]
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 1
push 0xffffffffffffffff
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.10065eb0
add esp, 0xc
test eax, eax
je 0x100681c3
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, ebp
mov edx, dword [edx + 0xc]
call fcn.1006d860
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov esi, dword [esp + 0x1c]
mov dword [edx + 0x14], eax
je 0x100663d2
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
mov edx, dword [edx + 4]
call fcn.10065eb0
add esp, 0xc
test eax, eax
je 0x100681c3
mov ecx, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x101012b9
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov edx, dword [ecx + 0x60]
mov edx, dword [edx + eax*4]
call fcn.10060230
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
xor ebp, ebp
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], ebp
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], bp
mov dword [esi + 0x1c], ebp
je 0x100690f3
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [edi + 8]
and al, 0x2e
cmp al, 2
jne 0x10069028
xor edx, edx
mov ecx, edi
call fcn.10065fb0
mov ecx, edi
call fcn.1005d010
movzx ecx, word [edi + 8]
mov ebp, eax
mov dword [esp + 0x44], edx
test cl, 0x24
jne 0x100690c2
test cl, 8
jne 0x10069094
test cl, 1
jne 0x100663ce
cmp ebx, 0x18
jae 0x100663ce
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x64]
call fcn.10055880
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
cmp dword [esp + 0x64], 0
jne 0x100663ce
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x78], 0
lea eax, [ecx + 0x14]
cmove eax, ecx
mov dword [esp + 0x10], eax
jmp 0x10067002
mov edx, dword [esp + 0x44]
mov ecx, ebp
call fcn.100d9f10
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x100690b6
test bl, 1
lea eax, [ebx - 1]
cmove eax, ebx
mov ebx, eax
jmp 0x100690c2
comisd xmm1, xmm0
jbe 0x100690c2
test bl, 1
jne 0x100690c2
inc ebx
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x28]
xor edx, edx
push eax
push 0
push edi
push ebp
call fcn.100558f0
add esp, 0x10
mov dword [esp + 0x20], eax
mov dword [esi + 0x40], ebp
mov dword [esi + 0x44], edi
test eax, eax
jne 0x1006bd97
jmp 0x1006918e
mov ecx, dword [esi + 0x28]
mov edx, 2
call fcn.1005bd80
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xf8]
test eax, eax
mov eax, 1
cmovne ebp, eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xf8], eax
test bl, 1
mov ax, word [ecx + 0x10]
mov word [esp + 0x100], ax
sete al
mov byte [esp + 0x106], 0
mov dword [esp + 0x78], ebp
lea eax, [eax*2 - 1]
mov byte [esp + 0x102], al
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0xfc], eax
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.100558f0
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006bd97
test ebp, ebp
je 0x1006918e
cmp byte [esp + 0x106], al
je 0x10069071
mov eax, dword [esp + 0x64]
cmp ebx, 0x18
jl 0x100691f9
test eax, eax
js 0x100691af
jne 0x100691a2
cmp ebx, 0x19
je 0x100691af
mov dword [esp + 0x64], 0
jmp 0x1006907c
mov dword [esp + 0x64], 0
push 0
push dword [esi + 0x28]
call fcn.10056000
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x10069071
cmp eax, 0x65
jne 0x1006bd97
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
mov dword [esp + 0x64], 1
mov eax, dword [ebp + 8]
jmp 0x10067e9d
test eax, eax
jg 0x10069215
jne 0x10069204
cmp ebx, 0x16
je 0x10069215
mov ecx, dword [esi + 0x28]
call fcn.10055e20
mov dword [esp + 0x64], eax
jmp 0x10069071
mov dword [esp + 0x64], 0
push 0
push dword [esi + 0x28]
call fcn.10056180
jmp 0x100691c1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov eax, dword [eax + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, 8
xor dword [ecx + 8], eax
mov ecx, edx
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [eax + 8], 8
jne 0x10066987
jmp 0x1006927a
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [edx + 0x60]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
test ecx, ecx
jle 0x100692bb
mov eax, dword [ebx + 0x2c]
lea edi, [esp + 0x180]
mov dword [esp + 0x180], eax
xor ebp, ebp
mov word [esp + 0x188], cx
mov dword [esp + 0x184], esi
jmp 0x100692fb
mov eax, 0x4000
test word [esi + 8], ax
je 0x100692d5
mov ecx, esi
call fcn.1005cc80
test eax, eax
jne 0x100681c3
mov ecx, dword [ebx + 0x2c]
call fcn.10061a60
mov edi, eax
mov ebp, edi
test edi, edi
je 0x100681bf
mov edx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x2c]
push edi
push dword [esi + 0x10]
call fcn.10061ad0
add esp, 8
mov eax, dword [esp + 0x10]
xor esi, esi
mov byte [edi + 0xa], 0
cmp byte [eax], 0x1b
jne 0x10069334
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x10069334
mov eax, dword [edi + 4]
add eax, 8
nop word [eax + eax]
test byte [eax], 1
jne 0x1006932f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10069320
jmp 0x10069334
mov esi, 1
mov ecx, dword [ebx + 0x28]
lea eax, [esp + 0xbc]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.100558f0
add esp, 0x10
mov dword [esp + 0x20], eax
test ebp, ebp
je 0x1006936a
mov edx, ebp
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
call fcn.1003eb40
mov eax, dword [esp + 0x20]
jmp 0x1006936e
mov ebp, dword [esp + 0x2c]
test eax, eax
jne 0x100685d7
mov eax, dword [esp + 0xbc]
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0xbc]
test eax, eax
mov byte [ebx + 3], 0
sete cl
mov dword [ebx + 0x1c], 0
test eax, eax
setne al
mov byte [ebx + 2], al
cmp byte [edi], 0x1d
jne 0x100693c8
mov esi, dword [esp + 0x1c]
test ecx, ecx
jne 0x100663d2
mov eax, dword [esp + 0x18]
mov ecx, edi
mov edi, dword [esp + 0x28]
add ecx, 0x14
jmp 0x10066376
test esi, esi
jne 0x100663ce
mov esi, dword [esp + 0x1c]
test ecx, ecx
je 0x100663d2
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
mov edi, eax
test al, 0x24
jne 0x10069430
push dword [esp + 0x50]
mov dl, 0x43
mov ecx, esi
call fcn.10066080
movzx eax, word [esi + 8]
add esp, 4
shr eax, 2
not eax
mov word [esi + 8], di
test al, 1
jne 0x100663ce
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
xor edx, edx
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x9c], 0
lea eax, [eax + eax*4]
mov esi, dword [edi + eax*8]
mov edi, dword [edi + eax*8 + 4]
lea eax, [esp + 0x9c]
push eax
push 0
push edi
push esi
call fcn.100558f0
mov dword [ebx + 0x40], esi
add esp, 0x10
mov dword [ebx + 0x44], edi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x9c]
mov dword [ebx + 0x20], eax
cmp dword [esp + 0x9c], 0
je 0x1006ae91
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jne 0x100663ce
mov ecx, 0x158d1
call fcn.100ba810
mov dword [esp + 0x20], eax
jmp 0x1006ae95
mov edx, dword [esp + 0x10]
jmp 0x10069434
mov ebx, dword [esp + 0x10]
mov edx, ebx
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.10066240
mov ecx, dword [esi + 0x60]
mov edx, dword [ebx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, esi
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x14]
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], 0
call fcn.10066240
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x60]
mov edi, dword [ecx + edx*4]
test byte [edi + 8], 2
jne 0x100695b5
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x40]
call fcn.10055880
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp dword [esp + 0x40], eax
je 0x1006957e
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], eax
jmp 0x100695b1
mov ecx, dword [edi + 0x28]
call fcn.10054fb0
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp edx, 0x7fffffff
jl 0x100695a3
jg 0x1006959d
cmp eax, 0xffffffff
jb 0x100695a3
or dword [edi + 8], 2
jmp 0x100695b1
add eax, 1
mov dword [esp + 0x38], eax
adc edx, 0
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x10069649
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x100695e9
mov eax, dword [edx + 4]
test eax, eax
je 0x100695de
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x100695d5
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x100695f3
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1005d1d0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x10069610
cmp edx, 0x7fffffff
je 0x100696a6
test byte [edi + 8], 2
jne 0x100696a6
add ecx, 1
adc edx, 0
cmp dword [esp + 0x3c], edx
jg 0x1006963c
jl 0x10069630
mov eax, dword [esp + 0x38]
cmp eax, ecx
jae 0x10069640
mov eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
jmp 0x10069640
mov eax, dword [esp + 0x38]
mov dword [esi], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 4], eax
test byte [edi + 8], 2
je 0x100696b0
xor esi, esi
lea eax, [esp + 0x38]
push eax
push 8
call fcn.100416b0
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x48]
mov ecx, dword [esp + 0x40]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [esp + 0x44], ecx
push 0
push eax
mov dword [esp + 0x50], eax
xor edx, edx
push ecx
mov ecx, dword [edi + 0x28]
call fcn.100558f0
add esp, 0x18
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp dword [esp + 0x40], eax
jne 0x100696b0
inc esi
cmp esi, 0x64
jl 0x10069651
mov eax, 0xd
jmp 0x100685d7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov dword [ebx], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ebp, dword [ecx + eax*8]
mov dword [esp + 0x198], ebp
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x19c], eax
jne 0x10069742
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0xec], 0
je 0x10069742
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ebx, dword [edx + 0x10]
mov ecx, dword [eax + ecx*8]
mov dword [esp + 0x44], ecx
jmp 0x10069748
xor ebx, ebx
mov dword [esp + 0x44], ebx
movzx eax, word [edx + 2]
mov edx, eax
test al, 1
je 0x10069761
mov eax, dword [esp + 0x14]
inc dword [eax + 0x2c]
mov eax, dword [esp + 0x10]
movzx edx, word [eax + 2]
movzx ecx, dx
test dl, 0x20
je 0x10069783
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x28], ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 2]
mov edx, dword [esp + 0x28]
mov eax, dword [edx + edi*8 + 0x10]
mov dword [esp + 0x1a0], eax
mov eax, dword [edx + edi*8 + 0xc]
mov dword [esp + 0x1ac], eax
test cl, 0x10
je 0x100697a7
mov edx, dword [esi + 0x20]
jmp 0x100697a9
xor edx, edx
mov eax, dword [esp + 0x28]
mov ebp, 0x4000
test word [eax + edi*8 + 8], bp
mov ebp, dword [esp + 0x2c]
je 0x100697c9
mov eax, dword [eax + edi*8]
mov dword [esp + 0x1b0], eax
jmp 0x100697d4
mov dword [esp + 0x1b0], 0
push edx
and ecx, 0xa
mov dword [esp + 0x194], 0
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x198]
call fcn.10059950
add esp, 8
mov dword [esp + 0x20], eax
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x100685d7
test ebx, ebx
je 0x10066865
push dword [esp + 0x19c]
mov eax, dword [esp + 0x14]
mov ecx, 0x17
push dword [esp + 0x19c]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [esp + 0x50]
cmovne eax, ecx
push eax
push dword [ebp + 0xe8]
mov eax, dword [ebp + 0xec]
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x100698be
cmp dword [ebp + 0xec], 0
je 0x100698be
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x100698c2
cmp byte [esi + 4], 0
je 0x100698c2
mov ecx, dword [esi + 0x28]
call fcn.10054fb0
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x40], eax
jmp 0x100698c2
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x28]
call fcn.10059d60
mov dword [esp + 0x20], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
test eax, eax
jne 0x100685d7
test byte [esp + 0x38], 1
je 0x10066865
mov edx, dword [esp + 0x14]
inc dword [edx + 0x2c]
mov eax, dword [ebp + 0xec]
test eax, eax
je 0x10066865
test byte [edi + 0x24], 0x20
jne 0x10066865
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
push dword [ebp + 0xe8]
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
mov ecx, ebp
mov edx, dword [eax + 0x2c]
call fcn.10062e80
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x2c], 0
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0xc0], 0
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
lea eax, [esp + 0xc0]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.1006f7c0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp dword [esp + 0xc0], eax
jne 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.1006f710
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov eax, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [esp + 0x10]
call fcn.10066240
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
mov ecx, edi
call fcn.10054fd0
cmp eax, dword [ebp + 0x6c]
ja 0x1006bf98
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.1005dc50
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xc], eax
jne 0x10066869
mov eax, 0x1000
test word [esi + 8], ax
je 0x10066869
mov ecx, esi
call fcn.1005cc20
test eax, eax
jne 0x100681c3
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov esi, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [esp + 0x10]
call fcn.10066240
mov ecx, dword [esp + 0x10]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x10069aef
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x1c]
mov word [edi + 8], ax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
cmp byte [esi + 3], 0
je 0x10069b2d
mov ecx, dword [esi + 0x40]
mov dword [esp + 0xb0], ecx
mov eax, dword [esi + 0x44]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xb4], eax
mov dword [edi], ecx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
cmp byte [esi], 2
jne 0x10069b90
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xb0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10062fd0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0x1c]
mov dword [edi], ecx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, esi
call fcn.100614e0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp byte [esi + 2], al
je 0x10069bc9
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x1c]
mov word [edi + 8], ax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esi + 0x28]
call fcn.10054fb0
mov esi, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], edx
mov dword [edi], ecx
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x10066865
mov ecx, dword [ecx + 0x28]
call fcn.10050f30
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x28]
mov dword [esp + 0xac], 0
cmp dl, 0x82
jne 0x10069c74
mov ecx, edi
mov dword [esi + 0x20], 0xffffffff
call fcn.10054f90
test eax, eax
jne 0x10066865
lea edx, [esp + 0xac]
mov ecx, edi
call fcn.10055880
mov dword [esp + 0x20], eax
mov al, byte [esp + 0xac]
mov byte [esi + 2], al
mov eax, dword [esp + 0x20]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], eax
jle 0x10066869
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0xac], eax
jne 0x100663d2
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
lea edx, [esp + 0xa4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.10055840
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp dword [esp + 0xa4], eax
jne 0x100663ce
mov ecx, esi
call fcn.10055e40
test edx, edx
jl 0x10069d4e
jg 0x10069d21
test eax, eax
jb 0x10069d4e
push edx
push eax
call fcn.10043580
mov ecx, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x10069d52
mov esi, dword [esp + 0x1c]
mov ebp, ecx
mov dword [esp + 0xa4], 1
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0xa4], 0
mov esi, dword [esp + 0x1c]
jne 0x100663d2
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
inc dword [eax + 0xac]
jmp 0x10069d80
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov ecx, dword [edx + 4]
lea edx, [esp + 0x90]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x90], 1
cmp byte [esi], 1
jne 0x10069dad
mov ecx, esi
call fcn.1006f5c0
jmp 0x10069dc0
mov ecx, dword [esi + 0x28]
call fcn.10055840
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov al, byte [esp + 0x90]
mov byte [esi + 2], al
cmp dword [esp + 0x90], 0
mov esi, dword [esp + 0x1c]
jne 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, ebp
call fcn.1006f660
jmp 0x10069e33
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
push dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
push dword [esi + 0x28]
call eax
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x10069e5d
mov ecx, dword [esp + 0x14]
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x1006b775
cmp eax, 0x65
jne 0x100685d7
xor ecx, ecx
mov byte [esi + 2], 1
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp dword [ebp + 0x110], 0
jne 0x1006c1b4
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
cmp edi, ebx
jb 0x10066869
nop dword [eax]
mov eax, dword [ebp + 0x148]
test eax, eax
je 0x10066865
add ebx, dword [ebp + 0x150]
push dword [ebp + 0x14c]
mov dword [esp + 0x28], ebx
call eax
add esp, 4
test eax, eax
jne 0x1006c233
cmp edi, ebx
jae 0x10069ea0
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x10069f0e
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10069f2c
mov ecx, esi
call fcn.1005cc80
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0x83
jne 0x10069f3c
mov edx, esi
mov ecx, edi
call fcn.1006e880
jmp 0x10069fa1
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x200], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x214], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x218], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x10069f81
mov ecx, dword [edi + 0x20]
jmp 0x10069f83
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x204]
and eax, 0xa
push eax
call fcn.10059950
add esp, 8
mov dword [edi + 0x1c], 0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [esp + 0x130], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x138], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x130]
mov byte [esp + 0x13a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x134], eax
lea eax, [esp + 0xe0]
push eax
push 0
push 0
push 0
call fcn.100558f0
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp dword [esp + 0xe0], eax
jne 0x1006a054
mov dl, 4
mov ecx, edi
call fcn.10059d60
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.100614e0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
cmp byte [esi + 2], al
jne 0x1006a159
xorps xmm0, xmm0
lea eax, [esp + 0xc8]
movlpd qword [esp + 0xc8], xmm0
mov ecx, ebp
mov edx, dword [esi + 0x28]
push eax
call fcn.10062c00
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x86
jne 0x1006a127
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov byte [ecx + 2], 0
mov eax, dword [esp + 0xc8]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0xcc]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x10]
mov byte [ecx + 3], 1
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x24], esi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.10066240
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0xcc]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d500
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp byte [esp + 0x4b], 0x27
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x140], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x148], ax
sbb al, al
mov byte [esp + 0x14a], al
mov eax, dword [ecx + 0xc]
mov ecx, ebp
mov dword [esp + 0x94], 0
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x144], eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x144]
push eax
call fcn.10062d70
mov dword [esp + 0x28], eax
add esp, 8
mov eax, dword [esp + 0x10]
test byte [eax], 1
mov eax, dword [esp + 0x94]
je 0x1006a205
neg eax
jmp 0x1006a206
inc eax
cmp dword [esp + 0x20], 0
mov dword [esp + 0x94], eax
jne 0x1006bf38
test eax, eax
jg 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebp + 0xbc]
inc ecx
cmp dword [ebp + 0xb0], ecx
jg 0x1006bec5
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xa0]
mov ecx, dword [ebp + 0x10]
push eax
mov dword [esp + 0xa4], 0
mov ebx, dword [edx + 0xc]
mov eax, ebx
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1005aa20
mov dword [esp + 0x24], eax
add esp, 4
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0xa0]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 4], edx
test eax, eax
jne 0x100685d7
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x10066869
push dword [ecx + 4]
mov edx, ebx
mov ecx, ebp
push eax
call fcn.10081540
mov ecx, dword [esp + 0x18]
mov al, bl
mov esi, dword [esp + 0x24]
add esp, 8
inc al
mov byte [esp + 0x6b], al
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x44]
xor ecx, ecx
mov dword [esp + 0x44], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1005a670
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x20], eax
cmp dword [ecx + 0xc], 0
je 0x1006a353
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
add dword [edx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jle 0x1006a34b
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x1006a397
mov edx, dword [ecx + 0x28]
mov ecx, ebp
call fcn.1006dd10
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [ecx + 0x28]
call fcn.1005a730
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov esi, eax
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xc4]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
add ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
call fcn.1005a460
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x10]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
inc byte [ebp + 0x5a]
push 0
push 0
push 0
push dword [edx + 0x10]
push ebp
call fcn.1008f540
dec byte [ebp + 0x5a]
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x10]
mov esi, dword [edx + 4]
test ecx, ecx
jne 0x1006a4af
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.10084f50
mov eax, dword [esp + 0x18]
add esp, 4
and dword [ebp + 0x18], 0xffffffef
add eax, 0x7c
mov edx, esi
mov ecx, ebp
push 1
push eax
call fcn.10093780
mov edx, dword [esp + 0x1c]
add esp, 8
or dword [ebp + 0x18], 1
mov dword [esp + 0x20], eax
and dword [edx + 0x98], 0xfffffffc
jmp 0x1006a574
mov eax, dword [esp + 0x14]
add eax, 0x7c
mov dword [esp + 0x120], esi
mov dword [esp + 0x11c], eax
add esi, esi
mov eax, dword [ebp + 0x10]
push ecx
push str.sqlite_master
mov dword [esp + 0x120], ebp
mov dword [esp + 0x130], 0
push dword [eax + esi*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebp
call fcn.10041380
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1006beda
push 0
lea eax, [esp + 0x11c]
mov byte [ebp + 0xa5], 1
push eax
push fcn.10093560
push esi
push ebp
mov dword [esp + 0x138], 0
mov dword [esp + 0x140], 0
call fcn.1008f540
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006a560
mov eax, dword [esp + 0x124]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006a560
cmp dword [esp + 0x12c], eax
jne 0x1006a560
mov ecx, 0x15e52
call fcn.100ba810
mov dword [esp + 0x20], eax
mov edx, esi
mov ecx, ebp
call fcn.1003eb40
mov eax, dword [esp + 0x20]
mov byte [ebp + 0xa5], 0
test eax, eax
jne 0x1006bee2
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
mov edx, dword [edx + 4]
call fcn.1007d110
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1007f0b0
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1007eb90
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1009e810
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add edx, 4
lea esi, [eax + eax*4]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + esi*8]
inc eax
push eax
movzx eax, word [ebx + 2]
push dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1005b700
add esp, 0xc
mov ecx, edi
mov ebx, eax
call fcn.1005d500
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x1006a6a6
test ebx, ebx
je 0x100681c3
mov ecx, dword [esp + 0x28]
dec eax
cdq
push fcn.1003ea80
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov edx, ebx
mov ecx, edi
call fcn.1005d8d0
add esp, 0xc
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.1005ca60
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x1006a6f3
mov ecx, esi
call fcn.1005d6a0
test eax, eax
jne 0x100681c3
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10048a80
mov ecx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
je 0x1006a770
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x108]
call fcn.10048df0
test eax, eax
je 0x1006a770
mov eax, dword [esp + 0x10]
push dword [esp + 0x10c]
push dword [esp + 0x10c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.1005d5d0
add esp, 8
jmp 0x10069e70
mov ecx, esi
call fcn.1005d500
jmp 0x1006b775
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x1006a7a8
mov ecx, esi
call fcn.1005d6a0
test eax, eax
jne 0x100681c3
test ebx, ebx
je 0x1006a7ce
mov eax, dword [esp + 0x28]
mov edx, ebx
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10048e60
add esp, 8
test eax, eax
jne 0x100663ce
test ebx, ebx
js 0x10066865
jmp 0x1006a6f3
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x38], edi
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x1006a820
mov eax, dword [edx + 0xc8]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x1006a820
nop dword [eax]
cmp dword [eax + 0x1c], ecx
je 0x100670df
mov eax, dword [eax + 4]
test eax, eax
jne 0x1006a810
mov ebx, dword [esp + 0x2c]
mov eax, dword [edx + 0xd0]
cmp eax, dword [ebx + 0x94]
jge 0x1006bf03
test byte [ebp + 8], 0x10
jne 0x1006a93a
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x1006a868
add eax, 7
sar eax, 3
lea edi, [eax + ecx*4]
mov ecx, ebx
mov eax, edi
cdq
push edx
push eax
call fcn.1003edf0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100681bf
mov ecx, ebp
call fcn.1005cf40
mov ecx, dword [esp + 0x10]
mov eax, 0x410
sub ecx, dword [esp + 0x1c]
mov word [ebp + 8], ax
mov eax, dword [esp + 0x14]
mov dword [ebp + 0xc], edi
mov edi, dword [esp + 0x38]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x24], 0x1005f8a0
mov dword [ebx], eax
mov dword [ebx + 0x3c], esi
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [ebx + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [ebx + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [ebx + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [ebx + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [ebx + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
lea eax, [ebx + 0x50]
cmp eax, ecx
je 0x1006a932
mov edx, dword [esp + 0x2c]
mov ebp, 0x80
nop word [eax + eax]
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x1006a920
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xd0]
jmp 0x1006a93d
mov ebx, dword [ebp + 0x10]
mov ebp, dword [esp + 0x2c]
lea esi, [ebx + 0x50]
inc eax
mov dword [esp + 0x28], esi
mov dword [edx + 0xd0], eax
mov eax, dword [edx + 0xc8]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebx + 0x24], eax
mov eax, dword [edx + 0x2c]
mov dword [ebx + 0x44], eax
mov eax, dword [edx]
mov eax, dword [eax + 0x64]
mov dword [ebx + 0x48], eax
mov eax, dword [edx + 0xdc]
mov dword [ebx + 0x28], eax
mov dword [edx + 0xdc], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xc8], ebx
mov dword [edx + 0x58], esi
mov ecx, dword [ebx + 0x3c]
mov dword [edx + 0x18], ecx
movzx eax, word [ebx + 0x40]
mov dword [edx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [ebx + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
mov esi, dword [edi]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
lea ecx, [esi - 0x14]
mov dword [edx + 0x68], esi
mov eax, dword [edi + 4]
mov dword [edx + 0x6c], eax
mov dword [esp + 0x10], ecx
jmp 0x10069e7c
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov esi, eax
mov eax, dword [esp + 0x14]
push 0x1000
mov eax, dword [eax + 0xc8]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.1005d7e0
mov ecx, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
je 0x1006aa78
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cdq
add dword [ebp + 0x1e0], eax
mov eax, dword [esp + 0x18]
adc dword [ebp + 0x1e4], edx
add ecx, 0x14
jmp 0x10066376
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x1006aa9e
add dword [ebp + 0x1d8], eax
mov ecx, dword [esp + 0x10]
adc dword [ebp + 0x1dc], edx
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x40], eax
mov eax, dword [esp + 0x18]
adc dword [ecx + 0x44], edx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
cmp dword [ecx + 4], 0
je 0x1006aaee
mov eax, dword [ebp + 0x1d8]
or eax, dword [ebp + 0x1dc]
jne 0x10066987
mov eax, dword [ebp + 0x1e0]
or eax, dword [ebp + 0x1e4]
je 0x100663d2
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x40]
or eax, dword [edx + 0x44]
jmp 0x1006aaca
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x1006ab2b
mov eax, dword [edx + 4]
test eax, eax
je 0x1006ab19
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1006ab10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x1006ab38
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov ecx, edi
call fcn.1005d1d0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1005d1d0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x10066865
jl 0x1006ab6f
cmp dword [edi], eax
jae 0x10066865
mov esi, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov edi, dword [edi + esi*8 + 4]
test edi, edi
jl 0x10066865
jg 0x1006abab
test ecx, ecx
je 0x10066865
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x28]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.10066240
mov edx, dword [esp + 0x28]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
test ecx, ecx
jl 0x1006ac72
jg 0x1006ac10
test eax, eax
je 0x1006ac72
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x1006ac21
jg 0x1006ac32
test eax, eax
jne 0x1006ac32
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push ecx
push eax
lea ecx, [esp + 0xd8]
call fcn.100432a0
add esp, 8
test eax, eax
jne 0x1006ac72
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0xd4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [esp + 0x28]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov eax, ecx
mov edx, dword [edi + esi*8 + 4]
or eax, edx
je 0x1006697f
test edx, edx
jl 0x100663ce
jg 0x1006acc4
test ecx, ecx
je 0x100663ce
mov ebp, dword [esp + 0x10]
sub ecx, 1
mov dword [edi + esi*8], ecx
sbb edx, 0
mov dword [edi + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [edi + edx*8 + 4]
mov eax, dword [edi + edx*8]
cmp ecx, 0x80000000
jl 0x1006ad0d
jg 0x1006ad00
test eax, eax
je 0x1006ad0d
sub eax, 1
mov dword [edi + edx*8], eax
sbb ecx, 0
mov dword [edi + edx*8 + 4], ecx
or eax, ecx
je 0x100663d2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.1003ee80
mov esi, eax
add esp, 8
test esi, esi
je 0x100681c3
lea ecx, [ebx + 7]
mov dword [esi + 8], 0
lea ecx, [esi + ecx*4]
mov edx, ebp
push 1
mov dword [esi], ecx
call fcn.1005d4d0
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x1c]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x18], 0
sar edx, 3
mov eax, edx
mov dword [esi + 0x14], 0
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x19], bl
mov edx, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov word [edx], 0xf09b
mov dword [edx + 0x10], esi
jmp 0x1006adaf
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
cmp dword [esi + 8], edi
je 0x1006adfa
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edi
js 0x1006adfa
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
nop word [eax + eax]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x1006ade0
mov ebp, dword [esp + 0x2c]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x1006ae19
mov eax, dword [ecx + 0x1c]
jmp 0x1006ae1c
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x10066865
jle 0x1006ae51
push dword [esi]
call fcn.100635d0
add esp, 4
push eax
push 0x100f1c04
push dword [esp + 0x1c]
call fcn.1005e3d0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [esi + 0x18], 0
je 0x1006ae78
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x1006ae74
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.1005d5d0
add esp, 8
mov byte [esi + 0x18], 0
mov ecx, dword [esi]
call fcn.1005cf40
mov eax, dword [esi]
mov ecx, 1
mov word [eax + 8], cx
mov dword [esi + 0x14], 0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 0xc]
mov ecx, esi
test eax, eax
je 0x1006aeed
push dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
call fcn.1005ce40
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jmp 0x1006aef7
mov edx, dword [edx + 0x10]
call fcn.1005cd90
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x1006bf1d
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.1005ca60
mov ecx, esi
call fcn.1005d770
test eax, eax
jne 0x1006bf98
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x230]
push eax
lea eax, [esp + 0x230]
mov dword [esp + 0x22c], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov ecx, ebp
mov dword [esp + 0x23c], 0xffffffff
mov dword [esp + 0x238], 0xffffffff
call fcn.100b9170
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x1006af9b
cmp eax, 5
jne 0x100685d7
mov dword [esp + 0x20], 0
mov dword [esp + 0x228], 1
mov eax, dword [esp + 0x10]
xor esi, esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
nop word [eax + eax]
mov eax, dword [esp + esi*4 + 0x228]
mov ecx, edi
cdq
push edx
push eax
call fcn.1005d5d0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x1006afb0
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov edx, ebx
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov edx, dword [ebx + 4]
mov ebp, eax
mov eax, dword [esp + 0x2c]
add edx, edx
mov esi, dword [ebx + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x38], eax
call fcn.1005acd0
mov ebx, eax
mov ecx, ebx
call fcn.1004dbb0
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.1004dbd0
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.1004d800
cmp esi, 5
jne 0x1006b0c6
mov ecx, eax
call fcn.10041ed0
test eax, eax
je 0x1006b05c
mov ecx, ebx
call fcn.1004dc10
test eax, eax
jne 0x1006b0c6
mov esi, edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1006b068
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.1004daa0
mov ecx, 0xa02
mov word [ebp + 8], cx
mov ecx, eax
call fcn.100903b0
mov ecx, eax
mov dword [ebp + 0x10], eax
call fcn.10041ed0
movzx edx, byte [esp + 0x50]
mov ecx, ebp
mov dword [ebp + 0xc], eax
mov byte [ebp + 0xa], 1
call fcn.1005ca60
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x2c]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
cmp esi, edi
je 0x1006b05e
cmp edi, 5
je 0x1006b0d4
cmp esi, 5
jne 0x1006b05e
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x4f], 0
je 0x1006bf41
cmp dword [eax + 0xb0], 1
jg 0x1006bf41
cmp edi, 5
jne 0x1006b114
mov edx, eax
mov ecx, ebx
call fcn.1004dee0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006b066
mov edx, esi
mov ecx, ebx
call fcn.1004daa0
jmp 0x1006b12e
cmp edi, 4
jne 0x1006b123
lea edx, [edi - 2]
mov ecx, ebx
call fcn.1004daa0
cmp dword [esp + 0x20], 0
jne 0x1006b066
mov ecx, dword [esp + 0x38]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.1005bcf0
mov dword [esp + 0x20], eax
jmp 0x1006b062
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x1006b15c
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
jmp 0x1006b15e
xor eax, eax
mov ecx, dword [esp + 0x14]
push eax
push dword [edx + 4]
mov edx, ebp
lea ecx, [ecx + 0x7c]
call fcn.100a1720
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.100544a0
mov dword [esp + 0x20], eax
test eax, eax
je 0x10066865
cmp eax, 0x65
jne 0x100685d7
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x20], 0
mov eax, dword [ebp + 8]
jmp 0x10067e9d
cmp dword [ecx + 4], 0
jne 0x1006b1ed
mov edx, dword [ecx + 8]
mov ecx, ebp
call fcn.10062ea0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [edx + 0x98]
and eax, 3
xor dword [edx + 0x98], eax
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov al, byte [ecx + 0xc]
mov byte [esp + 0xa8], al
test al, al
jne 0x1006b230
mov eax, dword [ebp + 0x20]
and eax, 0x400
mov dword [esp + 0x38], eax
jne 0x10066987
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
push dword [esp + 0xa8]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1005bbb0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x10066403
cmp al, 6
jne 0x100685d7
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [esp + 0x1c]
call fcn.1005e3d0
mov eax, dword [esp + 0x2c]
add esp, 0xc
jmp 0x100685d7
mov edx, dword [esp + 0x10]
mov ecx, ebp
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.100a2e40
mov dword [esp + 0x20], eax
test esi, esi
je 0x1006b2b3
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x14]
call fcn.10062fd0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x1d8]
xorps xmm0, xmm0
movq qword [esp + 0x1f8], xmm0
movups xmmword [esp + 0x1d8], xmm0
mov eax, dword [edx + 8]
movups xmmword [esp + 0x1e8], xmm0
mov dword [esp + 0x1f8], ebp
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
call fcn.1005d850
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1d8]
push eax
call fcn.100635d0
add esp, 4
test eax, eax
je 0x1006b341
mov ecx, dword [esp + 0x14]
add ecx, 0x7c
push ecx
push eax
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov edx, dword [eax + 4]
call fcn.100a2990
add esp, 8
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1d8]
call fcn.1005cf40
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
inc dword [ebp + 0xbc]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.100a2ca0
dec dword [ebp + 0xbc]
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov dword [esp + 0x58], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x1006bf82
mov edi, dword [esi]
test edi, edi
je 0x1006bf82
lea eax, [esp + 0x58]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10062fd0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x100685db
mov eax, dword [esp + 0x58]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 4]
call fcn.10065eb0
add esp, 0xc
test eax, eax
je 0x1006bf71
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x28]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov ebx, dword [esp + 0x14]
lea edx, [eax + eax*4]
lea esi, [edx + 5]
mov eax, dword [ebx + 0x60]
lea esi, [edi + esi*8]
mov edi, dword [esi]
mov ebx, dword [ebx + 0x5c]
movd xmm0, esi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x38], esi
pshufd xmm3, xmm0, 0
mov ebp, dword [eax + 0x28]
mov dword [esp + 0x44], ebp
mov eax, dword [ebp]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edx*8]
mov dword [esp + 0x78], edx
test edi, edi
jle 0x1006b593
cmp edi, 0x10
jb 0x1006b57b
cmp dword [0x101011d0], 2
jl 0x1006b57b
movaps xmm2, xmmword [0x100f4780]
mov eax, edi
and eax, 0x8000000f
jns 0x1006b4c2
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____PPPP]
lea edx, [ebx + 0x20]
mov ebp, edi
mov esi, 8
sub ebp, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebp
jl 0x1006b4e0
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x78]
cmp ecx, edi
jge 0x1006b593
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x1006b588
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x70]
push ebx
push edi
push dword [eax + 0x10]
mov eax, dword [esi + 0x20]
push edx
push ebp
call eax
mov edx, dword [esp + 0x54]
add esp, 0x14
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
call fcn.10062fd0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x1006bd97
mov eax, dword [esi + 0x28]
push ebp
call eax
mov ecx, dword [esp + 0x5c]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x10066cdb
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x1006b633
mov ecx, esi
call fcn.1005d500
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x28]
mov ebx, dword [eax]
mov ebp, dword [ebx]
movups xmmword [esp + 0x1b8], xmm0
mov dword [esp + 0x1b8], esi
movups xmmword [esp + 0x1c8], xmm0
je 0x1006b672
mov ecx, esi
call fcn.1005d500
mov edx, dword [esp + 0x10]
mov eax, 0x4001
mov dword [esi], 0
jmp 0x1006b685
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 8], ax
lea eax, [esp + 0x1b8]
push dword [edx + 8]
push eax
push dword [edi + 0x28]
mov eax, dword [ebp + 0x2c]
call eax
mov ebp, dword [esp + 0x20]
add esp, 0xc
mov edx, ebx
mov dword [esp + 0x20], eax
mov ecx, ebp
call fcn.10062fd0
cmp dword [esp + 0x1cc], 0
jle 0x1006b6dd
push esi
call fcn.100635d0
add esp, 4
push eax
push 0x100f1c04
push ebp
call fcn.1005e3d0
mov eax, dword [esp + 0x1d8]
add esp, 0xc
mov dword [esp + 0x20], eax
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.1005ca60
mov ecx, esi
call fcn.1005d770
mov ebp, dword [esp + 0x2c]
test eax, eax
jne 0x1006bf98
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x100670e3
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [esp + 0x18]
add esp, 4
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10062fd0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
push dword [edi + 0x28]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x10069e70
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 8]
dec ecx
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x10], ecx
jmp 0x10069e78
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, 1
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.1005ca60
test eax, eax
jne 0x100685d7
mov eax, dword [esi]
push dword [ebx + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x20], eax
test edi, edi
jne 0x1006b7f4
mov eax, dword [ebp + 0x24]
and dword [ebp + 0x20], 0xfbffffff
mov dword [ebp + 0x24], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.10062fd0
mov eax, dword [esp + 0x14]
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
cmp byte [ebp + 0x51], 0
jne 0x100681c3
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x1006bf82
mov edx, dword [ebx]
test edx, edx
je 0x1006bf82
cmp dword [edx + 0x34], 0
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 8]
je 0x1006697f
mov al, byte [ebp + 0x56]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x1006b89b
nop word [eax + eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x1006b890
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x56], al
lea eax, [esp + 0x110]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x20], eax
mov edx, ebx
mov al, byte [esp + 0x4b]
mov byte [ebp + 0x56], al
call fcn.10062fd0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x1006b8f7
cmp dword [ecx + 4], eax
je 0x1006b8f7
mov eax, dword [esp + 0x110]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x114]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x20]
cmp al, 0x13
jne 0x1006b945
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x1006b945
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x1006b92b
mov edi, dword [esp + 0x28]
xor ecx, ecx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
add ecx, 0x14
jmp 0x10066376
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x92], al
jmp 0x1006b94c
mov eax, dword [esp + 0x14]
inc dword [eax + 0x2c]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100685d7
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov ecx, dword [ebp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
shl edx, 4
mov ecx, dword [edx + ecx + 4]
call fcn.100526f0
mov ecx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], 0
mov esi, dword [esp + 0x1c]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.10066240
mov ecx, dword [ebp + 0x10]
mov edi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x1006b9ed
mov ecx, esi
call fcn.100526f0
mov edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.100534c0
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
cdq
mov dword [edi], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x28]
add ecx, 0x14
jmp 0x10066376
mov edx, dword [esp + 0x10]
mov ecx, ebp
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.1003ee80
mov esi, eax
add esp, 8
test esi, esi
je 0x100681c3
mov eax, dword [esp + 0x10]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x1c]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0x14], 0
sar edx, 3
mov eax, edx
mov byte [esi + 0x19], bl
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
add byte [edx], 2
mov byte [edx + 1], 0xf0
mov dword [edx + 0x10], esi
jmp 0x1006ba87
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
cmp dword [esi], edi
je 0x1006bac9
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi], edi
js 0x1006bac9
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
mov ebx, dword [esp + 0x28]
lea edx, [esi + edx*4]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
sub edx, 4
sub ecx, 1
jns 0x1006bab0
mov ebp, dword [esp + 0x2c]
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1006bb4e
jle 0x1006bb1d
push edi
call fcn.100635d0
add esp, 4
push eax
push 0x100f1c04
push dword [esp + 0x1c]
call fcn.1005e3d0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, ebp
mov edx, dword [esp + 0x14]
add edx, 0xdc
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.10061280
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [esi + 0x14], 0
test eax, eax
jne 0x100685d7
test byte [edi + 8], 0x12
je 0x10066865
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.1005ca60
mov ecx, edi
call fcn.1005d770
test eax, eax
jne 0x1006bf98
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
add ecx, 0x14
jmp 0x10066376
mov cl, byte [ebp + 0x58]
mov edx, dword [esp + 0x14]
test cl, 0x41
je 0x1006bc4e
test byte [edx + 0x98], 0x10
jne 0x1006bc4e
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x1006bbc1
mov eax, dword [edx + 0xc0]
test eax, eax
je 0x1006bc4a
test cl, 0x40
je 0x1006bbf1
mov ecx, dword [esp + 0x14]
mov edx, eax
mov edi, dword [ebp + 0xc8]
call fcn.10065a00
mov esi, eax
push esi
push dword [ebp + 0xcc]
call edi
push esi
call fcn.1003ea80
mov esi, dword [esp + 0x28]
add esp, 0xc
jmp 0x1006bc46
cmp dword [ebp + 0xb8], 1
push eax
jle 0x1006bc32
push str.____s
push ebp
call fcn.10041380
mov ecx, dword [ebp + 0xc8]
add esp, 0xc
mov esi, eax
push esi
push dword [esp + 0x18]
push dword [ebp + 0xcc]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, ebp
call fcn.1003eba0
mov esi, dword [esp + 0x1c]
jmp 0x1006bc46
mov eax, dword [ebp + 0xc8]
push edx
push dword [ebp + 0xcc]
push 1
call eax
add esp, 0x10
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [0x100ff158]
jl 0x1006bc9e
cmp byte [ecx], 0xa8
je 0x10066987
mov ebx, dword [esp + 0x14]
mov edx, 1
cmp dword [ebx + 0x6c], edx
jle 0x1006bc9a
mov eax, 0x14
nop dword [eax]
mov ecx, dword [ebx + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x1006bc91
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x1006bc80
xor eax, eax
mov edx, ebx
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [edx + 0xbc]
mov eax, dword [ebp + 8]
jmp 0x10067e9d
mov edx, dword [esp + 0x10]
mov dword [ebx + 0x28], ecx
mov al, byte [edx + 8]
mov byte [ebx + 0x92], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x1006bd3a
movzx eax, word [edx + 2]
test ax, ax
je 0x1006bd0b
push dword [eax*4 + 0x100e356c]
push str._s_constraint_failed
push ebx
call fcn.1005e3d0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1006bd1c
push eax
push dword [ebx + 0x7c]
push str._z:__s
push ebp
call fcn.10041380
add esp, 0x10
mov dword [ebx + 0x7c], eax
jmp 0x1006bd1c
push dword [edx + 0x10]
push 0x100f1c04
push ebx
call fcn.1005e3d0
add esp, 0xc
push dword [ebx + 0x7c]
mov eax, dword [esp + 0x14]
push dword [ebx + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.10041660
add esp, 0x14
mov ecx, ebx
call fcn.10060d90
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], eax
cmp eax, 5
jne 0x1006bd58
mov dword [ebx + 0x28], eax
mov ebx, eax
jmp 0x1006c20c
cmp dword [ebx + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x20], eax
mov ebx, eax
jmp 0x1006c20c
push 0x100f0d34
push 0x15240
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10041660
add esp, 0x14
mov eax, 0xb
mov ebp, dword [esp + 0x2c]
jmp 0x100685d7
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [esp + 0x18]
call fcn.1005e3d0
add esp, 8
mov eax, 5
jmp 0x100685d7
push str.cannot_release_savepoint___SQL_statements_in_progress
push dword [esp + 0x18]
call fcn.1005e3d0
add esp, 8
mov eax, 5
jmp 0x100685d5
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x1c]
mov ebp, edi
mov esi, dword [esp + 0x24]
mov ebx, 5
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x24], eax
mov byte [ebp + 0x4f], 0
mov dword [ecx + 0x28], 5
jmp 0x1006c20c
mov eax, 8
jmp 0x100685d7
mov esi, dword [esp + 0x24]
cmp al, 5
jne 0x10067369
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x1c]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x20]
mov ebx, eax
mov dword [ecx + 0x28], eax
jmp 0x1006c20c
mov edx, dword [edx + 0x7c]
test edx, edx
je 0x1006be63
mov ecx, ebp
call fcn.1003eb40
mov edx, str.database_schema_has_changed
mov ecx, ebp
call fcn.1003f060
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x7c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x6c]
je 0x1006be97
mov ecx, ebp
call fcn.1007ece0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov eax, 0x11
jmp 0x100685db
mov eax, 0x204
jmp 0x100685d7
mov ecx, dword [esp + 0x14]
mov eax, 6
mov byte [ecx + 0x92], 2
jmp 0x100685db
mov dword [esp + 0x20], 7
mov ecx, ebp
call fcn.1007ed50
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
cmp eax, 7
je 0x100681c7
mov ecx, dword [esp + 0x14]
jmp 0x100685df
push str.too_many_levels_of_trigger_recursion
push edx
call fcn.1005e3d0
add esp, 8
mov ebp, ebx
mov eax, 1
jmp 0x100685d7
push esi
call fcn.100635d0
add esp, 4
push eax
push 0x100f1c04
push dword [esp + 0x1c]
call fcn.1005e3d0
add esp, 0xc
mov eax, dword [esp + 0x20]
jmp 0x100685d7
mov ecx, str.out_of
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x1c]
call fcn.1005e3d0
mov ebp, dword [esp + 0x38]
add esp, 0xc
mov eax, 1
jmp 0x100685d7
push dword [esp + 0x58]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x100681c3
mov eax, 6
jmp 0x100685d7
mov ebp, dword [esp + 0x2c]
jmp 0x1006bf98
mov ebp, edi
jmp 0x1006bf98
mov ebp, eax
push str.string_or_blob_too_big
push dword [esp + 0x18]
call fcn.1005e3d0
add esp, 8
mov eax, 0x12
jmp 0x100685d7
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.10060d10
test eax, eax
jne 0x100685d7
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
cmp dword [eax + 0x1d0], 0
je 0x1006bfed
cmp dword [edx + 0x30], 0
je 0x1006bfed
mov ecx, dword [esp + 0x14]
mov edx, 1
call fcn.10060bc0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x10]
add eax, 2
or eax, 1
mov dword [edx + 0x20], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
mov dword [edx + 0x78], esi
cmp dword [ecx + 8], edi
jle 0x1006c058
mov ebx, 0x202
mov eax, 0x1000
test word [esi + 8], ax
je 0x1006c033
mov ecx, esi
call fcn.1005cc20
test eax, eax
jne 0x100681c3
mov ecx, dword [esp + 0x10]
mov ax, word [esi + 8]
and ax, bx
cmp ax, 2
jne 0x1006c04b
mov ecx, esi
call fcn.1005cbc0
mov ecx, dword [esp + 0x10]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x1006c015
mov edx, dword [esp + 0x14]
cmp byte [ebp + 0x51], 0
jne 0x100681c3
test byte [ebp + 0x58], 4
je 0x1006c07e
mov eax, dword [ebp + 0xc8]
push 0
push edx
push dword [ebp + 0xcc]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x1c]
mov ebx, 0x64
mov esi, dword [esp + 0x24]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ecx + 0x24], eax
jmp 0x1006c20c
mov edx, dword [esp + 0x10]
movzx eax, byte [ebp + 0x4f]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x1006c183
test ecx, ecx
je 0x1006c0dc
mov edx, 0x204
mov ecx, ebp
call fcn.100b82a0
mov al, 1
mov edi, 1
jmp 0x1006c114
test ebx, ebx
je 0x1006c0f3
cmp dword [ebp + 0xb4], 0
jle 0x1006c0f3
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1006bda5
mov ecx, dword [esp + 0x14]
mov edi, 1
mov edx, edi
mov dword [esp + 0xa8], ebx
call fcn.10060d10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1006c176
mov eax, ebx
mov ecx, dword [esp + 0x14]
mov byte [ebp + 0x4f], al
call fcn.10060d90
cmp eax, 5
jne 0x1006c15b
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, esi
mov esi, dword [esp + 0x24]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x24], eax
mov al, 1
sub al, bl
mov ebx, 5
mov byte [ebp + 0x4f], al
mov dword [ecx + 0x28], ebx
jmp 0x1006c20c
mov ecx, ebp
call fcn.100b7c10
mov ecx, dword [esp + 0x14]
mov eax, 0x65
cmp dword [ecx + 0x28], 0
cmovne eax, edi
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x1006c20c
test ebx, ebx
jne 0x1006c18e
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1006c19d
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
push dword [esp + 0x18]
call fcn.1005e3d0
add esp, 8
mov eax, 1
jmp 0x100685d7
mov esi, dword [esp + 0x24]
xor eax, eax
cmp byte [ebp + 0x51], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [esp + 0x20], eax
mov dword [edx + 0x28], eax
call fcn.100b83e0
push eax
push 0x100f1c04
push dword [esp + 0x1c]
call fcn.1005e3d0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
jmp 0x100685df
mov ecx, esi
jmp 0x100685db
mov ebx, dword [esp + 0x20]
mov ebp, edi
mov esi, dword [esp + 0x24]
jmp 0x1006c20c
mov ebx, 1
mov edi, dword [esp + 0x18]
cmp edi, esi
jb 0x1006c244
mov eax, dword [ebp + 0x148]
test eax, eax
je 0x1006c244
push dword [ebp + 0x14c]
add esi, dword [ebp + 0x150]
call eax
add esp, 4
test eax, eax
je 0x1006c210
mov ecx, dword [esp + 0x14]
or esi, 0xffffffff
mov eax, 9
jmp 0x100685df
mov ecx, dword [esp + 0x14]
add dword [ecx + 0xb4], edi
call fcn.1005f790
mov ecx, dword [esp + 0x234]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d8362
add esp, 0x22c
ret