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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1d8
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1d4], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], 0
xor cl, cl
mov dword [esp + 0x10], edi
mov byte [esp + 0x6f], cl
xorps xmm0, xmm0
mov dword [esp + 0x64], 0
cmp dword [edi + 0xa0], 0
mov eax, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 8], eax
mov eax, dword [edi]
mov dword [esp + 0xc], eax
movlpd qword [esp + 0xb8], xmm0
mov dword [esp + 0x18], esi
mov cl, byte [eax + 0x54]
mov byte [esp + 0x54], cl
mov dword [esp + 0xc8], 0
je 0x10057c02
mov ecx, edi
call fcn.1004fc90
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x174], 0
je 0x10057c2b
mov ecx, dword [eax + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
mov eax, dword [esp + 0xc]
sub ecx, edx
mov dword [esp + 0x78], 0
jmp 0x10057c36
or ecx, 0xffffffff
mov dword [esp + 0x78], 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x74], ecx
je 0x1005e36e
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
cmp dword [eax + 0x128], 0
mov dword [eax + 0x1c8], 0
jne 0x1005e350
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x58]
movaps xmm3, xmmword [0x101719d0]
movaps xmm2, xmmword [str.____]
mov edx, dword [esp + 0xbc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov dword [esp + 0x11c], 0xf244
mov ecx, dword [esp + 0xb8]
movaps xmmword [esp + 0x1c0], xmm3
movaps xmmword [esp + 0x1b0], xmm2
add ecx, 1
mov dword [esp + 8], eax
mov dword [esp + 0x7c], ecx
mov cl, byte [eax]
adc edx, 0
mov dword [esp + 0xb4], edx
movzx edx, cl
mov byte [esp + 0x2b], cl
mov dword [esp + 0x2c], edx
cmp edx, 0xb6
ja case.0x10057ce2.89
jmp dword [edx*4 + 0x1005e4bc]
mov ecx, dword [esp + 8]
mov edx, 4
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x58]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 0x10], dx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x18]
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 0x1005d738
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x1005c4ed
mov eax, dword [esi + eax*8]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, 4
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 8]
mov dword [esi + ecx*8 + 4], edx
cmp dword [eax + 8], 0
jne 0x1005ca1d
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x58]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
xor edx, edx
mov word [esi + ecx*8 + 0x10], dx
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov ecx, 4
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x58]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 0x10], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + eax*4]
jmp 0x100584a1
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 8]
je case.0x10057ce2.89
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x1005dd05
cmp dword [eax + 4], 0
jne 0x1005dd05
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
mov ecx, dword [esp + 0x14]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.100537c0
add esp, 8
mov ecx, esi
call fcn.10050830
mov ecx, dword [esp + 8]
cmp dword [ecx + 8], 4
jne 0x10057e61
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], esi
lea eax, [ecx + eax*4]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x10057eb2
call fcn.100577d0
mov ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edx
jmp case.0x10057ce2.89
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edx
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x10057ef7
mov ecx, edx
call fcn.100577d0
mov edx, eax
jmp 0x10057f00
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [esp + 8]
mov dword [edx], ecx
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x10057f3c
call fcn.100577d0
mov ecx, eax
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 8]
movsd qword [ecx], xmm0
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10057f83
mov ecx, esi
call fcn.100577d0
mov esi, eax
jmp 0x10057f8c
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x10057f9b
xor ecx, ecx
jmp 0x10057fb3
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10057fa0
mov eax, dword [esp + 8]
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [esp + 0x54], 1
mov dword [eax + 4], ecx
je 0x10058030
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.1004db70
mov edi, eax
add esp, 0x10
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1005e051
movzx edx, byte [esp + 0x54]
mov ecx, esi
call fcn.1004cc30
test eax, eax
jne 0x100581f8
mov ecx, dword [esp + 8]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x1005801a
push dword [ecx + 0x10]
push dword [esp + 0x10]
call fcn.10026bf0
mov ecx, dword [esp + 0x10]
add esp, 8
mov edx, dword [esp + 8]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [edx + 4], ecx
jmp 0x10058034
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp ecx, dword [eax + 0x78]
jg 0x1005e055
mov byte [edx], 0x49
jmp 0x1005804e
mov edx, dword [esp + 8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x10058070
call fcn.100577d0
mov edx, dword [esp + 8]
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [edx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x54]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1005849d
mov edi, dword [esp + 0x18]
lea esi, [eax + eax*4]
mov eax, dword [esp + 8]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
mov edi, dword [esp + 0x10]
jne 0x1005849d
mov eax, dword [esp + 0x18]
cmp dword [eax + esi*8 + 4], edx
jne 0x1005849d
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x100580fe
mov ecx, edx
call fcn.100577d0
mov edx, eax
jmp 0x10058107
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 8]
mov esi, dword [esp + 8]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, 1
cmp dword [esi + 4], 0
mov esi, 0x101
mov dword [edx + 0xc], 0
cmovne eax, esi
sub edi, ecx
movzx eax, ax
lea esi, [edx + 0x10]
mov dword [esp + 0x20], eax
mov word [esi], ax
test edi, edi
jle 0x1005849d
mov ecx, 0x9000
nop dword [eax]
test word [esi + 0x28], cx
lea esi, [esi + 0x28]
je 0x1005816a
lea ecx, [esi - 0x10]
call fcn.1004d260
mov eax, dword [esp + 0x20]
mov ecx, 0x9000
dec edi
mov word [esi], ax
mov dword [esi - 4], 0
test edi, edi
jg 0x10058150
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov edx, 0xffc1
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x100581cd
mov ecx, esi
call fcn.100577d0
mov esi, eax
jmp 0x100581d6
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x10058227
mov edx, eax
mov ecx, esi
call fcn.1004d880
mov ecx, esi
call fcn.1004d070
test eax, eax
je 0x1005823a
mov eax, dword [esp + 0xc]
mov ecx, eax
call fcn.10027200
mov edi, dword [esp + 0x10]
push str.out_of_memory
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x14]
mov edx, 7
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.1004db70
add esp, 0x10
mov dl, byte [esp + 0x54]
mov eax, dword [esp + 8]
mov byte [esi + 0x12], dl
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.1004da60
test eax, eax
jne 0x1005e051
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10058289
mov ecx, esi
call fcn.1004d860
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov word [esi + 0x10], ax
jmp 0x1005849d
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x100582e1
cmp dword [esi + 0x18], 0
je 0x100582ec
mov ecx, esi
call fcn.1004d2a0
mov ecx, dword [esp + 0x30]
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 0x10058332
mov ecx, esi
call fcn.1004cfe0
test eax, eax
jne 0x100581f8
mov ecx, dword [esp + 0x30]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x30], ecx
jne 0x100582d0
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.1004dab0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x1005838e
mov ecx, esi
call fcn.1004cfe0
test eax, eax
jne 0x100581f8
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x100583ac
mov ecx, dword [esp + 8]
test byte [ecx + 2], 2
je 0x100583ac
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x30]
mov eax, ecx
dec ecx
mov dword [esp + 0x30], ecx
test eax, eax
je 0x1005849d
add esi, 0x28
add edi, 0x28
jmp 0x10058363
mov ecx, dword [esp + 8]
push 0x4000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004dab0
mov eax, dword [esp + 0xc]
add esp, 4
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov edi, 0x9000
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
test word [esi + eax*8 + 0x10], di
lea ecx, [esi + eax*8]
mov eax, dword [edx + 4]
mov edi, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
je 0x1005842d
push eax
push edx
call fcn.1004d8d0
mov eax, dword [esp + 0x10]
add esp, 8
jmp case.0x10057ce2.89
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 8]
mov dword [ecx], edx
jmp case.0x10057ce2.89
xor edx, edx
mov ecx, edi
call fcn.100511e0
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
movzx edx, word [ecx + 0x10]
mov al, byte [esi + 0x10]
or al, dl
mov dword [esp + 0x38], edx
test al, 1
je 0x100584cc
mov ecx, edi
call fcn.1004d860
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
movaps xmm2, xmmword [esp + 0x1b0]
add eax, 0x14
movaps xmm3, xmmword [esp + 0x1c0]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xb4]
jmp 0x10057cb4
test dl, 0x12
jne 0x10058500
mov dl, byte [esp + 0x54]
push 0
call fcn.1004d0d0
add esp, 4
test eax, eax
jne 0x100581f8
mov eax, dword [esp + 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [esp + 0x38], ecx
jmp 0x1005852c
test edx, 0x400
je 0x1005852c
call fcn.1004d070
test eax, eax
jne 0x100581f8
mov eax, dword [esp + 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [esp + 0x38], eax
movzx eax, word [esi + 0x10]
mov dword [esp + 0x30], eax
test al, 0x12
jne 0x1005854a
mov dl, byte [esp + 0x54]
mov ecx, esi
push 0
call fcn.1004d0d0
add esp, 4
jmp 0x10058558
test eax, 0x400
je 0x10058573
mov ecx, esi
call fcn.1004d070
test eax, eax
jne 0x100581f8
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esp + 0x20], eax
cdq
mov ecx, eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x5c], edx
jg 0x1005e051
jl 0x100585aa
cmp ecx, eax
ja 0x1005e051
mov edx, dword [esp + 0x20]
xor eax, eax
cmp edi, esi
mov ecx, edi
sete al
add edx, 2
push eax
call fcn.1004cc50
add esp, 4
test eax, eax
jne 0x100581f8
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [edi + 0x10], ax
cmp edi, esi
je 0x100585fc
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call fcn.10139d00
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x2c]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [edi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.10139d00
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov dl, byte [esp + 0x54]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x60]
cmp dl, 1
jbe 0x10058639
mov eax, dword [esp + 0x5c]
and ecx, 0xfffffffe
mov dword [esp + 0x24], eax
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0
mov eax, dword [edi + 8]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [edi + 0x10], ax
mov dword [edi + 0xc], ecx
mov byte [edi + 0x12], dl
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 0x10]
lea edi, [esi + eax*8]
mov eax, edx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov al, cl
and al, dl
test al, 4
jne 0x100586ef
or cl, dl
test cl, 1
jne 0x10058900
and edx, 0x2d
je 0x100586bf
mov eax, edx
jmp 0x100586c9
mov ecx, edi
call fcn.100576d0
movzx eax, ax
mov dword [esp + 0x38], eax
mov ax, word [esi + 0x10]
and ax, 0x2d
jne 0x100586de
mov ecx, esi
call fcn.100576d0
movzx ecx, ax
mov eax, dword [esp + 0x38]
and al, cl
test al, 4
je 0x100587a2
mov eax, dword [esp + 8]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esi]
movzx eax, byte [eax]
mov esi, dword [esi + 4]
add eax, 0xffffff96
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], esi
cmp eax, 3
ja case.default.0x1005871a
jmp dword [eax*4 + 0x1005e798]
push edx
push ecx
lea ecx, [esp + 0xc8]
call fcn.1002cce0
add esp, 8
test eax, eax
jne 0x1005879a
jmp 0x100588cd
push edx
push ecx
lea ecx, [esp + 0xc8]
call fcn.1002cd80
add esp, 8
test eax, eax
jne 0x1005879a
jmp 0x100588cd
push edx
push ecx
lea ecx, [esp + 0xc8]
call fcn.1002cdd0
add esp, 8
test eax, eax
jne 0x1005879a
jmp 0x100588cd
mov eax, ecx
or eax, edx
je 0x10058900
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x10058895
test edi, edi
jne 0x10058895
cmp esi, 0x80000000
jne 0x10058895
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov ecx, edi
call fcn.1004d400
mov ecx, esi
movsd qword [esp + 0x20], xmm0
call fcn.1004d400
mov eax, dword [esp + 8]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x100587c5
jmp dword [eax*4 + 0x1005e7a8]
addsd xmm0, qword [esp + 0x20]
jmp 0x10058858
subsd xmm0, qword [esp + 0x20]
jmp 0x10058858
mulsd xmm0, qword [esp + 0x20]
jmp 0x10058858
movsd xmm1, qword [esp + 0x20]
ucomisd xmm1, qword [0x10171648]
lahf
test ah, 0x44
jnp 0x10058900
divsd xmm0, xmm1
jmp 0x10058858
mov ecx, edi
call fcn.1004d340
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov edi, edx
call fcn.1004d340
mov ecx, esi
mov dword [esp + 0x20], eax
or ecx, edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
je 0x10058900
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x10058845
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push dword [esp + 0x2c]
call fcn.10149e80
mov ecx, eax
call fcn.1014a440
movsd qword [esp + 0x20], xmm0
call fcn.1002a2f0
test eax, eax
jne 0x10058900
mov edx, dword [esp + 0x30]
mov ecx, 0xf248
movsd xmm0, qword [esp + 0x20]
mov ax, word [edx + 0x10]
and ax, cx
movsd qword [edx], xmm0
or ax, 8
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x1005849d
push edx
push ecx
push esi
push edi
call fcn.10149dd0
jmp 0x100588bf
mov eax, ecx
or eax, edx
je 0x10058900
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x100588b6
mov ecx, 1
xor edx, edx
push edx
push ecx
push esi
push edi
call fcn.10149e80
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc0], eax
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
or ax, 4
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x1005849d
mov eax, dword [esp + 0x30]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x1005891b
mov ecx, eax
call fcn.1004d260
jmp 0x1005849d
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x1005849d
mov eax, dword [eax + 4]
test eax, eax
je 0x1005c4ed
push 0
push 0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d900
add esp, 8
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
mov dword [esp + 0x20], edx
test al, 1
je 0x100589b1
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x1005899b
mov ecx, edx
call fcn.1004d260
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
mov eax, 1
mov word [edx + 0x10], ax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
call fcn.1004d340
mov esi, edx
mov dword [esp + 0xd8], eax
mov ecx, edi
mov dword [esp + 0xdc], esi
call fcn.1004d340
mov edi, eax
mov eax, dword [esp + 8]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x100589ea
mov ecx, dword [esp + 0xd8]
and ecx, edi
and esi, edx
jmp 0x10058acd
cmp cl, 0x67
jne 0x100589ff
mov ecx, dword [esp + 0xd8]
or ecx, edi
or esi, edx
jmp 0x10058acd
mov eax, edi
or eax, edx
je 0x10058ac6
test edx, edx
jg 0x10058a37
jl 0x10058a13
test edi, edi
jae 0x10058a2c
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10058a37
jg 0x10058a25
cmp edi, 0xffffffc0
jbe 0x10058a37
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x10058a66
jg 0x10058a37
cmp edi, 0x40
jb 0x10058a66
test esi, esi
jg 0x10058a53
jl 0x10058a47
cmp dword [esp + 0xd8], 0
jae 0x10058a53
cmp cl, 0x68
je 0x10058a53
or ecx, 0xffffffff
or esi, ecx
jmp 0x10058acd
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
jmp 0x10058acd
movq xmm1, qword [esp + 0xd8]
movd xmm0, edi
cmp cl, 0x68
jne 0x10058a8c
psllq xmm1, xmm0
movq qword [esp + 0x48], xmm1
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
jmp 0x10058acd
psrlq xmm1, xmm0
movq qword [esp + 0x48], xmm1
test esi, esi
jg 0x10058a5c
jl 0x10058aa6
cmp dword [esp + 0xd8], 0
jae 0x10058a5c
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.10149ff0
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
or ecx, eax
or esi, edx
jmp 0x10058acd
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x20]
mov ax, word [edx + 0x10]
mov dword [edx], ecx
mov ecx, 0xf244
and ax, cx
mov dword [edx + 4], esi
or ax, 4
mov word [edx + 0x10], ax
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.1004d510
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 8]
adc dword [esi + 4], edx
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x10058b62
push dword [esp + 0x54]
mov dl, 0x43
mov ecx, esi
call fcn.100575b0
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x10058b62
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jne 0x1005d5bb
mov edx, 0x14
jmp 0x1005de4f
mov eax, dword [esp + 8]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea ecx, [esi + eax*8]
je 0x1005c4ed
call fcn.1004d540
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x10058bcb
mov ecx, esi
call fcn.1004d070
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
mov ecx, esi
push dword [esp + 0x54]
mov dl, byte [eax + 8]
call fcn.1004d6d0
add esp, 4
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [ecx + 0x10]
movzx ecx, word [esi + 0x10]
mov edi, ecx
mov dword [esp + 0x44], eax
and edi, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x30], edi
test byte [esp + 0x30], 4
je 0x10058cc0
mov eax, dword [esp + 0x2c]
mov edi, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp esi, eax
jl 0x10058c7c
jg 0x10058c50
cmp edi, ecx
jbe 0x10058c72
cmp byte [edx + 0x10161b88], 0
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jne 0x1005d5bb
mov dword [esp + 0x64], 1
jmp 0x100584a5
cmp esi, eax
jg 0x10058c9e
jl 0x10058c7c
cmp edi, ecx
jae 0x10058c9e
cmp byte [edx + 0x10161b7c], 0
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jne 0x1005d5bb
mov dword [esp + 0x64], 0xffffffff
jmp 0x100584a5
cmp byte [edx + 0x10161b82], 0
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jne 0x1005d5bb
mov dword [esp + 0x64], 0
jmp 0x100584a5
mov edx, dword [esp + 0x44]
mov eax, ecx
or eax, edx
mov dword [esp + 0x20], eax
test al, 1
je 0x10058d35
mov eax, dword [esp + 8]
movzx eax, word [eax + 2]
test al, al
jns 0x10058d18
test byte [esp + 0x30], 1
je 0x10058d05
test ecx, 0x100
jne 0x10058d05
mov eax, dword [esp + 8]
mov dword [esp + 0x64], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x10161b82]
jmp 0x10058e94
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x10058e37
mov edi, dword [esp + 0x10]
test al, 0x10
mov eax, dword [esp + 8]
jne 0x1005d5bb
mov dword [esp + 0x64], 1
jmp 0x100584a5
mov edi, dword [esp + 8]
mov al, byte [edi + 2]
and al, 0x47
mov byte [esp + 0x2b], al
cmp al, 0x43
mov eax, dword [esp + 0x20]
jb 0x10058d87
test al, 2
je 0x10058e1e
mov al, dl
and al, 0x2e
cmp al, 2
jne 0x10058d6d
mov ecx, dword [esp + 0x2c]
xor edx, edx
call fcn.10057470
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x1c], ecx
and cl, 0x2e
cmp cl, 2
jne 0x10058e1e
xor edx, edx
mov ecx, esi
call fcn.10057470
jmp 0x10058e1e
cmp byte [esp + 0x2b], 0x42
jne 0x10058e1e
test al, 2
je 0x10058e1e
test dl, 2
jne 0x10058deb
test dl, 0x2c
je 0x10058deb
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov dl, byte [esp + 0x54]
push 1
call fcn.1004d0d0
movzx eax, word [edi + 0x10]
add esp, 4
mov edx, dword [esp + 0x44]
xor edx, eax
and edx, 0xdbf
xor edx, eax
cmp edi, esi
mov edi, dword [esp + 8]
movzx edx, dx
mov dword [esp + 0x44], edx
jne 0x10058de7
mov eax, edx
or eax, 2
movzx ecx, ax
mov dword [esp + 0x1c], ecx
jmp 0x10058deb
mov ecx, dword [esp + 0x1c]
test cl, 2
jne 0x10058e1e
test cl, 0x2c
je 0x10058e1e
mov dl, byte [esp + 0x54]
mov ecx, esi
push 1
call fcn.1004d0d0
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, dword [esp + 0x1c]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [esp + 0x1c], ecx
push dword [edi + 0x10]
mov edx, dword [esp + 0x30]
mov ecx, esi
call fcn.10052560
mov ecx, dword [esp + 0x20]
add esp, 4
mov edx, dword [esp + 0x44]
mov edi, eax
mov dword [esp + 0x64], eax
movzx eax, cx
mov dword [esp + 0x38], eax
movzx eax, dx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 8]
movzx eax, byte [eax]
test edi, edi
jge 0x10058e5e
mov al, byte [eax + 0x10161b7c]
jmp 0x10058e94
mov ecx, dword [esp + 0x30]
movzx edx, cx
mov ecx, dword [esp + 0x38]
movzx ecx, cx
mov dword [esp + 0x64], edi
test edi, edi
jne 0x10058e7c
mov al, byte [eax + 0x10161b82]
jmp 0x10058e94
mov ecx, dword [esp + 0x30]
mov al, byte [eax + 0x10161b88]
movzx edx, cx
mov ecx, dword [esp + 0x38]
movzx ecx, cx
mov dword [esp + 0x64], edi
mov word [esi + 0x10], cx
test al, al
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 8]
mov word [ecx + 0x10], dx
jne 0x1005ca1d
jmp 0x100584a1
cmp dword [esp + 0x64], 0
je 0x1005d5bb
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
test byte [edx + 2], 1
jne 0x10058ecf
xor eax, eax
jmp 0x10058ed5
mov eax, dword [edx - 4]
add eax, 4
mov esi, dword [esp + 8]
mov edi, dword [esp + 8]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov esi, dword [esi + 4]
mov dword [esp + 0x48], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x20], esi
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x38], edx
test ecx, ecx
jle 0x1005849d
lea edi, [edx + 0x14]
nop word [eax + eax]
test eax, eax
je 0x10058f19
mov ecx, dword [eax + esi*4]
jmp 0x10058f1b
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x18]
push dword [edi]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x4c]
add eax, ecx
mov dword [esp + 0x30], edx
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x64], eax
call fcn.10052560
mov edx, eax
add esp, 4
mov dword [esp + 0x64], edx
test edx, edx
jne 0x10058f7e
mov eax, dword [esp + 0x30]
inc esi
mov edx, dword [esp + 0x38]
add edi, 4
cmp esi, dword [esp + 0x5c]
jl 0x10058f10
jmp 0x1005849d
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x10058fa5
mov eax, dword [esp + 0x60]
test byte [eax + 0x10], 1
jne 0x10058f9f
mov eax, dword [esp + 0x2c]
test byte [eax + 0x10], 1
je 0x10058fa5
neg edx
mov dword [esp + 0x64], edx
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 8]
je 0x100584a1
neg edx
mov dword [esp + 0x64], edx
jmp 0x100584a1
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 8]
test edx, edx
jns 0x10058fe0
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
jmp case.0x10057ce2.89
jne 0x10058ff7
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
jmp case.0x10057ce2.89
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov edi, 2
mov edx, edi
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d430
mov esi, eax
mov edx, edi
mov eax, dword [esp + 8]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
call fcn.1004d430
lea edx, [eax + esi*2]
mov eax, dword [esp + 8]
cmp byte [eax], 0x2c
jne 0x10059054
mov dl, byte [esi + edx + 0x10165778]
jmp 0x1005905b
mov dl, byte [esi + edx + 0x1016671c]
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x18]
add esi, 0x10
lea edi, [eax + eax*4]
movzx ecx, word [esi + edi*8]
lea esi, [esi + edi*8]
mov dword [esp + 0x20], esi
cmp dl, 2
jne 0x10059089
and ecx, 0xf241
or ecx, 1
mov word [esi], cx
jmp 0x1005849d
mov esi, dword [esp + 0x18]
and ecx, 0xf244
movzx eax, dl
or ecx, 4
cdq
mov dword [esi + edi*8], eax
mov eax, esi
mov esi, dword [esp + 0x20]
mov dword [eax + edi*8 + 4], edx
mov word [esi], cx
jmp 0x1005849d
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d430
mov ecx, dword [esp + 8]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
jmp 0x10058938
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
jne 0x10059115
xor edx, edx
call fcn.1004d430
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.1004d900
mov eax, dword [esp + 0x10]
add esp, 8
jmp 0x100584a5
mov ecx, esi
call fcn.1004d860
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.1004d860
test byte [edi + 0x10], 1
jne 0x1005849d
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.1004d340
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x1005849d
mov edi, dword [edi + 0xd0]
mov eax, dword [esp + 0x10]
test edi, edi
je 0x100591be
mov ecx, dword [esp + 8]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
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 0x1005d5b3
bts edx, ecx
mov byte [esi + edi], dl
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x18]
jmp 0x100591d1
mov eax, dword [eax + 0x68]
mov edi, dword [esp + 8]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x1005ca19
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d430
test eax, eax
mov eax, dword [esp + 8]
jne 0x1005ca1d
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
sete dl
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d430
test eax, eax
mov eax, dword [esp + 8]
je 0x1005ca1d
jmp case.0x10057ce2.89
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 8]
jne 0x1005d5bb
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x100592af
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x1005929a
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x10059291
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
movzx eax, ax
jmp 0x100592cf
movzx eax, byte [eax + 0x1016147c]
jmp 0x100592cf
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x10]
mov eax, 1
dec ecx
shl ax, cl
movzx eax, ax
jmp 0x100592cf
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.100540f0
mov edx, 1
add esp, 4
lea ecx, [eax - 1]
shl dx, cl
movzx eax, dx
mov edi, dword [esp + 8]
test word [edi + 2], ax
mov eax, edi
mov edi, dword [esp + 0x10]
jne 0x1005d5bb
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x1005930e
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x1005930e
mov eax, dword [ecx + 8]
jmp 0x10058934
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d860
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 8]
je 0x1005d5bb
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1005c4ed
cmp byte [eax + 2], 0
mov eax, dword [esp + 8]
je case.0x10057ce2.89
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d860
jmp 0x1005d5b7
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x1c], ecx
nop dword [eax]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x44], edx
cmp eax, dword [edi + 0x1c]
je 0x100593f1
cmp byte [esi + 2], 0
jne 0x10059450
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x100593cd
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1005941b
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x1005941b
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov edi, dword [esp + 0x10]
jmp 0x10059385
cmp byte [edi], 0
je 0x10059430
mov ecx, esi
call fcn.100519d0
mov edi, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de8f
mov ecx, dword [esp + 0x1c]
jmp 0x10059390
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x10059590
mov ecx, esi
call fcn.100519d0
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov ecx, dword [esp + 0x1c]
jmp 0x10059390
mov ecx, esi
call fcn.10051960
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov ecx, edi
call fcn.100435a0
lea edx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.10043b90
mov edx, dword [esp + 0x44]
mov ecx, eax
mov edi, dword [esp + 0x10]
jmp 0x1005947d
cmp byte [esi], 3
jne 0x10059571
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x10059571
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ecx*8 + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1c]
lea edi, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [edx], eax
mov dword [esp + 0x30], edi
cmp eax, 0x80
jae 0x100594a0
mov eax, 1
jmp 0x100594af
mov ecx, dword [esi + 0x4c]
call fcn.1002cb90
mov edx, dword [esp + 0x44]
movzx eax, al
mov dword [edi], eax
xor eax, eax
lea edi, [esi + 0x3e]
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x10059568
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x100596cd
cmp eax, dword [esi + 0x50]
ja 0x100596cd
mov ecx, dword [esp + 0x1c]
movzx eax, word [edi]
cmp eax, ecx
ja 0x10059740
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x34]
mov dword [esp + 0x30], ecx
cmp eax, dword [edx]
jae 0x100596ea
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x10059598
xorps xmm0, xmm0
lea eax, [esp + 0x150]
movaps xmmword [esp + 0x150], xmm0
movaps xmmword [esp + 0x160], xmm0
movq qword [esp + 0x170], xmm0
mov edx, dword [edx]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.1004dfa0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x38], eax
jmp 0x1005959c
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x38], eax
jmp 0x1005959c
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d860
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
lea edi, [esi + 0x3e]
jmp 0x100594ec
mov dword [esp + 0x30], ecx
movzx ecx, word [edi]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x48], ecx
mov eax, dword [edx + ecx*4]
xor edx, edx
mov edi, dword [edi]
add edi, dword [esp + 0x38]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x50], edx
lea edx, [ecx + 0x17]
lea edx, [esi + edx*4]
mov dword [esp + 0x5c], edx
mov eax, dword [eax]
add eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
movzx eax, byte [edi]
mov dword [esp + 0x68], eax
mov dword [edx], eax
mov ecx, dword [esp + 0x68]
cmp ecx, 0x80
jae 0x100595fd
inc edi
call fcn.10051a50
mov ecx, dword [esp + 0x60]
movzx eax, al
cdq
add ecx, eax
adc dword [esp + 0x50], edx
jmp 0x1005962b
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.1002cb90
mov ecx, dword [esp + 0x5c]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x68]
mov dword [ecx], eax
mov ecx, dword [esp + 0x68]
call fcn.10051a30
mov ecx, dword [esp + 0x60]
add ecx, eax
adc dword [esp + 0x50], 0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
inc eax
add dword [esp + 0x5c], 4
mov dword [esp + 0x60], ecx
mov dword [esp + 0x48], eax
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0x5c]
cmp eax, dword [esp + 0x1c]
ja 0x1005965e
cmp edi, dword [esp + 0x2c]
jb 0x100595d2
mov edx, dword [esp + 0x2c]
jmp 0x10059666
mov edx, dword [esp + 0x2c]
cmp edi, edx
jb 0x10059699
cmp edi, edx
ja 0x100596ac
cmp ecx, dword [esi + 0x50]
jne 0x100596ac
cmp dword [esp + 0x50], 0
jne 0x100596a8
sub edi, dword [esp + 0x38]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], ax
mov dword [esi + 0x34], edi
jne 0x10059693
lea ecx, [esp + 0x150]
call fcn.1004d2e0
mov ecx, dword [esp + 0x68]
jmp 0x100596f0
mov edx, dword [esp + 0x50]
test edx, edx
jb 0x10059676
ja 0x100596a8
cmp ecx, dword [esi + 0x50]
jbe 0x10059676
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
cmp dword [eax], 0
jne 0x100596bb
xor eax, eax
mov edi, edx
jmp 0x10059676
cmp dword [esi + 0x4c], 0
jne 0x100596cd
lea ecx, [esp + 0x150]
call fcn.1004d2e0
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x1005de6f
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
jmp 0x100584a1
xor ecx, ecx
mov dword [esp + 0x68], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [esp + 0x1c]
ja 0x10059748
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
jne 0x1005972e
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.1004dab0
mov eax, dword [esp + 0xc]
add esp, 4
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
call fcn.1004d860
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
mov dword [esp + 0x20], edi
test word [edi + 0x10], ax
je 0x10059773
mov ecx, edi
call fcn.1004d860
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x20]
jb 0x10059831
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x1c]
add eax, dword [edx + esi*4]
mov dword [esp + 0x20], eax
cmp ecx, 0xc
jae 0x100597b1
mov edx, ecx
mov ecx, eax
push edi
call fcn.10051a60
add esp, 4
jmp 0x1005849d
mov al, byte [esp + 0x54]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x100597f4
mov eax, dword [esp + 0xc]
cmp esi, dword [eax + 0x78]
jg 0x1005e051
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.1004cc50
add esp, 4
test eax, eax
jne 0x100581f8
jmp 0x100597fa
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x24]
push dword [edi + 8]
call fcn.10139d00
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 + 0x68]
and eax, 1
mov ax, word [eax*2 + 0x1015de08]
mov word [edi + 0x10], ax
jmp 0x1005849d
mov al, byte [esp + 0x54]
mov byte [edi + 0x12], al
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x68]
mov al, byte [eax + 2]
and al, 0xc0
je 0x10059859
cmp al, 0x80
je 0x10059868
cmp edx, 0xc
jb 0x10059859
test dl, 1
je 0x10059868
cmp al, 0xc0
je 0x10059868
mov ecx, edx
call fcn.10051a30
test eax, eax
jne 0x1005987b
mov edx, dword [esp + 0x68]
push edi
mov ecx, 0x10160ea8
call fcn.10051a60
add esp, 4
jmp 0x1005849d
mov ecx, dword [esp + 0x1c]
mov edx, ecx
mov eax, dword [esp + 0x44]
push edi
push dword [esp + 0xcc]
mov edi, dword [esp + 0x18]
push dword [edi + 0x1c]
push 0
push dword [eax + ecx*4]
mov ecx, esi
push dword [esp + 0x7c]
call fcn.100578b0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de7d
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
mov edi, dword [edx + 4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x5c], edi
cmp ax, word [edx + 0x22]
jge 0x1005849d
add edi, 8
mov dword [esp + 0x48], edi
movzx eax, word [edi + 6]
test al, 0x60
je 0x10059910
test al, 0x20
jne 0x100599c4
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], 0
jne 0x100599c1
push dword [esp + 0x54]
mov dl, byte [edi]
mov ecx, esi
call fcn.100575b0
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x38], ecx
test cl, 1
jne case.default.0x10059942
mov eax, dword [edi - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x10059942
jmp dword [edx*4 + 0x1005e7b8]
test cl, 0x10
jmp 0x100599b3
test cl, 4
jmp 0x100599b3
test cl, 2
jmp 0x100599b3
test cl, 4
je 0x100599b0
mov edi, dword [esi]
mov edx, edi
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x10059982
jb 0x1005997a
cmp edx, 0xffffffff
ja 0x10059982
or ecx, 0x20
movzx eax, cx
jmp 0x1005999a
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.1014a440
mov eax, dword [esp + 0x38]
or eax, 8
movsd qword [esi], xmm0
movzx eax, ax
mov edi, 0x10
mov edx, esi
and eax, 0xfffb
mov word [edx + edi], ax
mov edi, dword [esp + 0x48]
jmp case.default.0x10059942
test cl, 0x28
je 0x1005de95
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], edi
cmp ecx, eax
jl 0x100598f2
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi]
push dword [esp + 0x54]
mov dl, al
mov ecx, esi
call fcn.100575b0
add esp, 4
cmp byte [edi], 0x45
jne 0x10059a5d
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x20], ecx
test cl, 4
je 0x10059a5d
mov edx, dword [esi]
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x10059a3f
jb 0x10059a30
cmp edx, 0xffffffff
ja 0x10059a3f
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x10059a5d
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.1014a440
mov eax, dword [esp + 0x20]
and eax, 0xfff9
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
mov al, byte [edi + 1]
inc edi
test al, al
je 0x1005849d
add esi, 0x28
jmp 0x100599f3
mov edx, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov dword [esp + 0x44], 0
movlpd qword [esp + 0x38], xmm0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x5c], eax
test edi, edi
je 0x10059aec
lea esi, [ecx + 0x10]
push dword [esp + 0x54]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.100575b0
add esp, 4
cmp byte [edi], 0x45
jne 0x10059adf
movzx eax, word [esi]
test al, 4
je 0x10059adf
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x10059ab7
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], edi
lea esi, [eax*8 - 0xc]
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x3c]
add esi, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x60], eax
nop dword [eax]
movzx ecx, word [esi - 0xc]
mov dword [esp + 0x38], ecx
test cl, 1
je 0x10059b43
inc dword [esp + 0x44]
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
jmp 0x10059d68
test cl, 0x24
je 0x10059cc1
cmp dword [esi - 0x18], 0
mov eax, dword [esi - 0x1c]
jg 0x10059b66
jl 0x10059b5b
test eax, eax
jae 0x10059b66
mov edx, eax
mov eax, dword [esi - 0x18]
not edx
not eax
jmp 0x10059b6b
mov edx, eax
mov eax, dword [esi - 0x18]
inc dword [esp + 0x44]
test eax, eax
ja 0x10059c4b
jb 0x10059b7e
cmp edx, 0x7f
ja 0x10059bcd
mov eax, dword [esi - 0x1c]
and eax, 1
mov dword [esp + 0x48], 0
cmp eax, dword [esi - 0x1c]
jne 0x10059bb3
mov eax, dword [esp + 0x48]
cmp eax, dword [esi - 0x18]
jne 0x10059bb3
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x95], 4
jb 0x10059bb3
lea eax, [edx + 8]
mov dword [esp + 0x38], eax
jmp 0x10059d60
add dword [esp + 0x50], 1
mov eax, 1
mov dword [esp + 0x38], eax
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d60
test eax, eax
ja 0x10059c4b
jb 0x10059bdb
cmp edx, 0x7fff
ja 0x10059bf7
mov edx, dword [esp + 0x50]
mov ecx, 2
add edx, 2
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d68
test eax, eax
ja 0x10059c4b
jb 0x10059c05
cmp edx, 0x7fffff
ja 0x10059c21
mov edx, dword [esp + 0x50]
mov ecx, 3
add edx, 3
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d68
test eax, eax
ja 0x10059c4b
jb 0x10059c2f
cmp edx, 0x7fffffff
ja 0x10059c4b
mov edx, dword [esp + 0x50]
mov ecx, 4
add edx, 4
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d68
cmp eax, 0x7fff
ja 0x10059c75
jb 0x10059c59
cmp edx, 0xffffffff
ja 0x10059c75
mov edx, dword [esp + 0x50]
mov ecx, 5
add edx, 6
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d68
mov edx, dword [esp + 0x50]
add edx, 8
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
test cl, 0x20
je 0x10059cb7
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.1014a440
mov ecx, dword [esp + 0x38]
and ecx, 0xffdf
movsd qword [esi - 0x1c], xmm0
or ecx, 8
mov word [esi - 0xc], cx
mov ecx, 7
jmp 0x10059d64
mov ecx, 6
jmp 0x10059d68
test cl, 8
je 0x10059ce2
inc dword [esp + 0x44]
mov ecx, 7
add edx, 8
mov dword [esp + 0x50], edx
adc edi, 0
mov dword [esp + 0x1c], edi
jmp 0x10059d68
mov edx, dword [esi - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [esp + 0x48], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [esp + 0x38], eax
test ecx, 0x400
je 0x10059d46
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x1c]
je 0x10059d2f
lea ecx, [esi - 0x1c]
call fcn.1004d070
test eax, eax
jne 0x100581f8
mov edx, dword [esp + 0x48]
add edx, dword [esi - 0x1c]
jmp 0x10059d3e
mov eax, ecx
cdq
add dword [esp + 0x60], eax
adc dword [esp + 0x2c], edx
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
add dword [esp + 0x50], edx
push 0
adc edi, 0
push eax
mov dword [esp + 0x24], edi
call fcn.1002cc10
add esp, 8
add dword [esp + 0x44], eax
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov eax, esi
mov dword [eax], ecx
lea eax, [esi - 0x1c]
cmp eax, dword [esp + 0x30]
je 0x10059d7d
sub esi, 0x28
jmp 0x10059b20
mov eax, dword [esp + 0x44]
cmp eax, 0x7e
jle 0x10059dad
cdq
push edx
push eax
call fcn.1002cc10
mov esi, eax
mov eax, dword [esp + 0x4c]
add eax, esi
mov dword [esp + 0x4c], eax
cdq
push edx
push eax
call fcn.1002cc10
add esp, 0x10
cmp esi, eax
mov eax, dword [esp + 0x44]
jge 0x10059db2
inc eax
mov dword [esp + 0x44], eax
cdq
mov esi, eax
mov ecx, edx
add esi, dword [esp + 0x50]
mov eax, dword [esp + 0x5c]
adc ecx, edi
mov edi, esi
add edi, dword [esp + 0x60]
mov eax, dword [eax + 0x18]
adc ecx, dword [esp + 0x2c]
cdq
cmp ecx, edx
jg 0x10059de5
jl 0x10059dd9
cmp edi, eax
ja 0x10059de5
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x10059e16
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x1005e051
jl 0x10059dff
cmp edi, eax
ja 0x1005e051
mov ecx, dword [esp + 0x5c]
mov edx, esi
call fcn.1004ced0
test eax, eax
jne 0x100581f8
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x2c]
mov dword [edx + 0xc], esi
je 0x10059e39
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], ecx
lea esi, [ecx + eax]
cmp eax, 0x80
jge 0x10059e53
mov byte [ecx], al
inc ecx
jmp 0x10059e64
cdq
push edx
push eax
call fcn.1002c990
mov ecx, dword [esp + 0x24]
add esp, 8
add ecx, eax
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
add edi, 0xc
nop
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x10059efb
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x10059f45
movzx edx, byte [edx + 0x10161558]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [esp + 0x48], edx
dec edx
cmp edx, 5
ja case.0x10059ea2.5
jmp dword [edx*4 + 0x1005e7cc]
mov byte [esi + 7], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 6], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 5], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 4], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 3], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 2], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 1], cl
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x3c], eax
mov byte [esi], cl
add esi, dword [esp + 0x48]
jmp 0x10059f41
cmp edx, 0x80
jae 0x10059f17
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x1c], ecx
cmp edx, 0xe
jb 0x10059f45
mov eax, dword [edi]
test eax, eax
jle 0x10059f45
jmp 0x10059f32
push 0
push edx
call fcn.1002c990
mov ecx, dword [esp + 0x24]
add esp, 8
add ecx, eax
mov eax, dword [edi]
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x10059f45
push eax
push dword [edi - 4]
push esi
call fcn.10139d00
add esp, 0xc
add esi, dword [edi]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x30]
cmp edi, eax
je 0x1005849d
add edi, 0x28
jmp 0x10059e70
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], 0
je 0x10059f95
mov ecx, edx
call fcn.100447e0
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x10059fc3
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xf8]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xfc], xmm0
call fcn.1004a540
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x1005c46d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
test eax, eax
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc]
jne 0x1005a0c7
cmp dword [eax + 0xc4], 0
jg 0x1005ded8
mov ecx, edi
call fcn.1002a330
mov esi, eax
xor edx, edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x20], esi
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.100b8390
mov ecx, dword [esp + 0x10]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de57
lea eax, [esi + 0x21]
push edx
push eax
call fcn.10026f30
mov esi, eax
add esp, 8
test esi, esi
je 0x1005a38b
mov ecx, dword [esp + 0x20]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.10139d00
mov edx, dword [esp + 0x18]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x1005a089
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x1005a08f
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x1005a38b
mov esi, dword [eax + 0x1ec]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x1005a0ef
mov ecx, dword [esi]
mov edx, edi
call fcn.1002a6d0
test eax, eax
je 0x1005a114
inc dword [esp + 0x1c]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x1005a0d7
push edi
mov edi, dword [esp + 0x14]
push str.no_such_savepoint:__s
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x18]
mov edx, 1
add esp, 0xc
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x2c]
cmp dword [eax + 0xc4], 0
jle 0x1005a12e
cmp edx, 1
je 0x1005defc
cmp dword [esi + 0x18], 0
jne 0x1005a19d
cmp byte [eax + 0x5d], 0
je 0x1005a19d
mov edi, 1
mov dword [esp + 0x30], edi
cmp edx, edi
jne 0x1005a1a5
mov ecx, dword [esp + 0x10]
mov edx, edi
call fcn.100511e0
mov ecx, eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x1005dde1
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov byte [eax + 0x55], 1
call fcn.10051250
cmp eax, 5
je 0x1005df2f
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005df20
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], edi
mov byte [eax + 0x5d], dl
jmp 0x1005a2d6
mov dword [esp + 0x30], 0
mov eax, dword [eax + 0x1f8]
sub eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
cmp edx, 2
jne 0x1005a22a
mov edi, dword [esp + 0xc]
mov dword [esp + 0x20], 0
mov ecx, dword [edi + 0x18]
and ecx, 1
cmp dword [edi + 0x14], 0
mov dword [esp + 0x48], ecx
jle 0x1005a238
mov eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, 1
xor edi, edi
mov dword [esp + 0x38], eax
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.10042e40
mov ecx, dword [esp + 0x10]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de57
mov eax, dword [esp + 0x20]
add edi, 0x10
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
jl 0x1005a1e4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
jmp 0x1005a23a
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], 0
jmp 0x1005a23a
mov ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x20], 0
jle 0x1005a28b
xor edi, edi
nop word [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.100430d0
mov ecx, dword [esp + 0x10]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de57
mov eax, dword [esp + 0x20]
add edi, 0x10
mov edx, dword [esp + 0x2c]
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
jl 0x1005a250
cmp dword [esp + 0x48], 0
je 0x1005a2ca
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x1005a2b9
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 0x1005a2a0
mov ecx, dword [esp + 0xc]
call fcn.1007a210
mov eax, dword [esp + 0xc]
or dword [eax + 0x18], 1
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x1005a306
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.10026a90
dec dword [edi + 0x1f8]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x1005a2e4
mov edi, dword [esp + 0x2c]
cmp edi, 1
jne 0x1005a336
mov ecx, dword [esp + 0xc]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.10026a90
cmp dword [esp + 0x30], 0
jne 0x1005a38b
mov ecx, dword [esp + 0xc]
dec dword [ecx + 0x1f8]
jmp 0x1005a36a
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0xc]
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
je 0x1005a36a
cmp edi, 2
jne 0x1005a38b
mov ecx, dword [esp + 0x1c]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x10]
call fcn.100b8390
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x97], 3
je 0x1005df64
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], 0
mov edi, dword [ecx + 8]
test edi, edi
je 0x1005a3d8
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
and ecx, 2
mov eax, edx
and eax, 0x100000
or eax, ecx
jne 0x1005df6e
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov esi, dword [ecx + 4]
shl esi, 4
add esi, dword [eax + 0x10]
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1005a4b1
lea ecx, [esp + 0x30]
mov edx, edi
push ecx
mov ecx, eax
call fcn.10041fe0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005df9d
mov edi, dword [esp + 0x10]
test byte [edi + 0x98], 0x20
je 0x1005a4c1
mov eax, dword [esp + 8]
cmp dword [eax + 8], edx
je 0x1005a4c1
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x55], dl
je 0x1005a447
cmp dword [ecx + 0xc0], 1
jle 0x1005a4c1
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x1005a463
mov eax, dword [ecx + 0x1f8]
inc dword [ecx + 0x1fc]
add eax, dword [ecx + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
call fcn.100b8390
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005a487
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x20]
call fcn.10043070
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x1005a4b5
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
cmp word [eax + 2], 0
je 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x30]
cmp eax, dword [ecx + 0xc]
jne 0x1005dfd2
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x1005dfd2
mov eax, ecx
jmp 0x100584a5
mov edx, dword [esp + 8]
lea eax, [esp + 0x124]
mov ecx, dword [esp + 0xc]
push eax
mov eax, dword [edx + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004a420
mov eax, dword [esp + 0xc]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x1005a556
call fcn.100577d0
mov ecx, eax
mov eax, dword [esp + 0x124]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edx
jmp case.0x10057ce2.89
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x124]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 8]
mov dword [ecx + 4], edx
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov esi, dword [ecx + 4]
push dword [ecx + 0xc]
mov edx, dword [ecx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.1004a480
mov edx, dword [esp + 0xc]
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x1005a5cd
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.1008c780
mov edx, dword [esp + 8]
jmp 0x1005a5db
cmp eax, 2
jne 0x1005a5db
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x1005a5f3
mov ecx, dword [esp + 0xc]
xor edx, edx
call fcn.100537e0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp 0x100584a5
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x1005a62e
mov eax, dword [esi + 0x38]
cmp eax, dword [edx + 8]
jne 0x1005a62e
mov ecx, dword [esi + 0x2c]
call fcn.1003ec80
jmp 0x1005a751
mov cl, byte [esp + 0x2b]
jmp 0x1005a638
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x1005e036
mov eax, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov edx, dword [edx + 8]
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], eax
shl eax, 4
add eax, dword [esi + 0x10]
cmp cl, 0x71
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], edx
mov esi, dword [eax + 4]
mov dword [esp + 0x5c], esi
jne 0x1005a6a8
mov eax, dword [eax + 0xc]
movzx edi, word [ecx + 2]
mov esi, dword [esp + 0x10]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x95]
jae 0x1005a6aa
mov byte [esi + 0x95], al
jmp 0x1005a6aa
xor edi, edi
test byte [ecx + 2], 0x10
je 0x1005a6cb
mov ecx, dword [esp + 0x18]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1004d510
mov eax, dword [esi]
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], eax
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x1005a6df
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
movzx eax, word [eax + 8]
jmp 0x1005a6ec
cmp al, 0xfd
jne 0x1005a6e8
mov eax, dword [ecx + 0x10]
jmp 0x1005a6ec
mov eax, dword [esp + 0x48]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
push 0
push eax
call fcn.10057360
mov esi, eax
add esp, 8
test esi, esi
je 0x100581f8
push dword [esi + 0x2c]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
or dword [esi + 8], 4
mov byte [esi + 1], al
mov eax, dword [esp + 0x28]
mov edx, eax
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x38], eax
call fcn.100432f0
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 8]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 8]
mov ecx, dword [esi + 0x2c]
movzx edx, word [eax + 2]
and edx, 3
call fcn.1003eec0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp 0x100584a5
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
movsx eax, word [edi + 0x3c]
push eax
call fcn.10057360
mov esi, eax
add esp, 8
test esi, esi
je 0x100581f8
mov edx, dword [esi + 8]
mov byte [esi + 2], 1
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
call fcn.100432f0
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x1005a825
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 8], 0x10166843
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1005a885
test byte [esi + 8], 8
jne 0x1005a885
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x1005a885
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.1004a040
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
mov byte [esi + 2], 1
jmp 0x100584a5
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.10057360
mov esi, eax
add esp, 8
test esi, esi
je 0x100581f8
mov eax, dword [esp + 8]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
mov eax, dword [esp + 0x14]
push edi
push eax
mov ecx, dword [eax]
call fcn.10040940
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.10041fe0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005a96a
mov edx, dword [esp + 8]
mov ecx, dword [edi]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x1005a945
movzx eax, word [edx + 2]
lea edx, [esi + 0x38]
or eax, 2
push eax
call fcn.10049dc0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005a93f
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esp + 0x24]
mov ecx, dword [edi]
push 4
call fcn.100432f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
mov byte [esi + 4], 0
jmp 0x1005a96a
push dword [esi + 0x2c]
mov edx, 1
mov dword [esi + 0x38], 1
push 0
push 4
call fcn.100432f0
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
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 0x1005e040
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov byte [esi + 2], 1
jmp 0x100584a5
mov ecx, dword [esp + 8]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.10057360
add esp, 8
test eax, eax
je 0x100581f8
mov edx, dword [esp + 8]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.1005fdd0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
mov eax, dword [esp + 8]
je 0x1005ca1d
jmp 0x100584a1
mov ecx, dword [esp + 8]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.10057360
add esp, 8
test eax, eax
je 0x100581f8
mov ecx, dword [esp + 8]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x1017aae1
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov edx, dword [edi + 0x60]
mov eax, dword [ecx + 4]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.100506e0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x1c], 0
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 4], 0
mov word [edi + 2], 0
mov dword [edi + 0x20], 0
je 0x1005abfc
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x20], eax
and al, 0x2e
cmp al, 2
jne 0x1005aae2
xor edx, edx
mov ecx, esi
call fcn.10057470
mov ecx, esi
call fcn.1004d340
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x1005ab8e
test cl, 8
jne 0x1005ab5c
test cl, 1
jne 0x1005ca19
cmp dword [esp + 0x2c], 0x17
jae 0x1005ca19
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x70]
call fcn.10043ee0
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x70], 0
jne 0x1005ca19
mov eax, dword [esp + 8]
test edx, edx
je 0x100584a1
add eax, 0x14
jmp 0x100584a1
push dword [esp + 0x38]
movsd xmm1, qword [esi]
push dword [esp + 0x34]
call fcn.10052490
add esp, 8
test eax, eax
jle 0x1005ab7f
mov eax, dword [esp + 0x2c]
test al, 1
jne 0x1005ab8e
dec eax
jmp 0x1005ab8a
jns 0x1005ab8e
mov eax, dword [esp + 0x2c]
test al, 1
je 0x1005ab8e
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x3c]
lea esi, [edi + 0x2c]
xor edx, edx
push dword [esp + 0x38]
call fcn.10043f00
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x70]
cmp eax, 0x17
jl 0x1005acec
test ecx, ecx
js 0x1005acab
jne 0x1005abef
cmp eax, 0x18
je 0x1005acab
mov dword [esp + 0x70], 0
jmp 0x1005ab48
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov ecx, dword [esp + 8]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x2b], al
mov eax, 0
setne al
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x80], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x94], ax
lea eax, [edx - 1]
test al, 1
mov byte [esp + 0x9a], 0
lea edx, [esp + 0x80]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x96], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x70]
mov ecx, dword [esi]
push eax
call fcn.100441a0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp byte [esp + 0x2b], al
je 0x1005abc7
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
cmp byte [esp + 0x9a], al
je 0x1005ab3d
jmp 0x1005abcb
mov dword [esp + 0x70], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.10044980
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x1005ab39
mov edi, dword [esp + 0x10]
cmp edx, 0x65
jne 0x1005de8f
mov dword [esp + 0x14], 0
mov dword [esp + 0x70], 1
jmp 0x1005d5b7
test ecx, ecx
jg 0x1005ad07
jne 0x1005acf7
cmp eax, 0x15
je 0x1005ad07
mov ecx, dword [esi]
call fcn.100447d0
mov dword [esp + 0x70], eax
jmp 0x1005ab39
mov dword [esp + 0x70], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.10044af0
jmp 0x1005acbc
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.10043560
test eax, eax
je 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x80], eax
mov byte [esp + 0x96], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0x94], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x84], eax
nop dword [eax + eax]
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x84]
mov edx, edi
push eax
call fcn.100536c0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0xf4]
test eax, eax
jle 0x1005adc3
mov ecx, dword [esp + 8]
cmp word [ecx + 2], dx
je 0x1005adfe
test eax, eax
jns 0x1005ca19
test esi, esi
jle 0x1005849d
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
mov dword [edi + 0x20], 0
call fcn.10044980
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x1005ad80
cmp edx, 0x65
jne 0x1005de53
mov dword [esp + 0x14], 0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x58]
add eax, 0x14
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x1005ae47
mov word [eax + 0xc], cx
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x1005c4ed
mov word [eax + 0xc], cx
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x10057ce2.9
cmp byte [eax + 2], 0
je 0x1005c4ed
jmp case.0x10057ce2.9
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
mov eax, ecx
jge case.0x10057ce2.89
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x84], ecx
movzx eax, word [eax + 0x10]
mov word [esp + 0x94], ax
test ax, ax
je 0x1005af0d
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [esp + 0x80], eax
lea edx, [esp + 0x80]
mov byte [esp + 0x96], 0
mov ecx, dword [esi + 0x2c]
push edi
call fcn.100441a0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
jmp 0x1005af78
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x1005af25
call fcn.1004d070
test eax, eax
jne 0x100581f8
mov ecx, dword [esi + 0x30]
call fcn.10051d20
mov edi, eax
test edi, edi
je 0x100581f8
mov edx, dword [esp + 0x84]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.10051d80
lea eax, [esi + 0x24]
mov byte [edi + 0x16], 0
mov ecx, dword [esi + 0x2c]
mov edx, edi
push eax
call fcn.100441a0
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, edi
mov dword [esp + 0x14], eax
call fcn.10026a90
mov edx, dword [esp + 0x14]
lea edi, [esi + 0x24]
test edx, edx
jne 0x1005de53
mov ecx, dword [edi]
test ecx, ecx
mov byte [esi + 3], dl
setne al
mov dword [esi + 0x20], edx
mov byte [esi + 2], al
mov eax, dword [esp + 8]
mov al, byte [eax]
cmp al, 0x1d
jne 0x1005afab
mov eax, dword [esp + 8]
test ecx, ecx
je 0x1005ca1d
jmp 0x100584a1
test ecx, ecx
jne 0x1005ca19
cmp al, 0x1b
jne 0x1005afe7
movzx edx, word [esp + 0x94]
test edx, edx
je 0x1005849d
mov eax, dword [esp + 0x84]
add eax, 0x10
test byte [eax], 1
jne 0x1005ca19
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x1005afd1
jmp 0x1005849d
mov eax, dword [esp + 8]
cmp byte [eax], 0x1a
jne 0x100584a1
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x1005b071
movups xmm0, xmmword [esi + eax*8]
mov dl, 0x43
lea ecx, [esp + 0x80]
push dword [esp + 0x54]
movups xmmword [esp + 0x84], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x10]
movups xmmword [esp + 0x94], xmm0
movq xmm0, qword [esi + eax*8 + 0x20]
movq qword [esp + 0xa4], xmm0
call fcn.100575b0
add esp, 4
test byte [esp + 0x90], 4
je 0x1005ca19
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
jmp 0x1005b07e
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [esi + eax*8]
mov edx, dword [esi + eax*8 + 4]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xe8]
push eax
push edx
push edi
mov ecx, dword [esi + 0x2c]
xor edx, edx
mov dword [esp + 0xf4], 0
call fcn.10043f00
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [esi + 0x44], eax
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0xe8]
mov dword [esi + 0x24], eax
cmp dword [esp + 0xe8], 0
mov dword [esp + 0x14], edx
je 0x1005b104
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jne 0x1005ca1d
mov ecx, 0x17d6c
call fcn.100da8e0
mov edx, eax
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp 0x100584a5
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 0x60]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
xorps xmm0, xmm0
mov ecx, edi
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x30], 0
call fcn.100577f0
mov ecx, dword [edi + 0x60]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x20], edi
test byte [edi + 8], 2
jne 0x1005b1f2
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x30]
call fcn.10043ee0
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp dword [esp + 0x30], eax
je 0x1005b1bf
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], eax
jmp 0x1005b1f2
mov ecx, dword [edi + 0x2c]
call fcn.10043570
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp edx, 0x7fffffff
jl 0x1005b1e4
jg 0x1005b1de
cmp eax, 0xffffffff
jb 0x1005b1e4
or dword [edi + 8], 2
jmp 0x1005b1f2
add eax, 1
mov dword [esp + 0x38], eax
adc edx, 0
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1005b2a7
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0xd0]
test edx, edx
je 0x1005b22d
mov eax, dword [edx + 4]
test eax, eax
je 0x1005b21f
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1005b216
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea esi, [eax + ecx*8]
jmp 0x1005b233
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.1004d340
mov cx, word [esi + 0x10]
mov edi, eax
mov eax, 0xf244
mov dword [esi], edi
and cx, ax
mov dword [esi + 4], edx
or cx, 4
mov word [esi + 0x10], cx
cmp edi, 0xffffffff
jne 0x1005b266
cmp edx, 0x7fffffff
je 0x1005b305
mov eax, dword [esp + 0x20]
test byte [eax + 8], 2
jne 0x1005b305
mov ecx, dword [esp + 0x3c]
add edi, 1
adc edx, 0
cmp ecx, edx
jg 0x1005b29a
jl 0x1005b28c
mov eax, dword [esp + 0x38]
cmp eax, edi
jae 0x1005b29e
mov eax, edi
mov ecx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jmp 0x1005b29e
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x20]
mov dword [esi], eax
mov dword [esi + 4], ecx
test byte [edi + 8], 2
je 0x1005b30f
xor esi, esi
nop
lea eax, [esp + 0x38]
push eax
push 8
call fcn.10029b40
mov eax, dword [esp + 0x44]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x40]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [esp + 0x44], ecx
push eax
mov dword [esp + 0x4c], eax
xor edx, edx
push ecx
mov ecx, dword [edi + 0x2c]
call fcn.10043f00
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp dword [esp + 0x30], eax
jne 0x1005b30f
inc esi
cmp esi, 0x64
jl 0x1005b2b0
mov edx, 0xd
jmp 0x1005de4f
mov edx, dword [esp + 0x48]
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x18]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x38], esi
cmp byte [ecx + 1], 0xfb
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov eax, dword [edx + eax*8 + 4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], eax
jne 0x1005b3b2
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0xfc], 0
je 0x1005b3ae
mov eax, dword [esp + 0xc]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x48], eax
jmp 0x1005b3c2
mov ecx, dword [esp + 8]
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], 0
test byte [ecx + 2], 1
je 0x1005b3ec
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [esp + 0x20]
je 0x1005b3ec
mov ecx, dword [esp + 0xc]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0x90], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0x9c], eax
test cl, 0x10
je 0x1005b414
mov edi, dword [esi + 0x24]
jmp 0x1005b416
xor edi, edi
mov eax, dword [esp + 0x18]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x38]
je 0x1005b436
mov eax, dword [eax + edx*8]
mov dword [esp + 0xa0], eax
jmp 0x1005b441
mov dword [esp + 0xa0], 0
and ecx, 0x8a
mov dword [esp + 0x80], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x88]
call fcn.10048960
inc dword [esp + 0xd0]
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0x48]
test eax, eax
je 0x1005849d
push dword [esp + 0x8c]
mov ecx, 0x17
push dword [esp + 0x8c]
push dword [eax]
mov eax, dword [esp + 0x14]
push dword [esp + 0x3c]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x20]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x1005849d
mov edx, dword [esp + 8]
mov ecx, dword [edi + 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 + 8]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1005b50c
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edi, dword [esp + 0x18]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x10]
jmp 0x1005b51d
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.10049040
add esp, 8
jmp 0x10058be0
mov edx, dword [esp + 8]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x1005b58c
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xfc], 0
je 0x1005b58c
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x20], eax
je 0x1005b596
cmp byte [esi + 4], 0
je 0x1005b596
mov ecx, dword [esi + 0x2c]
call fcn.10043570
mov dword [esi + 0x44], edx
mov edx, dword [esp + 8]
mov dword [esi + 0x40], eax
jmp 0x1005b596
mov dword [esp + 0x20], 0
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.10049470
inc dword [esp + 0xc8]
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
test edx, edx
jne 0x1005de53
test byte [esp + 0x48], 1
je 0x1005849d
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xfc]
test eax, eax
je 0x1005849d
test edi, edi
je 0x1005849d
test byte [edi + 0x1c], 0x80
jne 0x1005849d
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push dword [esp + 0x2c]
push 9
push dword [edx + 0xf8]
call eax
add esp, 0x18
jmp 0x1005849d
push dword [edi + 0x2c]
mov ecx, dword [esp + 0x10]
push dword [edi + 0x28]
call fcn.100537c0
mov eax, dword [esp + 0x10]
add esp, 8
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0xec], 0
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
lea eax, [esp + 0xec]
push eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
call fcn.10062620
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
cmp dword [esp + 0xec], edx
jne 0x1005ca1d
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.10062580
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x20], edx
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.100435a0
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x78]
ja 0x1005e051
push esi
mov edx, eax
mov ecx, edi
call fcn.1004dfa0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], edx
jne 0x100584a1
mov ecx, 0x4000
test word [esi + 0x10], cx
je 0x100584a1
mov ecx, esi
call fcn.1004cfe0
test eax, eax
jne 0x100581f8
jmp 0x1005849d
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov ecx, dword [esp + 8]
mov edi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x1005b791
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x1005849d
cmp byte [esi + 3], 0
je 0x1005b7b5
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1005849d
cmp byte [esi], 2
jne 0x1005b805
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xb8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, esi
mov dword [esp + 0x14], eax
call fcn.100539e0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1005849d
mov ecx, esi
call fcn.10051a10
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp byte [esi + 2], al
je 0x1005b82d
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x1005849d
mov ecx, dword [esi + 0x2c]
call fcn.10043570
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1005849d
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x1005b88a
push 3
push 1
mov ecx, edi
call fcn.10057360
add esp, 8
test eax, eax
je 0x100581f8
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x1017aae1
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x1005849d
mov ecx, dword [eax + 0x2c]
call fcn.1003ec80
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
cmp byte [esp + 0x2b], 0x89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0xd4], 0
jne 0x1005b8e7
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.10043560
test eax, eax
jne 0x1005849d
cmp byte [edi], 0
jne 0x1005b914
test byte [edi + 1], 8
je 0x1005b914
mov dword [esp + 0xd4], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov dword [esp + 0x14], 0
jmp 0x1005b945
lea edx, [esp + 0xd4]
mov ecx, edi
call fcn.10043e50
mov edx, eax
mov al, byte [esp + 0xd4]
mov dword [esp + 0x14], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jle 0x100584a1
cmp dword [esp + 0xd4], 0
jne 0x1005ca1d
jmp 0x100584a1
mov ecx, dword [esp + 8]
lea edx, [esp + 0xe0]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.10043e20
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp dword [esp + 0xe0], eax
jne 0x1005ca19
mov ecx, esi
call fcn.100447e0
test edx, edx
jl 0x1005b9d4
jg 0x1005b9b0
test eax, eax
jb 0x1005b9d4
push edx
push eax
call fcn.1002cee0
mov ecx, dword [esp + 0x10]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x1005b9d4
mov dword [esp + 0xe0], 1
jmp 0x1005d5b7
cmp dword [esp + 0xe0], 0
mov eax, dword [esp + 8]
jne 0x1005ca1d
jmp 0x100584a5
inc dword [edi + 0xac]
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0xcc], 1
cmp byte [esi], 1
jne 0x1005ba24
lea edx, [esp + 0xcc]
mov ecx, esi
call fcn.10062440
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x1005ba6f
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.10043c90
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005ba4a
mov ecx, edi
mov dword [esp + 0xcc], eax
call fcn.10043dd0
mov edx, eax
jmp 0x1005ba5c
cmp edx, 0x10
jne 0x1005ba60
mov dword [esp + 0xcc], 1
xor edx, edx
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x10]
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1005de53
mov al, byte [esp + 0xcc]
mov byte [esi + 2], al
mov eax, dword [esp + 8]
cmp dword [eax + 8], edx
jle 0x100584a1
cmp dword [esp + 0xcc], edx
jne 0x1005ca1d
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0xc]
call fcn.100624e0
jmp 0x1005baec
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.10044af0
jmp 0x1005baec
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.10044980
mov edx, eax
mov dword [esp + 0x14], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1005bb14
mov byte [esi + 2], al
mov eax, dword [esp + 8]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x1005d738
cmp edx, 0x65
jne 0x1005de53
mov dword [esp + 0x14], 0
mov byte [esi + 2], 1
jmp 0x1005c469
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x1005bb5a
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1005bb7e
mov ecx, esi
call fcn.1004d070
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x94], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x98], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x1005bbc7
mov ecx, dword [edi + 0x24]
jmp 0x1005bbc9
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x84]
and eax, 0x8a
push eax
call fcn.10048960
mov edx, eax
mov dword [edi + 0x20], 0
mov edi, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1005bc3a
mov ecx, esi
call fcn.1004d070
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edx, esi
mov ecx, edi
call fcn.10061020
mov edi, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp 0x100584a5
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x80], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x94], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x80]
mov byte [esp + 0x96], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x84], eax
lea eax, [esp + 0x114]
push eax
call fcn.100441a0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
cmp dword [esp + 0x114], eax
jne 0x1005bce9
mov dl, 4
mov ecx, edi
call fcn.10049470
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
jmp 0x1005bd05
mov eax, dword [esp + 8]
cmp word [eax + 2], 0
je 0x1005bd09
mov ecx, dword [esp + 0xc]
call fcn.1007a970
test eax, eax
je 0x1005e06d
mov eax, dword [esp + 8]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x100584a1
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x1005bd4c
mov ecx, esi
call fcn.100519d0
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 8]
jmp 0x1005bd54
mov dword [esp + 0x14], 0
cmp byte [esi + 2], 0
jne 0x1005bdff
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x100]
xorps xmm0, xmm0
movlpd qword [esp + 0x100], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.10053370
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
cmp byte [eax], 0x8d
jne 0x1005bdda
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 8]
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 eax, dword [esp + 8]
mov dword [edx + 0x28], esi
jmp 0x100584a5
mov edx, eax
mov ecx, edi
call fcn.100577f0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 8]
jmp 0x100584a5
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d860
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x1005c4ed
call fcn.10051960
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
cmp byte [esp + 0x2b], 0x2a
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x80], eax
mov ax, word [edx + 0x10]
mov word [esp + 0x94], ax
sbb al, al
mov byte [esp + 0x96], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x84], eax
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call fcn.10043520
mov edi, dword [esi + 0x2c]
xor eax, eax
mov ecx, edi
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x1005e08b
jb 0x1005bebb
cmp ecx, 0x7ffffffe
ja 0x1005e08b
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x188]
push 0
call fcn.1004d840
add esp, 4
lea eax, [esp + 0x188]
mov edx, edi
mov ecx, esi
push eax
call fcn.1004dfa0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov edx, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.10052690
add esp, 8
lea ecx, [esp + 0x188]
mov esi, eax
call fcn.1004d300
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
test dl, 1
cmovne esi, ecx
test esi, esi
jg 0x1005ca1d
jmp 0x100584a1
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov edx, dword [esp + 0xc]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x1005e0b3
mov eax, dword [esp + 8]
lea ecx, [esp + 0xe4]
push ecx
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], eax
add eax, eax
mov dword [esp + 0xe8], 0
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004a3d0
mov dword [esp + 0x18], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xe4]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x14]
mov dword [esi], eax
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x1005849d
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x20]
push dword [ecx + 4]
mov ecx, dword [esp + 0x10]
push eax
call fcn.1007e870
mov cl, byte [esp + 0x28]
add esp, 8
mov eax, dword [esp + 8]
inc cl
mov byte [esp + 0x6f], cl
jmp 0x100584a5
mov edx, dword [esp + 8]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0xc]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x24], xmm0
mov eax, dword [edx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004a040
mov edx, eax
add esp, 4
mov eax, dword [esp + 8]
mov dword [esp + 0x14], edx
cmp dword [eax + 0xc], 0
je 0x1005c070
mov edx, dword [esp + 0x20]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0x24]
adc dword [edi + 0x2c], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1005c068
lea ecx, [eax + eax*4]
add dword [esi + ecx*8], edx
mov eax, dword [esp + 0x24]
adc dword [esi + ecx*8 + 4], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x1005c0a4
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0xc]
call fcn.100602a0
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [ecx + 0x2c]
call fcn.1004a100
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov edx, dword [esp + 8]
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xf0], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [esp + 0xf4]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.10049dc0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0xf0]
mov dword [esi], eax
mov eax, dword [esp + 8]
mov dword [esi + 4], edx
jmp 0x100584a5
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], 0
mov al, byte [ecx + 0x5e]
inc byte [ecx + 0x60]
mov esi, dword [ecx + 0x16c]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 8]
cmp dword [eax + 4], 0
je 0x1005c158
mov dword [ecx + 0x16c], 0
mov byte [ecx + 0x5e], 0
lea edx, [esp + 0x30]
push edx
push 0
push 0
push dword [eax + 0x10]
push ecx
call fcn.10094880
mov edx, eax
add esp, 0x14
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], edx
dec byte [eax + 0x60]
mov dword [eax + 0x16c], esi
mov esi, dword [esp + 0xc]
mov al, byte [esp + 0x2b]
mov byte [esi + 0x5e], al
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x1005c19b
test edx, edx
je 0x100580cf
push eax
push 0x101689bc
push edi
call fcn.1004e840
add esp, 0xc
push dword [esp + 0x30]
call fcn.100269d0
mov edx, dword [esp + 0x18]
add esp, 4
cmp edx, 7
je 0x1005e38c
mov ecx, esi
jmp 0x1005de57
mov ecx, dword [esp + 8]
cmp dword [ecx + 0x10], 0
mov esi, dword [ecx + 4]
jne 0x1005c22b
mov edi, dword [esp + 0xc]
mov ecx, esi
add ecx, ecx
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.10083c10
mov eax, dword [esp + 0xc]
add esp, 4
and dword [edi + 0x18], 0xffffffef
mov edx, esi
mov ecx, edi
movzx eax, word [eax + 2]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x7c
push eax
call fcn.1009cb50
mov edx, eax
add esp, 8
mov eax, edi
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x10]
or dword [eax + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x1005c317
mov ecx, dword [esp + 0xc]
lea eax, [edi + 0x7c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x88], esi
add esi, esi
mov dword [esp + 0x84], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x90], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.10040750
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 8]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.100293f0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1005e0c4
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x80]
push 0
push ecx
push fcn.1009c8c0
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
call fcn.10094880
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005c2fd
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005c2fd
cmp dword [esp + 0x94], eax
jne 0x1005c2fd
mov ecx, 0x1838b
call fcn.100da8e0
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.10026a90
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov byte [eax + 0xb1], 0
test edx, edx
je 0x100580cf
mov ecx, eax
call fcn.1007a210
mov edx, dword [esp + 0x14]
cmp edx, 7
je 0x100581f8
jmp 0x1005de4f
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0xc]
call fcn.10077d40
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
call fcn.1007a7b0
mov eax, dword [esp + 0xc]
add esp, 4
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
call fcn.1007a040
mov eax, dword [esp + 0xc]
add esp, 4
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
call fcn.100b08d0
mov eax, dword [esp + 0xc]
add esp, 4
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x11c]
push eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x1c]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.1004b1e0
add esp, 0x14
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.1004d860
mov eax, dword [esp + 0x118]
test eax, eax
je 0x1005c459
cmp dword [esp + 0x14], 0
jne 0x1005e0d2
mov ecx, dword [esp + 0x18]
dec eax
cdq
push fcn.100269d0
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov ecx, edi
mov edx, dword [esp + 0xdc]
push 0xffffffffffffffff
call fcn.1004db70
add esp, 0x10
movzx edx, byte [esp + 0x54]
mov ecx, edi
call fcn.1004cc30
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
cmp dword [edx + 0x128], 0
jne 0x1005de4a
mov eax, dword [esp + 0xb4]
cmp eax, dword [esp + 0x78]
jb 0x1005849d
mov ecx, dword [esp + 0x74]
ja 0x1005c4a0
cmp dword [esp + 0x7c], ecx
jb 0x1005849d
nop
mov eax, dword [edx + 0x174]
test eax, eax
je 0x1005849d
add ecx, dword [edx + 0x17c]
push dword [edx + 0x178]
adc dword [esp + 0x7c], 0
mov dword [esp + 0x78], ecx
call eax
add esp, 4
test eax, eax
jne 0x1005de3b
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x74]
cmp eax, dword [esp + 0x78]
ja 0x1005c4a0
jb 0x1005c4ed
cmp dword [esp + 0x7c], ecx
jae 0x1005c4a0
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x1005c51f
mov ecx, esi
call fcn.1004d990
test eax, eax
jne 0x100581f8
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10034600
add esp, 8
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
je 0x1005c58d
mov ecx, dword [esi + 8]
lea edx, [esp + 0x128]
call fcn.10034910
test eax, eax
je 0x1005c58d
mov eax, dword [esp + 8]
push dword [esp + 0x12c]
mov esi, dword [esp + 0x1c]
push dword [esp + 0x12c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.1004d900
add esp, 8
jmp 0x1005c46d
mov ecx, esi
call fcn.1004d860
jmp 0x1005d738
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x20], eax
jne 0x1005c5cd
mov ecx, esi
call fcn.1004d990
test eax, eax
jne 0x100581f8
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1005c5f7
mov ecx, dword [esp + 0x18]
mov edx, eax
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
mov ecx, dword [esi + 8]
call fcn.100349a0
add esp, 8
test eax, eax
jne 0x1005ca19
mov eax, dword [esp + 0x20]
test eax, eax
js 0x1005849d
jmp 0x1005c51f
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x30], ecx
cmp word [eax + 2], 0
je 0x1005c64a
mov eax, dword [edi + 0xd0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x1005c646
cmp dword [eax + 0x18], ecx
je 0x100580cf
mov eax, dword [eax + 4]
test eax, eax
jne 0x1005c636
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x1005e0ea
test byte [ecx + 0x10], 0x10
jne 0x1005c833
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 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 [esp + 0x38]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x1005c693
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0xc]
add eax, 0x58
mov dword [esp + 0x20], eax
cdq
push edx
push eax
call fcn.10026ec0
mov edi, eax
add esp, 8
test edi, edi
je 0x100581f8
mov ecx, dword [esp + 0x30]
call fcn.1004d2e0
mov ecx, dword [esp + 0x30]
mov eax, 0x1010
mov edx, dword [esp + 8]
sub edx, dword [esp + 0x58]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], edi
mov dword [ecx + 0x24], 0x1004fdf0
mov ecx, dword [esp + 0x38]
mov dword [edi], eax
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 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 0x1005c768
mov edx, dword [esp + 0xc]
xor esi, esi
mov dword [eax + 0x14], edx
mov word [eax + 0x10], si
add eax, 0x28
cmp eax, ecx
jne 0x1005c754
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
inc dword [edx + 0xd8]
mov eax, dword [edx + 0xd0]
mov ecx, dword [esp + 0xc]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], ecx
mov eax, dword [edx + 0xe4]
mov dword [edi + 0x28], eax
lea eax, [edi + 0x58]
mov dword [edx + 0x58], eax
mov dword [edx + 0xe4], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xd0], edi
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x18], eax
mov dword [edx + 0x14], ecx
movzx eax, word [edi + 0x40]
mov dword [edx + 0x18], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x14], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.10138870
mov ecx, dword [esi]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edx, [ecx - 0x14]
mov dword [edi + 0x68], ecx
mov eax, dword [esi + 4]
mov dword [edi + 0x6c], eax
mov dword [esp + 8], edx
jmp 0x1005c469
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x10]
jmp 0x1005c76c
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov esi, eax
mov eax, dword [edi + 0xd0]
push 0x4000
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 + 0xc]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.1004dab0
mov eax, dword [esp + 0xc]
add esp, 4
jmp 0x100584a5
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 8]
je 0x1005c8b9
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0xc]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [esp + 8]
adc dword [ecx + 0x20c], edx
jmp case.0x10057ce2.89
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x1005c8dc
mov esi, dword [esp + 0xc]
add dword [esi + 0x200], eax
mov eax, dword [esp + 8]
adc dword [esi + 0x204], edx
jmp 0x100584a5
add dword [edi + 0x40], eax
mov eax, dword [esp + 8]
adc dword [edi + 0x44], edx
jmp case.0x10057ce2.89
cmp dword [eax + 4], 0
je 0x1005c909
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x200]
or eax, dword [edx + 0x204]
jne 0x1005c4ed
jmp 0x1005c919
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x1005c4ed
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x208]
or eax, dword [edx + 0x20c]
mov eax, dword [esp + 8]
je 0x1005d5bb
jmp case.0x10057ce2.89
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x1005c960
mov eax, dword [edx + 4]
test eax, eax
je 0x1005c94e
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1005c945
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x1005c96d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
call fcn.1004d340
mov dword [edi], eax
mov ecx, 0xf244
mov ax, word [edi + 0x10]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.1004d340
mov cx, word [esi + 0x10]
and cx, word [esp + 0x11c]
or cx, 4
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], cx
cmp dword [edi + 4], edx
jg 0x1005849d
jl 0x1005b843
cmp dword [edi], eax
jae 0x1005849d
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x1005849d
jg 0x1005ca02
test ecx, ecx
je 0x1005849d
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, edi
lea eax, [eax + eax*4]
mov dword [esp + 0x20], eax
call fcn.100577f0
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [ecx + esi*8]
mov ecx, dword [ecx + esi*8 + 4]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
test ecx, ecx
jl 0x1005cad7
jg 0x1005ca78
test eax, eax
je 0x1005cad7
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + ecx*8]
mov ecx, dword [esi + ecx*8 + 4]
test ecx, ecx
jl 0x1005ca91
jg 0x1005caa2
test eax, eax
jne 0x1005caa2
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push eax
lea ecx, [esp + 0x110]
call fcn.1002cce0
add esp, 8
test eax, eax
jne 0x1005cadb
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov dword [edi], eax
mov eax, dword [esp + 8]
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [esp + 0x10]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, ecx
or eax, edx
je 0x100580cf
test edx, edx
jl 0x1005d5b7
jg 0x1005cb26
test ecx, ecx
je 0x1005d5b7
mov eax, dword [esp + 0x18]
sub ecx, 1
sbb edx, 0
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
jmp 0x1005d5b7
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8 + 4]
mov eax, dword [esi + edx*8]
cmp ecx, 0x80000000
jl 0x1005cb68
jg 0x1005cb5b
test eax, eax
je 0x1005cb68
sub eax, 1
mov dword [esi + edx*8], eax
sbb ecx, 0
mov dword [esi + edx*8 + 4], ecx
or eax, ecx
mov eax, dword [esp + 8]
je 0x1005d5bb
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
push 0
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
lea eax, [eax*4 + 0x44]
push eax
call fcn.10026f30
mov esi, eax
add esp, 8
test esi, esi
je 0x100581f8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
add eax, 7
push 1
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.1004d840
mov ecx, dword [esp + 0xc]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x58]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 8]
sar edx, 3
mov eax, edx
mov dword [esi + 0xc], edi
shr eax, 0x1f
add eax, edx
mov byte [esi + 0x19], 0
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x54]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x20]
mov dword [esi + 0x14], 0
mov byte [esi + 0x1a], al
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x1005cc16
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x48], edi
cmp dword [esi + 8], edi
je 0x1005cc6e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x1005cc6e
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
nop dword [eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x1005cc50
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 8]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x1005cc8d
mov eax, dword [ecx + 0x1c]
jmp 0x1005cc90
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1005849d
jle 0x1005ccc7
mov ecx, dword [esi]
mov dl, 1
call fcn.1004e170
mov edi, dword [esp + 0x10]
push eax
push 0x101689bc
push edi
call fcn.1004e840
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x1005cccb
mov edi, dword [esp + 0x10]
cmp byte [esi + 0x19], 0
je 0x1005ccf6
mov eax, dword [esp + 8]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x1005ccf2
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.1004d900
add esp, 8
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x1005cd09
cmp dword [ecx + 0x18], 0
je 0x1005cd0e
call fcn.1004d2a0
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x14]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x10058be6
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x1005cd6a
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push edx
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.1004d1f0
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0xc]
add esp, 4
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x1005cd73
mov ecx, esi
call fcn.1004d150
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1005e10a
movzx edx, byte [esp + 0x54]
mov ecx, esi
call fcn.1004cc30
jmp 0x1005849d
mov ecx, dword [esp + 8]
lea eax, [esp + 0x1d8]
push eax
lea eax, [esp + 0x1d8]
mov dword [esp + 0x1d4], 0
push eax
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1e4], 0xffffffff
mov dword [esp + 0x1e0], 0xffffffff
call fcn.100d8c70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
je 0x1005cdfd
cmp edx, 5
jne 0x1005de53
mov dword [esp + 0x14], 0
mov dword [esp + 0x1d0], 1
mov eax, dword [esp + 8]
xor edi, edi
mov ecx, 0x9000
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [esp + edi*4 + 0x1d0]
cdq
test word [esi + 0x10], cx
je 0x1005ce32
push edx
push eax
mov ecx, esi
call fcn.1004d8d0
add esp, 8
mov ecx, 0x9000
jmp 0x1005ce40
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], edx
mov word [esi + 0x10], ax
inc edi
add esi, 0x28
cmp edi, 3
jl 0x1005ce11
jmp 0x1005849d
mov edx, dword [esp + 8]
mov ecx, edi
call fcn.100577f0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.1004a680
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.1003a050
mov ecx, dword [esp + 0x1c]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.1003a060
mov ecx, dword [esp + 0x1c]
test eax, eax
mov edx, 1
cmove esi, edi
call fcn.10039cc0
cmp esi, 5
jne 0x1005cf30
mov ecx, eax
call fcn.1002a330
test eax, eax
je 0x1005cecf
mov ecx, dword [esp + 0x1c]
call fcn.1003a090
test eax, eax
jne 0x1005cf30
mov esi, edi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1005cedb
mov esi, edi
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.10039ee0
mov esi, dword [esp + 0x48]
mov ecx, 0x2202
mov word [esi + 0x10], cx
mov ecx, eax
call fcn.10095960
mov ecx, eax
mov dword [esi + 8], eax
call fcn.1002a330
movzx edx, byte [esp + 0x54]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0x12], 1
call fcn.1004cc30
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp 0x100584a5
cmp esi, edi
je 0x1005ced1
cmp edi, 5
je 0x1005cf3e
cmp esi, 5
jne 0x1005ced1
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x55], 0
je 0x1005e133
cmp dword [eax + 0xc0], 1
jg 0x1005e133
cmp edi, 5
jne 0x1005cf82
mov ecx, dword [esp + 0x1c]
mov edx, eax
call fcn.1003a200
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005ced9
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.10039ee0
jmp 0x1005cf9e
cmp edi, 4
jne 0x1005cf93
mov ecx, dword [esp + 0x1c]
lea edx, [edi - 2]
call fcn.10039ee0
cmp dword [esp + 0x14], 0
jne 0x1005ced9
mov ecx, dword [esp + 0x20]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.1004b890
mov dword [esp + 0x14], eax
jmp 0x1005ced5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
test eax, eax
je 0x1005cfcc
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x1005cfce
xor eax, eax
mov edx, dword [esp + 0xc]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.100b63d0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10042800
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
je 0x1005849d
cmp edx, 0x65
jne 0x1005de53
mov dword [esp + 0x14], 0
jmp 0x1005d5b7
mov ecx, dword [esp + 8]
cmp dword [ecx + 4], 0
jne 0x1005d054
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0xc]
call fcn.100537e0
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [ecx + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov eax, dword [esp + 8]
mov dword [edi + 0x98], ecx
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10043580
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10043590
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov edx, dword [esp + 8]
mov al, byte [edx + 0xc]
mov edx, dword [esp + 0xc]
mov byte [esp + 0x120], al
test al, al
jne 0x1005d0d3
test dword [edx + 0x24], 4
jne 0x1005c4ed
mov eax, dword [esp + 8]
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 8]
push dword [esp + 0x120]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004b700
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
je 0x10058946
cmp dl, 6
jne 0x1005de53
mov eax, dword [esp + 8]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.1004e840
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x1005de53
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, dword [esp + 0xc]
call fcn.100b82c0
mov edx, eax
mov dword [esp + 0x14], edx
test esi, esi
je 0x10058be6
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.100539e0
mov edx, dword [esp + 0x14]
jmp 0x10058be6
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x80]
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
mov dword [esp + 0x94], eax
mov eax, dword [esp + 8]
movaps xmmword [esp + 0x80], xmm0
movq qword [esp + 0xa0], xmm0
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
call fcn.1004db00
mov dl, 1
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x80]
call fcn.1004e170
test eax, eax
je 0x1005d1d3
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
call fcn.100b7cd0
add esp, 8
mov dword [esp + 0x14], eax
test dword [esp + 0x90], 0x9000
jne 0x1005d1ea
cmp dword [esp + 0x98], 0
je 0x1005d1f6
lea ecx, [esp + 0x80]
call fcn.1004d2a0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
inc dword [ecx + 0xcc]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.100b80a0
mov ecx, dword [esp + 0x10]
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x1005de57
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x1005e17d
mov edi, dword [esi]
test edi, edi
je 0x1005e17d
lea eax, [esp + 0x30]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, esi
mov dword [esp + 0x14], eax
call fcn.100539e0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
call fcn.10057360
add esp, 8
test eax, eax
je 0x1005e16c
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov dword [esp + 0x30], 0
mov eax, dword [ecx + 8]
mov ecx, 0x9000
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x48], eax
test word [eax + 0x10], cx
je 0x1005d2f5
mov ecx, eax
call fcn.1004d260
jmp 0x1005d2fe
mov ecx, 1
mov word [eax + 0x10], cx
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x1005849d
mov esi, dword [ecx + 8]
mov edi, dword [esi]
inc dword [eax + 0x18]
call fcn.100b6ea0
mov ecx, dword [esp + 8]
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
push dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
push dword [eax]
mov eax, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [edi + 0x60]
push esi
call eax
mov esi, dword [esp + 0x34]
add esp, 0x14
mov edi, eax
mov dword [esp + 0x14], edi
mov ecx, dword [esi + 0x34]
call fcn.100b6eb0
push esi
push dword [esp + 0x10]
call fcn.1007a780
add esp, 8
test edi, edi
jne 0x1005e187
mov edx, dword [esp + 0x30]
test edx, edx
je 0x1005849d
mov ecx, dword [esp + 0x48]
push fcn.100269d0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.1004db70
add esp, 0x10
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.100d6670
test eax, eax
jne 0x100581f8
push eax
push 8
call fcn.100267c0
mov esi, eax
add esp, 8
test esi, esi
je 0x100581f8
mov eax, dword [esp + 8]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, eax
mov dword [esi + 4], ecx
mov ecx, edi
call fcn.100577f0
mov ecx, 1
mov edx, esi
push fcn.100269d0
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.1004d940
mov eax, dword [esp + 0x10]
add esp, 8
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [edi + 0x5c]
lea esi, [esi + edx*8]
add esi, 0x28
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], esi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x1c], eax
movd xmm0, esi
mov esi, dword [esi]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x5c], ecx
pshufd xmm1, xmm0, 0
mov eax, dword [ecx]
mov dword [esp + 0x2c], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax + edx*8]
mov dword [esp + 0x38], ecx
xor ecx, ecx
test esi, esi
jle 0x1005d55f
cmp esi, 0x10
jb 0x1005d547
cmp dword [0x1017a334], 2
jl 0x1005d547
mov eax, esi
and eax, 0x8000000f
jns 0x1005d496
dec eax
or eax, 0xfffffff0
inc eax
mov edx, esi
sub edx, eax
mov dword [esp + 0x20], edx
lea edx, [edi + 0x20]
mov edi, dword [esp + 0x20]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm3
pmulld xmm0, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm2
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm3
pmulld xmm0, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm2
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
paddd xmm0, xmm3
pmulld xmm0, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm2
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm3
pmulld xmm0, xmm2
paddd xmm0, xmm1
paddd xmm0, xmm2
movups xmmword [edx - 0x30], xmm0
cmp ecx, edi
jl 0x1005d4b0
mov edi, dword [esp + 0x48]
cmp ecx, esi
jge 0x1005d55f
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x1005d554
mov eax, dword [esp + 8]
push edi
mov edi, dword [esp + 0x64]
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x68]
push dword [esp + 0x44]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [esp + 0x40]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
call fcn.100539e0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x20]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x1005849d
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x100584a5
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x1005d5f3
mov ecx, esi
jmp 0x10058498
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x54]
movaps xmmword [esp + 0x130], xmm0
movaps xmmword [esp + 0x140], xmm0
mov dword [esp + 0x130], esi
mov byte [esp + 0x148], al
je 0x1005d645
mov ecx, esi
call fcn.1004d860
mov edx, dword [esp + 8]
mov eax, 0x401
mov dword [esi], 0
jmp 0x1005d658
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 + 0x130]
push dword [edx + 8]
push eax
mov eax, dword [esp + 0x28]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.100539e0
cmp dword [esp + 0x144], 0
jle 0x1005d6b6
push esi
call fcn.10054030
add esp, 4
push eax
push 0x101689bc
push edi
call fcn.1004e840
mov eax, dword [esp + 0x150]
add esp, 0xc
mov dword [esp + 0x14], eax
movzx edx, byte [esp + 0x54]
mov ecx, esi
call fcn.1004cc30
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x100589a4
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, esi
mov dword [esp + 0x14], eax
call fcn.100539e0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 0x20]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x1005c465
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x58]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov dword [esp + 8], edx
jmp 0x1005c46d
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], 0x4000000
and eax, 0x4000000
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 2
lea esi, [esi + eax*8]
jne 0x1005d794
mov byte [esi + 0x12], 1
jmp 0x1005d7b1
cmp byte [esi + 0x12], 1
je 0x1005d7b1
mov dl, 1
mov ecx, esi
call fcn.10029d40
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x1005de53
mov eax, dword [edi]
push dword [esi + 8]
push edi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], 0
jne 0x1005d7db
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.100539e0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005de8f
mov eax, dword [esp + 8]
jmp 0x100584a5
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
cmp byte [eax + 0x57], 0
jne 0x100581fc
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x48], edx
test edx, edx
je 0x1005e17d
mov eax, dword [edx]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1005e17d
cmp dword [eax + 0x34], 0
mov esi, dword [esp + 8]
mov esi, dword [esi + 8]
je 0x100580cf
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov edi, dword [edi + 0x5c]
mov al, byte [eax + 0x5c]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x1005d880
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x1005d875
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x24]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x2b]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.100539e0
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x1005d8fc
mov eax, dword [esp + 8]
cmp dword [eax + 4], edx
je 0x1005d8e7
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov eax, dword [esp + 8]
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x1005de8f
jmp 0x100584a5
cmp dl, 0x13
jne 0x1005d8e3
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x1005d8e3
mov ecx, dword [esp + 8]
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x1005e19c
mov eax, dword [esp + 8]
mov dword [esp + 0x14], 0
jmp 0x100584a5
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x1005d956
mov ecx, edx
call fcn.100577d0
mov edx, eax
jmp 0x1005d95f
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 8]
mov dword [edx + 4], 0
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x1005d9b1
mov ecx, esi
call fcn.100577d0
mov esi, eax
jmp 0x1005d9ba
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 8]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xc]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], edx
je 0x1005d9ed
mov ecx, edi
call fcn.10040750
mov edx, eax
mov eax, dword [esp + 8]
cmp edx, dword [eax + 0xc]
cmovb edx, dword [eax + 0xc]
mov ecx, edi
call fcn.10041840
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x48], edi
cmp dword [esi], edi
je 0x1005da6e
mov eax, dword [esp + 0x10]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x54]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x1005da6e
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
nop dword [eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x1005da50
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
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 0x1005849d
jle 0x1005dac9
mov dl, 1
mov ecx, edi
call fcn.1004e170
mov edi, dword [esp + 0x10]
push eax
push 0x101689bc
push edi
call fcn.1004e840
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x1005dacd
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
lea edx, [edi + 0xe4]
mov ecx, dword [esp + 0xc]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.100517a0
mov edx, dword [esp + 0x1c]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x1005de53
mov eax, dword [esp + 8]
jmp 0x100584a5
mov eax, dword [eax + 4]
mov ecx, 0xf7ff
lea eax, [eax + eax*4]
and word [esi + eax*8 + 0x10], cx
mov eax, dword [esp + 8]
jmp case.0x10057ce2.89
mov ecx, dword [esp + 8]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
call fcn.10057820
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.1014a1e0
mov ecx, dword [esp + 0x18]
mov esi, eax
shrd esi, edx, 3
and eax, 7
mov edx, dword [ecx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x1005849d
mov ecx, dword [esp + 8]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x20], edi
call fcn.10057820
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.1014a1e0
mov ecx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0x18]
mov esi, edi
shrd esi, edx, 3
and edi, 7
mov ecx, dword [eax + ecx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [esp + 0x10]
shl eax, cl
test eax, edx
mov eax, dword [esp + 8]
jne 0x1005dbe5
inc dword [edi + 0xc4]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x58]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x100584a5
inc dword [edi + 0xc0]
jmp 0x100584a5
mov edx, dword [esp + 0xc]
mov cl, byte [edx + 0x5e]
test cl, 0x41
je 0x1005dcaf
cmp byte [edi + 0x95], 0xfe
je 0x1005dcaf
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x1005dc22
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x1005dcab
test cl, 0x40
je 0x1005dc54
mov edx, eax
mov ecx, edi
call fcn.10056ec0
mov esi, eax
mov eax, dword [esp + 0xc]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.100269d0
mov esi, dword [esp + 0x24]
add esp, 0xc
jmp 0x1005dcab
cmp dword [edx + 0xc8], 1
push eax
jle 0x1005dc97
push str.____s
push edx
call fcn.100293f0
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0xc]
push esi
mov ecx, dword [eax + 0xd8]
push edi
push dword [eax + 0xdc]
push 1
call ecx
push esi
push dword [esp + 0x20]
call fcn.10026bf0
mov esi, dword [esp + 0x30]
add esp, 0x18
jmp 0x1005dcab
mov eax, dword [edx + 0xd8]
push edi
push dword [edx + 0xdc]
push 1
call eax
add esp, 0x10
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cmp eax, dword [0x10177c54]
jl 0x1005dcf2
mov eax, dword [esp + 8]
cmp byte [eax], 0xb6
je case.0x10057ce2.89
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x1005dcf0
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x1005dce7
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x1005dcd6
xor eax, eax
mov ecx, dword [esp + 8]
inc eax
mov dword [ecx + 4], eax
inc dword [edi + 0xbc]
jmp 0x1005d5b7
mov esi, dword [esp + 8]
mov ecx, dword [esi + 4]
mov dword [edi + 0x24], ecx
mov al, byte [esi + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x1005ddb5
mov ecx, esi
movzx eax, word [ecx + 2]
test ax, ax
je 0x1005dd67
push dword [eax*4 + 0x1015f1d8]
push str._s_constraint_failed
push edi
call fcn.1004e840
mov edi, esi
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x1005dd7c
mov esi, dword [esp + 0x10]
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [esp + 0x18]
call fcn.100293f0
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x1005dd7c
push dword [ecx + 0x10]
push 0x101689bc
push edi
call fcn.1004e840
mov edi, dword [esp + 0x14]
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, edi
sub ecx, dword [esp + 0x58]
push dword [eax + 0x7c]
push dword [eax + 0xc8]
mov eax, 0x66666667
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 [edi + 4]
call fcn.100296a0
mov edi, dword [esp + 0x24]
add esp, 0x14
mov ecx, edi
call fcn.10051250
mov edi, eax
mov eax, dword [esp + 0x10]
cmp edi, 5
jne 0x1005ddcc
mov dword [eax + 0x24], edi
jmp 0x1005dde5
cmp dword [eax + 0x24], 0
mov ecx, 0x65
mov eax, 1
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x78]
nop dword [eax]
cmp dword [esp + 0xb4], esi
jb 0x1005e488
mov edx, dword [esp + 0x74]
ja 0x1005de0d
cmp dword [esp + 0x7c], edx
jb 0x1005e488
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x1005e488
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x78], edx
adc esi, 0
call eax
mov ecx, dword [esp + 0x10]
add esp, 4
test eax, eax
je 0x1005ddf0
or ecx, 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x74], ecx
mov edx, 9
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp byte [ecx + 0x57], 0
je 0x1005e393
mov edx, 7
jmp 0x1005e3be
mov ecx, 0x174a4
call fcn.100da8e0
mov edx, eax
jmp 0x1005de4f
cmp edx, 7
je 0x100581f8
cmp edx, 0x12
je 0x1005e055
mov ecx, dword [esp + 0xc]
jmp 0x1005de5b
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
add ecx, ecx
push dword [edx + ecx*8]
mov ecx, dword [esp + 0x24]
push dword [ecx]
mov ecx, esi
push dword [eax*4 + 0x10179124]
call fcn.10057b60
mov edi, dword [esp + 0x1c]
push eax
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x24]
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov edi, dword [esp + 0x10]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x14]
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov edi, dword [esp + 0x10]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x14]
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov ecx, dword [esp + 0xc]
mov edi, eax
mov byte [ecx + 0x55], 0
jmp 0x1005de5b
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov edi, 5
imul ecx
mov ecx, dword [esp + 0xc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [edx + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [edx + 0x24], edi
jmp 0x1005dde9
mov edi, 0x65
jmp 0x1005dde5
mov ecx, dword [esp + 0xc]
and edx, 0x100000
or edx, 0
mov edi, dword [esp + 0x10]
je 0x1005df8f
mov edx, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov edx, 0xb
mov dword [esp + 0x14], edx
jmp 0x1005de5b
cmp dl, 5
jne 0x1005de53
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x24], edi
mov dword [ecx + 0x20], eax
jmp 0x1005dde5
push dword [edi + 0x7c]
mov esi, dword [esp + 0x10]
push esi
call fcn.10026bf0
add esp, 8
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.100270c0
mov dword [edi + 0x7c], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov eax, esi
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
je 0x1005e014
mov ecx, esi
call fcn.1007a1a0
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xffffffed
mov dword [esp + 0x14], edx
or eax, 1
mov ecx, esi
mov dword [edi + 0x98], eax
jmp 0x1005de57
mov edx, 0x204
jmp 0x1005de4f
mov ecx, dword [esi + 0x10]
call fcn.100413c0
mov edx, dword [esp + 0x14]
jmp 0x1005de53
mov edi, dword [esp + 0x10]
push str.string_or_blob_too_big
push edi
call fcn.1004e840
add esp, 8
mov edx, 0x12
jmp 0x1005de4f
push str.index_corruption
mov edx, 0x181a6
mov ecx, 0x30b
call fcn.100da8b0
add esp, 4
mov edx, eax
jmp 0x1005de4f
push 0x10166fc4
push 0x18273
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100296a0
add esp, 0x14
mov edx, 0xb
jmp 0x1005de4f
mov edx, 6
mov byte [edi + 0x94], 2
jmp 0x1005de4f
mov ecx, dword [esp + 0xc]
call fcn.1007a210
jmp 0x100581f8
push dword [esp + 0xd0]
call fcn.100269d0
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x1005de53
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x1c], 1
call fcn.1004e840
add esp, 8
mov edx, 1
jmp 0x1005de53
push esi
call fcn.10054030
mov edi, dword [esp + 0x14]
add esp, 4
push eax
push 0x101689bc
push edi
call fcn.1004e840
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
jmp 0x1005de5b
mov edi, dword [esp + 0x10]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x14], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, 1
jmp 0x1005de5b
push dword [esp + 0x30]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x100581f8
mov edx, 6
jmp 0x1005de4f
push dword [esp + 0x30]
call fcn.100269d0
mov edx, dword [esp + 0x18]
add esp, 4
jmp 0x1005de53
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [edi + 0x94], al
jmp 0x1005de5b
mov eax, dword [edi + 0x1c]
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edi + 0x78], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x57], 0
jne 0x100581fc
test byte [eax + 0x5e], 4
je 0x1005e1ff
push 0
push edi
push dword [eax + 0xdc]
mov eax, dword [eax + 0xd8]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 0x64
jmp 0x1005dde5
mov edx, dword [esp + 8]
mov ecx, dword [edx + 4]
mov edi, dword [edx + 8]
mov edx, dword [esp + 0xc]
movzx eax, byte [edx + 0x55]
lea esi, [edx + 0x55]
mov dword [esp + 0xd0], ecx
cmp ecx, eax
je 0x1005e316
test edi, edi
je 0x1005e262
mov edi, dword [esp + 0xc]
mov edx, 0x204
mov ecx, edi
call fcn.100d7d90
mov al, 1
jmp 0x1005e2b6
test ecx, ecx
je 0x1005e293
cmp dword [edx + 0xc4], 0
jle 0x1005e293
mov edi, dword [esp + 0x10]
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x14]
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov ecx, dword [esp + 0x10]
mov edx, 1
call fcn.100511e0
mov edi, eax
test edi, edi
jne 0x1005dde5
mov al, byte [esp + 0xd0]
mov edi, dword [esp + 0xc]
mov byte [esi], al
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.10051250
cmp eax, 5
jne 0x1005e301
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov edi, 5
imul ecx
mov ecx, dword [esp + 0xc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, byte [esp + 0xd0]
mov byte [ecx + 0x55], al
mov dword [esi + 0x24], edi
jmp 0x1005dde9
mov ecx, edi
call fcn.100d76b0
cmp dword [esi + 0x24], 0
mov ecx, 0x65
jmp 0x1005ddd5
test ecx, ecx
jne 0x1005e321
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1005e330
test edi, edi
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov edi, dword [esp + 0x10]
push eax
push edi
call fcn.1004e840
mov ecx, dword [esp + 0x14]
mov edx, 1
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x1005de5b
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x7c], eax
jmp 0x1005de4a
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x7c], eax
jmp 0x100581f8
mov eax, esi
jmp 0x100581fc
cmp edx, 0x210a
jne 0x1005e3c2
push 0x10166fc4
push 0x18b50
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100296a0
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x14], edx
cmp dword [edi + 0x7c], 0
jne 0x1005e3e6
cmp edx, 0xc0a
je 0x1005e3e6
mov ecx, edx
call fcn.100d7ed0
push eax
push 0x101689bc
push edi
call fcn.1004e840
add esp, 0xc
mov esi, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x24], esi
call fcn.1002a3b0
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
push dword [edi + 0x7c]
imul ecx
push dword [edi + 0xc8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.100296a0
add esp, 0x14
cmp byte [edi + 0x97], 2
jne 0x1005e439
mov ecx, edi
call fcn.10051250
cmp esi, 0xc0a
jne 0x1005e46d
mov ecx, dword [esp + 0xc]
call fcn.10027200
mov ecx, dword [esp + 0xc]
mov al, byte [esp + 0x6f]
mov edi, 1
test al, al
je 0x1005dde9
movzx edx, al
dec edx
call fcn.1007a1a0
jmp 0x1005dde5
cmp esi, 0xb
jne 0x1005e44a
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x55], 0
jne 0x1005e44e
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x1005e44e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x1005e4a6
mov ecx, eax
call fcn.1004fd00
mov ecx, dword [esp + 0x1dc]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.10136e2d
mov esp, ebp
pop ebp
ret