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

Disassembly:
sub esp, 0x1ec
mov eax, dword [0x10140004]
xor eax, esp
mov dword [esp + 0x1e4], eax
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x20], 0
xorps xmm0, xmm0
mov dword [esp + 0x14], esi
push edi
mov dword [esp + 0x60], 0
mov eax, dword [esi + 0x68]
mov ebp, dword [esi]
mov ecx, dword [esi + 0x58]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], eax
xor al, al
cmp dword [esi + 0xa0], 0
mov byte [esp + 0x67], al
mov al, byte [ebp + 0x54]
mov dword [esp + 0x20], ebp
mov byte [esp + 0x3c], al
movlpd qword [esp + 0x90], xmm0
mov dword [esp + 0x1c], ecx
je 0x10048023
mov ecx, esi
call fcn.100408b0
mov ecx, dword [esp + 0x1c]
cmp dword [ebp + 0x174], 0
je 0x10048042
mov edi, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [esi + 0xb4]
div edi
sub edi, edx
xor eax, eax
jmp 0x10048048
or edi, 0xffffffff
or eax, 0xffffffff
cmp dword [esi + 0x24], 7
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], edi
je 0x1004e8ab
mov dword [esi + 0x24], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
cmp dword [ebp + 0x128], 0
mov dword [ebp + 0x1c8], 0
jne 0x1004e86e
mov eax, dword [esi + 0x20]
xorps xmm0, xmm0
mov edx, dword [esp + 0x40]
movsd qword [esp + 0x148], xmm0
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
add eax, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
adc edx, 0
mov dword [esp + 0x80], edx
mov dl, byte [edi]
movzx ebx, dl
cmp ebx, 0xb5
ja case.0x100480d6.89
jmp dword [ebx*4 + 0x1004ea70]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ecx + esi*8 + 0x10], ax
mov ecx, edx
sub ecx, dword [esp + 0x40]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
jmp 0x1004ddfa
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x1004817e
mov eax, dword [ebx + eax*8]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
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 + 0x10], ax
cmp dword [edi + 8], 0
jne 0x1004dc86
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x40]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [ebx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ebx + eax*4]
xor eax, eax
mov word [edx + ecx*8 + 0x10], ax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
mov eax, dword [edx + 4]
sub edx, edi
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 0x10], 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 dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 1
je 0x10048182
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x1004e37f
cmp dword [edi + 4], 0
jne 0x1004e37f
mov eax, dword [edx + 4]
mov ecx, dword [esi + 0x2c]
dec dword [esi + 0xd8]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x28]
add dword [ebp + 0x70], eax
mov dword [ebp + 0x6c], ecx
adc dword [ebp + 0x74], ecx
mov ecx, edx
mov dword [ebp + 0x68], eax
call fcn.10041590
mov ebx, dword [esi + 0x68]
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
cmp dword [eax + 8], 4
jne 0x1004829d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebx + eax*4 + 8]
dec ecx
mov eax, dword [esi + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea edi, [ebx + eax*4]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x1004830b
call fcn.10047eb0
mov edi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x10048362
mov ecx, edx
call fcn.10047eb0
mov edx, eax
jmp 0x1004836b
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x100483b9
call fcn.10047eb0
mov ecx, eax
mov edi, dword [esp + 0x10]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x14]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10048412
mov ecx, esi
call fcn.10047eb0
mov esi, eax
jmp 0x1004841b
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x10048426
xor ecx, ecx
jmp 0x1004843f
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10048430
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [esp + 0x3c], 1
mov dword [ebx + 4], ecx
je 0x100484d6
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.1003ea60
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x1004e5c1
test byte [esi + 0x10], 2
mov al, byte [esp + 0x3c]
jne 0x1004847c
mov byte [esi + 0x12], al
jmp 0x10048492
cmp byte [esi + 0x12], al
je 0x10048492
mov dl, al
mov ecx, esi
call fcn.100203f0
test eax, eax
jne 0x1004e8c6
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
or word [esi + 0x10], ax
mov ebp, dword [esp + 0x20]
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xfa
jne 0x100484c2
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x100484c2
mov ecx, ebp
call fcn.1001ce30
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov esi, dword [esp + 0x18]
cmp ecx, dword [ebp + 0x78]
jg 0x1004e5c5
mov byte [ebx], 0x49
jmp 0x100484ec
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x1004850a
call fcn.10047eb0
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x3c]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1004e163
mov ebx, dword [esp + 0x1c]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x1004e12d
cmp dword [ebx + esi*8 + 4], edx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jne 0x1004e135
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, ebx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x100485a4
mov ecx, edx
call fcn.10047eb0
mov edx, eax
jmp 0x100485ad
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
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 0x1004e12d
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x100485f9
lea ecx, [esi - 0x10]
call fcn.1003e0f0
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x100485e3
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
mov ebx, 0xffc1
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 0x10]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 0x10], ax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10048682
mov ecx, esi
call fcn.10047eb0
mov esi, eax
jmp 0x1004868b
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x100486d7
mov edx, eax
mov ecx, esi
call fcn.1003e770
mov ecx, esi
call fcn.1003deb0
test eax, eax
jne 0x1004e8ca
mov al, byte [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.1003ea60
mov al, byte [esp + 0x4c]
add esp, 0x10
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.1003e950
test eax, eax
jne 0x1004e5c5
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10048753
mov ecx, esi
call fcn.1003e0f0
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x1c]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x100487c1
cmp dword [esi + 0x18], 0
je 0x100487c8
mov ecx, esi
call fcn.1003e130
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 + 0x10], ax
mov eax, 0x4000
mov dword [edi + 0x18], 0
test word [esi + 0x10], ax
je 0x1004880a
mov ecx, esi
call fcn.1003de30
test eax, eax
jne 0x1004e8ca
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x100487b0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.1003e9a0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x1004887b
mov ecx, esi
call fcn.1003de30
test eax, eax
jne 0x1004e8ca
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x10048899
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 2
je 0x10048899
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x1004e12d
add esi, 0x28
add edi, 0x28
jmp 0x10048850
mov edx, dword [esp + 0x10]
push 0x4000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e9a0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + 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, 0x9000
test word [ecx + 0x10], bx
je 0x1004893c
push eax
push edx
call fcn.1003e7c0
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x14]
mov dword [ecx], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
xor edx, edx
mov ecx, esi
call fcn.10041fa0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebp + 0x10]
mov al, byte [edi + 0x10]
or al, cl
mov dword [esp + 0x70], ecx
test al, 1
je 0x10048a26
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x100489fa
mov ecx, esi
call fcn.1003e0f0
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebp, dword [esp + 0x20]
mov eax, 1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
test cl, 0x12
jne 0x10048a5a
mov bl, byte [esp + 0x3c]
mov ecx, ebp
push 0
mov dl, bl
call fcn.1003df10
add esp, 4
test eax, eax
jne 0x1004e8c6
mov ax, word [ebp + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x70], ecx
jmp 0x10048a88
test ecx, 0x400
je 0x10048a84
mov ecx, ebp
call fcn.1003deb0
test eax, eax
jne 0x1004e8c6
mov ax, word [ebp + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x70], eax
mov bl, byte [esp + 0x3c]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x48], eax
test al, 0x12
jne 0x10048aa4
push 0
mov dl, bl
mov ecx, edi
call fcn.1003df10
add esp, 4
jmp 0x10048ab2
test eax, 0x400
je 0x10048acd
mov ecx, edi
call fcn.1003deb0
test eax, eax
jne 0x1004e8c6
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x48], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [edi + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x38], edx
jg 0x1004e5c1
jl 0x10048af8
cmp ebx, eax
ja 0x1004e5c1
xor eax, eax
lea edx, [ecx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.1003dc10
add esp, 4
test eax, eax
jne 0x1004e8c6
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x10048b46
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.10107750
mov eax, dword [esp + 0x54]
add esp, 0xc
mov word [edi + 0x10], ax
push dword [ebp + 0xc]
mov eax, dword [esi + 8]
push dword [ebp + 8]
add eax, dword [edi + 0xc]
push eax
call fcn.10107750
mov cl, byte [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x70]
mov word [ebp + 0x10], ax
cmp cl, 1
jbe 0x10048b77
mov eax, dword [esp + 0x38]
and ebx, 0xfffffffe
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 8]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [ebx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov eax, dword [esp + 0x14]
mov byte [esi + 0x12], cl
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xc], ebx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 0x10]
lea eax, [ecx + eax*8]
mov dword [esp + 0x34], eax
mov ebx, edx
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
movzx esi, word [ecx + eax*8 + 0x10]
lea ebp, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x38], ebp
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x48], eax
mov al, cl
and al, bl
test al, 4
jne 0x10048c46
or cl, bl
test cl, 1
jne 0x10048ed3
and edx, 0x2d
je 0x10048c1b
mov eax, esi
mov ebx, edx
mov esi, dword [esp + 0x34]
jmp 0x10048c2d
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.10047dc0
movzx ebx, ax
movzx eax, word [ebp + 0x10]
and eax, 0x2d
jne 0x10048c3c
mov ecx, ebp
call fcn.10047dc0
movzx eax, ax
and al, bl
test al, 4
je 0x10048d66
mov eax, dword [esp + 0x34]
mov ebx, dword [ebp]
mov edi, dword [ebp + 4]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edi
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x10048c76
jmp dword [eax*4 + 0x1004ed48]
test esi, esi
jl 0x10048cb0
jg 0x10048c87
test edx, edx
jb 0x10048cb0
test edi, edi
jl 0x10048ce6
jg 0x10048c91
test ebx, ebx
je 0x10048ce6
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, ebx
sbb eax, edi
cmp eax, esi
jg 0x10048ce6
jl 0x10048d62
cmp ecx, edx
jae 0x10048ce6
jmp 0x10048d62
test edi, edi
jg 0x10048ce6
jl 0x10048cba
test ebx, ebx
jae 0x10048ce6
mov eax, 1
mov ecx, 0x80000000
sub eax, ebx
mov ebp, edx
mov dword [esp + 0x28], eax
mov eax, esi
sbb ecx, edi
add ebp, 1
adc eax, 0
cmp ecx, eax
jg 0x10048d5e
jl 0x10048ce6
cmp dword [esp + 0x28], ebp
ja 0x10048d5e
add ebx, edx
mov dword [esp + 0x88], ebx
adc edi, esi
mov dword [esp + 0x8c], edi
jmp 0x10048e82
push esi
push edx
lea ecx, [esp + 0x90]
call fcn.10021f00
add esp, 8
test eax, eax
jne 0x10048d62
jmp 0x10048e82
push esi
push edx
lea ecx, [esp + 0x90]
call fcn.10021f50
add esp, 8
test eax, eax
jne 0x10048d62
jmp 0x10048e82
mov eax, edx
or eax, esi
je 0x10048ed3
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10048d50
test ebx, ebx
jne 0x10048d50
cmp edi, 0x80000000
je 0x10048d62
push esi
push edx
push edi
push ebx
call fcn.10116fb0
jmp 0x10048e74
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ecx, esi
call fcn.1003e310
mov ecx, ebp
movsd qword [esp + 0x28], xmm0
call fcn.1003e310
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x10048d89
jmp dword [eax*4 + 0x1004ed58]
addsd xmm0, qword [esp + 0x28]
jmp 0x10048e11
subsd xmm0, qword [esp + 0x28]
jmp 0x10048e11
mulsd xmm0, qword [esp + 0x28]
jmp 0x10048e11
movsd xmm1, qword [esp + 0x28]
ucomisd xmm1, qword [esp + 0x148]
lahf
test ah, 0x44
jnp 0x10048ed3
divsd xmm0, xmm1
jmp 0x10048e11
mov ecx, esi
call fcn.1003e280
mov ecx, ebp
mov esi, eax
mov edi, edx
call fcn.1003e280
mov ecx, esi
mov dword [esp + 0x88], eax
or ecx, edi
mov dword [esp + 0x8c], edx
je 0x10048ed3
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x10048e01
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.10117060
mov ecx, eax
call fcn.101176a0
movsd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x10048e3b
mov eax, dword [esp + 0x28]
and ecx, 0xfffff
or eax, ecx
jne 0x10048ed3
mov edx, dword [esp + 0x48]
mov ecx, 0xf248
mov ax, word [edx + 0x10]
and ax, cx
movsd qword [edx], xmm0
or ax, 8
jmp 0x10048ea9
mov eax, edx
or eax, esi
je 0x10048ed3
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10048e6b
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ebx
call fcn.10117060
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
or ax, 4
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [esp + 0x48]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x10048ee9
mov ecx, eax
jmp 0x100489d2
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x100489d7
mov eax, dword [edi + 4]
test eax, eax
je 0x10048182
lea eax, [eax + eax*4]
mov edx, 0x9000
test word [ecx + eax*8 + 0x10], dx
lea eax, [ecx + eax*8]
je 0x10048f39
push 0
push 0
mov ecx, eax
call fcn.1003e7c0
mov ecx, dword [esp + 0x24]
add esp, 8
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [edx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
test al, 1
je 0x10048fe8
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x10048fc0
mov ecx, ebp
call fcn.1003e0f0
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x1c]
mov word [ebp + 0x10], ax
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
call fcn.1003e280
mov ebx, eax
mov esi, edx
mov ecx, edi
mov dword [esp + 0x110], ebx
mov dword [esp + 0x114], esi
call fcn.1003e280
mov edi, eax
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x10049019
and ebx, edi
and esi, edx
jmp 0x1004907f
cmp cl, 0x67
jne 0x10049024
or ebx, edi
or esi, edx
jmp 0x1004907f
mov eax, edi
or eax, edx
je 0x1004907f
test edx, edx
jg 0x10049058
jl 0x10049034
test edi, edi
jae 0x1004904d
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10049058
jg 0x10049046
cmp edi, 0xffffffc0
jbe 0x10049058
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x1004909e
jg 0x10049058
cmp edi, 0x40
jb 0x1004909e
test esi, esi
jg 0x1004906e
jl 0x10049062
test ebx, ebx
jae 0x1004906e
cmp cl, 0x68
je 0x1004906e
or ebx, 0xffffffff
or esi, ebx
jmp 0x1004907f
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ax, word [ebp + 0x10]
mov ecx, 0xf244
and ax, cx
mov dword [ebp], ebx
or ax, 4
mov dword [ebp + 4], esi
mov word [ebp + 0x10], ax
jmp 0x100489d7
movq xmm1, qword [esp + 0x110]
movd xmm0, edi
cmp cl, 0x68
jne 0x100490bc
psllq xmm1, xmm0
movq qword [esp + 0x28], xmm1
jmp 0x10049077
psrlq xmm1, xmm0
movq qword [esp + 0x28], xmm1
test esi, esi
jg 0x10049077
jl 0x100490d0
test ebx, ebx
jae 0x10049077
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.10117240
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
or ebx, eax
or esi, edx
jmp 0x1004907f
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003e280
mov dword [esi], eax
mov ecx, 0xf244
mov ax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x100489db
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x10049174
push dword [esp + 0x3c]
mov dl, 0x43
mov ecx, esi
call fcn.10047c50
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x10049174
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
jne 0x1004b656
mov edx, 0x14
jmp 0x1004aa1c
mov eax, dword [esp + 0x14]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x24
lea esi, [ecx + eax*8]
je 0x10049e0e
mov ecx, esi
call fcn.1003e310
mov ax, word [esi + 0x10]
mov ecx, 0xf248
and ax, cx
movsd qword [esi], xmm0
mov ecx, dword [esp + 0x1c]
or ax, 8
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x10049217
mov ecx, esi
call fcn.1003deb0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x3c]
mov dl, byte [eax + 8]
call fcn.1003e550
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
movzx ecx, word [esi + 0x10]
mov edx, ecx
mov dword [esp + 0x28], eax
and edx, eax
mov dword [esp + 0x34], ecx
test dl, 4
je 0x1004931a
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x100492aa
jg 0x10049286
cmp ebp, edx
jbe 0x100492a0
cmp byte [ebx + 0x1012ca30], 0
jne 0x1004b652
mov dword [esp + 0x60], 1
jmp 0x100489d7
cmp ecx, eax
jg 0x100492e2
jl 0x100492aa
cmp ebp, edx
jae 0x100492e2
cmp byte [ebx + 0x1012ca24], 0
mov esi, dword [esp + 0x18]
jne 0x10049b9d
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], 0xffffffff
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
cmp byte [ebx + 0x1012ca2a], 0
mov esi, dword [esp + 0x18]
jne 0x10049b9d
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], 0
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x28]
mov eax, ecx
or eax, ebx
test al, 1
je 0x1004939b
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x1004936c
test dl, 1
je 0x10049359
test ecx, 0x100
jne 0x10049359
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 0
movzx eax, byte [eax]
lea eax, [eax + 0x1012ca2a]
jmp 0x100494b4
mov eax, ecx
not eax
and eax, 1
lea edx, [eax*2 - 1]
jmp 0x1004948d
mov esi, dword [esp + 0x18]
test al, 0x10
jne 0x10049b9d
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x60], 1
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x100493e5
test al, 2
je 0x10049474
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x100493cb
xor edx, edx
mov ecx, edi
call fcn.10047a90
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x34], ecx
and cl, 0x2e
cmp cl, 2
jne 0x10049474
xor edx, edx
mov ecx, esi
call fcn.10047a90
jmp 0x10049474
cmp dl, 0x42
jne 0x10049474
test al, 2
je 0x10049474
test bl, 2
jne 0x1004943c
test bl, 0x2c
je 0x1004943c
mov dl, byte [esp + 0x3c]
mov ecx, edi
push 1
call fcn.1003df10
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, bx
add esp, 4
and ax, cx
xor ax, word [edi + 0x10]
movzx ebx, ax
cmp edi, esi
jne 0x10049438
mov eax, ebx
or eax, 2
movzx ecx, ax
mov dword [esp + 0x34], ecx
jmp 0x1004943c
mov ecx, dword [esp + 0x34]
test cl, 2
jne 0x10049474
test cl, 0x2c
je 0x10049474
mov dl, byte [esp + 0x3c]
mov ecx, esi
push 1
call fcn.1003df10
mov ecx, dword [esp + 0x38]
add esp, 4
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x10]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.10043120
mov ecx, dword [esp + 0x38]
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], edx
movzx eax, byte [eax]
test edx, edx
jns 0x100494a4
lea eax, [eax + 0x1012ca24]
jmp 0x100494b4
jne 0x100494ae
lea eax, [eax + 0x1012ca2a]
jmp 0x100494b4
lea eax, [eax + 0x1012ca30]
mov al, byte [eax]
mov word [esi + 0x10], cx
mov esi, dword [esp + 0x18]
mov word [edi + 0x10], bx
test al, al
jne 0x1004dc86
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
cmp dword [esp + 0x60], 0
je 0x10049b9d
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
jne 0x1004950d
xor eax, eax
jmp 0x10049513
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x70], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ebx
test ecx, ecx
jle 0x10048608
lea ebx, [edx + 0x14]
test eax, eax
je 0x1004954d
mov edi, dword [eax + esi*4]
jmp 0x1004954f
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x1c]
push dword [ebx]
movzx ebp, byte [esi + eax]
mov eax, dword [esp + 0x48]
and ebp, 1
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x74]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10043120
mov edx, eax
add esp, 4
mov dword [esp + 0x60], edx
test edx, edx
jne 0x100495a0
mov eax, dword [esp + 0x38]
inc esi
mov edx, dword [esp + 0x48]
add ebx, 4
cmp esi, dword [esp + 0x28]
jl 0x10049544
jmp 0x100489d7
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x100495d7
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x1c]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x100495d1
mov eax, dword [esp + 0x44]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
je 0x100495d7
neg edx
mov dword [esp + 0x60], edx
mov edi, dword [esp + 0x10]
test ebp, ebp
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
je 0x1004e139
mov ecx, dword [esp + 0x1c]
neg edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x10049637
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
jne 0x1004965c
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov edi, 2
mov edx, edi
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e340
mov ecx, dword [ebx + 8]
mov edx, edi
mov ebx, dword [esp + 0x1c]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.1003e340
mov ecx, dword [esp + 0x10]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x100496c3
mov dl, byte [esi + eax + 0x1013060c]
jmp 0x100496ca
mov dl, byte [esi + eax + 0x10131460]
mov eax, dword [ecx + 0xc]
lea esi, [eax + eax*4]
movzx ecx, word [ebx + esi*8 + 0x10]
cmp dl, 2
jne 0x100496ed
and ecx, 0xf241
or ecx, 1
mov word [ebx + esi*8 + 0x10], cx
jmp 0x100489db
movzx eax, dl
and ecx, 0xf244
cdq
or ecx, 4
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov word [ebx + esi*8 + 0x10], cx
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e340
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x10049765
push edx
push eax
call fcn.1003e7c0
mov edi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 1
lea ecx, [ecx + eax*8]
mov eax, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jne 0x100497f1
xor edx, edx
call fcn.1003e340
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x100497da
push 0
push eax
mov ecx, esi
call fcn.1003e7c0
add esp, 8
jmp 0x100489db
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
jmp 0x100489db
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10049808
mov ecx, esi
call fcn.1003e0f0
jmp 0x100489db
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10049842
mov ecx, esi
call fcn.1003e0f0
jmp 0x1004984b
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x1004e12d
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.1003e280
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x100489db
mov edi, dword [esi + 0xd0]
test edi, edi
je 0x100498e1
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esi + 0x68]
mov edi, dword [edi + 0x14]
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 0x1004b652
bts edx, ecx
mov byte [esi + edi], dl
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [esi + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x10049b9d
mov ecx, dword [esp + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e340
test eax, eax
jne 0x1004dc86
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
xor edx, edx
cmp dword [edi + 0xc], edx
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e340
test eax, eax
je 0x1004dc86
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 1
jne 0x10049b9d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x100499eb
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x100499e2
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x100499d9
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x10049a11
movzx eax, byte [eax + 0x1012c324]
jmp 0x10049a14
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x10049a08
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x101306d0]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov edi, dword [esp + 0x10]
test word [edi + 2], ax
jne 0x10049b9d
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x10049ace
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x10049ace
mov eax, edx
mov ecx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], cx
lea eax, [ebx + eax*8]
je 0x10049a9d
push 0
push 0
mov ecx, eax
call fcn.1003e7c0
mov edi, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [esp + 0x10]
mov ecx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], cx
lea eax, [ebx + eax*8]
je 0x10049b09
mov ecx, eax
call fcn.1003e0f0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov ecx, 1
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 1
je 0x10049b9d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1004817e
cmp byte [eax + 2], 0
mov ecx, dword [esp + 0x1c]
je 0x10048182
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x10049b94
mov ecx, eax
call fcn.1003e0f0
mov ebp, dword [esp + 0x10]
jmp 0x1004b65a
mov ecx, 1
mov word [eax + 0x10], cx
mov ebp, dword [esp + 0x10]
jmp 0x1004b65a
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
nop
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x48]
mov dword [esp + 0x54], ebp
cmp eax, dword [ecx + 0x1c]
je 0x10049c19
cmp byte [esi + 2], 0
jne 0x10049c70
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x10049bf9
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10049c40
mov eax, dword [eax + ebx*4 + 4]
test eax, eax
je 0x10049c40
mov esi, dword [esi + 0x28]
lea ebx, [eax - 1]
jmp 0x10049bba
cmp byte [edi], 0
je 0x10049c55
mov ecx, esi
call fcn.10042920
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x18]
jmp 0x10049bc0
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x10049d08
mov ecx, esi
call fcn.10042920
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x18]
jmp 0x10049bc0
mov ecx, esi
call fcn.100428b0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, edi
call fcn.10034ef0
mov eax, dword [edi + 0x2c]
lea ebx, [esi + 0x54]
mov edx, ebx
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.10035530
jmp 0x10049c9b
cmp byte [esi], 3
jne 0x10049dda
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x10049dda
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea ebx, [esi + 0x54]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [ebx], eax
mov dword [esi + 0x50], eax
mov eax, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [ebp], eax
cmp eax, 0x80
jae 0x10049cbf
mov eax, 1
jmp 0x10049ccc
mov ecx, dword [esi + 0x4c]
mov edx, ebp
call fcn.10021cf0
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov eax, dword [ebp]
cmp dword [ebx], eax
jae 0x10049dd3
mov dword [esi + 0x4c], 0
mov dword [ebx], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x10049f20
cmp eax, dword [esi + 0x50]
ja 0x10049f20
mov ebx, dword [esp + 0x34]
movzx ecx, word [esi + 0x3e]
cmp ecx, ebx
ja 0x10049f81
mov edx, dword [esi + 0x34]
mov eax, dword [ebp]
cmp edx, eax
jae 0x10049f41
mov edi, dword [esi + 0x4c]
mov dword [esp + 0x50], edi
test edi, edi
jne 0x10049d82
xorps xmm0, xmm0
lea eax, [esp + 0x120]
movups xmmword [esp + 0x120], xmm0
push eax
movups xmmword [esp + 0x134], xmm0
movq qword [esp + 0x144], xmm0
mov edx, dword [ebp]
mov ecx, dword [esi + 0x2c]
call fcn.1003ee80
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x128]
movzx ecx, word [esi + 0x3e]
mov eax, dword [ebp]
mov edx, dword [esi + 0x34]
mov dword [esp + 0x50], edi
movzx ecx, cx
add edi, edx
add eax, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], 0
mov ebx, dword [ebp + ecx*4]
lea ebp, [ecx + 0x16]
mov dword [esp + 0x48], eax
lea ebp, [esi + ebp*4]
movzx eax, byte [edi]
mov dword [esp + 0x5c], eax
mov dword [ebp], eax
mov eax, dword [esp + 0x5c]
cmp eax, 0x80
jae 0x10049e25
movzx eax, al
inc edi
movzx eax, byte [eax + 0x1012c408]
cdq
add ebx, eax
mov eax, dword [esp + 0x44]
adc eax, edx
jmp 0x10049e62
mov edi, dword [esi + 0x4c]
xor ecx, ecx
jmp 0x10049d7b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov edx, 0x9000
test word [eax + 0x10], dx
je 0x10049dfd
mov ecx, eax
jmp 0x100489d2
mov ebp, dword [esp + 0x20]
mov edx, 1
mov word [eax + 0x10], dx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
lea edx, [esp + 0x5c]
mov ecx, edi
call fcn.10021cf0
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x5c]
mov dword [ebp], eax
mov eax, dword [esp + 0x5c]
cmp eax, 0x80
jb 0x10049e4e
add eax, 0xfffffff4
shr eax, 1
jmp 0x10049e55
movzx eax, byte [eax + 0x1012c408]
mov ecx, dword [esp + 0x38]
add ebx, eax
mov eax, dword [esp + 0x44]
adc eax, 0
mov edx, dword [esp + 0x54]
inc ecx
add ebp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ecx
mov dword [edx + ecx*4], ebx
mov edx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x34]
ja 0x10049e89
cmp edi, edx
jb 0x10049da5
jmp 0x10049e8d
cmp edi, edx
jb 0x10049edc
cmp edi, edx
ja 0x10049ee7
cmp ebx, dword [esi + 0x50]
jne 0x10049ee7
test eax, eax
jne 0x10049ee7
mov ebp, dword [esp + 0x54]
sub edi, dword [esp + 0x50]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], cx
mov dword [esi + 0x34], edi
jne 0x10049ed2
test dword [esp + 0x130], 0x9000
jne 0x10049ec6
cmp dword [esp + 0x138], 0
je 0x10049ed2
lea ecx, [esp + 0x120]
call fcn.1003e130
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x34]
jmp 0x10049f47
test eax, eax
jb 0x10049e9a
ja 0x10049ee7
cmp ebx, dword [esi + 0x50]
jbe 0x10049e9a
mov ebp, dword [esp + 0x54]
cmp dword [ebp], 0
jne 0x10049ef7
xor ecx, ecx
mov edi, edx
jmp 0x10049e9e
cmp dword [esi + 0x4c], 0
jne 0x10049f20
test dword [esp + 0x130], 0x9000
jne 0x10049f14
cmp dword [esp + 0x138], 0
je 0x10049f20
lea ecx, [esp + 0x120]
call fcn.1003e130
mov ebx, dword [esp + 0x40]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x1004e454
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [ebx + eax*4]
mov dword [esp + 0x10], ebp
jmp 0x100489d7
xor ecx, ecx
mov dword [esp + 0x5c], ecx
movzx eax, word [esi + 0x3e]
cmp eax, ebx
ja 0x10049f89
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
cmp byte [ebp + 1], 0xf6
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jne 0x10049deb
mov edx, dword [ebp + 0x10]
mov ecx, eax
push 0x2000
call fcn.1003e9a0
add esp, 4
jmp 0x100489d7
mov ecx, dword [esi + ebx*4 + 0x58]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x10049fb4
mov ecx, edi
call fcn.1003e0f0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ebx*4 + 4]
jb 0x1004a061
mov eax, dword [esp + 0x34]
mov ebx, dword [esi + 0x4c]
add ebx, dword [ebp + eax*4]
cmp ecx, 0xc
jae 0x10049fe3
mov edx, ecx
mov ecx, ebx
push edi
call fcn.10042980
add esp, 4
jmp 0x100489d7
mov al, byte [esp + 0x3c]
lea esi, [ecx - 0xc]
mov ebp, dword [esp + 0x20]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x1004a029
cmp esi, dword [ebp + 0x78]
jg 0x1004e5c1
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.1003dc10
add esp, 4
test eax, eax
jne 0x1004e8ca
mov eax, dword [edi + 8]
jmp 0x1004a02f
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebx
push eax
call fcn.10107750
mov eax, dword [edi + 8]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x5c]
and eax, 1
mov ax, word [eax*2 + 0x10128d88]
mov word [edi + 0x10], ax
jmp 0x100489db
mov al, byte [esp + 0x3c]
mov byte [edi + 0x12], al
movzx eax, word [edx + 2]
mov edx, dword [esp + 0x5c]
test al, 0xc0
je 0x1004a082
cmp edx, 0xc
jb 0x1004a07e
test dl, 1
je 0x1004a09c
test al, al
js 0x1004a09c
cmp edx, 0x80
jb 0x1004a091
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x1004a098
movzx eax, byte [edx + 0x1012c408]
test eax, eax
jne 0x1004a0af
push edi
mov ecx, 0x1012bd68
call fcn.10042980
add esp, 4
jmp 0x100489d7
mov ecx, dword [esp + 0x20]
cmp eax, dword [ecx + 0x78]
jg 0x1004e5c1
mov edx, dword [ebp + ebx*4]
mov ecx, dword [esi + 0x2c]
push edi
push eax
call fcn.1003eda0
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edx, dword [esp + 0x5c]
mov ecx, dword [edi + 8]
push edi
call fcn.10042980
mov eax, 0xbfff
add esp, 4
and word [edi + 0x10], ax
jmp 0x100489d7
mov eax, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], edi
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
mov edx, dword [ecx + 4]
lea esi, [ebx + eax*8]
xor eax, eax
mov dword [esp + 0x48], edx
cmp ax, word [ecx + 0x22]
jge 0x10048608
lea ebp, [edx + 8]
movzx eax, word [ebp + 6]
test al, 0x60
je 0x1004a14f
test al, 0x20
jne 0x1004a201
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x1004a1fe
push dword [esp + 0x3c]
mov dl, byte [ebp]
mov ecx, esi
call fcn.10047c50
movzx ebx, word [esi + 0x10]
add esp, 4
test bl, 1
jne case.default.0x1004a182
mov eax, dword [ebp - 4]
shr eax, 4
and eax, 0xf
lea ecx, [eax - 2]
cmp ecx, 4
ja case.default.0x1004a182
jmp dword [ecx*4 + 0x1004ed68]
test bl, 0x10
jmp 0x1004a1f4
test bl, 4
jmp 0x1004a1f4
test bl, 2
jmp 0x1004a1f4
test bl, 4
je 0x1004a1f1
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 0x1004a1d1
jb 0x1004a1bc
cmp ecx, 0xffffffff
ja 0x1004a1d1
or ebx, 0x20
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [esp + 0x38]
jmp case.default.0x1004a182
mov ecx, edi
call fcn.101176a0
or ebx, 8
movsd qword [esi], xmm0
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [esp + 0x38]
jmp case.default.0x1004a182
test bl, 0x28
je 0x1004e47c
mov ecx, dword [esp + 0x28]
add esi, 0x28
movsx eax, word [ecx + 0x22]
inc edi
add ebp, 0x10
mov dword [esp + 0x38], edi
cmp edi, eax
jl 0x1004a131
jmp 0x100489d7
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
nop dword [eax]
push dword [esp + 0x3c]
mov dl, al
mov ecx, esi
call fcn.10047c50
add esp, 4
cmp byte [edi], 0x45
jne 0x1004a290
movzx ebx, word [esi + 0x10]
test bl, 4
je 0x1004a290
mov ebp, dword [esi]
mov ecx, ebp
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x1004a278
jb 0x1004a26d
cmp ecx, 0xffffffff
ja 0x1004a278
and ebx, 0xfffb
or ebx, 0x20
jmp 0x1004a28c
mov ecx, ebp
call fcn.101176a0
and ebx, 0xfffb
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 0x10], bx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x1004e129
add esi, 0x28
jmp 0x1004a230
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov esi, dword [esp + 0x1c]
xor ecx, ecx
movlpd qword [esp + 0x48], xmm0
mov dword [esp + 0x58], ecx
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [esp + 0x70], xmm0
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x38], ebx
lea ebp, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x28], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x44], eax
test edi, edi
je 0x1004a32a
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebp, dword [esp + 0x3c]
push ebp
lea ecx, [esi - 0x10]
mov dl, al
call fcn.10047c50
add esp, 4
cmp byte [edi], 0x45
jne 0x1004a317
movzx eax, word [esi]
test al, 4
je 0x1004a317
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x1004a2f2
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
lea eax, [ebx - 0xc]
mov ebx, dword [esp + 0x74]
lea eax, [eax + ebp*8]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x34], edx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x70], ebx
movzx ebx, word [eax - 0xc]
mov dword [esp + 0x50], eax
test bl, 1
je 0x1004a372
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [eax], ebx
jmp 0x1004a5e2
test bl, 0x24
je 0x1004a535
mov edi, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
test edi, edi
jg 0x1004a395
jl 0x1004a38b
test esi, esi
jae 0x1004a395
mov ecx, esi
mov eax, edi
not ecx
not eax
jmp 0x1004a399
mov ecx, esi
mov eax, edi
inc dword [esp + 0x58]
test eax, eax
ja 0x1004a4a3
jb 0x1004a3ac
cmp ecx, 0x7f
ja 0x1004a403
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x1004a3de
cmp ebx, edi
jne 0x1004a3de
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x93], 4
jb 0x1004a3de
mov esi, dword [esp + 0x50]
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x58]
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
mov esi, dword [esp + 0x50]
add ebp, 1
mov ecx, dword [esp + 0x58]
mov eax, 1
adc edx, ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], edx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
test eax, eax
ja 0x1004a4a3
jb 0x1004a415
cmp ecx, 0x7fff
ja 0x1004a43b
mov esi, dword [esp + 0x50]
add ebp, 2
mov ecx, dword [esp + 0x58]
mov eax, 2
adc edx, 0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], edx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
test eax, eax
ja 0x1004a4a3
jb 0x1004a449
cmp ecx, 0x7fffff
ja 0x1004a46f
mov esi, dword [esp + 0x50]
add ebp, 3
mov ecx, dword [esp + 0x58]
mov eax, 3
adc edx, 0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], edx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
test eax, eax
ja 0x1004a4a3
jb 0x1004a47d
cmp ecx, 0x7fffffff
ja 0x1004a4a3
mov esi, dword [esp + 0x50]
add ebp, 4
mov ecx, dword [esp + 0x58]
mov eax, 4
adc edx, 0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], edx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
cmp eax, 0x7fff
ja 0x1004a4d7
jb 0x1004a4b1
cmp ecx, 0xffffffff
ja 0x1004a4d7
mov esi, dword [esp + 0x50]
add ebp, 6
mov ecx, dword [esp + 0x58]
mov eax, 5
adc edx, 0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], edx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
add ebp, 8
mov dword [esp + 0x54], ebp
adc edx, 0
mov dword [esp + 0x34], edx
test bl, 0x20
je 0x1004a51d
mov edx, edi
mov ecx, esi
call fcn.101176a0
mov esi, dword [esp + 0x50]
and ebx, 0xffdf
mov ecx, dword [esp + 0x58]
or ebx, 8
mov eax, 7
movsd qword [esi - 0x1c], xmm0
mov word [esi - 0xc], bx
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
mov esi, dword [esp + 0x50]
mov eax, 6
mov ecx, dword [esp + 0x58]
mov dword [esi], eax
mov eax, dword [esp + 0x50]
jmp 0x1004a5e6
test bl, 8
je 0x1004a554
inc ecx
mov dword [eax], 7
add ebp, 8
mov dword [esp + 0x54], ebp
adc edx, 0
mov dword [esp + 0x34], edx
jmp 0x1004a5e2
mov edi, dword [eax - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
test ebx, 0x400
mov ebx, dword [esp + 0x54]
lea ebp, [edi + 6]
lea ebp, [eax + ebp*2]
je 0x1004a5a5
mov esi, dword [esp + 0x50]
mov eax, ebx
or eax, edx
mov ecx, dword [esi - 0x1c]
lea ebp, [ebp + ecx*2]
je 0x1004a596
lea ecx, [esi - 0x1c]
call fcn.1003deb0
test eax, eax
jne 0x1004e8c6
add edi, dword [esi - 0x1c]
jmp 0x1004a5a1
mov eax, ecx
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
add ebx, edi
mov esi, 1
mov dword [esp + 0x54], ebx
adc edx, 0
xor ecx, ecx
mov dword [esp + 0x34], edx
mov edx, ebp
shr edx, 7
mov eax, edx
or eax, ecx
je 0x1004a5d2
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x1004a5c4
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
add ecx, esi
mov dword [eax], ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x58], ecx
add eax, 0xffffffe4
cmp eax, dword [esp + 0x38]
je 0x1004a5ff
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
sub eax, 0x28
jmp 0x1004a350
cmp ecx, 0x7e
jle 0x1004a666
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x1004a62e
nop dword [eax + eax]
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x1004a620
mov eax, dword [esp + 0x58]
mov edi, 1
add eax, ebx
mov dword [esp + 0x58], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x1004a65e
nop dword [eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x1004a650
mov ecx, dword [esp + 0x58]
cmp ebx, edi
jge 0x1004a66b
inc ecx
mov dword [esp + 0x58], ecx
mov ebx, dword [esp + 0x44]
mov eax, ecx
cdq
mov esi, eax
mov dword [esp + 0x50], eax
add esi, dword [esp + 0x54]
mov ebp, edx
mov ebx, dword [ebx + 0x18]
mov ecx, ebp
adc ecx, dword [esp + 0x34]
mov edi, esi
add edi, dword [esp + 0x70]
mov eax, ebx
cdq
adc ecx, dword [esp + 0x48]
cmp ecx, edx
jg 0x1004a69e
jl 0x1004a6da
cmp edi, eax
jbe 0x1004a6da
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x1004e5c1
jl 0x1004a6b8
cmp edi, eax
ja 0x1004e5c1
cmp ebx, esi
jge 0x1004a6da
mov ecx, dword [esp + 0x44]
mov edx, esi
push 0
call fcn.1003dc10
add esp, 4
test eax, eax
jne 0x1004e8c6
mov edx, dword [esp + 0x44]
jmp 0x1004a6e4
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x70]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x48]
mov dword [edx + 0xc], esi
je 0x1004a707
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x58]
mov ebx, dword [edx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x1004a71d
mov byte [ebx], al
inc ebx
jmp 0x1004a72e
push ebp
push dword [esp + 0x54]
mov ecx, ebx
call fcn.10021b00
add esp, 8
add ebx, eax
mov edi, dword [esp + 0x38]
add edi, 0xc
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x1004a773
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x1004a7af
movzx edx, byte [edx + 0x1012c408]
mov ecx, dword [edi - 0xc]
mov ebp, edx
mov eax, dword [edi - 8]
sub edx, 1
mov byte [edx + esi], cl
je 0x1004a76f
nop dword [eax + eax]
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x1004a760
add esi, ebp
jmp 0x1004a7af
cmp edx, 0x80
jae 0x1004a78b
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x1004a7af
mov eax, dword [edi]
test eax, eax
jle 0x1004a7af
jmp 0x1004a7a0
push 0
push edx
mov ecx, ebx
call fcn.10021b00
add ebx, eax
add esp, 8
mov eax, dword [edi]
test eax, eax
je 0x1004a7af
push eax
push dword [edi - 4]
push esi
call fcn.10107750
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x28]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x38]
cmp edi, eax
je 0x1004e129
add edi, 0x28
jmp 0x1004a735
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x1004a7fb
mov ecx, edx
call fcn.10036020
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
jmp 0x1004a827
lea eax, [esp + 0xe0]
xorps xmm0, xmm0
push eax
mov ecx, ebp
movlpd qword [esp + 0xe4], xmm0
call fcn.1003b9c0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x1004a84d
mov ecx, edx
call fcn.10047eb0
mov edx, eax
jmp 0x1004a856
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edi, dword [esp + 0x10]
cmp dword [ebp + 0x128], 0
jne 0x1004e895
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x80], esi
jb 0x1004e131
mov ebx, dword [esp + 0x6c]
ja 0x1004a8a0
mov eax, dword [esp + 0x14]
cmp eax, ebx
jb 0x1004e182
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x1004e131
add ebx, dword [ebp + 0x17c]
push dword [ebp + 0x178]
adc esi, 0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x88], esi
call eax
add esp, 4
test eax, eax
jne 0x1004e6da
cmp dword [esp + 0x80], esi
ja 0x1004a8a0
mov eax, dword [esp + 0x14]
jb 0x1004a8e8
cmp eax, ebx
jae 0x1004a8a0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x44], edi
test edi, edi
jne 0x1004a9e0
cmp dword [ebp + 0xc4], edi
jg 0x1004e4be
test ebx, ebx
jne 0x1004a929
xor esi, esi
jmp 0x1004a93f
mov esi, ebx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x1004a930
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
xor edx, edx
add eax, dword [ebp + 0x1f8]
mov ecx, ebp
push eax
call fcn.100a1830
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
lea eax, [esi + 0x21]
mov ecx, ebp
push edx
push eax
call fcn.1001d1c0
mov edi, eax
add esp, 8
test edi, edi
je 0x1004ac82
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.10107750
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x1004a9a2
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x1004a9a8
inc dword [ebp + 0x1f8]
mov eax, dword [ebp + 0x1ec]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0x200]
mov ecx, dword [ebp + 0x204]
mov dword [ebp + 0x1ec], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x1004ac82
mov eax, dword [esp + 0x20]
xor ebp, ebp
mov esi, dword [eax + 0x1ec]
test esi, esi
je 0x1004aa05
mov ecx, dword [esi]
mov edx, ebx
call fcn.10020d10
test eax, eax
je 0x1004aa3c
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x1004a9f0
push ebx
push str.no_such_savepoint:__s
push dword [esp + 0x20]
call fcn.1003f710
add esp, 0xc
mov edx, 1
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
cmp byte [esi + 0x57], 0
je 0x1004e8ed
mov edx, 7
jmp 0x1004e901
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x44]
cmp dword [ecx + 0xc4], 0
jle 0x1004aa56
cmp edx, 1
je 0x1004e4d6
cmp dword [esi + 0x18], 0
jne 0x1004aabb
cmp byte [ecx + 0x5d], 0
je 0x1004aabb
mov ebx, 1
mov dword [esp + 0x48], ebx
cmp edx, ebx
jne 0x1004aac3
mov ecx, dword [esp + 0x18]
mov edx, ebx
call fcn.10041fa0
mov edi, eax
test edi, edi
jne 0x1004e9cc
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov ecx, edi
mov byte [eax + 0x55], bl
call fcn.10042010
cmp eax, 5
je 0x1004e4fe
mov edx, dword [edi + 0x24]
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004e4f1
mov edx, dword [esp + 0x20]
mov byte [edx + 0x5d], 0
jmp 0x1004abc8
mov dword [esp + 0x48], 0
mov eax, dword [ecx + 0x1f8]
sub eax, ebp
lea ebp, [eax - 1]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x28], ebp
cmp edx, 2
jne 0x1004ab35
mov ecx, dword [ecx + 0x18]
xor ebx, ebx
and ecx, 1
mov dword [esp + 0x38], ecx
test eax, eax
jle 0x1004ab3b
mov ebp, ecx
xor ebp, 1
xor edi, edi
mov eax, dword [esp + 0x20]
mov edx, 0x204
push ebp
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.10034a40
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x20]
inc ebx
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x1004aaf1
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
jmp 0x1004ab3b
xor ecx, ecx
mov dword [esp + 0x38], ecx
xor ebx, ebx
test eax, eax
jle 0x1004ab7a
mov eax, dword [esp + 0x20]
xor edi, edi
mov ecx, dword [eax + 0x10]
push ebp
mov ecx, dword [ecx + edi + 4]
call fcn.10034d10
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x20]
inc ebx
mov edx, dword [esp + 0x44]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x1004ab47
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x1004abb4
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1004aba9
nop dword [eax]
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x1004ab90
mov ecx, ebx
call fcn.10069140
or dword [ebx + 0x18], 1
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x1004ac00
mov ebx, dword [esp + 0x20]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1ec], eax
call fcn.1001ce30
mov ecx, dword [ebx + 0x1ec]
dec dword [ebx + 0x1f8]
cmp ecx, esi
jne 0x1004abd6
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
cmp edi, 1
jne 0x1004ac2b
mov eax, dword [esi + 0x18]
mov dword [edx + 0x1ec], eax
mov edx, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.1001ce30
test ebx, ebx
jne 0x1004ac80
dec dword [esi + 0x1f8]
jmp 0x1004ac58
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
test ebx, ebx
je 0x1004ac58
cmp edi, 2
jne 0x1004ac7a
push ebp
mov ebp, dword [esp + 0x24]
mov edx, edi
mov ecx, ebp
call fcn.100a1830
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x1004ac82
mov esi, ebp
jmp 0x1004aa24
mov ebp, dword [esp + 0x20]
jmp 0x1004ac82
mov ebp, esi
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x95], 3
je 0x1004e531
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x38], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x1004acd9
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x1004e53b
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ebp + 0x10]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x1004ad9c
lea eax, [esp + 0x38]
mov edx, edi
push eax
mov ecx, ebx
call fcn.10033900
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004e56a
mov edi, dword [esp + 0x18]
test byte [edi + 0x98], 0x20
je 0x1004ada8
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x1004ada8
cmp byte [ebp + 0x55], dl
je 0x1004ad38
cmp dword [ebp + 0xc0], 1
jle 0x1004ada8
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x1004ad54
mov eax, dword [ebp + 0x1f8]
inc dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, ebp
call fcn.100a1830
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1004ad78
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.10034cb0
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x200]
mov ecx, dword [ebp + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x10048216
mov eax, dword [esp + 0x38]
cmp eax, dword [edi + 0xc]
jne 0x1004adcf
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
je 0x100489df
mov ebx, dword [esp + 0x18]
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x1004ade1
mov ecx, ebp
call fcn.1001ce30
mov edx, str.database_schema_has_changed
mov ecx, ebp
call fcn.1001d3c0
mov dword [ebx + 0x7c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x1004ae11
mov ecx, ebp
call fcn.100690e0
mov eax, dword [ebx + 0x98]
mov edx, 0x11
and eax, 0xffffffed
or eax, 1
mov dword [ebx + 0x98], eax
jmp 0x1004aa1c
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x100]
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003b8a0
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x1004ae9a
call fcn.10047eb0
mov edi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x100]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x100]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
call fcn.1003b900
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x1004af1b
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov ecx, ebp
or dword [ebp + 0x18], 1
mov edx, dword [edx + 4]
call fcn.10079e80
mov edx, dword [esp + 0x10]
jmp 0x1004af29
cmp eax, 2
jne 0x1004af29
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x1004af45
xor edx, edx
mov ecx, ebp
call fcn.100443c0
mov esi, dword [esp + 0x18]
and dword [esi + 0x98], 0xfffffffc
jmp 0x1004af49
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
test edi, edi
je case.0x100480d6.112
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne case.0x100480d6.112
mov ecx, dword [edi + 0x2c]
add edi, 0x2c
call fcn.10030f60
jmp 0x1004b0a1
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x1004e5a7
mov eax, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], edi
mov ebp, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
cmp dl, 0x71
jne 0x1004aff7
mov eax, dword [eax + 0xc]
movzx ebx, word [ecx + 2]
and ebx, 8
or ebx, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x1004aff9
mov byte [esi + 0x93], al
jmp 0x1004aff9
xor ebx, ebx
test byte [ecx + 2], 0x10
je 0x1004b020
mov ecx, dword [esp + 0x1c]
lea eax, [ebp*4]
add eax, ebp
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003e390
mov ebp, dword [esi]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x1004b034
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x38], edi
movzx edi, word [edi + 8]
jmp 0x1004b03b
cmp al, 0xfd
jne 0x1004b03b
mov edi, dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, esi
push 0
push edi
call fcn.10047940
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e8c6
push dword [esi + 0x2c]
mov eax, dword [esp + 0x2c]
lea edi, [esi + 0x2c]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov edx, ebp
or dword [esi + 8], 4
push ebx
mov byte [esi + 1], al
mov byte [esi + 2], 1
mov dword [esi + 0x38], ebp
call fcn.10034e80
mov ebp, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi]
movzx edx, word [eax + 2]
and edx, 3
call fcn.100310f0
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, esi
movsx eax, word [edi + 0x3c]
push eax
call fcn.10047940
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e8ca
or dword [esi + 8], 1
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
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, dword [esi + 8]
and ecx, 4
xor ecx, dword [esi + 8]
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.10034e80
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x1004b181
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 8], 0x101315db
mov edx, dword [edx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1004b1dd
test byte [esi + 8], 8
jne 0x1004b1dd
mov ecx, dword [esp + 0x10]
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x1004b1dd
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.1003b4c0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov byte [esi + 2], 1
jmp 0x100489db
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push 0
push dword [eax + 8]
call fcn.10047940
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e8ca
mov eax, dword [esp + 0x10]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
or ecx, 5
push ecx
mov ecx, dword [ebp]
push edi
push ebp
call fcn.10032990
mov edx, eax
add esp, 0x10
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.10033900
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004b2be
mov eax, dword [esp + 0x10]
mov ecx, dword [edi]
mov ebp, dword [eax + 0x10]
mov dword [esi + 0x30], ebp
test ebp, ebp
je 0x1004b295
movzx eax, word [eax + 2]
lea edx, [esi + 0x38]
or eax, 2
push eax
call fcn.1003b1e0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004b28f
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
mov ecx, dword [edi]
push ebp
push 4
call fcn.10034e80
mov edx, eax
add esp, 0xc
mov dword [esp + 0x24], edx
mov byte [esi + 4], 0
jmp 0x1004b2ba
push dword [esi + 0x2c]
mov edx, 1
mov dword [esi + 0x38], 1
push 0
push 4
call fcn.10034e80
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [esp + 0x24], edx
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
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 0x1004e5b1
mov byte [esi + 2], 1
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ecx, esi
push 1
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.10047940
add esp, 8
test eax, eax
je 0x1004e8ce
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov ecx, ebp
mov edx, dword [edx + 0xc]
call fcn.100501a0
add esp, 4
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 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 esi, dword [esp + 0x18]
mov dword [edx + 0x1c], eax
je 0x1004dc86
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
push 3
push dword [edx + 0xc]
mov edx, dword [edx + 4]
call fcn.10047940
add esp, 8
test eax, eax
je 0x1004e8ce
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x10143929
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
mov eax, dword [edx + 4]
mov edx, dword [esi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.100413f0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
xor ebp, ebp
mov eax, dword [esi + 0x60]
mov dword [esp + 0x38], ebp
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], bp
mov dword [esi + 0x20], ebp
je 0x1004b557
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x48], eax
and al, 0x2e
cmp al, 2
jne 0x1004b470
xor edx, edx
mov ecx, edi
call fcn.10047a90
mov ecx, edi
call fcn.1003e280
movzx ecx, word [edi + 0x10]
mov ebp, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x1004b526
test cl, 8
jne 0x1004b501
test cl, 1
jne 0x1004dc82
cmp ebx, 0x17
jae 0x1004dc82
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x68]
call fcn.100358e0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0x68], 0
jne 0x1004dc82
cmp dword [esp + 0x38], 0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
je 0x1004e14c
add dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
push dword [esp + 0x28]
movsd xmm1, qword [edi]
push ebp
call fcn.100430a0
add esp, 8
test eax, eax
jle 0x1004b51e
test bl, 1
jne 0x1004b526
dec ebx
jmp 0x1004b526
jns 0x1004b526
test bl, 1
je 0x1004b526
inc ebx
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x68]
mov ecx, dword [esi + 0x2c]
xor edx, edx
push eax
push edi
push ebp
call fcn.10035900
mov edx, eax
mov dword [esi + 0x40], ebp
add esp, 0xc
mov dword [esp + 0x24], edx
mov dword [esi + 0x44], edi
test edx, edx
jne 0x1004aa20
jmp 0x1004b5f4
mov ecx, dword [esi + 0x2c]
mov edx, 2
call fcn.1003cdc0
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x98]
test eax, eax
mov eax, 1
cmovne ebp, eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x98], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xac], ax
lea eax, [ebx - 1]
test al, 1
mov byte [esp + 0xb2], 0
mov dword [esp + 0x38], ebp
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0xae], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x68]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.10035ba0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
test ebp, ebp
je 0x1004b5f4
cmp byte [esp + 0xb2], al
je 0x1004b4c3
mov eax, dword [esp + 0x68]
cmp ebx, 0x17
jl 0x1004b68d
test eax, eax
js 0x1004b619
jne 0x1004b60c
cmp ebx, 0x18
je 0x1004b619
mov dword [esp + 0x68], 0
jmp 0x1004b4ce
mov dword [esp + 0x68], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.100361d0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x1004b4c3
cmp edx, 0x65
jne 0x1004aa20
mov dword [esp + 0x24], 0
mov dword [esp + 0x68], 1
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x40]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [ecx + eax*4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
test eax, eax
jg 0x1004b6a9
jne 0x1004b698
cmp ebx, 0x15
je 0x1004b6a9
mov ecx, dword [esi + 0x2c]
call fcn.10036010
mov dword [esp + 0x68], eax
jmp 0x1004b4c3
mov dword [esp + 0x68], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.10036340
jmp 0x1004b62b
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 0x18]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.10034f30
test eax, eax
je 0x1004e163
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x98], eax
mov byte [esp + 0xae], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0xac], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xd8], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x9c], eax
lea eax, [esp + 0xd8]
mov edx, edi
push eax
lea eax, [esp + 0x9c]
mov ecx, ebp
push eax
call fcn.100442a0
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0xd8]
test eax, eax
jle 0x1004b762
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], dx
je 0x1004b796
test eax, eax
jns 0x1004dc82
test esi, esi
jle 0x1004e12d
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
call fcn.100361d0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x1004b721
cmp edx, 0x65
jne 0x1004aa20
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x10]
add ebp, 0x14
jmp 0x1004b656
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov edi, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x1004b7dd
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x1004817e
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x100480d6.9
cmp byte [eax + 2], 0
je 0x1004817e
jmp case.0x100480d6.9
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [edi + 0x10]
jge 0x1004817e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x9c], ecx
movzx eax, word [eax + 0x10]
mov word [esp + 0xac], ax
test ax, ax
je 0x1004b8a3
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0x98], eax
lea edx, [esp + 0x98]
mov byte [esp + 0xae], 0
mov ecx, dword [esi + 0x2c]
push ebx
call fcn.10035ba0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
jmp 0x1004b909
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x1004b8bb
call fcn.1003deb0
test eax, eax
jne 0x1004e8ca
mov ecx, dword [esi + 0x30]
call fcn.10042c00
mov edi, eax
test edi, edi
je 0x1004e8ca
mov edx, dword [esp + 0x9c]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.10042c60
mov byte [edi + 0x16], 0
lea ebx, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edx, edi
push ebx
call fcn.10035ba0
add esp, 0xc
mov dword [esp + 0x24], eax
mov edx, edi
mov ecx, ebp
call fcn.1001ce30
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov ecx, dword [ebx]
test ecx, ecx
mov byte [esi + 3], dl
setne al
mov dword [esi + 0x20], edx
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
mov al, byte [eax]
cmp al, 0x1d
jne 0x1004b952
mov esi, dword [esp + 0x18]
test ecx, ecx
je 0x1004dc86
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
test ecx, ecx
jne 0x1004dc82
cmp al, 0x1b
jne 0x1004b996
movzx edx, word [esp + 0xac]
test edx, edx
je 0x1004e12d
mov eax, dword [esp + 0x9c]
add eax, 0x10
nop dword [eax + eax]
test byte [eax], 1
jne 0x1004dc82
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x1004b980
jmp 0x100489db
mov edi, dword [esp + 0x10]
cmp al, 0x1a
jne 0x1004e131
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x1004ba3f
movups xmm0, xmmword [ebx + eax*8]
mov dl, 0x43
lea ecx, [esp + 0x170]
push dword [esp + 0x3c]
movups xmmword [esp + 0x174], xmm0
movups xmm0, xmmword [ebx + eax*8 + 0x10]
movups xmmword [esp + 0x184], xmm0
movq xmm0, qword [ebx + eax*8 + 0x20]
movq qword [esp + 0x194], xmm0
call fcn.10047c50
add esp, 4
test byte [esp + 0x180], 4
je 0x1004dc86
mov edi, dword [esp + 0x170]
mov ebx, dword [esp + 0x174]
jmp 0x1004ba4c
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xc4]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0xd0], 0
call fcn.10035900
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 [esp + 0xc4]
mov dword [esi + 0x24], eax
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x24], edx
je 0x1004bac6
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jne 0x1004dc82
mov ecx, 0x17548
call fcn.100c1ec0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov ebx, dword [esp + 0x10]
mov ecx, esi
mov edx, ebx
call fcn.10047ed0
mov edx, dword [ebx + 4]
mov edi, ebx
mov ecx, dword [esi + 0x60]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
mov edx, ebx
movlpd qword [esp + 0x28], xmm0
mov ecx, esi
mov dword [esp + 0x48], 0
call fcn.10047ed0
mov edx, dword [ebx + 4]
mov ebp, eax
mov ecx, dword [esi + 0x60]
mov ebx, dword [ecx + edx*4]
test byte [ebx + 8], 2
jne 0x1004bbb0
mov ecx, dword [ebx + 0x2c]
lea edx, [esp + 0x48]
call fcn.100358e0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0x48], eax
je 0x1004bb7d
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], eax
jmp 0x1004bbb0
mov ecx, dword [ebx + 0x2c]
call fcn.10034f40
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
cmp edx, 0x7fffffff
jl 0x1004bba2
jg 0x1004bb9c
cmp eax, 0xffffffff
jb 0x1004bba2
or dword [ebx + 8], 2
jmp 0x1004bbb0
add eax, 1
mov dword [esp + 0x28], eax
adc edx, 0
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1004bc44
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x1004bbe4
mov eax, dword [edx + 4]
test eax, eax
je 0x1004bbd9
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1004bbd0
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x1004bbee
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003e390
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x1004bc0b
cmp edx, 0x7fffffff
je 0x1004bca5
test byte [ebx + 8], 2
jne 0x1004bca5
mov edi, dword [esp + 0x2c]
add ecx, 1
adc edx, 0
cmp edi, edx
jg 0x1004bc3b
jl 0x1004bc2d
mov eax, dword [esp + 0x28]
cmp eax, ecx
jae 0x1004bc3f
mov eax, ecx
mov edi, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edi
jmp 0x1004bc3f
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov dword [esi + 4], edi
test byte [ebx + 8], 2
je 0x1004bcaf
xor esi, esi
nop dword [eax]
lea eax, [esp + 0x28]
push eax
push 8
call fcn.100201f0
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x50]
mov ecx, dword [esp + 0x30]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [esp + 0x34], ecx
push eax
mov dword [esp + 0x3c], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x2c]
call fcn.10035900
mov edx, eax
add esp, 0x14
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0x48], eax
jne 0x1004bcaf
inc esi
cmp esi, 0x64
jl 0x1004bc50
mov edx, 0xd
jmp 0x1004aa1c
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [ebp], eax
mov dword [ebp + 4], ecx
jmp 0x100489d7
mov ebx, dword [esp + 0x10]
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], esi
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov ebp, dword [ecx + eax*8 + 4]
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], ebp
jne 0x1004bd2b
mov eax, dword [esp + 0x20]
cmp dword [eax + 0xfc], 0
je 0x1004bd2b
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ebx, dword [ebx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x28], eax
jmp 0x1004bd31
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 1
je 0x1004bd6d
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 0x20
je 0x1004bd6d
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2c], ebp
mov ebp, dword [esp + 0x10]
mov dword [eax + 0x28], edi
movzx ecx, word [ebp + 2]
jmp 0x1004bd71
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0xa8], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0xb4], eax
test cl, 0x10
je 0x1004bd95
mov edi, dword [esi + 0x24]
jmp 0x1004bd97
xor edi, edi
mov eax, dword [esp + 0x1c]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x38]
je 0x1004bdb7
mov eax, dword [eax + edx*8]
mov dword [esp + 0xb8], eax
jmp 0x1004bdc2
mov dword [esp + 0xb8], 0
and ecx, 0x8a
mov dword [esp + 0x98], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xa0]
call fcn.10039dd0
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [esp + 0x24], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1004aa20
test ebx, ebx
je 0x1004e129
push dword [esp + 0xa4]
test byte [ebp + 2], 4
mov ecx, 0x17
push dword [esp + 0xa4]
mov ebp, dword [esp + 0x28]
mov eax, 0x12
push dword [ebx]
cmovne eax, ecx
push dword [esp + 0x34]
push eax
push dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
call eax
add esp, 0x18
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x60]
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 [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1004be76
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x1004be87
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.1003a4b0
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x1004befc
cmp dword [ebp + 0xfc], 0
je 0x1004befc
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x1004bf00
cmp byte [esi + 4], 0
je 0x1004bf00
mov ecx, dword [esi + 0x2c]
call fcn.10034f40
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x40], eax
jmp 0x1004bf00
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.1003a8c0
mov edx, eax
mov dword [esi + 0x20], 0
mov dword [esp + 0x24], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x1004aa20
test byte [esp + 0x28], 1
je 0x1004e12d
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ebp + 0xfc]
test eax, eax
je 0x1004e12d
test edi, edi
je 0x1004e12d
test byte [edi + 0x1c], 0x80
jne 0x1004e12d
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
push dword [ebp + 0xf8]
call eax
add esp, 0x18
jmp 0x100489db
push dword [esi + 0x2c]
mov ecx, ebp
push dword [esi + 0x28]
call fcn.100443a0
mov ecx, dword [esp + 0x24]
add esp, 8
mov eax, dword [esp + 0x14]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xdc], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xdc]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.100524f0
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0xdc], eax
jne 0x1004dc86
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.10052450
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, ebx
mov edi, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x20], edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10034f70
cmp eax, dword [ebp + 0x78]
ja 0x1004e5c1
push esi
mov edx, eax
mov ecx, edi
call fcn.1003ee80
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], eax
jne 0x1004e17e
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x1004e131
mov ecx, esi
call fcn.1003de30
mov esi, dword [esp + 0x18]
test eax, eax
jne 0x1004e8ce
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov ecx, dword [esp + 0x10]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x1004c12f
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x100489db
cmp byte [esi + 3], 0
je 0x1004c140
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
jmp 0x1004c1d8
cmp byte [esi], 2
jne 0x1004c1a8
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x90]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [esp + 0x24], eax
mov edx, esi
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.10044540
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x1c]
mov dword [edi], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, esi
call fcn.10042960
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp byte [esi + 2], al
je 0x1004c1d0
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x100489db
mov ecx, dword [esi + 0x2c]
call fcn.10034f40
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov dword [edi], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 4], edx
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x1004c247
push 3
push 1
mov ecx, esi
call fcn.10047940
add esp, 8
test eax, eax
je 0x1004e8ce
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x10143929
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x1004e163
mov ecx, dword [eax + 0x2c]
call fcn.10030f60
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0xc8], 0
cmp dl, 0x89
jne 0x1004c2b0
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.10034f30
test eax, eax
jne 0x1004e12d
lea edx, [esp + 0xc8]
mov ecx, edi
call fcn.100358e0
mov edx, eax
mov al, byte [esp + 0xc8]
mov dword [esp + 0x24], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
cmp dword [edi + 8], edx
jle 0x1004e135
cmp dword [esp + 0xc8], edx
jmp 0x10048178
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
lea edx, [esp + 0xcc]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.10035820
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0xcc], eax
jne 0x1004dc82
mov ecx, esi
call fcn.10036020
test edx, edx
jl 0x1004c36c
jg 0x1004c348
test eax, eax
jb 0x1004c36c
push edx
push eax
call fcn.10022070
mov edi, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [edi + 0xc]
jge 0x1004c370
mov dword [esp + 0xcc], 1
jmp 0x1004b652
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
cmp dword [esp + 0xcc], 0
jmp 0x10048178
inc dword [esi + 0xac]
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
lea edx, [esp + 0xc0]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0xc0], 1
cmp byte [esi], 1
jne 0x1004c3b4
mov ecx, esi
call fcn.10052340
jmp 0x1004c3c7
mov ecx, dword [esi + 0x2c]
call fcn.10035820
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov al, byte [esp + 0xc0]
mov byte [esi + 2], al
mov esi, dword [esp + 0x18]
cmp dword [edi + 8], edx
jle 0x1004e135
cmp dword [esp + 0xc0], edx
jmp 0x10048178
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, ebp
call fcn.100523d0
jmp 0x1004c446
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.10036340
jmp 0x1004c446
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.100361d0
mov edx, eax
mov dword [esp + 0x24], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1004c472
mov ecx, dword [esp + 0x18]
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x1004ddfa
cmp edx, 0x65
jne 0x1004aa20
mov dword [esp + 0x24], 0
mov byte [esi + 2], 1
jmp 0x1004a869
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x1004c4ba
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1004c4de
mov ecx, esi
call fcn.1003deb0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x98], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0xac], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xb0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x1004c523
mov ecx, dword [edi + 0x24]
jmp 0x1004c525
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x9c]
and eax, 0x8a
push eax
call fcn.10039dd0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1004c592
mov ecx, esi
call fcn.1003deb0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edx, esi
mov ecx, edi
call fcn.10051310
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x98], eax
mov ax, word [edx + 0xc]
mov word [esp + 0xac], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x98]
mov byte [esp + 0xae], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x104]
push eax
call fcn.10035ba0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp dword [esp + 0x104], eax
jne 0x1004c65c
mov dl, 4
mov ecx, edi
call fcn.1003a8c0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x1004c676
mov ecx, ebp
call fcn.10069900
test eax, eax
je 0x1004e5dd
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.10042960
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
cmp byte [esi + 2], al
jne 0x1004c77f
xorps xmm0, xmm0
lea eax, [esp + 0xe8]
movlpd qword [esp + 0xe8], xmm0
mov ecx, ebp
mov edx, dword [esi + 0x2c]
push eax
call fcn.100440c0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x8d
jne 0x1004c744
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], esi
jmp 0x100489db
mov esi, dword [esp + 0x18]
mov edx, eax
mov ecx, esi
call fcn.10047ed0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov edi, dword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003e750
jmp 0x100489db
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x1004817e
call fcn.100428b0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ebx, dword [esp + 0x10]
cmp dl, 0x2a
mov eax, dword [esi + 0x60]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x98], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0xac], ax
sbb al, al
mov byte [esp + 0xae], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x9c], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10034f70
mov esi, eax
test esi, esi
je 0x1004e5fb
cmp esi, 0x7fffffff
ja 0x1004e5fb
push 0
mov edx, ebp
lea ecx, [esp + 0x1c4]
call fcn.1003e730
add esp, 4
lea eax, [esp + 0x1c0]
mov edx, esi
mov ecx, edi
push eax
call fcn.1003ee80
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov edx, dword [esp + 0x1c8]
mov ecx, dword [esp + 0x1cc]
push eax
lea eax, [esp + 0x9c]
push eax
call fcn.10043370
add esp, 8
lea ecx, [esp + 0x1c0]
mov esi, eax
call fcn.1003e210
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
and dl, 1
cmovne esi, ecx
test esi, esi
mov esi, dword [esp + 0x18]
jg 0x1004dc86
mov ecx, dword [esp + 0x1c]
mov edi, ebx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [ebp + 0xcc]
inc ecx
cmp dword [ebp + 0xc0], ecx
jg 0x1004e60c
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xd0]
mov ecx, dword [ebp + 0x10]
push eax
mov dword [esp + 0xd4], 0
mov ebx, dword [edx + 0xc]
mov eax, ebx
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003b850
mov dword [esp + 0x28], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xd0]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x24]
mov dword [esi], eax
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0xd0]
test eax, eax
je 0x1004e12d
mov ecx, dword [esp + 0x10]
mov edx, ebx
push dword [ecx + 4]
mov ecx, ebp
push eax
call fcn.1006d130
mov al, bl
add esp, 8
inc al
mov byte [esp + 0x67], al
jmp 0x100489db
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x28]
mov ecx, dword [ebp + 0x10]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x2c], xmm0
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003b4c0
mov edi, dword [esp + 0x14]
add esp, 4
mov edx, eax
mov dword [esp + 0x24], edx
cmp dword [edi + 0xc], 0
je 0x1004c9e7
mov edx, dword [esp + 0x28]
add dword [esi + 0x28], edx
mov eax, dword [esp + 0x2c]
adc dword [esi + 0x2c], eax
mov eax, edi
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1004c9e3
mov ebx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [esp + 0x2c]
adc dword [ebx + ecx*8 + 4], eax
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x1004ca3d
mov edx, dword [ecx + 0x2c]
mov ecx, ebp
call fcn.10050710
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [ecx + 0x2c]
call fcn.1003b570
jmp 0x1004b323
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov esi, eax
mov dword [esp + 0xf4], 0
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xf4]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
add ecx, dword [ebp + 0x10]
mov ecx, dword [ecx + 4]
call fcn.1003b1e0
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0xf4]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x100489db
mov edx, dword [esp + 0x10]
inc byte [ebp + 0x60]
push 0
push 0
push 0
push dword [edx + 0x10]
push ebp
call fcn.10081980
add esp, 0x14
dec byte [ebp + 0x60]
jmp 0x1004b323
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x1004cb1f
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.100721c0
mov eax, dword [esp + 0x14]
add esp, 4
and dword [ebp + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebp
movzx eax, word [eax + 2]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x7c
push eax
call fcn.100894c0
mov esi, dword [esp + 0x20]
mov edx, eax
or dword [ebp + 0x18], 1
add esp, 8
mov dword [esp + 0x24], edx
and dword [esi + 0x98], 0xfffffffc
jmp 0x1004cc01
mov ecx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa0], esi
add eax, 0x7c
add esi, esi
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa8], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.10032740
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
mov eax, dword [ebp + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebp
call fcn.1001fbf0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1004e621
push 0
lea eax, [esp + 0x9c]
mov byte [ebp + 0xb1], 1
push eax
push fcn.100892c0
push esi
push ebp
mov dword [esp + 0xb8], 0
mov dword [esp + 0xc0], 0
call fcn.10081980
add esp, 0x14
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1004cbe9
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1004cbe9
cmp dword [esp + 0xac], eax
jne 0x1004cbe9
mov ecx, 0x17b44
call fcn.100c1ec0
mov dword [esp + 0x24], eax
mov edx, esi
mov ecx, ebp
call fcn.1001ce30
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov byte [ebp + 0xb1], 0
test edx, edx
je 0x10048321
mov ecx, ebp
call fcn.10069140
mov edx, dword [esp + 0x24]
cmp edx, 7
je 0x1004e8ce
jmp 0x1004aa1c
mov edx, dword [esp + 0x10]
mov ecx, ebp
mov edx, dword [edx + 4]
call fcn.10066e80
jmp 0x1004b323
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.100696d0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.10068fa0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, ebp
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1009a2b0
mov edi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
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, [esp + 0xd4]
push eax
lea eax, [esp + 0x10c]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, ebp
push eax
movzx eax, word [edx + 2]
mov edx, dword [ebp + 0x10]
add eax, eax
mov edx, dword [edx + eax*8 + 4]
call fcn.1003c630
add esp, 0x14
mov ebp, eax
mov ecx, edi
mov dword [esp + 0x24], ebp
call fcn.1003e750
mov eax, dword [esp + 0x108]
test eax, eax
je 0x1004cd54
test ebp, ebp
jne 0x1004e62d
dec eax
mov ecx, edi
cdq
sub dword [ebx + esi*8], eax
push fcn.1001cd70
sbb dword [ebx + esi*8 + 4], edx
mov edx, dword [esp + 0xd8]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.1003ea60
add esp, 0x10
movzx edx, byte [esp + 0x3c]
mov ecx, edi
call fcn.1003dbf0
mov ebp, dword [esp + 0x20]
jmp 0x1004a869
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x1004cd96
mov ecx, esi
call fcn.1003e880
test eax, eax
jne 0x1004e8ca
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [ebx + edi*8]
call fcn.10028220
add esp, 8
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
je 0x1004ce00
mov ecx, dword [esi + 8]
lea edx, [esp + 0x118]
call fcn.10028530
test eax, eax
je 0x1004ce00
mov eax, dword [esp + 0x10]
push dword [esp + 0x11c]
push dword [esp + 0x11c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.1003e7f0
add esp, 8
jmp 0x1004a869
mov ecx, esi
call fcn.1003e750
jmp 0x1004ddfa
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x1004ce3c
mov ecx, esi
call fcn.1003e880
test eax, eax
jne 0x1004e8ca
mov ecx, dword [esp + 0x1c]
test ebx, ebx
je 0x1004ce64
push dword [ecx + edi*8 + 4]
mov edx, ebx
push dword [ecx + edi*8]
mov ecx, dword [esi + 8]
call fcn.10028590
add esp, 8
test eax, eax
jne 0x1004dc82
test ebx, ebx
js 0x1004e12d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10028220
add esp, 8
jmp 0x100489db
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x28], ebx
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x1004cec0
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x1004cec0
nop dword [eax + eax]
cmp dword [eax + 0x18], ecx
je 0x10048fa1
mov eax, dword [eax + 4]
test eax, eax
jne 0x1004ceb0
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x1004e645
test byte [ebp + 0x10], 0x10
jne 0x1004cfd0
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 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 [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x1004cf05
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov eax, ebx
cdq
push edx
push eax
call fcn.1001d150
mov edi, eax
add esp, 8
test edi, edi
je 0x1004e8c6
mov ecx, ebp
call fcn.1003e1f0
mov ecx, dword [esp + 0x10]
mov eax, 0x1010
sub ecx, dword [esp + 0x40]
mov word [ebp + 0x10], ax
mov dword [ebp + 0xc], ebx
mov ebx, dword [esp + 0x28]
mov dword [ebp + 8], edi
mov dword [ebp + 0x24], 0x10040a80
mov ebp, dword [esp + 0x18]
mov dword [edi], ebp
mov dword [edi + 0x3c], esi
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov eax, dword [ebp + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [ebp + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [ebp + 0x68]
mov dword [edi + 8], eax
mov eax, dword [ebp + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x18], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x1004cfc6
mov esi, dword [esp + 0x20]
xor edx, edx
mov dword [eax + 0x14], esi
mov word [eax + 0x10], dx
add eax, 0x28
cmp eax, ecx
jne 0x1004cfb6
mov esi, ebp
mov eax, dword [esi + 0xd8]
jmp 0x1004cfd3
mov edi, dword [ebp + 8]
mov ebp, dword [esp + 0x20]
lea edx, [edi + 0x58]
inc eax
mov dword [esp + 0x1c], edx
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xd0]
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], ecx
mov eax, dword [esi + 0xe4]
mov dword [edi + 0x28], eax
mov dword [esi + 0x58], edx
mov dword [esi + 0xe4], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xd0], edi
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x14], ecx
movzx eax, word [edi + 0x40]
mov dword [esi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.101062c0
mov ecx, dword [ebx]
add esp, 0xc
mov dword [esi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x40], ecx
lea edi, [ecx - 0x14]
mov dword [esi + 0x6c], eax
mov dword [esp + 0x10], edi
jmp 0x1004a86d
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov esi, eax
mov eax, dword [esp + 0x18]
push 0x4000
mov eax, dword [eax + 0xd0]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.1003e9a0
add esp, 4
jmp 0x100489db
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
mov edi, eax
je 0x1004d111
mov eax, dword [eax + 8]
cdq
add dword [ebp + 0x208], eax
mov eax, dword [esp + 0x14]
adc dword [ebp + 0x20c], edx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x1004d13a
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x14]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
add dword [esi + 0x40], eax
mov eax, dword [esp + 0x14]
adc dword [esi + 0x44], edx
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
cmp dword [edi + 4], 0
je 0x1004d190
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x10048182
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x10049b9d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jmp 0x1004d165
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x1004d1cf
mov eax, dword [edx + 4]
test eax, eax
je 0x1004d1b9
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1004d1b0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x1004d1e0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.1003e390
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.1003e390
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x1004e12d
jl 0x1004d213
cmp dword [edi], eax
jae 0x1004e12d
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x100489db
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x1c]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x10048608
jg 0x1004d240
test ecx, ecx
je 0x10048608
mov eax, dword [esp + 0x10]
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 0x1004b652
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.10047ed0
mov edx, dword [esp + 0x1c]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], ecx
test ecx, ecx
jl 0x1004d2e5
jg 0x1004d296
test eax, eax
je 0x1004d2e5
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x1004d2a7
jg 0x1004d2b8
test eax, eax
jne 0x1004d2b8
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
push eax
lea ecx, [esp + 0x100]
call fcn.10021e60
add esp, 8
test eax, eax
jne 0x1004d2e5
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x100489db
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 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 0x10048608
test edx, edx
jl 0x1004b652
jg 0x1004d328
test ecx, ecx
je 0x1004b652
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x1004b652
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x1004d36a
jg 0x1004d35d
test eax, eax
je 0x1004d36a
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
je 0x10049b9d
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, ebp
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.1001d1c0
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e8ca
lea ecx, [ebx + 7]
mov dword [esi + 8], 0
lea ecx, [esi + ecx*4]
mov edx, ebp
push 1
mov dword [esi], ecx
call fcn.1003e730
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x40]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x19], 0
sar edx, 3
mov eax, edx
mov dword [esi + 0x14], 0
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x1a], bl
mov edx, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x3c]
mov byte [esi + 0x18], al
mov word [edx], 0xf1a3
mov dword [edx + 0x10], esi
jmp 0x1004d41e
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov ebx, dword [esp + 0x1c]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x1004d46a
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x1004d46a
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
nop dword [eax]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x1004d450
mov ebp, dword [esp + 0x20]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x1004d489
mov eax, dword [ecx + 0x1c]
jmp 0x1004d48c
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1004e131
jle 0x1004d4c1
push dword [esi]
call fcn.10044bd0
add esp, 4
push eax
push 0x1013365c
push dword [esp + 0x20]
call fcn.1003f710
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x24], eax
cmp byte [esi + 0x19], 0
je 0x1004d4ec
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x1004d4e4
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.1003e7f0
add esp, 8
mov edi, dword [esp + 0x10]
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
call fcn.1003e1f0
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x24]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
test edx, edx
jne 0x1004aa20
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov ecx, esi
test eax, eax
je 0x1004d569
lea eax, [eax + eax*4]
push edx
lea edx, [ebx + eax*8]
call fcn.1003e080
mov ebp, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jmp 0x1004d570
call fcn.1003df90
mov ebp, eax
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x1004e665
movzx edx, byte [esp + 0x3c]
mov ecx, esi
call fcn.1003dbf0
jmp 0x100489d7
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1f0]
push eax
lea eax, [esp + 0x1f0]
mov dword [esp + 0x1ec], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov ecx, ebp
mov dword [esp + 0x1fc], 0xffffffff
mov dword [esp + 0x1f8], 0xffffffff
call fcn.100c06b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x24], edx
test edx, edx
je 0x1004d5f8
cmp edx, 5
jne 0x1004aa20
mov dword [esp + 0x24], 0
mov dword [esp + 0x1e8], 1
mov eax, dword [esp + 0x10]
xor esi, esi
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop dword [eax + eax]
mov eax, dword [esp + esi*4 + 0x1e8]
mov ecx, edi
cdq
push edx
push eax
call fcn.1003e7f0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x1004d610
jmp 0x100489db
mov ebx, dword [esp + 0x10]
mov ecx, esi
mov edx, ebx
call fcn.10047ed0
mov edx, dword [ebx + 4]
mov ebp, eax
mov eax, dword [esp + 0x20]
add edx, edx
mov esi, dword [ebx + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.1003bb00
mov ebx, eax
mov ecx, ebx
call fcn.1002da30
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.1002da40
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.1002d6b0
cmp esi, 5
jne 0x1004d6f6
mov ecx, eax
call fcn.100209b0
test eax, eax
je 0x1004d6a3
mov ecx, ebx
call fcn.1002da70
test eax, eax
jne 0x1004d6f6
mov esi, edi
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1004d6af
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.1002d8c0
mov ecx, 0x2202
mov word [ebp + 0x10], cx
mov ecx, eax
call fcn.100827c0
mov ecx, eax
mov dword [ebp + 8], eax
call fcn.100209b0
movzx edx, byte [esp + 0x3c]
mov ecx, ebp
mov dword [ebp + 0xc], eax
mov byte [ebp + 0x12], 1
call fcn.1003dbf0
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
jmp 0x100489d7
cmp esi, edi
je 0x1004d6a5
cmp edi, 5
je 0x1004d704
cmp esi, 5
jne 0x1004d6a5
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x55], 0
je 0x1004e689
cmp dword [eax + 0xc0], 1
jg 0x1004e689
cmp edi, 5
jne 0x1004d744
mov edx, eax
mov ecx, ebx
call fcn.1002dcf0
mov dword [esp + 0x24], eax
test eax, eax
jne 0x1004d6ad
mov edx, esi
mov ecx, ebx
call fcn.1002d8c0
jmp 0x1004d75e
cmp edi, 4
jne 0x1004d753
lea edx, [edi - 2]
mov ecx, ebx
call fcn.1002d8c0
cmp dword [esp + 0x24], 0
jne 0x1004d6ad
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.1003ccf0
mov dword [esp + 0x24], eax
jmp 0x1004d6a9
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x1004d78c
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x1004d78e
xor eax, eax
push eax
push dword [edx + 4]
lea ecx, [esi + 0x7c]
mov edx, ebp
call fcn.1009f860
add esp, 8
jmp 0x1004b323
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.100343e0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x1004e163
cmp edx, 0x65
jne 0x1004aa20
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x24], 0
jmp 0x1004b65a
cmp dword [edi + 4], 0
jne 0x1004d808
mov edx, dword [edi + 8]
mov ecx, ebp
call fcn.100443c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 8]
inc eax
xor eax, dword [esi + 0x98]
and eax, 3
xor dword [esi + 0x98], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10034f50
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10034f60
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov al, byte [edi + 0xc]
mov byte [esp + 0x10c], al
test al, al
jne 0x1004d8ae
mov eax, dword [ebp + 0x20]
and eax, 0x400
mov dword [esp + 0x28], eax
jne 0x10048182
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
push dword [esp + 0x10c]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003cb60
mov edx, eax
add esp, 4
mov dword [esp + 0x24], edx
test edx, edx
je 0x10048321
cmp dl, 6
jne 0x1004aa20
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.1003f710
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x1004aa20
mov edx, dword [esp + 0x10]
mov ecx, ebp
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.100a1700
mov edx, eax
mov dword [esp + 0x24], edx
test esi, esi
je 0x1004d93a
mov edx, dword [esi + 8]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.10044540
mov edx, dword [esp + 0x24]
jmp 0x1004b329
mov esi, dword [esp + 0x18]
jmp 0x1004b329
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
movups xmmword [esp + 0x1a8], xmm0
mov dword [esp + 0x1ac], ebp
movups xmmword [esp + 0x198], xmm0
mov eax, dword [edx + 8]
movq qword [esp + 0x1b8], xmm0
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [esp + 0x198]
call fcn.1003e9f0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x198]
push eax
call fcn.10044bd0
add esp, 4
test eax, eax
je 0x1004d9b1
lea ecx, [esi + 0x7c]
push ecx
push eax
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov edx, dword [eax + 4]
call fcn.100a10f0
add esp, 8
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x198]
call fcn.1003e1f0
mov edx, dword [esp + 0x24]
jmp 0x1004b329
mov edx, dword [esp + 0x10]
mov ecx, ebp
inc dword [ebp + 0xcc]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.100a1520
add esp, 4
dec dword [ebp + 0xcc]
jmp 0x1004b323
mov edx, dword [esp + 0x10]
mov dword [esp + 0x48], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x1004e6d0
mov edi, dword [esi]
test edi, edi
je 0x1004e6d0
lea eax, [esp + 0x48]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x20]
add esp, 8
mov edx, esi
mov dword [esp + 0x24], eax
mov ecx, ebx
call fcn.10044540
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov eax, dword [esp + 0x48]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.10047940
add esp, 8
test eax, eax
je 0x1004e6bd
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov esi, ebx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
push 0
push 8
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
call fcn.1001cd20
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e8ca
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x1c]
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, dword [esp + 0x18]
call fcn.10047ed0
mov ecx, 1
mov edx, esi
push 0x10045a80
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.1003e830
add esp, 8
jmp 0x100489db
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
lea ebx, [edx + 5]
lea ebx, [ecx + ebx*8]
mov ecx, dword [ebp + 4]
mov edi, dword [ebx]
movd xmm0, ebx
mov dword [esp + 0x28], ebx
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0x5c]
mov dword [esp + 0x34], eax
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x48], ecx
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + edx*8]
mov dword [esp + 0x38], ecx
xor ecx, ecx
test edi, edi
jle 0x1004dc2e
cmp edi, 0x10
jb 0x1004dc16
cmp dword [0x1014317c], 2
jl 0x1004dc16
movaps xmm2, xmmword [0x1013c090]
mov eax, edi
and eax, 0x8000000f
jns 0x1004db70
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____]
lea edx, [ebx + 0x20]
mov ebp, edi
mov esi, 8
sub ebp, eax
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebp
jl 0x1004db83
cmp ecx, edi
jge 0x1004dc2e
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x1004dc23
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x7c]
push dword [esp + 0x44]
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [esp + 0x58]
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
call fcn.10044540
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x38]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x100489d7
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
jmp 0x1004b65a
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x1c]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x1004dcbb
mov ecx, esi
call fcn.1003e750
jmp 0x100489db
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov al, byte [esp + 0x3c]
mov ebp, dword [ebx]
movups xmmword [esp + 0x150], xmm0
mov dword [esp + 0x150], esi
movups xmmword [esp + 0x160], xmm0
mov byte [esp + 0x168], al
je 0x1004dd05
mov ecx, esi
call fcn.1003e750
mov edx, dword [esp + 0x10]
mov eax, 0x401
mov dword [esi], 0
jmp 0x1004dd18
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [esp + 0x150]
push dword [edx + 8]
push eax
push dword [edi + 0x2c]
mov eax, dword [ebp + 0x2c]
call eax
add esp, 0xc
mov dword [esp + 0x24], eax
mov edx, ebx
mov ebx, dword [esp + 0x18]
mov ecx, ebx
call fcn.10044540
cmp dword [esp + 0x164], 0
jle 0x1004dd70
push esi
call fcn.10044bd0
add esp, 4
push eax
push 0x1013365c
push ebx
call fcn.1003f710
mov eax, dword [esp + 0x170]
add esp, 0xc
mov dword [esp + 0x24], eax
movzx edx, byte [esp + 0x3c]
mov ecx, esi
call fcn.1003dbf0
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
mov ebp, dword [esp + 0x20]
mov esi, ebx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x10048321
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 [esp + 0x1c]
add esp, 4
mov edx, esi
mov dword [esp + 0x24], eax
call fcn.10044540
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004aa20
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x1004a869
mov edi, dword [esp + 0x10]
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x40]
dec edi
lea edi, [edi + edi*4]
lea edi, [ecx + edi*4]
mov dword [esp + 0x10], edi
jmp 0x1004a86d
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, 1
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.1003dbf0
mov edx, eax
mov dword [esp + 0x24], edx
test edx, edx
jne 0x1004aa20
mov eax, dword [esi]
push dword [ebx + 8]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x24], eax
test edi, edi
jne 0x1004de7b
mov eax, dword [ebp + 0x24]
and dword [ebp + 0x20], 0xfbffffff
mov dword [ebp + 0x24], eax
mov edx, esi
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.10044540
and dword [esi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x24]
jmp 0x1004b329
cmp byte [ebp + 0x57], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
jne 0x1004e8ce
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x1004e6d0
mov edx, dword [ebx]
test edx, edx
je 0x1004e6d0
cmp dword [edx + 0x34], 0
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 8]
je 0x10049e0a
mov al, byte [ebp + 0x5c]
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x1004df0b
nop dword [eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x1004df00
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x5c], al
lea eax, [esp + 0x28]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov esi, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x24], eax
mov edx, ebx
mov al, byte [esp + 0x7f]
mov ecx, esi
mov byte [ebp + 0x5c], al
call fcn.10044540
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x1004df5e
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], edx
je 0x1004dfa8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
jmp 0x1004dfa8
cmp dl, 0x13
jne 0x1004dfa4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x1004dfa4
mov ecx, dword [esp + 0x10]
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x1004e6f5
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
add dword [esi + 0x28], 1
adc dword [esi + 0x2c], 0
test edx, edx
jne 0x1004aa20
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov ecx, dword [ebp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
call fcn.10032740
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ecx, esi
call fcn.10047ed0
mov ecx, dword [ebp + 0x10]
mov edi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x1004e038
mov ecx, esi
call fcn.10032740
mov edx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.10033480
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
cmp dword [esi], edi
je 0x1004e0a6
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov al, byte [esp + 0x3c]
mov dword [esi + 0xc], ebx
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x1004e0a6
mov ebp, dword [esp + 0x10]
lea edx, [esi + 0x1c]
mov ebx, dword [esp + 0x1c]
lea edx, [edx + ecx*4]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x1004e088
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1004e12d
jle 0x1004e0f7
push edi
call fcn.10044bd0
add esp, 4
push eax
push 0x1013365c
push ebx
call fcn.1003f710
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
lea edx, [ebx + 0xe4]
mov ecx, ebp
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.10042510
mov edx, dword [esp + 0x2c]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x1004aa20
jmp 0x100489db
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov eax, dword [edi + 4]
mov edx, 0xf7ff
lea eax, [eax + eax*4]
and word [ecx + eax*8 + 0x10], dx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.10047f00
mov ebx, dword [esp + 0x1c]
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.101174c0
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x100489db
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.10047f00
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + ebx*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.101174c0
mov edi, eax
mov eax, dword [esp + 0x1c]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov esi, dword [esp + 0x18]
shl eax, cl
test eax, edx
jne 0x1004e259
inc dword [esi + 0xc4]
mov ebp, dword [esp + 0x10]
jmp 0x1004b65a
inc dword [esi + 0xc0]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add edi, 0x14
jmp 0x100480b0
mov cl, byte [ebp + 0x5e]
test cl, 0x41
je 0x1004e329
cmp byte [esi + 0x93], 0xfe
je 0x1004e329
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x1004e2a8
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x1004e329
test cl, 0x40
je 0x1004e2d6
mov edx, eax
mov ecx, esi
call fcn.100474a0
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.1001cd70
mov esi, dword [esp + 0x24]
add esp, 0xc
jmp 0x1004e329
cmp dword [ebp + 0xc8], 1
push eax
jle 0x1004e315
push str.____s
push ebp
call fcn.1001fbf0
mov ecx, dword [ebp + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push dword [esp + 0x1c]
push dword [ebp + 0xdc]
push 1
call ecx
push esi
push ebp
call fcn.1001ce80
mov esi, dword [esp + 0x30]
add esp, 0x18
jmp 0x1004e329
mov eax, dword [ebp + 0xd8]
push esi
push dword [ebp + 0xdc]
push 1
call eax
add esp, 0x10
mov eax, dword [edi + 4]
cmp eax, dword [0x10140c04]
jl 0x1004e36c
cmp byte [edi], 0xb5
je 0x1004817e
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x1004e36a
mov eax, 0x14
nop dword [eax]
mov ecx, dword [esi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x1004e361
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x1004e350
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [esi + 0xbc]
jmp 0x1004b65a
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov dword [esi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x92], al
test ecx, ecx
je 0x1004e420
movzx eax, word [edx + 2]
test ax, ax
je 0x1004e3da
push dword [eax*4 + 0x1012a178]
push str._s_constraint_failed
push esi
call fcn.1003f710
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x1004e3ef
push eax
push dword [esi + 0x7c]
push str._z:__s
push ebp
call fcn.1001fbf0
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x1004e3ef
push dword [edx + 0x10]
push 0x1013365c
push esi
call fcn.1003f710
mov ebx, dword [esp + 0x1c]
add esp, 0xc
push dword [esi + 0x7c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
push dword [esi + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.1001fea0
add esp, 0x14
mov ecx, esi
call fcn.10042010
mov ecx, dword [esp + 0x20]
mov edi, eax
mov ebp, dword [esp + 0x14]
cmp edi, 5
jne 0x1004e43e
mov dword [esi + 0x24], eax
jmp 0x1004e9d8
cmp dword [esi + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x1004e9d8
push 0x10131d5c
push 0x16c85
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.1001fea0
add esp, 0x14
mov edx, 0xb
jmp 0x1004aa1c
mov ecx, dword [esp + 0x48]
add edi, edi
and ebx, 0x3f
push dword [ecx + edi*8]
mov ecx, dword [esp + 0x2c]
push dword [ecx]
push dword [eax*4 + 0x10141f94]
movzx eax, byte [ebx + 0x101306d0]
push dword [eax*4 + 0x1012f2b0]
push str.cannot_store__s_value_in__s_column__s._s
push dword [esp + 0x2c]
call fcn.1003f710
add esp, 0x18
mov edx, 0xc13
jmp 0x1004aa1c
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.1003f710
add esp, 8
mov edx, 5
jmp 0x1004aa1c
push str.cannot_release_savepoint___SQL_statements_in_progress
push dword [esp + 0x1c]
call fcn.1003f710
add esp, 8
mov edx, 5
jmp 0x1004aa1c
mov esi, dword [esp + 0x20]
mov byte [esi + 0x55], 0
jmp 0x1004aa24
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x40]
mov esi, edi
imul ecx
mov ecx, dword [esp + 0x20]
mov edi, 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [esi + 0x24], edi
jmp 0x1004e9d4
mov edi, 0x65
jmp 0x1004e9d0
mov esi, dword [esp + 0x20]
and edx, 0x100000
or edx, 0
mov ebp, dword [esp + 0x14]
je 0x1004e55c
mov edx, 8
mov dword [esp + 0x24], edx
jmp 0x1004aa28
mov edx, 0xb
mov dword [esp + 0x24], edx
jmp 0x1004aa28
mov ebp, dword [esp + 0x14]
cmp dl, 5
jne 0x1004e8a2
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
imul ecx
mov ecx, dword [esp + 0x20]
sar edx, 3
mov eax, edx
mov dword [esi + 0x24], edi
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
jmp 0x1004e9d8
mov edx, 0x204
jmp 0x1004aa1c
mov ecx, dword [edi]
call fcn.100330d0
mov edx, dword [esp + 0x24]
jmp 0x1004aa20
mov esi, dword [esp + 0x18]
push str.string_or_blob_too_big
push esi
call fcn.1003f710
add esp, 8
mov edx, 0x12
jmp 0x1004aa1c
push str.index_corruption
mov edx, 0x1797b
mov ecx, 0x30b
call fcn.100c1e90
add esp, 4
mov edx, eax
jmp 0x1004aa1c
mov ecx, 0x17a48
call fcn.100c1ec0
mov edx, eax
jmp 0x1004aa1c
mov eax, dword [esp + 0x18]
mov edx, 6
mov byte [eax + 0x92], 2
jmp 0x1004aa1c
mov ecx, ebp
call fcn.10069140
jmp 0x1004e8ca
push dword [esp + 0xd4]
call fcn.1001cd70
mov edx, dword [esp + 0x28]
add esp, 4
jmp 0x1004aa20
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x2c], 1
call fcn.1003f710
add esp, 8
mov edx, 1
jmp 0x1004aa20
push esi
call fcn.10044bd0
add esp, 4
push eax
push 0x1013365c
push dword [esp + 0x20]
call fcn.1003f710
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x1004aa20
mov ecx, str.out_of
mov dword [esp + 0x24], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x20]
call fcn.1003f710
add esp, 0xc
mov edx, 1
jmp 0x1004aa20
push dword [esp + 0x48]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov esi, ebx
jmp 0x1004e8ce
mov edx, 6
jmp 0x1004aa1c
or edi, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], edi
mov dword [esp + 0x84], eax
jmp 0x1004aa1c
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [esi + 0x92], al
jmp 0x1004aa20
mov eax, dword [esi + 0x1c]
mov ebx, dword [esp + 0x10]
add eax, 2
or eax, 1
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esi + 0x78], eax
cmp byte [ebp + 0x57], 0
jne 0x1004e8ce
test byte [ebp + 0x5e], 4
je 0x1004e750
mov eax, dword [ebp + 0xd8]
push 0
push esi
push dword [ebp + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x40]
mov edi, 0x64
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x20], eax
jmp 0x1004e9d0
mov edx, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x1004e838
test ecx, ecx
je 0x1004e79f
mov edx, 0x204
mov ecx, ebp
call fcn.100bf790
mov al, 1
jmp 0x1004e7dc
test ebx, ebx
je 0x1004e7c4
cmp dword [ebp + 0xc4], 0
jle 0x1004e7c4
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.1003f710
add esp, 8
mov edx, 5
jmp 0x1004aa1c
mov edx, 1
mov ecx, esi
call fcn.10041fa0
mov edi, eax
test edi, edi
jne 0x1004e9d0
mov al, bl
mov ecx, esi
mov byte [ebp + 0x55], al
call fcn.10042010
cmp eax, 5
jne 0x1004e81b
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x40]
mov edi, 5
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ebp + 0x55], al
mov dword [esi + 0x24], edi
jmp 0x1004e9d0
mov ecx, ebp
call fcn.100befa0
cmp dword [esi + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x1004e9d0
test ebx, ebx
jne 0x1004e850
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.1003f710
add esp, 8
jmp 0x1004aa17
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 esi
call fcn.1003f710
add esp, 8
jmp 0x1004aa17
mov eax, dword [esp + 0x94]
mov edx, 9
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x24], edx
jmp 0x1004aa28
mov ebp, dword [esp + 0x14]
mov edx, 9
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x20]
jmp 0x1004aa28
mov eax, dword [esp + 0x94]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
jmp 0x1004e8ce
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ecx, ebp
call fcn.1001d570
push str.out_of_memory
push esi
call fcn.1003f710
add esp, 8
mov edx, 7
jmp 0x1004aa1c
cmp edx, 0x210a
jne 0x1004e905
mov ecx, 0x182d7
call fcn.100c1ec0
mov edx, eax
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x7c], 0
jne 0x1004e92d
cmp edx, 0xc0a
je 0x1004e92d
mov ecx, edx
call fcn.100bf8d0
push eax
push 0x1013365c
push esi
call fcn.1003f710
add esp, 0xc
mov ebx, dword [esp + 0x24]
mov edx, ebx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x24], ebx
call fcn.10020a50
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x40]
push dword [esi + 0x7c]
imul ecx
push dword [esi + 0xc8]
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.1001fea0
add esp, 0x14
cmp byte [esi + 0x95], 2
jne 0x1004e980
mov ecx, esi
call fcn.10042010
cmp ebx, 0xc0a
jne 0x1004e9b1
mov ecx, dword [esp + 0x20]
call fcn.1001d570
mov ecx, dword [esp + 0x20]
mov al, byte [esp + 0x67]
mov edi, 1
test al, al
je 0x1004e9d8
movzx edx, al
dec edx
call fcn.100690e0
mov ecx, dword [esp + 0x20]
jmp 0x1004e9d8
cmp ebx, 0xb
jne 0x1004e991
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x55], 0
jne 0x1004e995
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x1004e995
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x84]
nop
cmp dword [esp + 0x80], ebx
jb 0x1004ea3e
mov edx, dword [esp + 0x6c]
ja 0x1004e9f3
cmp ebp, edx
jb 0x1004ea3e
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x1004ea3e
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x70], edx
adc ebx, 0
call eax
mov ecx, dword [esp + 0x24]
add esp, 4
test eax, eax
je 0x1004e9e0
or edi, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], edi
mov dword [esp + 0x84], eax
mov esi, ecx
mov dword [esp + 0x24], edx
jmp 0x1004aa28
add dword [esi + 0xb4], ebp
cmp dword [esi + 0xa0], 0
je 0x1004ea54
mov ecx, esi
call fcn.10040980
mov ecx, dword [esp + 0x1f4]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101049d1
add esp, 0x1ec
ret