Function at 0x1003da4f
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b4
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], 0
xor cl, cl
mov dword [ebp - 0xc], edi
mov byte [ebp - 0x59], cl
xorps xmm0, xmm0
mov ecx, edi
mov dword [ebp - 0x54], 0
mov eax, dword [edi]
mov ebx, dword [edi + 0x70]
mov dword [ebp - 8], eax
mov dword [ebp - 0x4c], ebx
mov al, byte [eax + 0x54]
mov byte [ebp - 0x3c], al
mov eax, dword [edi + 0x60]
mov dword [ebp - 4], ebx
movlpd qword [ebp - 0x80], xmm0
mov dword [ebp - 0x18], eax
call fcn.10034fe0
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x170], 0
je 0x1003ce74
mov esi, dword [ecx + 0x178]
xor edx, edx
mov eax, dword [edi + 0xbc]
div esi
mov dword [ebp - 0x68], 0
sub esi, edx
jmp 0x1003ce7e
or esi, 0xffffffff
mov dword [ebp - 0x68], 0xffffffff
cmp dword [edi + 0x28], 7
mov dword [ebp - 0x64], esi
je 0x10042e13
mov dword [edi + 0x28], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x80], 0
cmp dword [ecx + 0x128], 0
mov dword [ecx + 0x1c4], 0
jne 0x10042dfd
mov eax, dword [edi + 0x24]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x7c]
movsd qword [ebp - 0x178], xmm0
lea eax, [eax + eax*4]
lea esi, [ebx + eax*4]
mov eax, dword [ebp - 0x80]
add eax, 1
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], eax
adc edx, 0
mov dword [ebp - 0x70], edx
mov dl, byte [esi]
movzx ebx, dl
cmp ebx, 0xb3
ja case.0x1003cefb.88
jmp dword [ebx*4 + 0x10042f9c]
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
sub ecx, dword [ebp - 0x4c]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x1003e4df
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
jne 0x1003e4dc
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x1003cf4e
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x4c]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x4c]
mov dword [ebx + esi*8 + 4], edx
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x1003cfa1
mov ecx, dword [ebp - 4]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x4c]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x10042841
mov edi, dword [edi + 0xd8]
test edi, edi
je 0x1004283e
mov ecx, dword [ebp - 0xc]
mov eax, dword [edi + 4]
push dword [ecx + 0x34]
dec dword [ecx + 0xe0]
push dword [ecx + 0x30]
mov dword [ecx + 0xd8], eax
mov ecx, dword [ebp - 8]
call fcn.10038b00
add esp, 8
mov ecx, edi
call fcn.10035c70
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
cmp dword [ecx + 8], 4
jne 0x1003d0b0
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [edi + 0x70]
lea eax, [eax + eax*4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x4c], edx
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x1003d11a
call fcn.1003cca0
mov esi, dword [ebp - 4]
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov esi, dword [ebp - 4]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x1003d168
mov ecx, edx
call fcn.1003cca0
mov edx, eax
jmp 0x1003d171
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [ebp - 8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x1003d1b6
call fcn.1003cca0
mov ecx, eax
mov esi, dword [ebp - 4]
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x10]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x1003d206
mov ecx, esi
call fcn.1003cca0
mov esi, eax
jmp 0x1003d20f
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x1003d21a
xor ecx, ecx
jmp 0x1003d22f
mov ecx, edx
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003d220
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [ebp - 0x3c], 1
mov dword [ebx + 4], ecx
je 0x1003d2a3
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.10032fc0
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x10042c0d
movzx edx, byte [ebp - 0x3c]
mov ecx, esi
call fcn.10031fc0
test eax, eax
jne 0x1003e99e
mov ecx, dword [ebp - 4]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ecx + 1], 0xf9
jne 0x1003d290
push dword [ecx + 0x10]
push dword [ebp - 8]
call fcn.1000f2a0
mov ecx, dword [ebp - 4]
add esp, 8
mov ebx, dword [ebp - 4]
mov byte [ecx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
cmp ecx, dword [eax + 0x78]
jg 0x10042c10
mov byte [ebx], 0x49
jmp 0x1003d2ba
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x1003d2d8
call fcn.1003cca0
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 [ebp - 0x3c]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1004261e
mov ebx, dword [ebp - 0x18]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x1004261e
cmp dword [ebx + esi*8 + 4], edx
jne 0x1004261e
mov esi, dword [ebp - 4]
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x1003d364
mov ecx, edx
call fcn.1003cca0
mov edx, eax
jmp 0x1003d36d
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 0x1004266f
mov eax, 0x2400
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x1003d3b9
lea ecx, [esi - 8]
call fcn.10032710
mov eax, 0x2400
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x1003d3a3
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, 0xff41
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 4]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x1003d43a
mov ecx, esi
call fcn.1003cca0
mov esi, eax
jmp 0x1003d443
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x1003d46c
mov edx, eax
mov ecx, esi
call fcn.10032cc0
mov ecx, esi
call fcn.10032370
test eax, eax
je 0x1003d47f
mov ecx, dword [ebp - 8]
jmp 0x1003e9a4
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.10032fc0
add esp, 0x10
mov al, byte [ebp - 0x3c]
mov ecx, dword [ebp - 8]
mov byte [esi + 0xa], al
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x6c]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.10032ea0
test eax, eax
jne 0x10042c0d
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x1003d4d9
mov ecx, esi
call fcn.10032ca0
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xebff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov edi, dword [ebp - 0xc]
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov ecx, dword [ebp - 8]
mov word [esi + 8], ax
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
jne 0x1003d541
cmp dword [esi + 0x18], 0
je 0x1003d548
mov ecx, esi
call fcn.10032750
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 0x1003d58a
mov ecx, esi
call fcn.100322e0
test eax, eax
jne 0x1003e99e
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x1003d530
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.10032f00
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x1003d5f2
mov ecx, esi
call fcn.100322e0
test eax, eax
jne 0x1003e99e
mov eax, ebx
dec ebx
test eax, eax
je 0x1004266f
add esi, 0x28
add edi, 0x28
jmp 0x1003d5c7
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
push 0x1000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.10032f00
mov ecx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x2400
test word [ecx + 8], bx
je 0x1003d683
push eax
push edx
call fcn.10032d10
mov ecx, dword [ebp - 8]
add esp, 8
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov esi, dword [ebp - 4]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x10]
mov dword [ecx], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
xor edx, edx
mov ecx, edi
call fcn.10036770
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [ebx + 8]
mov dword [ebp - 0x50], ecx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi + 8]
or al, cl
test al, 1
je 0x1003d71b
mov ecx, edi
call fcn.10032ca0
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
test cl, 0x12
jne 0x1003d731
mov dl, byte [ebp - 0x3c]
mov ecx, ebx
push 0
call fcn.100323d0
add esp, 4
jmp 0x1003d740
test ecx, 0x4000
je 0x1003d75a
mov ecx, ebx
call fcn.10032370
test eax, eax
jne 0x1003e99e
mov ax, word [ebx + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x50], eax
movzx edx, word [esi + 8]
mov dword [ebp - 0x2c], edx
test dl, 0x12
jne 0x1003d791
mov dl, byte [ebp - 0x3c]
mov ecx, esi
push 0
call fcn.100323d0
add esp, 4
test eax, eax
jne 0x1003e99e
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [ebp - 0x2c], edx
jmp 0x1003d7ba
test edx, 0x4000
je 0x1003d7ba
mov ecx, esi
call fcn.10032370
test eax, eax
jne 0x1003e99e
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
mov edx, dword [ebx + 0xc]
add edx, dword [esi + 0xc]
mov dword [ebp - 0x38], edx
cmp edx, dword [eax + 0x78]
jg 0x10042c0d
xor eax, eax
mov ecx, edi
cmp edi, esi
sete al
add edx, 3
push eax
call fcn.10031fe0
add esp, 4
test eax, eax
jne 0x1003e99e
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, esi
je 0x1003d81c
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [edi + 0x10]
call fcn.100dcb20
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov word [esi + 8], ax
push dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
push dword [ebx + 0x10]
add eax, dword [edi + 0x10]
push eax
call fcn.100dcb20
mov ecx, dword [ebp - 0x38]
add esp, 0xc
mov eax, dword [ebp - 0x50]
mov word [ebx + 8], ax
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 4]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 2], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x3c]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebp - 8]
mov byte [edi + 0xa], al
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
call fcn.1003cc80
movzx ebx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x2c], eax
call fcn.1003cc80
movzx ecx, ax
mov eax, dword [ebp - 4]
and cl, bl
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], esi
mov ax, word [eax + 8]
or ax, word [edi + 8]
movzx eax, ax
test cl, 4
je 0x1003da0e
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [ebx]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x88], esi
mov esi, dword [ebp - 0x50]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x1003d90c
jmp dword [eax*4 + 0x1004326c]
push edx
push ecx
lea ecx, [ebp - 0x88]
call fcn.10013c30
add esp, 8
test eax, eax
jne 0x1003da19
jmp 0x1003d9cf
push edx
push ecx
lea ecx, [ebp - 0x88]
call fcn.10013cd0
add esp, 8
test eax, eax
jne 0x1003da19
jmp 0x1003d9cf
push edx
push ecx
lea ecx, [ebp - 0x88]
call fcn.10013d20
add esp, 8
test eax, eax
jne 0x1003da19
jmp 0x1003d9cf
mov eax, ecx
or eax, edx
je 0x1003db13
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x40]
jne 0x1003d98e
cmp dword [ebp - 0x1c], 0
jne 0x1003d98e
cmp eax, 0x80000000
je 0x1003da19
push edx
push ecx
push eax
push dword [ebp - 0x1c]
call fcn.100fe0d0
jmp 0x1003d9c3
mov eax, ecx
or eax, edx
je 0x1003db13
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x1003d9b5
mov ecx, 1
xor edx, edx
mov eax, dword [ebp - 0x40]
push edx
push ecx
push eax
push dword [ebp - 0x1c]
call fcn.100fe180
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x84]
mov edi, dword [ebp - 0xc]
mov dword [esi], eax
mov ax, word [esi + 8]
mov dword [esi + 4], ecx
mov ecx, 0x3e40
and ax, cx
mov ecx, dword [ebp - 8]
or ax, 4
movzx eax, ax
mov word [esi + 8], ax
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
test al, 1
jne 0x1003db13
mov ebx, dword [ebp - 0x2c]
mov ecx, edi
call fcn.100328a0
mov ecx, ebx
movsd qword [ebp - 0x28], xmm0
call fcn.100328a0
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x1003da3a
jmp dword [eax*4 + 0x1004327c]
addsd xmm0, qword [ebp - 0x28]
jmp 0x1003dabe
subsd xmm0, qword [ebp - 0x28]
jmp 0x1003dabe
mulsd xmm0, qword [ebp - 0x28]
jmp 0x1003dabe
movsd xmm1, qword [ebp - 0x28]
ucomisd xmm1, qword [ebp - 0x178]
lahf
test ah, 0x44
jnp 0x1003db13
divsd xmm0, xmm1
jmp 0x1003dabe
mov ecx, edi
call fcn.10032810
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.10032810
mov ecx, esi
mov dword [ebp - 0x88], eax
or ecx, edi
mov dword [ebp - 0x84], edx
je 0x1003db13
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1003daab
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.100fe180
mov ecx, eax
call fcn.100fe5d0
mov esi, dword [ebp - 0x50]
movsd qword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 0x24]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x1003dae1
mov eax, dword [ebp - 0x28]
and ecx, 0xfffff
or eax, ecx
jne 0x1003db13
mov ax, word [esi + 8]
mov ecx, 0x3e40
mov edi, dword [ebp - 0xc]
and ax, cx
mov ecx, dword [ebp - 8]
or ax, 8
movzx eax, ax
movsd qword [esi], xmm0
mov word [esi + 8], ax
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ebp - 0x50]
mov ecx, 0x2400
test word [eax + 8], cx
je 0x1003db3f
mov ecx, eax
call fcn.10032710
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edi, dword [ebp - 0xc]
mov ecx, 1
mov esi, dword [ebp - 4]
mov word [eax + 8], cx
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 4]
test eax, eax
je 0x1003cfa1
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.10032d40
mov ecx, dword [ebp - 8]
add esp, 8
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov al, byte [ecx + 8]
or al, byte [ebx + 8]
mov dword [ebp - 0x38], edx
test al, 1
je 0x1003dc01
mov eax, 0x2400
test word [edx + 8], ax
je 0x1003dbe4
mov ecx, edx
call fcn.10032710
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 8]
mov eax, 1
mov esi, dword [ebp - 4]
mov word [edx + 8], ax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
call fcn.10032810
mov edi, eax
mov esi, edx
mov ecx, ebx
mov dword [ebp - 0x128], edi
mov dword [ebp - 0x124], esi
call fcn.10032810
mov ebx, eax
mov eax, dword [ebp - 4]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x1003dc2f
and edi, ebx
and esi, edx
jmp 0x1003dc92
cmp cl, 0x67
jne 0x1003dc3a
or edi, ebx
or esi, edx
jmp 0x1003dc92
mov eax, ebx
or eax, edx
je 0x1003dc92
test edx, edx
jg 0x1003dc6e
jl 0x1003dc4a
test ebx, ebx
jae 0x1003dc63
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x1003dc6e
jg 0x1003dc5c
cmp ebx, 0xffffffc0
jbe 0x1003dc6e
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x1003dcc5
jg 0x1003dc6e
cmp ebx, 0x40
jb 0x1003dcc5
test esi, esi
jg 0x1003dc84
jl 0x1003dc78
test edi, edi
jae 0x1003dc84
cmp cl, 0x68
je 0x1003dc84
or edi, 0xffffffff
or esi, edi
jmp 0x1003dc92
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x38]
mov edx, 0x3e40
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], edi
mov edi, dword [ebp - 0xc]
or ax, 4
mov dword [ecx + 4], esi
mov esi, dword [ebp - 4]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
movq xmm1, qword [ebp - 0x128]
movd xmm0, ebx
cmp cl, 0x68
jne 0x1003dce1
psllq xmm1, xmm0
movq qword [ebp - 0x28], xmm1
jmp 0x1003dc8c
psrlq xmm1, xmm0
movq qword [ebp - 0x28], xmm1
test esi, esi
jg 0x1003dc8c
jl 0x1003dcf4
test edi, edi
jae 0x1003dc8c
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.100fe240
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
or edi, eax
or esi, edx
jmp 0x1003dc92
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10032920
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [ebp - 0x10]
adc dword [esi + 4], edx
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x1003dd96
push dword [ebp - 0x3c]
mov dl, 0x43
mov ecx, esi
call fcn.1003ca70
movzx eax, word [esi + 8]
add esp, 4
mov ecx, eax
test al, 4
jne 0x1003dd96
mov ecx, dword [ebp - 4]
mov esi, ecx
cmp dword [ecx + 8], 0
jne 0x1003e4e2
mov edx, 0x14
mov dword [ebp - 0x14], edx
jmp 0x10042917
mov eax, dword [ebp - 0x10]
and ecx, 0x3e40
or ecx, 4
mov word [esi + 8], cx
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x24
lea ecx, [ecx + eax*8]
je 0x1003cf9b
call fcn.10032990
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x1003de18
mov ecx, esi
call fcn.10032370
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042e24
mov eax, dword [ebp - 4]
mov ecx, esi
push dword [ebp - 0x3c]
mov dl, byte [eax + 8]
call fcn.10032ae0
add esp, 4
mov edx, eax
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 4]
test edx, edx
jne 0x10042917
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [edi + 8]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
mov edx, eax
mov dword [ebp - 0x30], eax
and edx, ecx
test dl, 4
je 0x1003df1e
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [edi + 4]
mov eax, dword [edi]
cmp esi, edx
jl 0x1003dec8
jg 0x1003de93
cmp ecx, eax
jbe 0x1003debe
cmp byte [ebx + 0x1010f230], 0
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x54], 1
jne 0x1003e4df
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp esi, edx
jg 0x1003def3
jl 0x1003dec8
cmp ecx, eax
jae 0x1003def3
cmp byte [ebx + 0x1010f224], 0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x54], 0xffffffff
jne 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp byte [ebx + 0x1010f22a], 0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x54], 0
jne 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
movzx ebx, word [edi + 8]
mov ecx, eax
or ecx, ebx
test cl, 1
je 0x1003df95
mov ecx, dword [ebp - 4]
movzx ecx, word [ecx + 2]
test cl, cl
jns 0x1003df6e
test dl, 1
je 0x1003df5a
test eax, 0x100
jne 0x1003df5a
mov eax, dword [ebp - 4]
mov dword [ebp - 0x54], 0
movzx ecx, byte [eax]
mov cl, byte [ecx + 0x1010f22a]
jmp 0x1003e0b5
not eax
and eax, 1
lea ecx, [eax*2 - 1]
mov dword [ebp - 0x54], ecx
jmp 0x1003e05f
mov esi, dword [ebp - 4]
test cl, 0x10
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x54], 1
jne 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x1003dfdb
test cl, 2
je 0x1003e04b
mov al, byte [ebp - 0x1c]
and al, 0x2e
cmp al, 2
jne 0x1003dfc3
xor edx, edx
mov ecx, edi
call fcn.1003c8a0
movzx eax, word [esi + 8]
mov dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
and al, 0x2e
cmp al, 2
jne 0x1003e04b
xor edx, edx
mov ecx, esi
call fcn.1003c8a0
jmp 0x1003e04b
cmp al, 0x42
jne 0x1003e04b
mov al, byte [ebp - 0x1c]
test al, 2
jne 0x1003e01d
test al, 0x2c
je 0x1003e01d
mov dl, byte [ebp - 0x3c]
mov ecx, edi
push 1
call fcn.100323d0
mov ax, word [edi + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x1c]
add esp, 4
and ax, cx
xor word [ebp - 0x1c], ax
cmp edi, esi
jne 0x1003e01d
mov eax, dword [ebp - 0x1c]
or eax, 2
movzx eax, ax
mov dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
test al, 2
jne 0x1003e04b
test al, 0x2c
je 0x1003e04b
mov dl, byte [ebp - 0x3c]
mov ecx, esi
push 1
call fcn.100323d0
mov ax, word [esi + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x30]
add esp, 4
and ax, cx
xor word [ebp - 0x30], ax
push dword [ebx + 0x10]
mov edx, edi
mov ecx, esi
call fcn.10037940
add esp, 4
mov dword [ebp - 0x54], eax
mov ecx, eax
movzx eax, word [ebp - 0x1c]
mov edx, ecx
movzx ebx, word [ebp - 0x30]
mov dword [ebp - 0x38], eax
test ecx, ecx
jns 0x1003e07e
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov cl, byte [eax + 0x1010f224]
jmp 0x1003e0b5
mov ecx, dword [ebp - 4]
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, ebx
mov dword [ebp - 0x30], eax
movzx ecx, byte [ecx]
mov dword [ebp - 0x54], edx
test edx, edx
jne 0x1003e09e
mov cl, byte [ecx + 0x1010f22a]
jmp 0x1003e0b5
mov eax, dword [ebp - 0x38]
mov cl, byte [ecx + 0x1010f230]
movzx eax, ax
mov dword [ebp - 0x1c], eax
mov eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x54], edx
movzx eax, word [ebp - 0x30]
mov word [esi + 8], ax
movzx eax, word [ebp - 0x1c]
mov word [edi + 8], ax
test cl, cl
jne 0x1003e4dc
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp dword [ebp - 0x54], 0
je 0x1003e4e5
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
test byte [ecx + 2], 1
jne 0x1003e106
xor ebx, ebx
jmp 0x1003e10c
mov ebx, dword [ecx - 4]
add ebx, 4
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], ecx
test eax, eax
jle 0x1003cf9b
lea edi, [edx + 0x14]
test ebx, ebx
je 0x1003e13d
mov ecx, dword [ebx + esi*4]
jmp 0x1003e13f
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x18]
push dword [edi]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x38]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x2c]
add eax, ecx
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [ebp - 0x94], eax
call fcn.10037940
mov ecx, eax
add esp, 4
mov dword [ebp - 0x54], ecx
test ecx, ecx
jne 0x1003e1a9
mov edx, dword [ebp - 0x34]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x50]
jl 0x1003e134
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x1003e1cf
mov eax, dword [ebp - 0x94]
test byte [eax + 8], 1
jne 0x1003e1ca
mov eax, dword [ebp - 0x74]
test byte [eax + 8], 1
je 0x1003e1cf
neg ecx
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x40], 0
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
je 0x1004265e
mov esi, dword [ebp - 4]
neg ecx
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 4]
test eax, eax
jns 0x1003e21c
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
jne 0x1003e23b
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov edx, 2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.100328d0
mov ecx, dword [ebx + 8]
mov edx, 2
mov ebx, dword [ebp - 0x18]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.100328d0
mov ecx, dword [ebp - 4]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x1003e29d
mov dl, byte [esi + eax + 0x1010e27c]
jmp 0x1003e2a4
mov dl, byte [esi + eax + 0x1010eae4]
mov eax, dword [ecx + 0xc]
mov ecx, 0x3e40
lea esi, [eax + eax*4]
mov ax, word [ebx + esi*8 + 8]
and ax, cx
movzx ecx, ax
cmp dl, 2
jne 0x1003e2de
or ecx, 1
movzx eax, cx
mov ecx, dword [ebp - 8]
mov word [ebx + esi*8 + 8], ax
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
movzx eax, dl
or ecx, 4
cdq
mov dword [ebx + esi*8], eax
movzx eax, cx
mov ecx, dword [ebp - 8]
mov word [ebx + esi*8 + 8], ax
mov eax, dword [ebp - 0x10]
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.100328d0
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.10032d40
mov ecx, dword [ebp - 8]
add esp, 8
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x1003e399
xor edx, edx
call fcn.100328d0
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.10032d40
mov ecx, dword [ebp - 8]
add esp, 8
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, esi
call fcn.10032ca0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.10032ca0
test byte [edi + 8], 1
jne 0x1004266f
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.10032810
mov edi, dword [ebp - 0xc]
not eax
mov ecx, dword [ebp - 8]
not edx
mov dword [esi], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 4], edx
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edi, dword [edi + 0xd8]
test edi, edi
je 0x1003e475
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov edi, dword [edi + 0x18]
sub ecx, dword [eax + 0x70]
mov eax, 0x66666667
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 0x1003e4dc
bts edx, ecx
mov ecx, dword [ebp - 8]
mov byte [esi + edi], dl
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edi, dword [ebp - 0xc]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 4]
je 0x1003e4e5
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.100328d0
test eax, eax
jmp 0x1003cf95
mov ecx, dword [ebp - 4]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x18]
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.100328d0
test eax, eax
jne 0x1003cf9b
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 8]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
lea eax, [edx + eax*8]
jne 0x1003e4e5
push eax
call fcn.100395b0
mov ecx, dword [ebp - 4]
add esp, 4
cmp eax, dword [ecx + 0xc]
je 0x1003e4dc
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
jne 0x1003e581
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 1
jne 0x1003e581
push 0
push 0
jmp 0x1003e328
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.10032ca0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x1003cf9b
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10032ca0
jmp 0x1003e4df
mov ebx, dword [ebp - 4]
lea edx, [ebp - 0x6c]
mov eax, dword [edi + 0x68]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x6c], eax
call fcn.10037050
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x48]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x1c], ebx
cmp eax, dword [edx + 0x20]
je 0x1003e720
cmp byte [ecx + 2], 0
je 0x1003e67c
cmp byte [ecx], 3
jne 0x1003d6fd
mov eax, dword [ecx + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esi + edx*8 + 0xc]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x54]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [esi + edx*8 + 0x10]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebp - 0x48]
jmp 0x1003e6b1
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call fcn.10028c60
mov edx, dword [ebp - 0x48]
mov ecx, esi
mov dword [edx + 0x50], eax
mov edx, dword [ebp - 0x48]
lea edx, [edx + 0x54]
call fcn.10029260
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x78]
ja 0x10042c0d
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x1003e6cf
movzx eax, al
mov dword [ebx], eax
mov al, 1
jmp 0x1003e6d6
mov edx, ebx
call fcn.10013ad0
movzx ecx, al
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x34], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x48]
mov word [eax + 0x3e], cx
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x54]
cmp eax, dword [ebx]
jae 0x1003e7d9
mov dword [ecx + 0x4c], 0
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x54], 0
mov eax, dword [ebx]
cmp eax, 0x18003
ja 0x1003e86a
mov ecx, dword [ebp - 0x48]
cmp eax, dword [ecx + 0x50]
ja 0x1003e86a
movzx eax, word [ecx + 0x3e]
mov esi, dword [ebp - 0x6c]
cmp eax, esi
ja 0x1003e910
mov eax, dword [ecx + 0x34]
cmp eax, dword [ebx]
jae 0x1003e8cd
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0x50], edx
test edx, edx
jne 0x1003e78a
xorps xmm0, xmm0
lea eax, [ebp - 0x1b0]
movups xmmword [ebp - 0x1b0], xmm0
push eax
movups xmmword [ebp - 0x1a0], xmm0
movq qword [ebp - 0x190], xmm0
mov edx, dword [ebx]
mov ecx, dword [ecx + 0x2c]
call fcn.10033400
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x1c]
movzx edi, word [ecx + 0x3e]
mov esi, dword [ecx + 0x34]
add esi, edx
mov dword [ebp - 0x34], edi
mov eax, dword [eax]
mov ebx, dword [ebx + edi*4]
add eax, edx
mov dword [ebp - 0x40], 0
lea edi, [edi*4 + 0x58]
mov dword [ebp - 0x2c], eax
movzx eax, byte [esi]
mov dword [ebp - 0x58], eax
mov dword [ecx + edi], eax
mov eax, dword [ebp - 0x58]
cmp eax, 0x80
jae 0x1003e7de
mov cl, al
inc esi
call fcn.100370c0
movzx eax, al
cdq
add ebx, eax
mov eax, dword [ebp - 0x40]
adc eax, edx
jmp 0x1003e806
mov edx, dword [ecx + 0x4c]
jmp 0x1003e787
lea edx, [ebp - 0x58]
mov ecx, esi
call fcn.10013ad0
mov ecx, dword [ebp - 0x58]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0x48]
mov dword [eax + edi], ecx
mov ecx, dword [ebp - 0x58]
call fcn.100370a0
add ebx, eax
mov eax, dword [ebp - 0x40]
adc eax, 0
mov ecx, dword [ebp - 0x1c]
add edi, 4
mov edx, dword [ebp - 0x34]
inc edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x34], edx
mov dword [ecx + edi - 0x58], ebx
mov ecx, dword [ebp - 0x48]
cmp edx, dword [ebp - 0x6c]
ja 0x1003e82c
cmp esi, dword [ebp - 0x2c]
jb 0x1003e7b1
mov edi, dword [ebp - 0x2c]
jmp 0x1003e833
mov edi, dword [ebp - 0x2c]
cmp esi, edi
jb 0x1003e840
cmp esi, edi
ja 0x1003e84b
cmp ebx, dword [ecx + 0x50]
jne 0x1003e84b
test eax, eax
jne 0x1003e84b
test eax, eax
jb 0x1003e89b
ja 0x1003e84b
cmp ebx, dword [ecx + 0x50]
jbe 0x1003e89b
mov ebx, dword [ebp - 0x1c]
cmp dword [ebx], 0
jne 0x1003e859
xor edx, edx
mov esi, edi
jmp 0x1003e89e
cmp dword [ecx + 0x4c], 0
jne 0x1003e86a
lea ecx, [ebp - 0x1b0]
call fcn.10032790
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x10042905
mov edi, dword [ebp - 0xc]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 0x1c]
sub esi, dword [ebp - 0x50]
mov word [ecx + 0x3e], dx
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x34], esi
mov ecx, dword [ebp - 0x48]
cmp dword [ecx + 0x4c], 0
jne 0x1003e8c2
lea ecx, [ebp - 0x1b0]
call fcn.10032790
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x30]
jmp 0x1003e8d2
xor edx, edx
mov dword [ebp - 0x58], edx
movzx eax, word [ecx + 0x3e]
cmp eax, esi
ja 0x1003e917
mov eax, dword [ebp - 4]
mov ecx, edi
cmp byte [eax + 1], 0xf5
jne 0x1003d6ff
mov edx, dword [eax + 0x10]
push 0x800
call fcn.10032f00
mov edi, dword [ebp - 0xc]
add esp, 4
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ecx + esi*4 + 0x58]
mov dword [ebp - 0x58], edx
mov eax, 0x2400
test word [edi + 8], ax
je 0x1003e932
mov ecx, edi
call fcn.10032ca0
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x58]
mov eax, dword [ecx + 0x54]
cmp eax, dword [ebx + esi*4 + 4]
jb 0x1003ea10
mov edi, dword [ecx + 0x4c]
add edi, dword [ebx + esi*4]
mov ebx, dword [ebp - 0x30]
cmp edx, 0xc
jae 0x1003e96f
push ebx
mov ecx, edi
call fcn.10037130
add esp, 4
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov al, byte [ebp - 0x3c]
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 0x1003e9c5
mov eax, 1
mov ecx, ebx
push 0
mov word [ebx + 8], ax
call fcn.10031fe0
add esp, 4
test eax, eax
je 0x1003e9cb
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
push ecx
call fcn.1000f8a0
add esp, 4
push str.out_of_memory
push edi
call fcn.10033c10
add esp, 8
mov edx, 7
jmp 0x10042911
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
push esi
push edi
push dword [ebx + 0x10]
call fcn.100dcb20
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov byte [esi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [eax + esi + 1], 0
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 4]
and eax, 1
mov ax, word [eax*2 + 0x10111e24]
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov al, byte [ebp - 0x3c]
mov byte [edi + 0xa], al
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x58]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x1003ea32
cmp edx, 0xc
jb 0x1003ea2e
test dl, 1
je 0x1003ea40
test al, al
js 0x1003ea40
mov ecx, edx
call fcn.100370a0
test eax, eax
jne 0x1003ea4b
mov edx, dword [ebp - 0x58]
push edi
mov ecx, 0x1010e618
jmp 0x1003e950
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x48]
push edi
push eax
mov edx, dword [ebx + edx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10033320
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, dword [ebp - 0x58]
mov ecx, dword [edi + 0x10]
push edi
call fcn.10037130
mov eax, 0xefff
add esp, 4
and word [edi + 8], ax
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], edx
mov ebx, dword [edx + 4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x24], ebx
lea esi, [ecx + eax*8]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x34], ecx
cmp ax, word [edx + 0x22]
jge 0x1003cf9b
lea edi, [ebx + 8]
mov dword [ebp - 0x2c], edi
nop dword [eax]
movzx eax, word [edi + 6]
test al, 0x60
je 0x1003eadd
test al, 0x20
jne 0x1003eb89
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jne 0x1003eb86
push dword [ebp - 0x3c]
mov dl, byte [edi]
mov ecx, esi
call fcn.1003ca70
movzx ebx, word [esi + 8]
add esp, 4
test bl, 1
jne case.default.0x1003eb0a
mov eax, dword [edi - 4]
shr eax, 4
and eax, 0xf
lea ecx, [eax - 2]
cmp ecx, 4
ja case.default.0x1003eb0a
jmp dword [ecx*4 + 0x1004328c]
test bl, 0x10
jmp 0x1003eb7a
test bl, 4
jmp 0x1003eb7a
test bl, 2
jmp 0x1003eb7a
test bl, 4
je 0x1003eb77
mov edi, dword [esi]
mov ecx, edi
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x1003eb58
jb 0x1003eb44
cmp ecx, 0xffffffff
ja 0x1003eb58
or ebx, 0x20
movzx eax, bx
and eax, 0xfffb
mov word [esi + 8], ax
mov edi, dword [ebp - 0x2c]
jmp case.default.0x1003eb0a
mov ecx, edi
call fcn.100fe5d0
or ebx, 8
movsd qword [esi], xmm0
movzx eax, bx
and eax, 0xfffb
mov word [esi + 8], ax
mov edi, dword [ebp - 0x2c]
jmp case.default.0x1003eb0a
test bl, 0x28
je 0x10042931
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], edi
cmp ecx, eax
jl 0x1003eac0
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
push dword [ebp - 0x3c]
mov dl, al
mov ecx, esi
call fcn.1003ca70
add esp, 4
cmp byte [edi], 0x45
jne 0x1003ec15
movzx ebx, word [esi + 8]
test bl, 4
je 0x1003ec15
mov ecx, dword [esi]
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x1003ebfd
jb 0x1003ebf2
cmp ecx, 0xffffffff
ja 0x1003ebfd
and ebx, 0xfffb
or ebx, 0x20
jmp 0x1003ec11
mov ecx, dword [esi]
call fcn.100fe5d0
and ebx, 0xfffb
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 8], bx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x1004266f
add esi, 0x28
jmp 0x1003ebb8
mov ebx, dword [ebp - 4]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x18]
xor ecx, ecx
movlpd qword [ebp - 0x28], xmm0
mov dword [ebp - 0x30], ecx
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
movlpd qword [ebp - 0x98], xmm0
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x2c], edx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [edx + eax*8]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x38], ebx
mov al, byte [eax + 0x9b]
mov byte [ebp - 0x41], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x74], eax
test edi, edi
je 0x1003ecbc
mov al, byte [edi]
lea esi, [edx + 8]
mov ebx, dword [ebp - 0x3c]
push ebx
lea ecx, [esi - 8]
mov dl, al
call fcn.1003ca70
add esp, 4
cmp byte [edi], 0x45
jne 0x1003ecab
movzx eax, word [esi]
test al, 4
je 0x1003ecab
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x1003ec86
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x94]
lea edx, [ebx + 0x1c]
mov esi, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x94], eax
movzx ebx, word [edx - 0x14]
mov dword [ebp - 0x34], edx
test bl, 1
je 0x1003ecfe
and ebx, 0x4000
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [edx], ebx
jmp 0x1003eef3
test bl, 0x24
je 0x1003ee68
mov ecx, dword [edx - 0x18]
mov eax, dword [edx - 0x1c]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x40], ecx
test ecx, ecx
jg 0x1003ed28
jl 0x1003ed1d
test eax, eax
jae 0x1003ed28
mov ecx, eax
mov eax, dword [edx - 0x18]
not ecx
not eax
jmp 0x1003ed2d
mov ecx, eax
mov eax, dword [edx - 0x18]
inc dword [ebp - 0x30]
test eax, eax
ja 0x1003edf6
jb 0x1003ed3f
cmp ecx, 0x7f
ja 0x1003ed84
mov eax, dword [edx - 0x1c]
and eax, 1
mov dword [ebp - 0x34], 0
cmp eax, dword [edx - 0x1c]
jne 0x1003ed6c
mov eax, dword [ebp - 0x34]
cmp eax, dword [edx - 0x18]
jne 0x1003ed6c
cmp byte [ebp - 0x41], 4
jb 0x1003ed6c
lea eax, [ecx + 8]
mov ecx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x1003eef6
mov ecx, dword [ebp - 0x30]
add esi, 1
mov eax, 1
mov dword [ebp - 0x1c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x1003eef6
test eax, eax
ja 0x1003edf6
jb 0x1003ed92
cmp ecx, 0x7fff
ja 0x1003edaa
mov ecx, dword [ebp - 0x30]
add esi, 2
mov eax, 2
mov dword [ebp - 0x1c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x1003eef6
test eax, eax
ja 0x1003edf6
jb 0x1003edb8
cmp ecx, 0x7fffff
ja 0x1003edd0
mov ecx, dword [ebp - 0x30]
add esi, 3
mov eax, 3
mov dword [ebp - 0x1c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x1003eef6
test eax, eax
ja 0x1003edf6
jb 0x1003edde
cmp ecx, 0x7fffffff
ja 0x1003edf6
mov ecx, dword [ebp - 0x30]
add esi, 4
mov eax, 4
mov dword [ebp - 0x1c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x1003eef6
cmp eax, 0x7fff
ja 0x1003ee1c
jb 0x1003ee04
cmp ecx, 0xffffffff
ja 0x1003ee1c
mov ecx, dword [ebp - 0x30]
add esi, 6
mov eax, 5
mov dword [ebp - 0x1c], esi
adc edi, 0
mov dword [edx], eax
jmp 0x1003eef6
add esi, 8
mov dword [ebp - 0x1c], esi
adc edi, 0
test bl, 0x20
je 0x1003ee59
mov edx, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
call fcn.100fe5d0
mov edx, dword [ebp - 0x34]
and ebx, 0xffdf
mov ecx, dword [ebp - 0x30]
or ebx, 8
mov eax, 7
movsd qword [edx - 0x1c], xmm0
mov word [edx - 0x14], bx
mov dword [edx], eax
jmp 0x1003eef6
mov ecx, dword [ebp - 0x30]
mov eax, 6
mov dword [edx], eax
jmp 0x1003eef6
test bl, 8
je 0x1003ee7f
inc ecx
mov dword [edx], 7
add esi, 8
mov dword [ebp - 0x1c], esi
adc edi, 0
jmp 0x1003eef3
mov ecx, dword [edx - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
mov dword [ebp - 0x24], ecx
lea eax, [eax + ecx*2]
add eax, 0xc
mov dword [ebp - 0x40], eax
test ebx, 0x4000
je 0x1003eed3
lea ebx, [edx - 0x1c]
mov edx, dword [ebx]
lea eax, [eax + edx*2]
mov dword [ebp - 0x40], eax
mov eax, esi
or eax, edi
je 0x1003eec4
mov ecx, ebx
call fcn.10032370
test eax, eax
jne 0x1003e99e
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebx]
jmp 0x1003eed0
mov eax, edx
cdq
add dword [ebp - 0x94], eax
adc dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x40]
add esi, ecx
push 0
push eax
mov dword [ebp - 0x1c], esi
adc edi, 0
call fcn.10013b50
mov edx, dword [ebp - 0x34]
add esp, 8
mov ecx, dword [ebp - 0x30]
add ecx, eax
mov eax, dword [ebp - 0x40]
mov dword [edx], eax
mov dword [ebp - 0x30], ecx
lea eax, [edx - 0x1c]
cmp eax, dword [ebp - 0x2c]
je 0x1003ef06
sub edx, 0x28
jmp 0x1003ecdd
cmp ecx, 0x7e
jle 0x1003ef34
mov eax, ecx
cdq
push edx
push eax
call fcn.10013b50
mov esi, eax
mov eax, dword [ebp - 0x30]
add eax, esi
mov dword [ebp - 0x30], eax
cdq
push edx
push eax
call fcn.10013b50
mov ecx, dword [ebp - 0x30]
add esp, 0x10
cmp esi, eax
mov esi, dword [ebp - 0x1c]
jge 0x1003ef38
inc ecx
mov dword [ebp - 0x30], ecx
mov eax, ecx
cdq
add esi, eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x74]
mov ebx, edx
adc edi, ebx
mov ecx, esi
add ecx, dword [ebp - 0x94]
mov eax, dword [eax + 0x18]
adc edi, dword [ebp - 0x50]
cdq
cmp edi, edx
jg 0x1003ef6b
jl 0x1003ef60
cmp ecx, eax
ja 0x1003ef6b
mov edx, dword [ebp - 0x74]
mov eax, dword [edx + 0x14]
mov dword [edx + 0x10], eax
jmp 0x1003ef99
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x78]
cdq
cmp edi, edx
jg 0x10042c0d
jl 0x1003ef84
cmp ecx, eax
ja 0x10042c0d
mov ecx, dword [ebp - 0x74]
mov edx, esi
call fcn.10032270
test eax, eax
jne 0x1003e99e
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x94]
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x50]
mov dword [edx + 0xc], esi
je 0x1003efbd
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov eax, dword [ebp - 0x30]
mov esi, dword [edx + 0x10]
lea edi, [esi + eax]
cmp eax, 0x80
jae 0x1003efd6
mov byte [esi], al
mov eax, 1
jmp 0x1003efe4
push ebx
push dword [ebp - 0x24]
mov ecx, esi
call fcn.100138c0
add esp, 8
mov ebx, dword [ebp - 0x2c]
movzx eax, al
add esi, eax
nop dword [eax]
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x1003f004
mov byte [esi], bl
mov eax, 1
jmp 0x1003f011
push 0
push ebx
mov ecx, esi
call fcn.100138c0
add esp, 8
push ebx
mov ebx, dword [ebp - 0x2c]
mov ecx, edi
movzx eax, al
mov edx, ebx
add esi, eax
call fcn.100370d0
add ebx, 0x28
add esp, 4
add edi, eax
mov dword [ebp - 0x2c], ebx
cmp ebx, dword [ebp - 0x38]
jbe 0x1003eff0
jmp 0x1003e958
mov ebx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x1003f062
mov ecx, edx
call fcn.10029da0
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
jmp 0x1003f08c
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xe8]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0xe8], xmm0
call fcn.1002fcc0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x1004124a
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x1003f18d
cmp dword [ecx + 0xc4], eax
jg 0x1004296e
mov ecx, edi
call fcn.10012850
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x1f8]
add ecx, dword [eax + 0x1f4]
push ecx
mov ecx, eax
call fcn.10098d50
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 8]
lea eax, [ebx + 0x21]
push edx
push eax
call fcn.1000f5d0
mov esi, eax
add esp, 8
test esi, esi
je 0x1004266f
lea ecx, [ebx + 1]
push ecx
lea edx, [esi + 0x20]
push edi
push edx
mov dword [esi], edx
call fcn.100dcb20
mov edx, dword [ebp - 8]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x1003f13e
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x1003f144
inc dword [edx + 0x1f4]
mov eax, dword [edx + 0x1e8]
mov edi, dword [ebp - 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1e8], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x14], ecx
mov ecx, edx
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov esi, dword [ecx + 0x1e8]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
test esi, esi
je 0x1003f1b8
nop dword [eax]
mov ecx, dword [esi]
mov edx, edi
call fcn.10012bc0
test eax, eax
je 0x1003f1da
mov esi, dword [esi + 0x18]
inc ebx
mov dword [ebp - 0x1c], ebx
test esi, esi
jne 0x1003f1a0
mov ebx, dword [ebp - 0xc]
push edi
push str.no_such_savepoint:__s
push ebx
call fcn.10033c10
mov esi, dword [ebp - 4]
mov edx, 1
add esp, 0xc
mov dword [ebp - 0x14], edx
jmp 0x1004291a
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x30]
cmp dword [ecx + 0xc4], 0
jle 0x1003f1f2
cmp edx, 1
je 0x1004298c
cmp dword [esi + 0x18], 0
jne 0x1003f25b
cmp byte [ecx + 0x5d], 0
je 0x1003f25b
mov dword [ebp - 0x40], 1
cmp edx, 1
jne 0x1003f262
mov ecx, dword [ebp - 0xc]
call fcn.10036770
mov edi, eax
test edi, edi
jne 0x10042f19
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov ecx, edi
mov byte [eax + 0x55], 1
call fcn.100367d0
cmp eax, 5
je 0x100429bf
mov edx, dword [edi + 0x28]
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x100429ad
mov eax, dword [ebp - 8]
mov byte [eax + 0x5d], dl
lea edi, [eax + 0x1f4]
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
jmp 0x1003f365
mov dword [ebp - 0x40], 0
lea eax, [ecx + 0x1f4]
mov dword [ebp - 0x38], eax
mov eax, dword [eax]
sub eax, ebx
dec eax
mov dword [ebp - 0x1c], eax
cmp edx, 2
jne 0x1003f2d4
mov edi, dword [ebp - 8]
xor ebx, ebx
mov ecx, dword [ecx + 0x18]
and ecx, 1
mov dword [ebp - 0x34], ecx
cmp dword [edi + 0x14], ebx
jle 0x1003f2d9
mov eax, ecx
xor eax, 1
xor edi, edi
mov dword [ebp - 0x24], eax
push eax
mov eax, dword [ebp - 8]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.100285c0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 8]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x24]
jl 0x1003f295
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x30]
jmp 0x1003f2d9
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov edi, dword [ebp - 8]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x1003f31d
xor edi, edi
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.10028850
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 8]
inc ebx
mov edx, dword [ebp - 0x30]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1c]
jl 0x1003f2e5
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 8]
test ecx, ecx
je 0x1003f354
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x1003f349
nop dword [eax + eax]
mov eax, dword [ecx + 0xa0]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0xa0], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x1003f330
mov ecx, edi
call fcn.1005df50
or dword [edi + 0x18], 1
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x38]
test edx, edx
jne 0x10042914
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x1e8]
cmp ecx, esi
je 0x1003f395
mov ebx, eax
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1e8], eax
call fcn.1000f1f0
dec dword [edi]
mov ecx, dword [ebx + 0x1e8]
cmp ecx, esi
jne 0x1003f374
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
cmp edx, 1
jne 0x1003f3c4
mov ecx, dword [ebp - 8]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1e8], eax
call fcn.1000f1f0
cmp dword [ebp - 0x40], 0
jne 0x1004266f
dec dword [edi]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 8]
jmp 0x1003f3fc
cmp dword [ebp - 0x40], 0
mov edi, dword [ebp - 8]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x200], eax
mov dword [edi + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x208], eax
mov eax, edi
mov dword [eax + 0x20c], ecx
je 0x1003f3fc
cmp edx, 2
jne 0x10042648
push ebx
mov ecx, eax
call fcn.10098d50
add esp, 4
mov edx, eax
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 4]
test edx, edx
jne 0x10042917
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x34], 0
mov esi, dword [ebx + 8]
test esi, esi
je 0x1003f454
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x100429f1
mov eax, dword [ebp - 8]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
test edi, edi
je 0x1003f515
lea eax, [ebp - 0x34]
mov edx, esi
push eax
mov ecx, edi
call fcn.10027350
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042a1f
mov esi, dword [ebp - 0xc]
test byte [esi + 0xa0], 0x40
je 0x1003f520
cmp dword [ebx + 8], eax
je 0x1003f520
mov ecx, dword [ebp - 8]
cmp byte [ecx + 0x55], al
je 0x1003f4b2
cmp dword [ecx + 0xc0], 1
jle 0x1003f520
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x1003f4ce
mov eax, dword [ecx + 0x1f4]
inc dword [ecx + 0x1f8]
add eax, dword [ecx + 0x1f8]
mov dword [esi + 0x38], eax
dec eax
xor edx, edx
push eax
call fcn.10098d50
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x1003f4ee
mov edx, dword [esi + 0x38]
mov ecx, edi
call fcn.100287f0
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], ecx
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 4]
cmp word [ecx + 2], 0
je 0x1003d3c8
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 8]
cmp eax, dword [ecx + 0xc]
jne 0x10042a55
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x10042a55
mov edi, dword [ebp - 0xc]
mov ecx, esi
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x110]
mov ecx, dword [ecx + 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.1002fbb0
mov eax, dword [ebp - 4]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea ecx, [eax + ecx*8]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x1003f5d0
call fcn.1003cca0
mov esi, dword [ebp - 4]
mov ecx, eax
mov eax, dword [ebp - 0x110]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov esi, dword [ebp - 4]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x110]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esi + 4]
call fcn.1002fc10
mov edx, dword [ebp - 4]
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x1003f648
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.1006fa90
mov edx, dword [ebp - 4]
jmp 0x1003f656
cmp eax, 2
jne 0x1003f656
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x1003f66d
mov ecx, dword [ebp - 8]
xor edx, edx
call fcn.10038b20
and dword [edi + 0xa0], 0xfffffffc
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
test edx, edx
jne 0x10042917
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x1003f6b1
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x1003f6b1
mov ecx, dword [esi + 0x2c]
call fcn.10024480
jmp 0x1003f7aa
mov ecx, dword [ebp - 8]
mov eax, dword [edi + 0xa0]
and al, 3
cmp al, 1
je 0x10042abb
mov eax, dword [ebp - 4]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x34], 0
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x38], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 4]
cmp dl, 0x70
jne 0x1003f715
mov eax, dword [eax + 0xc]
movzx edi, word [ecx + 2]
mov edx, dword [ebp - 0xc]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x9b]
jae 0x1003f717
mov byte [edx + 0x9b], al
jmp 0x1003f717
xor edi, edi
test byte [ecx + 2], 0x10
je 0x1003f732
mov ecx, dword [ebp - 0x18]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10032920
mov ebx, dword [esi]
mov ecx, dword [ebp - 4]
mov al, byte [ecx + 1]
cmp al, 0xf7
jne 0x1003f745
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x34], eax
movzx eax, word [eax + 8]
jmp 0x1003f751
cmp al, 0xfd
jne 0x1003f74e
mov eax, dword [ecx + 0x10]
jmp 0x1003f751
mov eax, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0xc]
push 0
push eax
call fcn.1003c7a0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003e99e
push dword [esi + 0x2c]
mov eax, dword [ebp - 0x38]
mov edx, ebx
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
or dword [esi + 8], 4
push edi
mov byte [esi + 1], al
mov byte [esi + 2], 1
mov dword [esi + 0x38], ebx
call fcn.100289d0
mov edi, dword [ebp - 0xc]
add esp, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 4]
mov ecx, dword [esi + 0x2c]
movzx edx, word [eax + 2]
and edx, 3
call fcn.10024710
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 4]
test edx, edx
jne 0x10042917
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xc]
movsx eax, word [edi + 0x3c]
push eax
call fcn.1003c7a0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003e99e
mov edx, dword [esi + 8]
mov byte [esi + 2], 1
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
call fcn.100289d0
add esp, 0xc
mov dword [ebp - 0x14], eax
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x1003f886
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 0x10], 0x10112d0f
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x68]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1003f8ef
test byte [esi + 8], 8
jne 0x1003f8ef
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x1003f8ef
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
push 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
call fcn.1002f6f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov byte [esi + 2], 1
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.1003c7a0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003d464
mov eax, dword [ebp - 4]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
mov eax, dword [ebp - 8]
push edi
push eax
mov ecx, dword [eax]
call fcn.10025ee0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.10027350
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x1003f9c8
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x24], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x1003f9a2
movzx eax, word [ecx + 2]
lea edx, [esi + 0x38]
mov ecx, dword [edi]
or eax, 2
push eax
call fcn.1002f3f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x1003f99c
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x24]
mov ecx, dword [edi]
push 4
call fcn.100289d0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x14], edx
mov byte [esi + 4], 0
jmp 0x1003f9c8
push dword [esi + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
push 4
mov dword [esi + 0x38], 1
call fcn.100289d0
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
xor ecx, ecx
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
test edx, edx
jne 0x10042ac5
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov byte [esi + 2], 1
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.1003c7a0
add esp, 8
test eax, eax
je 0x1003d464
mov edx, dword [ebp - 4]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [ebp - 8]
call fcn.10044840
jmp 0x1003de28
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
je 0x1003e4dc
jmp 0x1003e958
mov ecx, dword [ebp - 4]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.1003c7a0
add esp, 8
test eax, eax
je 0x1003d464
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 8]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x10125720
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, dword [edi + 0x68]
mov eax, dword [ecx + 4]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.10035b80
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov dword [ebp - 0x1c], 0
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
cmp byte [edi + 4], 0
mov word [edi + 2], 0
mov dword [edi + 0x20], 0
je 0x1003fc41
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov dword [ebp - 0x24], eax
and al, 0x2e
cmp al, 2
jne 0x1003fb3a
xor edx, edx
mov ecx, esi
call fcn.1003c8a0
mov ecx, esi
call fcn.10032810
movzx ecx, word [esi + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edx
mov word [esi + 8], ax
test cl, 0x24
jne 0x1003fbe0
test cl, 8
jne 0x1003fbba
test cl, 1
jne 0x1003e4dc
cmp ebx, 0x19
jae 0x1003e4dc
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x60]
call fcn.100296a0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x60], 0
jne 0x1003e4dc
mov edi, dword [ebp - 0xc]
test ecx, ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
je 0x10042678
add dword [ebp - 4], 0x14
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
push dword [ebp - 0x2c]
movsd xmm1, qword [esi]
push dword [ebp - 0x34]
call fcn.100378c0
add esp, 8
test eax, eax
jle 0x1003fbd8
test bl, 1
jne 0x1003fbe0
dec ebx
jmp 0x1003fbe0
jns 0x1003fbe0
test bl, 1
je 0x1003fbe0
inc ebx
mov ecx, dword [edi + 0x2c]
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x2c]
lea esi, [edi + 0x2c]
xor edx, edx
push dword [ebp - 0x34]
call fcn.10029710
mov edx, eax
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x60]
cmp ebx, 0x19
jl 0x1003fd1c
test eax, eax
js 0x1003fcda
jne 0x1003fc35
cmp ebx, 0x1a
je 0x1003fcda
mov dword [ebp - 0x60], 0
jmp 0x1003fb97
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x41], al
mov eax, 0
setne al
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x138], eax
mov ax, word [edx + 0x10]
mov word [ebp - 0x130], ax
lea eax, [ebx - 1]
test al, 1
mov byte [ebp - 0x12a], 0
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x12e], al
mov eax, dword [edx + 0xc]
lea edx, [ebp - 0x138]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x60]
mov ecx, dword [esi]
push eax
call fcn.100299d0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp byte [ebp - 0x41], al
je 0x1003fc13
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
cmp byte [ebp - 0x12a], al
je 0x1003fb8d
jmp 0x1003fc16
mov dword [ebp - 0x60], 0
push 0
push dword [esi]
call fcn.10029f60
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
test edx, edx
je 0x1003fb8a
mov esi, dword [ebp - 4]
cmp edx, 0x65
jne 0x10042917
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x60], 1
jmp 0x1003e4e2
test eax, eax
jg 0x1003fd36
jne 0x1003fd27
cmp ebx, 0x17
je 0x1003fd36
mov ecx, dword [esi]
call fcn.10029d90
mov dword [ebp - 0x60], eax
jmp 0x1003fb8a
mov dword [ebp - 0x60], 0
push 0
push dword [esi]
call fcn.1002a0d0
jmp 0x1003fcea
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x1003d3c8
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x150], eax
mov byte [ebp - 0x146], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [ebp - 0x148], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xd4], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x14c], eax
nop dword [eax]
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x150]
mov edx, edi
push eax
call fcn.10038a00
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 0xd4]
test eax, eax
jg 0x1003fe06
je 0x1003e4dc
test esi, esi
jle 0x1004266f
push edx
push dword [edi + 0x2c]
dec esi
call fcn.10029f60
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
test edx, edx
je 0x1003fda0
cmp edx, 0x65
jne 0x10042914
mov dword [ebp - 0x14], 0
add dword [ebp - 4], 0x14
jmp 0x1003e4dc
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov esi, dword [ebp - 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x1003fe41
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x1003cf5b
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
cmp dword [eax + ecx*4], 0
mov ecx, dword [ebp - 8]
je case.0x1003cefb.11
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x1003cf9b
jmp 0x1003feac
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x68]
mov edx, dword [ebp - 0x18]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
test ecx, ecx
jle 0x1003feeb
mov eax, dword [ebx + 0x30]
lea edi, [ebp - 0x188]
mov dword [ebp - 0x184], esi
xor esi, esi
mov dword [ebp - 0x188], eax
mov word [ebp - 0x180], cx
jmp 0x1003ff2e
mov eax, 0x4000
test word [esi + 8], ax
je 0x1003ff05
mov ecx, esi
call fcn.10032370
test eax, eax
jne 0x1003d464
mov ecx, dword [ebx + 0x30]
call fcn.100373f0
mov edi, eax
mov dword [ebp - 0x24], edi
test edi, edi
je 0x1003e99e
mov edx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x30]
push edi
push dword [esi + 0x10]
call fcn.10037450
add esp, 8
mov esi, edi
mov eax, dword [ebp - 4]
mov byte [edi + 0xa], 0
mov dword [ebp - 0x38], 0
cmp byte [eax], 0x1d
jne 0x1003ff67
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x1003ff67
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x1003ff60
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x1003ff51
jmp 0x1003ff67
mov dword [ebp - 0x38], 1
mov ecx, dword [ebx + 0x2c]
lea eax, [ebp - 0xd8]
push eax
mov edx, edi
call fcn.100299d0
add esp, 4
mov edx, eax
mov dword [ebp - 0x14], edx
test esi, esi
je 0x1003ff91
mov ecx, dword [ebp - 8]
mov edx, esi
call fcn.1000f1f0
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0xd8]
test eax, eax
mov byte [ebx + 3], dl
sete cl
mov dword [ebx + 0x20], edx
test eax, eax
setne al
mov byte [ebx + 2], al
mov eax, dword [ebp - 4]
mov al, byte [eax]
cmp al, 0x1f
jne 0x1003ffd3
test ecx, ecx
jne 0x1003e4dc
jmp 0x1003e958
cmp dword [ebp - 0x38], 0
jne 0x1003e4dc
test ecx, ecx
je 0x1003e4dc
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
cmp al, 0x1c
jne 0x10042675
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov ax, word [eax + 0x10]
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x24
jne 0x1004007b
movups xmm0, xmmword [ebx + eax*8]
mov dl, 0x43
lea ecx, [ebp - 0xc0]
push dword [ebp - 0x3c]
movups xmmword [ebp - 0xc0], xmm0
movups xmm0, xmmword [ebx + eax*8 + 0x10]
movups xmmword [ebp - 0xb0], xmm0
movq xmm0, qword [ebx + eax*8 + 0x20]
movq qword [ebp - 0xa0], xmm0
call fcn.1003ca70
add esp, 4
test byte [ebp - 0xb8], 4
je 0x1003e4dc
mov edi, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0xbc]
jmp 0x10040088
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x68]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xd0]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0xd0], 0
call fcn.10029710
mov edx, eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
add esp, 0xc
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x24], eax
cmp dword [ebp - 0xd0], 0
mov dword [ebp - 0x14], edx
je 0x1003f40c
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
jne 0x1003e4dc
mov ecx, 0x16940
call fcn.100bc1b0
jmp 0x1003f407
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea edx, [eax + ecx*8]
mov eax, 0x2400
test word [edx + 8], ax
je 0x10040126
mov ecx, edx
call fcn.1003cca0
mov edx, eax
jmp 0x1004012f
mov eax, 4
mov word [edx + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x68]
mov esi, dword [ebp - 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov dword [ebp - 0x2c], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea edx, [eax + ecx*8]
mov eax, 0x2400
mov dword [ebp - 0x38], edx
test word [edx + 8], ax
je 0x100401a3
mov ecx, edx
call fcn.1003cca0
mov dword [ebp - 0x38], eax
jmp 0x100401ac
mov eax, 4
mov word [edx + 8], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x68]
mov ebx, dword [eax + ecx*4]
test byte [ebx + 8], 2
jne 0x10040213
mov ecx, dword [ebx + 0x2c]
lea edx, [ebp - 0x2c]
call fcn.100296a0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp dword [ebp - 0x2c], eax
je 0x100401e4
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], eax
jmp 0x10040213
mov ecx, dword [ebx + 0x2c]
call fcn.10028c30
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
cmp edx, 0x7fffffff
jl 0x10040207
jg 0x10040201
cmp eax, 0xffffffff
jb 0x10040207
or dword [ebx + 8], 2
jmp 0x10040213
add eax, 1
mov dword [ebp - 0x28], eax
adc edx, 0
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x100402bc
mov edx, dword [edi + 0xd8]
test edx, edx
je 0x10040246
mov eax, dword [edx + 4]
test eax, eax
je 0x1004023b
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10040232
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x1004024f
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x18]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10032810
mov dword [esi], eax
mov ecx, 0x3e40
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov edx, dword [esi]
or ax, 4
mov ecx, dword [esi + 4]
mov word [esi + 8], ax
cmp edx, 0xffffffff
jne 0x10040285
cmp ecx, 0x7fffffff
je 0x10040311
test byte [ebx + 8], 2
jne 0x10040311
mov edi, dword [ebp - 0x24]
add edx, 1
adc ecx, 0
cmp edi, ecx
jg 0x100402b1
jl 0x100402a5
mov eax, dword [ebp - 0x28]
cmp eax, edx
jae 0x100402b4
mov eax, edx
mov edi, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edi
jmp 0x100402b4
mov eax, dword [ebp - 0x28]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0xc]
mov dword [esi], eax
test byte [ebx + 8], 2
je 0x1004031b
xor esi, esi
lea eax, [ebp - 0x28]
push eax
push 8
call fcn.10012000
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x28], ecx
push eax
mov dword [ebp - 0x24], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x2c]
call fcn.10029710
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp dword [ebp - 0x2c], eax
jne 0x1004031b
inc esi
cmp esi, 0x64
jl 0x100402c4
mov edx, 0xd
jmp 0x10042911
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 4]
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [edx], eax
mov eax, dword [ebp - 0x10]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], esi
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], eax
jne 0x100403a8
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0xfc], 0
je 0x100403a8
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 4]
mov ebx, dword [ecx + 0x10]
jmp 0x100403b0
mov ecx, dword [ebp - 4]
xor ebx, ebx
mov dword [ebp - 0x34], ebx
test byte [ecx + 2], 1
je 0x100403c4
mov eax, dword [ebp - 0xc]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov eax, dword [ebp - 0x38]
test byte [ecx + 2], 0x20
je 0x100403d6
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0x18]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [ebp - 0xb0], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ebp - 0xa4], eax
test cl, 0x10
je 0x100403fb
mov edi, dword [esi + 0x24]
jmp 0x100403fd
xor edi, edi
mov eax, dword [ebp - 0x18]
mov esi, 0x4000
test word [eax + edx*8 + 8], si
mov esi, dword [ebp - 0x24]
je 0x1004041a
mov eax, dword [eax + edx*8]
mov dword [ebp - 0xa0], eax
jmp 0x10040424
mov dword [ebp - 0xa0], 0
and ecx, 0x8a
mov dword [ebp - 0xc0], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xc0]
call fcn.1002dfb0
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [ebp - 0x14], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10042914
test ebx, ebx
je 0x1004266f
push dword [ebp - 0xb4]
mov eax, dword [ebp - 4]
mov ecx, 0x17
push dword [ebp - 0xb8]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [ebp - 0x34]
cmovne eax, ecx
push eax
mov eax, dword [ebp - 8]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x1003e958
mov edx, dword [ebp - 4]
mov ecx, dword [edi + 0x68]
mov eax, dword [edx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100404d1
mov ebx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x100404df
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.1002e580
add esp, 8
jmp 0x1003de2b
mov edx, dword [ebp - 4]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x68]
mov esi, dword [eax + ecx*4]
jne 0x1004054f
mov eax, dword [ebp - 8]
cmp dword [eax + 0xfc], 0
lea edi, [eax + 0xfc]
je 0x10040558
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x38], eax
je 0x10040561
cmp byte [esi + 4], 0
je 0x10040561
mov ecx, dword [esi + 0x2c]
call fcn.10028c30
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 4]
mov dword [esi + 0x40], eax
jmp 0x10040561
mov edi, dword [ebp - 8]
add edi, 0xfc
mov dword [ebp - 0x38], 0
xor ebx, ebx
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.1002e9f0
mov edx, eax
mov dword [esi + 0x20], 0
mov dword [ebp - 0x14], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x10042914
test byte [ebp - 0x24], 1
je 0x1004266f
mov eax, dword [ebp - 0xc]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], edx
mov eax, dword [edi]
test eax, eax
je 0x1004266f
test ebx, ebx
je 0x1004266f
test byte [ebx + 0x1c], 0x80
mov ecx, dword [ebp - 8]
jne 0x10042672
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [ebx]
push dword [ebp - 0x38]
push 9
push dword [ecx + 0xf8]
call eax
add esp, 0x18
jmp 0x1003e958
push dword [edi + 0x34]
push dword [edi + 0x30]
call fcn.10038b00
mov ecx, dword [ebp - 8]
add esp, 8
mov eax, dword [ebp - 0x10]
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xdc], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x10]
call fcn.10046db0
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp dword [ebp - 0xdc], eax
jmp 0x1003cf95
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [edi + 0x68]
mov ecx, dword [eax + ecx*4]
call fcn.10046d10
mov esi, dword [ebp - 4]
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042917
mov eax, esi
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [edi + 0x68]
mov esi, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10028c60
mov ecx, dword [ebp - 8]
cmp eax, dword [ecx + 0x78]
ja 0x10042c0d
push esi
mov edx, eax
mov ecx, edi
call fcn.10033400
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], eax
jne 0x1004266f
mov eax, 0x1000
test word [esi + 8], ax
je 0x1004266f
mov ecx, esi
call fcn.100322e0
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
test eax, eax
jne 0x1003e9a4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [ebp - 4]
mov edi, eax
mov ebx, dword [ebp - 0xc]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x68]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x10040768
mov eax, 1
mov word [edi + 8], ax
mov ecx, dword [ebp - 8]
mov edi, ebx
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp byte [esi + 3], 0
je 0x10040781
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x80], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10040752
cmp byte [esi], 2
jne 0x100407be
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x80]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov edx, esi
mov ecx, ebx
call fcn.10038d20
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042969
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10040752
mov ecx, esi
call fcn.10037030
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042969
cmp byte [esi + 2], al
jne 0x10040749
mov ecx, dword [esi + 0x2c]
call fcn.10028c30
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x80], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10040752
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x20], 0
jne 0x1004261e
mov ecx, dword [ecx + 0x2c]
call fcn.10024480
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xc4], 0
cmp dl, 0x88
jne 0x10040863
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.10028c20
test eax, eax
jne 0x1004266f
lea edx, [ebp - 0xc4]
mov ecx, edi
call fcn.100296a0
mov edx, eax
mov al, byte [ebp - 0xc4]
mov dword [ebp - 0x14], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10042914
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], edx
jle 0x1004266f
cmp dword [ebp - 0xc4], edx
jne 0x1003e4dc
jmp 0x1003e958
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0xc8]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.10029670
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp dword [ebp - 0xc8], eax
jne 0x1003e4dc
mov ecx, esi
call fcn.10029da0
test edx, edx
jl 0x10040916
jg 0x100408f4
test eax, eax
jb 0x10040916
push edx
push eax
call fcn.10013e30
mov ecx, dword [ebp - 4]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x10040916
mov dword [ebp - 0xc8], 1
jmp 0x1003e4df
cmp dword [ebp - 0xc8], 0
jmp 0x1003cf95
inc dword [edi + 0xb4]
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x8c], 1
cmp byte [esi], 1
jne 0x10040957
lea edx, [ebp - 0x8c]
mov ecx, esi
call fcn.10046bd0
mov edx, eax
mov dword [ebp - 0x14], edx
jmp 0x1004099d
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.10029320
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x1004097b
mov ecx, edi
mov dword [ebp - 0x8c], eax
call fcn.100294f0
mov edx, eax
jmp 0x1004098c
cmp edx, 0x10
jne 0x1004098f
mov dword [ebp - 0x8c], 1
xor edx, edx
mov dword [ebp - 0x14], edx
mov edi, dword [ebp - 0xc]
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10042914
mov al, byte [ebp - 0x8c]
mov byte [esi + 2], al
cmp dword [ebp - 0x8c], edx
jmp 0x1003cf95
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 8]
call fcn.10046c70
jmp 0x100409eb
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
push dword [esi + 0x2c]
call eax
add esp, 8
mov edx, eax
mov dword [ebp - 0x14], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10040a11
mov byte [esi + 2], al
mov eax, dword [ebp - 4]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xac]
jmp 0x100422d6
cmp edx, 0x65
jne 0x10042914
mov dword [ebp - 0x14], 0
mov byte [esi + 2], 1
jmp 0x1004124a
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x10040a56
add dword [ebx + 0x30], 1
adc dword [ebx + 0x34], 0
mov eax, 0x4000
test word [esi + 8], ax
je 0x10040a78
mov ecx, esi
call fcn.10032370
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042969
mov ecx, dword [ebp - 4]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xc0], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xac], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0xa8], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x10040abb
mov ecx, dword [edi + 0x24]
jmp 0x10040abd
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xc0]
and eax, 0x8a
push eax
call fcn.1002dfb0
mov esi, dword [ebp - 4]
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
mov dword [edi + 0x20], 0
test edx, edx
jne 0x1004291a
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10040b37
mov ecx, esi
call fcn.10032370
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, esi
mov ecx, edi
call fcn.100459d0
jmp 0x1003f407
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x160], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x158], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x160]
mov byte [ebp - 0x156], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x114]
push eax
call fcn.100299d0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
cmp dword [ebp - 0x114], eax
jne 0x10040bce
mov dl, 4
mov ecx, edi
call fcn.1002e9f0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x1003e958
mov ecx, dword [ebp - 4]
cmp word [ecx + 2], 0
je 0x10040be8
mov ecx, dword [ebp - 8]
call fcn.1005e760
test eax, eax
je 0x10042ad4
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x1003e958
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x10040c28
mov ecx, esi
call fcn.10036fe0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, dword [ebp - 4]
jmp 0x10040c2f
mov dword [ebp - 0x14], 0
cmp byte [esi + 2], 0
jne 0x10040cdf
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0xf0]
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.10038820
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 4]
cmp byte [eax], 0x8c
jne 0x10040cb1
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x68]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 4]
mov dword [edx + 0x44], ecx
mov ecx, dword [ebp - 8]
mov byte [edx + 3], 1
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x28], esi
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, eax
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov esi, dword [ebp - 4]
mov dword [eax], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10032ca0
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x1003cf9b
call fcn.10036f70
jmp 0x1003de2b
mov ebx, dword [ebp - 4]
cmp dl, 0x29
mov eax, dword [edi + 0x68]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x170], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x168], ax
sbb al, al
mov byte [ebp - 0x166], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x16c], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10028be0
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x10042af0
cmp esi, 0x7fffffff
ja 0x10042af0
mov edx, dword [ebp - 8]
lea ecx, [ebp - 0xc0]
push 0
call fcn.10032c80
add esp, 4
lea eax, [ebp - 0xc0]
mov edx, esi
mov ecx, edi
push eax
call fcn.10033400
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xb4]
push eax
lea eax, [ebp - 0x170]
push eax
call fcn.10037b40
add esp, 8
lea ecx, [ebp - 0xc0]
mov esi, eax
call fcn.10032790
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
test dl, 1
cmove esi, ecx
test esi, esi
jg 0x1003e4dc
jmp 0x1003e958
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [ebp - 8]
mov esi, eax
mov edi, dword [ebp - 8]
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ecx + 0xcc]
inc ecx
cmp dword [edi + 0xc0], ecx
jg 0x10042b18
mov edx, dword [ebp - 4]
lea eax, [ebp - 0xcc]
push eax
mov ecx, edi
mov dword [ebp - 0xcc], 0
mov ebx, dword [edx + 0xc]
mov eax, ebx
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1002fb60
mov dword [ebp - 0x14], eax
add esp, 4
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0xcc]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x14]
mov dword [esi], eax
test edx, edx
jne 0x10042e27
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x10042632
mov ecx, dword [ebp - 4]
mov edx, ebx
push dword [ecx + 4]
mov ecx, edi
push eax
call fcn.100626b0
mov esi, dword [ebp - 4]
lea ecx, [ebx + 1]
mov eax, dword [ebp - 0x10]
add esp, 8
mov byte [ebp - 0x59], cl
mov ecx, edi
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x28]
mov ecx, dword [ecx + 0x10]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x28], xmm0
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1002f6f0
mov ecx, dword [ebp - 4]
add esp, 4
mov edx, eax
mov dword [ebp - 0x14], edx
cmp dword [ecx + 0xc], 0
je 0x1003de30
mov edx, dword [ebp - 0x28]
add dword [edi + 0x30], edx
mov eax, dword [ebp - 0x24]
adc dword [edi + 0x34], eax
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x10040f14
mov ebx, dword [ebp - 0x18]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [ebp - 0x24]
adc dword [ebx + ecx*8 + 4], eax
mov edx, dword [ebp - 0x14]
jmp 0x1003de30
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x10040f4c
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 8]
call fcn.10044d00
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ecx + 0x2c]
call fcn.1002f7b0
jmp 0x1003de2b
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov edx, dword [ebp - 4]
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xf4], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [ebp - 0xf4]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.1002f3f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 8]
mov dword [esi], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 4], edx
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ebp - 4]
inc byte [ecx + 0x60]
push 0
push 0
push 0
push dword [eax + 0x10]
push ecx
call fcn.10078040
mov ecx, dword [ebp - 8]
mov edx, eax
mov esi, dword [ebp - 4]
add esp, 0x14
mov dword [ebp - 0x14], edx
dec byte [ecx + 0x60]
test edx, edx
je 0x1003cfa1
mov ebx, dword [ebp - 0xc]
mov edi, ecx
jmp 0x1004291d
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x1004104e
mov ebx, dword [ebp - 8]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.100679f0
mov eax, dword [ebp - 4]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebx
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x84]
push eax
call fcn.1007f7f0
mov ecx, ebx
mov edx, eax
add esp, 8
mov dword [ebp - 0x14], edx
or dword [ecx + 0x18], 1
and dword [edi + 0xa0], 0xfffffffc
jmp 0x1004111e
mov dword [ebp - 0xb4], ecx
lea eax, [edi + 0x84]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xac], esi
add esi, esi
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xa4], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.10025c60
push dword [ebx + 0x10]
mov ebx, dword [ebp - 8]
mov dword [ebp - 0x9c], eax
push str.sqlite_master
mov eax, dword [ebx + 0x10]
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.10011ce0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10042b32
push 0
lea eax, [ebp - 0xb4]
mov byte [ebx + 0xb1], 1
push eax
push fcn.1007f570
push esi
push ebx
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa0], 0
call fcn.10078040
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10041109
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10041109
cmp dword [ebp - 0xa0], eax
jne 0x10041109
mov ecx, 0x16f28
call fcn.100bc1b0
mov dword [ebp - 0x14], eax
mov edx, esi
mov ecx, ebx
call fcn.1000f1f0
mov edx, dword [ebp - 0x14]
mov ecx, ebx
mov byte [ecx + 0xb1], 0
test edx, edx
je 0x1003cf9e
call fcn.1005df50
mov edx, dword [ebp - 0x14]
cmp edx, 7
je 0x1003d464
jmp 0x10042911
mov edx, dword [ebp - 4]
mov edx, dword [edx + 4]
call fcn.1005b860
jmp 0x1003de2b
mov edx, dword [ebp - 4]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1005e4e0
mov ecx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1005dd70
mov ecx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.10091120
mov ecx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
lea eax, [ebp - 0x118]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 8]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.10030980
add esp, 0x10
mov ecx, edi
mov ebx, eax
call fcn.10032ca0
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x1004123c
test ebx, ebx
je 0x1003e99e
mov ecx, dword [ebp - 0x18]
dec eax
cdq
push fcn.1000f130
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov edx, ebx
push 0xffffffffffffffff
mov ecx, edi
call fcn.10032fc0
add esp, 0x10
movzx edx, byte [ebp - 0x3c]
mov ecx, edi
call fcn.10031fc0
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x128], 0
jne 0x10042e09
mov esi, dword [ebp - 0x68]
cmp dword [ebp - 0x70], esi
jb 0x10042675
mov ebx, dword [ebp - 0x64]
ja 0x10041280
mov eax, dword [ebp - 0x10]
cmp eax, ebx
jb 0x10042678
nop word [eax + eax]
mov eax, dword [ecx + 0x170]
test eax, eax
je 0x10042675
add ebx, dword [ecx + 0x178]
push dword [ecx + 0x174]
adc esi, 0
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x68], esi
call eax
add esp, 4
test eax, eax
jne 0x10042bdd
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x70], esi
ja 0x10041280
mov eax, dword [ebp - 0x10]
jb 0x100412c1
cmp eax, ebx
jae 0x10041280
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x100412fd
mov ecx, esi
call fcn.10032dd0
test eax, eax
jne 0x1003e99e
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 0x10]
push dword [ebx + edi*8]
call fcn.1001b260
add esp, 8
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x10
lea esi, [ebx + eax*8]
je 0x10041361
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0x140]
call fcn.1001b560
test eax, eax
je 0x10041361
mov eax, dword [ebp - 4]
push dword [ebp - 0x13c]
push dword [ebp - 0x140]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.10032d40
add esp, 8
jmp 0x1004124a
mov ecx, esi
call fcn.10032ca0
jmp 0x100422d6
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x10
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
jne 0x1004139e
mov ecx, esi
call fcn.10032dd0
test eax, eax
jne 0x1003e99e
mov edx, dword [ebp - 0x18]
test ebx, ebx
je 0x100413c0
push dword [edx + edi*8 + 4]
mov ecx, dword [esi + 0x10]
push dword [edx + edi*8]
mov edx, ebx
call fcn.1001b600
add esp, 8
test eax, eax
jne 0x1003e4dc
test ebx, ebx
js 0x1003d3c8
mov ebx, dword [ebp - 0x18]
jmp 0x100412fd
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x2c], ecx
cmp word [eax + 2], 0
je 0x10041413
mov eax, dword [ebx + 0xd8]
mov ecx, dword [edi + 0x14]
test eax, eax
je 0x10041410
cmp dword [eax + 0x1c], ecx
je 0x10040752
mov eax, dword [eax + 4]
test eax, eax
jne 0x10041400
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 8]
mov eax, dword [ebx + 0xe0]
cmp eax, dword [edx + 0xa0]
jge 0x10042b40
test byte [ecx + 8], 0x10
jne 0x10041520
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 + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x10041457
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea edi, [eax + ecx*4]
mov ecx, dword [ebp - 8]
mov eax, edi
cdq
push edx
push eax
call fcn.1000f560
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1003e99e
mov ecx, dword [ebp - 0x2c]
call fcn.10032790
mov eax, dword [ebp - 0x2c]
mov ecx, 0x410
mov word [eax + 8], cx
mov dword [eax + 0xc], edi
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x4c]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x24], 0x10035150
mov eax, dword [ebp - 0xc]
mov dword [ebx], eax
mov dword [ebx + 0x3c], esi
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x30], eax
mov eax, dword [ecx + 0x60]
mov dword [ebx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x38], eax
mov eax, dword [ecx + 0x68]
mov dword [ebx + 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ecx + 0x70]
mov dword [ebx + 8], eax
mov eax, dword [ecx + 0x74]
mov dword [ebx + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x1c], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [ebx + eax*8]
lea eax, [ebx + 0x58]
cmp eax, ecx
je 0x10041523
mov edx, dword [ebp - 8]
mov esi, 0x80
nop
mov word [eax + 8], si
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x10041510
jmp 0x10041523
mov ebx, dword [ecx + 0x10]
mov esi, dword [ebp - 0xc]
lea edx, [ebx + 0x58]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x18], edx
inc dword [esi + 0xe0]
mov eax, dword [esi + 0xd8]
mov dword [ebx + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x34]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], ecx
mov eax, dword [esi + 0xec]
mov dword [ebx + 0x28], eax
mov dword [esi + 0x60], edx
mov dword [esi + 0xec], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0xd8], ebx
mov ecx, dword [ebx + 0x3c]
mov dword [esi + 0x18], ecx
movzx eax, word [ebx + 0x40]
mov dword [esi + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x68], 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 fcn.100dd0a0
mov ebx, dword [edi]
add esp, 0xc
mov dword [esi + 0x70], ebx
mov eax, dword [edi + 4]
mov edi, esi
mov dword [ebp - 0x4c], ebx
lea ecx, [ebx - 0x14]
mov dword [ebp - 4], ecx
mov dword [edi + 0x74], eax
jmp 0x1004124a
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov esi, eax
mov eax, dword [edi + 0xd8]
push 0x1000
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 [ebp - 4]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.10032f00
mov ecx, dword [ebp - 8]
add esp, 4
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 4]
mov esi, eax
je 0x10041664
mov eax, dword [eax + 8]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [ebp - 0x10]
adc dword [ecx + 0x20c], edx
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x10041688
add dword [ecx + 0x200], eax
mov eax, dword [ebp - 0x10]
adc dword [ecx + 0x204], edx
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
add dword [edi + 0x48], eax
mov eax, dword [ebp - 0x10]
adc dword [edi + 0x4c], edx
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
cmp dword [esi + 4], 0
je 0x100416d4
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x1003cfa1
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
je 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [edi + 0x48]
or eax, dword [edi + 0x4c]
jmp 0x100416ae
mov edx, dword [edi + 0xd8]
test edx, edx
je 0x1004170d
mov eax, dword [edx + 4]
test eax, eax
je 0x100416f9
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x100416f0
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x1004171c
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.10032810
mov dword [edi], eax
mov ecx, 0x3e40
movzx eax, word [edi + 8]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 8], ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.10032810
mov dword [esi], eax
mov ecx, 0x3e40
movzx eax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov ecx, edx
mov word [esi + 8], ax
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x1004266f
jl 0x1004177f
cmp dword [edi], eax
jae 0x1004266f
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x1003d3c8
jg 0x100417ae
test ecx, ecx
je 0x1003d3c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x1003e4dc
mov ecx, dword [ebp - 4]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.1003ccc0
mov edx, dword [ebp - 0x18]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ecx
test ecx, ecx
jl 0x10041848
jg 0x100417ff
test eax, eax
je 0x10041848
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x10041810
jg 0x1004181e
test eax, eax
jne 0x1004181e
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
push ecx
push eax
lea ecx, [ebp - 0x100]
call fcn.10013c30
add esp, 8
test eax, eax
jne 0x10041848
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xfc]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x1003e958
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x1003cf9b
test edx, edx
jl 0x1003e4df
jg 0x10041889
test ecx, ecx
je 0x1003e4df
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x1003e4df
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x100418c9
jg 0x100418bc
test eax, eax
je 0x100418c9
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
mov esi, dword [ebp - 4]
or eax, ecx
mov ecx, dword [ebp - 8]
je 0x1003e4e5
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.1000f5d0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003d464
mov edx, dword [ebp - 8]
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov dword [esi + 8], 0
push 1
mov dword [esi], ecx
call fcn.10032c80
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x4c]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 4]
sar edx, 3
mov eax, edx
mov dword [esi + 0xc], edi
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x18], 0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], bl
mov word [ecx], 0xf0a2
mov dword [ecx + 0x10], esi
jmp 0x10041965
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x24], edi
cmp dword [esi + 8], edi
je 0x100419aa
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edi
js 0x100419aa
mov edi, dword [ebp - 4]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 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 0x10041991
mov edi, dword [ebp - 0x24]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [ebp - 4]
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x100419c8
mov eax, dword [ecx + 0x1c]
jmp 0x100419cb
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1004266f
jle 0x10041a00
mov ecx, dword [esi]
mov dl, 1
call fcn.10033540
mov edi, dword [ebp - 0xc]
push eax
push 0x10114c14
push edi
call fcn.10033c10
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x14], eax
jmp 0x10041a03
mov edi, dword [ebp - 0xc]
cmp byte [esi + 0x18], 0
je 0x10041a29
mov eax, dword [ebp - 4]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x10041a25
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.10032d40
add esp, 8
mov byte [esi + 0x18], 0
mov ecx, dword [esi]
mov eax, 0x2400
test word [ecx + 8], ax
jne 0x10041a3c
cmp dword [ecx + 0x18], 0
je 0x10041a41
call fcn.10032750
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 0x14]
mov word [eax + 8], cx
mov dword [esi + 0x14], 0
jmp 0x1003de30
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x10041a94
push dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov ecx, esi
lea edx, [ebx + eax*8]
call fcn.100326b0
mov edi, eax
add esp, 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jmp 0x10041aa0
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.10032610
mov edi, eax
mov dword [ebp - 0x14], edi
test edi, edi
jne 0x10042b62
movzx edx, byte [ebp - 0x3c]
mov ecx, esi
call fcn.10031fc0
mov ecx, esi
call fcn.10032ea0
mov edi, dword [ebp - 0xc]
test eax, eax
jne 0x10042c10
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x10c], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [ebp - 0x104], 0xffffffff
mov dword [ebp - 0x108], 0xffffffff
call fcn.100ba6a0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x14], edx
test edx, edx
je 0x10041b3c
cmp edx, 5
jne 0x10042914
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10c], 1
mov eax, dword [ebp - 4]
xor edi, edi
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x2400
mov eax, dword [ebp + edi*4 - 0x10c]
cdq
test word [esi + 8], cx
je 0x10041b73
push edx
push eax
mov ecx, esi
call fcn.10032d10
add esp, 8
mov ecx, 0x2400
jmp 0x10041b81
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], edx
mov word [esi + 8], ax
inc edi
add esi, 0x28
cmp edi, 3
jl 0x10041b52
jmp 0x1003e958
mov ebx, dword [ebp - 4]
mov ecx, edi
mov edx, ebx
call fcn.1003ccc0
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x24], eax
call fcn.1002fe00
mov ebx, eax
mov ecx, ebx
call fcn.10020d10
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.10020d20
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.10020930
cmp esi, 5
jne 0x10041c49
mov ecx, eax
call fcn.10012850
test eax, eax
je 0x10041bfe
mov ecx, ebx
call fcn.10020d50
test eax, eax
jne 0x10041c49
mov esi, edi
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x10041c09
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.10020bb0
mov ebx, dword [ebp - 0x38]
mov ecx, 0xa02
mov word [ebx + 8], cx
mov ecx, eax
call fcn.100793f0
mov ecx, eax
mov dword [ebx + 0x10], eax
call fcn.10012850
movzx edx, byte [ebp - 0x3c]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
call fcn.10031fc0
mov edx, dword [ebp - 0x14]
jmp 0x1003f40c
cmp esi, edi
je 0x10041c00
cmp edi, 5
je 0x10041c57
cmp esi, 5
jne 0x10041c00
mov eax, dword [ebp - 8]
cmp byte [eax + 0x55], 0
je 0x10042b88
cmp dword [eax + 0xc0], 1
jg 0x10042b88
cmp edi, 5
jne 0x10041c91
mov edx, eax
mov ecx, ebx
call fcn.10020ed0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x10041c07
mov edx, esi
mov ecx, ebx
call fcn.10020bb0
jmp 0x10041caa
cmp edi, 4
jne 0x10041ca0
lea edx, [edi - 2]
mov ecx, ebx
call fcn.10020bb0
cmp dword [ebp - 0x14], 0
jne 0x10041c07
mov ecx, dword [ebp - 0x24]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.10031040
mov dword [ebp - 0x14], eax
jmp 0x10041c03
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
test eax, eax
je 0x10041cd8
mov edx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x10041cda
xor eax, eax
mov edx, dword [ebp - 8]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x84]
call fcn.10096ed0
add esp, 8
jmp 0x1003de2b
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10027ec0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
je 0x1004261e
mov esi, dword [ebp - 4]
cmp edx, 0x65
jne 0x10042917
mov dword [ebp - 0x14], 0
jmp 0x1003e4e2
cmp dword [esi + 4], 0
jne 0x10041d4f
mov edx, dword [esi + 8]
call fcn.10038b20
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [esi + 8]
inc eax
xor eax, dword [edi + 0xa0]
and eax, 3
xor dword [edi + 0xa0], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10028c40
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10028c50
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov al, byte [esi + 0xc]
mov byte [ebp - 0x11c], al
test al, al
jne 0x10041dde
mov eax, dword [ecx + 0x20]
and eax, 0x400
mov dword [ebp - 0x28], eax
jne 0x1003cfa1
mov eax, dword [ebp - 4]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 4]
push dword [ebp - 0x11c]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10030eb0
mov edx, eax
add esp, 4
mov dword [ebp - 0x14], edx
test edx, edx
je 0x1003cf9b
cmp dl, 6
jne 0x10042914
mov eax, dword [ebp - 4]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.10033c10
mov edx, dword [ebp - 0x14]
add esp, 0xc
jmp 0x10042914
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.10098c70
mov edx, eax
mov dword [ebp - 0x14], edx
test esi, esi
je 0x1003de30
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.10038d20
mov edx, dword [ebp - 0x14]
jmp 0x1003de30
xorps xmm0, xmm0
movq qword [ebp - 0xa0], xmm0
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 4]
movups xmmword [ebp - 0xc0], xmm0
movups xmmword [ebp - 0xb0], xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0xc0]
call fcn.10032f50
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.100394b0
add esp, 4
test eax, eax
je 0x10041eca
lea ecx, [edi + 0x84]
push ecx
mov ecx, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
call fcn.10098650
add esp, 8
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0xc0]
call fcn.10032790
mov edx, dword [ebp - 0x14]
jmp 0x1003de30
mov eax, dword [ebp - 4]
inc dword [ecx + 0xcc]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.10098a40
mov ecx, dword [ebp - 8]
mov edx, eax
mov esi, dword [ebp - 4]
add esp, 4
mov dword [ebp - 0x14], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x10040fec
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x2c], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x10042bd3
mov edi, dword [esi]
test edi, edi
je 0x10042bd3
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0xc]
add esp, 8
mov edx, esi
mov dword [ebp - 0x14], eax
mov ecx, ebx
call fcn.10038d20
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042969
mov eax, dword [ebp - 0x2c]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
call fcn.1003c7a0
add esp, 8
test eax, eax
je 0x10042bbe
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x10040752
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.1000f0e0
mov esi, eax
add esp, 8
test esi, esi
je 0x1003e99e
mov eax, dword [ebp - 4]
mov ecx, dword [edi + 0x2c]
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, eax
mov dword [esi + 4], ecx
mov ecx, edi
call fcn.1003ccc0
mov ecx, 1
mov edx, esi
push fcn.1000f130
push str.ValueList
mov word [eax + 8], cx
mov ecx, eax
call fcn.10032d80
jmp 0x1003e336
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
add ebx, 0x28
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov esi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
mov edi, dword [edi + 0x64]
movd xmm0, ebx
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x24], ebx
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x34], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x50], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + edx*8]
mov dword [ebp - 0x38], ecx
xor ecx, ecx
test esi, esi
jle 0x1004213b
cmp esi, 0x10
jb 0x10042126
cmp dword [0x10123b44], 2
jl 0x10042126
movaps xmm2, xmmword [0x1011a600]
mov eax, esi
and eax, 0x8000000f
jns 0x10042079
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____]
lea edx, [edi + 0x20]
mov ebx, esi
sub ebx, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
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, ebx
jl 0x10042090
cmp ecx, esi
jge 0x1004213b
mov ebx, dword [ebp - 0x24]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
nop
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x10042130
mov eax, dword [ebp - 4]
push edi
mov edi, dword [ebp - 0x2c]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x34]
push dword [ebp - 0x38]
mov eax, dword [edi + 0x20]
push esi
call eax
mov ebx, dword [ebp - 0xc]
add esp, 0x14
mov edx, dword [ebp - 0x50]
mov ecx, ebx
mov dword [ebp - 0x14], eax
call fcn.10038d20
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042969
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x94]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x10040752
jmp 0x1003e4dc
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x18]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x100421ba
mov ecx, esi
call fcn.10032ca0
jmp 0x1003e958
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov eax, dword [ebx]
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0x24], eax
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0xb8], esi
je 0x100421f8
mov ecx, esi
call fcn.10032ca0
mov edx, dword [ebp - 4]
mov eax, 0x4001
mov dword [esi], 0
jmp 0x1004220b
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 8], ax
lea eax, [ebp - 0xb8]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0x24]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [ebp - 0xc]
add esp, 0xc
mov edx, ebx
mov dword [ebp - 0x14], eax
mov ecx, edi
call fcn.10038d20
cmp dword [ebp - 0xa4], 0
jle 0x10042260
push esi
call fcn.100394b0
add esp, 4
push eax
push 0x10114c14
push edi
call fcn.10033c10
mov eax, dword [ebp - 0xa4]
add esp, 0xc
mov dword [ebp - 0x14], eax
movzx edx, byte [ebp - 0x3c]
mov ecx, esi
call fcn.10031fc0
mov ecx, esi
call fcn.10032ea0
test eax, eax
jne 0x10042c10
mov edx, dword [ebp - 0x14]
jmp 0x1003de30
mov ecx, dword [ebp - 4]
mov eax, dword [edi + 0x68]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x1003d3c8
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [ebp - 0xc]
add esp, 4
mov edx, esi
mov dword [ebp - 0x14], eax
call fcn.10038d20
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x10042914
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x10041247
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [ebp - 4], eax
jmp 0x1004124d
mov edi, dword [ecx + 0x20]
mov edx, 1
or dword [ecx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.10031fc0
mov edx, eax
mov dword [ebp - 0x14], edx
test edx, edx
jne 0x10042914
mov eax, dword [esi]
push dword [ebx + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x14], eax
test edi, edi
jne 0x1004235c
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [ebp - 0xc]
mov edx, esi
mov ecx, edi
call fcn.10038d20
and dword [edi + 0xa0], 0xfffffffc
mov edx, dword [ebp - 0x14]
jmp 0x1003de30
cmp byte [ecx + 0x57], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
jne 0x1003e9a4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x10042bd3
mov edx, dword [ebx]
test edx, edx
je 0x10042bd3
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 4]
mov esi, dword [esi + 8]
je 0x1003cf9e
mov al, byte [ecx + 0x5c]
mov ecx, dword [ebp - 0x18]
mov edi, dword [edi + 0x64]
mov byte [ebp - 0x41], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x100423dd
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x100423d2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x28]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov ecx, dword [ebp - 8]
add esp, 0x10
mov edi, dword [ebp - 0xc]
mov edx, ebx
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 0x41]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.10038d20
mov edx, dword [ebp - 0x14]
test edx, edx
jne 0x1004243b
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], edx
je 0x1004242e
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
add dword [edi + 0x30], 1
adc dword [edi + 0x34], 0
jmp 0x1003de30
cmp dl, 0x13
jne 0x1004242e
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x1004242e
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x10042bf4
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edx, dword [ebp - 4]
mov ecx, edi
call fcn.1003ccc0
mov ecx, dword [ebp - 4]
mov esi, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 8]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 4], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea esi, [eax + ecx*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x100424d8
mov ecx, esi
call fcn.1003cca0
mov esi, eax
jmp 0x100424e1
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 8]
xor edx, edx
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], edx
je 0x1004250d
mov ecx, edi
call fcn.10025c60
mov edx, eax
mov eax, dword [ebp - 4]
cmp edx, dword [eax + 0xc]
cmovb edx, dword [eax + 0xc]
mov ecx, edi
call fcn.10026e80
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [ebp - 0x24], edi
cmp dword [esi], edi
je 0x10042574
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 0xc], ebx
mov dword [esi], edi
js 0x10042574
mov edi, dword [ebp - 4]
lea edx, [esi + 0x1c]
mov ebx, dword [ebp - 0x18]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 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 0x10042558
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0xc]
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 0x100425f0
jle 0x100425c4
mov dl, 1
mov ecx, edi
call fcn.10033540
push eax
push 0x10114c14
push ebx
call fcn.10033c10
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
lea edx, [ebx + 0xec]
mov ecx, dword [ebp - 8]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.10036e30
mov edx, dword [ebp - 0x14]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x10042969
movzx eax, word [edi + 8]
test al, 0x12
je 0x1004266f
test al, 2
mov al, byte [ebp - 0x3c]
jne 0x10042609
mov byte [edi + 0xa], al
mov ecx, edi
jmp 0x10041ab8
cmp byte [edi + 0xa], al
je 0x10042617
mov dl, al
mov ecx, edi
call fcn.10012260
mov ecx, edi
jmp 0x10041ab8
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov eax, dword [ebp - 0x10]
mov ecx, edi
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov edi, dword [ebp - 0xc]
mov ecx, eax
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov ecx, dword [ebp - 4]
mov edx, ecx
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ecx, ebx
lea edi, [eax + eax*4]
call fcn.1003ccf0
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.100db9f0
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 0x10]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x1003e958
mov ecx, dword [ebp - 4]
mov edx, ecx
mov edi, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.1003ccf0
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.100db9f0
mov edi, eax
mov eax, dword [ebp - 0x18]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 0x10]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
shl eax, cl
mov ecx, dword [ebp - 8]
test eax, edx
jne 0x10042727
inc dword [edi + 0xcc]
jmp 0x1003e4e5
inc dword [edi + 0xc8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x70]
add esi, 0x14
jmp 0x1003cedb
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x100427e8
cmp byte [edi + 0x9d], 0
jne 0x100427e8
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x1004276c
mov eax, dword [edi + 0xd0]
test eax, eax
je 0x100427e8
test cl, 0x40
je 0x10042799
mov edx, eax
mov ecx, edi
call fcn.1003c2f0
mov esi, eax
mov eax, dword [ebp - 8]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.1000f130
add esp, 0xc
jmp 0x100427e8
mov ebx, dword [ebp - 8]
push eax
cmp dword [ebx + 0xc8], 1
jle 0x100427d4
push str.____s
push ebx
call fcn.10011ce0
mov ecx, dword [ebx + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push edi
push dword [ebx + 0xdc]
push 1
call ecx
push esi
push ebx
call fcn.1000f2a0
add esp, 0x18
jmp 0x100427e8
mov eax, dword [ebx + 0xd8]
push edi
push dword [ebx + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
cmp eax, dword [0x10120b6c]
jl 0x1004282f
cmp byte [ecx], 0xb3
je 0x1003cf9b
mov edx, 1
cmp dword [edi + 0x74], edx
jle 0x1004282d
mov eax, 0x14
nop
mov ecx, dword [edi + 0x70]
cmp byte [ecx + eax], 0x11
jne 0x10042821
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x74]
jl 0x10042810
mov ecx, dword [ebp - 4]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
inc dword [edi + 0xc4]
jmp 0x1003e4df
mov edi, dword [ebp - 0xc]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x9a], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x100428d0
movzx eax, word [edx + 2]
test ax, ax
je 0x1004289f
push dword [eax*4 + 0x1010dec8]
push str._s_constraint_failed
push edi
call fcn.10033c10
mov eax, dword [ebp - 4]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x100428b0
push eax
push dword [edi + 0x84]
push str._z:__s
push dword [ebp - 8]
call fcn.10011ce0
add esp, 0x10
mov dword [edi + 0x84], eax
jmp 0x100428b0
push dword [edx + 0x10]
push 0x10114c14
push edi
call fcn.10033c10
add esp, 0xc
push dword [edi + 0x84]
mov eax, dword [ebp - 4]
push dword [edi + 0xd0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.10011fc0
add esp, 0x14
mov ecx, edi
call fcn.100367d0
mov ebx, dword [ebp - 0xc]
mov edi, eax
mov ecx, dword [ebp - 8]
mov esi, dword [ebp - 4]
cmp edi, 5
jne 0x100428ef
mov dword [ebx + 0x28], eax
jmp 0x10042f22
cmp dword [ebx + 0x28], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x10042f22
mov ecx, 0x160dd
call fcn.100bc1b0
mov edx, eax
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 8]
cmp byte [edi + 0x57], 0
je 0x10042e32
mov edx, 7
jmp 0x10042e5d
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
add ecx, ecx
push dword [edx + ecx*8]
mov ecx, dword [ebp - 0x38]
push dword [ecx]
mov ecx, esi
push dword [eax*4 + 0x10121bc4]
call fcn.1003cde0
mov ebx, dword [ebp - 0xc]
push eax
push str.cannot_store__s_value_in__s_column__s._s
push ebx
call fcn.10033c10
mov edx, 0xc13
add esp, 0x18
mov dword [ebp - 0x14], edx
mov esi, dword [ebp - 4]
jmp 0x1004291a
mov ebx, dword [ebp - 0xc]
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
call fcn.10033c10
mov esi, dword [ebp - 4]
mov edx, 5
add esp, 8
mov dword [ebp - 0x14], edx
jmp 0x1004291a
mov ebx, dword [ebp - 0xc]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
call fcn.10033c10
mov esi, dword [ebp - 4]
mov edx, 5
add esp, 8
mov dword [ebp - 0x14], edx
jmp 0x1004291a
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov byte [edi + 0x55], 0
jmp 0x1004291d
mov esi, dword [ebp - 4]
mov eax, 0x66666667
mov ecx, esi
mov ebx, edi
sub ecx, dword [ebp - 0x4c]
mov edi, 5
imul ecx
mov ecx, dword [ebp - 8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
mov byte [ecx + 0x55], 0
mov dword [ebx + 0x28], edi
jmp 0x10042f22
mov edi, dword [ebp - 8]
and edx, 0x100000
or edx, 0
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
je 0x10042a12
mov edx, 8
mov dword [ebp - 0x14], edx
jmp 0x1004291d
mov edx, 0xb
mov dword [ebp - 0x14], edx
jmp 0x1004291d
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
cmp dl, 5
jne 0x1004291a
mov edi, dword [ebp - 0x14]
mov ecx, esi
sub ecx, dword [ebp - 0x4c]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 8]
sar edx, 3
mov eax, edx
mov dword [ebx + 0x28], edi
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
jmp 0x10042f22
mov ebx, dword [ebp - 0xc]
push dword [ebx + 0x84]
push esi
call fcn.1000f2a0
add esp, 8
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.1000f760
mov esi, dword [ebp - 4]
mov dword [ebx + 0x84], eax
mov eax, dword [ebp - 8]
mov edx, dword [esi + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x34]
je 0x10042a9c
mov ecx, dword [ebp - 8]
call fcn.1005dee0
mov eax, dword [ebx + 0xa0]
mov edx, 0x11
and eax, 0xfffffffd
mov dword [ebp - 0x14], edx
or eax, 1
mov dword [ebx + 0xa0], eax
jmp 0x1004291a
mov edx, 0x204
jmp 0x10042911
mov ecx, dword [edi]
call fcn.10026920
mov edx, dword [ebp - 0x14]
jmp 0x10042914
push str.index_corruption
mov edx, 0x16d60
mov ecx, 0x30b
call fcn.100bc180
add esp, 4
jmp 0x1004290f
push 0x1011a43c
push 0x16e2c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10011fc0
add esp, 0x14
mov edx, 0xb
jmp 0x10042911
mov ebx, dword [ebp - 0xc]
mov edx, 6
mov esi, dword [ebp - 4]
mov dword [ebp - 0x14], edx
mov byte [ebx + 0x9a], 2
jmp 0x1004291d
mov ecx, ebx
call fcn.1005df50
mov ecx, ebx
jmp 0x1003e9a4
push str.too_many_levels_of_trigger_recursion
push ebx
mov dword [ebp - 0x14], 1
call fcn.10033c10
mov esi, dword [ebp - 4]
add esp, 8
mov edx, 1
jmp 0x1004291a
push esi
call fcn.100394b0
mov ebx, dword [ebp - 0xc]
add esp, 4
push eax
push 0x10114c14
push ebx
call fcn.10033c10
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov esi, dword [ebp - 4]
jmp 0x1004291a
mov ebx, dword [ebp - 0xc]
mov ecx, str.out_of
cmp esi, 5
mov dword [ebp - 0x14], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
call fcn.10033c10
mov esi, dword [ebp - 4]
add esp, 0xc
mov edx, 1
jmp 0x1004291a
push dword [ebp - 0x2c]
mov eax, dword [edi + 0x1c]
call eax
mov ecx, dword [ebp - 8]
add esp, 4
mov edi, ebx
jmp 0x1003e9a4
mov edx, 6
jmp 0x10042911
or esi, 0xffffffff
mov dword [ebp - 0x68], 0xffffffff
mov dword [ebp - 0x64], esi
mov edx, 9
jmp 0x10042911
cmp ecx, 5
movzx eax, cl
mov esi, 2
cmove eax, esi
mov byte [edi + 0x9a], al
jmp 0x10042914
mov edi, dword [ebp - 0xc]
push str.string_or_blob_too_big
push edi
call fcn.10033c10
add esp, 8
mov edx, 0x12
jmp 0x10042911
mov eax, dword [edi + 0x20]
mov ebx, dword [ebp - 4]
add eax, 2
mov edx, dword [ebp - 0x18]
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [edi + 0x80], esi
xor edi, edi
cmp dword [ebx + 8], edi
jle 0x10042c8f
mov eax, 0x1000
test word [esi + 8], ax
je 0x10042c6a
mov ecx, esi
call fcn.100322e0
test eax, eax
jne 0x1003e99e
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
cmp ax, 2
jne 0x10042c83
mov ecx, esi
call fcn.10032290
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x10042c50
mov ecx, dword [ebp - 8]
cmp byte [ecx + 0x57], 0
jne 0x1003e9a1
test byte [ecx + 0x5e], 4
mov ebx, dword [ebp - 0xc]
je 0x10042cb8
mov eax, dword [ecx + 0xd8]
push 0
push ebx
push dword [ecx + 0xdc]
push 4
call eax
add esp, 0x10
mov esi, dword [ebp - 4]
mov eax, 0x66666667
mov ecx, esi
mov edi, 0x64
sub ecx, dword [ebp - 0x4c]
imul ecx
mov ecx, dword [ebp - 8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ebx + 0x24], eax
jmp 0x10042f22
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov ebx, dword [ecx + 4]
movzx eax, byte [edx + 0x55]
mov ecx, dword [ecx + 8]
cmp ebx, eax
je 0x10042dbf
test ecx, ecx
je 0x10042d11
mov esi, dword [ebp - 8]
mov edx, 0x204
mov ecx, esi
call fcn.100b96c0
mov al, 1
jmp 0x10042d54
test ebx, ebx
je 0x10042d36
cmp dword [edx + 0xc4], 0
jle 0x10042d36
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.10033c10
add esp, 8
mov edx, 5
jmp 0x10042911
mov edx, 1
mov ecx, edi
call fcn.10036770
mov edi, eax
test edi, edi
jne 0x10042f19
mov esi, dword [ebp - 8]
mov al, bl
mov edi, dword [ebp - 0xc]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.100367d0
cmp eax, 5
jne 0x10042d99
mov esi, dword [ebp - 4]
mov eax, 0x66666667
mov ecx, esi
sub ecx, dword [ebp - 0x4c]
imul ecx
mov ecx, dword [ebp - 8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, bl
mov edi, 5
mov ebx, dword [ebp - 0xc]
mov byte [ecx + 0x55], al
mov dword [ebx + 0x28], edi
jmp 0x10042f22
mov ecx, esi
call fcn.100b9070
mov ebx, dword [ebp - 0xc]
mov edi, 0x65
mov ecx, dword [ebp - 8]
mov eax, 1
mov esi, dword [ebp - 4]
cmp dword [ebx + 0x28], 0
cmovne edi, eax
jmp 0x10042f22
test ebx, ebx
jne 0x10042dda
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.10033c10
add esp, 8
lea edx, [ebx + 1]
jmp 0x10042911
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.10033c10
add esp, 8
mov edx, 1
jmp 0x10042911
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x10], eax
mov edx, 9
jmp 0x10042911
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x10], eax
jmp 0x1003e9a4
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
jmp 0x1004291d
cmp edx, 0x210a
jne 0x10042e60
push 0x1011a43c
push 0x176b9
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10011fc0
add esp, 0x14
mov edx, 0xb
mov dword [ebp - 0x14], edx
cmp dword [ebx + 0x84], 0
jne 0x10042e87
cmp edx, 0xc0a
je 0x10042e87
mov ecx, edx
call fcn.100b9800
push eax
push 0x10114c14
push ebx
call fcn.10033c10
add esp, 0xc
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x14]
mov edx, ebx
mov ecx, dword [ebp - 8]
mov dword [edi + 0x28], ebx
call fcn.100128f0
push dword [edi + 0x84]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [ebp - 0x4c]
push dword [edi + 0xd0]
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 ebx
call fcn.10011fc0
add esp, 0x14
mov ecx, edi
call fcn.100367d0
cmp ebx, 0xc0a
jne 0x10042eff
push dword [ebp - 8]
call fcn.1000f8a0
add esp, 4
mov ecx, dword [ebp - 8]
mov al, byte [ebp - 0x59]
mov edi, 1
test al, al
je 0x10042f1f
movzx edx, al
dec edx
call fcn.1005dee0
jmp 0x10042f1c
cmp ebx, 0xb
jne 0x10042ee5
mov ecx, dword [ebp - 8]
cmp byte [ecx + 0x55], 0
jne 0x10042ee8
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x10042ee8
mov esi, dword [ebp - 4]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x68]
jb 0x10042f7a
mov edx, dword [ebp - 0x64]
ja 0x10042f34
cmp dword [ebp - 0x10], edx
jb 0x10042f7a
mov eax, dword [ecx + 0x170]
test eax, eax
je 0x10042f7a
add edx, dword [ecx + 0x178]
push dword [ecx + 0x174]
adc dword [ebp - 0x68], 0
mov dword [ebp - 0x64], edx
call eax
mov ecx, dword [ebp - 8]
add esp, 4
test eax, eax
je 0x10042f22
mov edx, 9
mov dword [ebp - 0x64], 0xffffffff
mov dword [ebp - 0x68], 0xffffffff
mov edi, ecx
mov dword [ebp - 0x14], edx
jmp 0x1004291d
mov ecx, dword [ebp - 0x10]
add dword [ebx + 0xbc], ecx
cmp dword [ebx + 0xa8], 0
je 0x10042f93
mov ecx, ebx
call fcn.10035050
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret