Function at 0x1004c7c0
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, 0x1a8
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1a4], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x20], 0
xor cl, cl
mov dword [esp + 0x18], edi
mov byte [esp + 0x7b], cl
xorps xmm0, xmm0
mov dword [esp + 0x70], 0
cmp dword [edi + 0xa0], 0
mov eax, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x64], eax
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov dword [esp + 0x14], eax
movlpd qword [esp + 0xc8], xmm0
mov dword [esp + 0x1c], esi
mov cl, byte [eax + 0x54]
mov byte [esp + 0x58], cl
je 0x1004c837
mov ecx, edi
call fcn.10044ea0
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x174], 0
je 0x1004c863
mov ecx, dword [eax + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
mov eax, dword [esp + 0x14]
sub ecx, edx
mov dword [esp + 0x84], 0
jmp 0x1004c871
or ecx, 0xffffffff
mov dword [esp + 0x84], 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x80], ecx
je 0x10053746
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 0x1005371c
mov eax, dword [edi + 0x20]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xcc]
movsd qword [esp + 0x138], xmm0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0xc8]
add ecx, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x88], ecx
mov cl, byte [eax]
adc edx, 0
mov dword [esp + 0xc4], edx
movzx edx, cl
mov byte [esp + 0x2b], cl
mov dword [esp + 0x2c], edx
cmp edx, 0xb5
ja case.0x1004c906.89
jmp dword [edx*4 + 0x10053918]
mov ecx, dword [esp + 0x10]
mov edx, 4
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x64]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov word [eax + esi*8 + 0x10], dx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
jmp 0x10052b15
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x1005185c
mov eax, dword [esi + eax*8]
mov ecx, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, 4
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x10]
mov dword [esi + ecx*8 + 4], edx
cmp dword [eax + 8], 0
jne 0x10051df8
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
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
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, 4
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x64]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
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 edi, dword [esp + 0x18]
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x1c]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 0x10]
je case.0x1004c906.89
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x10053148
cmp dword [eax + 4], 0
jne 0x10053148
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
mov ecx, dword [esp + 0x1c]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.10048670
add esp, 8
mov ecx, esi
call fcn.10045a40
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 4
jne 0x1004cad1
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 + 0x64], ecx
mov dword [esp + 0x1c], esi
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004cb44
call fcn.1004c6a0
mov ecx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004cb9a
mov ecx, edx
call fcn.1004c6a0
mov edx, eax
jmp 0x1004cba3
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [edx], ecx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004cbf0
call fcn.1004c6a0
mov ecx, eax
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x10]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004cc48
mov ecx, esi
call fcn.1004c6a0
mov esi, eax
jmp 0x1004cc51
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x1004cc60
xor ecx, ecx
jmp 0x1004cc78
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004cc65
mov eax, dword [esp + 0x10]
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [esp + 0x58], 1
mov dword [eax + 4], ecx
je 0x1004ccf5
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.10042eb0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x20], edi
test edi, edi
jne 0x10053406
movzx edx, byte [esp + 0x58]
mov ecx, esi
call fcn.10042010
test eax, eax
jne 0x1004e78a
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x1004ccdf
push dword [ecx + 0x10]
push dword [esp + 0x18]
call fcn.1001e550
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [esp + 0x10]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [edx + 4], ecx
jmp 0x1004ccf9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x10053406
mov edi, dword [esp + 0x18]
mov byte [edx], 0x49
jmp 0x1004cd13
mov edx, dword [esp + 0x10]
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 0x1004cd35
call fcn.1004c6a0
mov edx, dword [esp + 0x10]
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 + 0x58]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x10053126
mov edi, dword [esp + 0x1c]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
mov edi, dword [esp + 0x18]
jne 0x10053126
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*8 + 4], edx
jne 0x10053126
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004cdd8
mov ecx, edx
call fcn.1004c6a0
mov edx, eax
jmp 0x1004cde1
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
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 + 0x38], eax
mov word [esi], ax
test edi, edi
jle 0x10053126
mov ecx, 0x9000
test word [esi + 0x28], cx
lea esi, [esi + 0x28]
je 0x1004ce3d
lea ecx, [esi - 0x10]
call fcn.100425b0
mov eax, dword [esp + 0x38]
mov ecx, 0x9000
dec edi
mov word [esi], ax
mov dword [esi - 4], 0
test edi, edi
jg 0x1004ce23
jmp 0x10053126
mov ecx, dword [esp + 0x10]
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 + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004ceb1
mov ecx, esi
call fcn.1004c6a0
mov esi, eax
jmp 0x1004ceba
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x1004cf05
mov edx, eax
mov ecx, esi
call fcn.10042bc0
mov ecx, esi
call fcn.100423c0
test eax, eax
jne 0x1004e78e
mov dl, byte [esp + 0x58]
mov eax, dword [esp + 0x10]
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.10042eb0
mov dl, byte [esp + 0x68]
add esp, 0x10
mov eax, dword [esp + 0x10]
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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.10042da0
test eax, eax
jne 0x10053406
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x1004cf7c
mov ecx, esi
call fcn.10042ba0
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 0x10053126
mov edx, dword [esp + 0x10]
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
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x1004cfd1
cmp dword [esi + 0x18], 0
je 0x1004cfdc
mov ecx, esi
call fcn.100425f0
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 0x1004d022
mov ecx, esi
call fcn.10042330
test eax, eax
jne 0x1004e78a
mov ecx, dword [esp + 0x30]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x30], ecx
jne 0x1004cfc0
jmp 0x10053126
mov ecx, dword [esp + 0x10]
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.10042df0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x1004d07e
mov ecx, esi
call fcn.10042330
test eax, eax
jne 0x1004e78a
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x1004d09c
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 2
je 0x1004d09c
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 0x10053126
add esi, 0x28
add edi, 0x28
jmp 0x1004d053
mov ecx, dword [esp + 0x10]
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.10042df0
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 + 0x18]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
je 0x1004d142
push eax
push edx
call fcn.10042c10
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov dword [ecx], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
xor edx, edx
mov ecx, edi
call fcn.100463c0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 0x10]
mov dword [esp + 0x48], edx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 0x10]
or al, dl
test al, 1
jne 0x1005311f
test dl, 0x12
jne 0x1004d207
mov dl, byte [esp + 0x58]
push 0
call fcn.10042420
add esp, 4
test eax, eax
jne 0x1004e78a
mov eax, dword [esp + 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [esp + 0x48], ecx
jmp 0x1004d233
test edx, 0x400
je 0x1004d233
call fcn.100423c0
test eax, eax
jne 0x1004e78a
mov eax, dword [esp + 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [esp + 0x48], eax
movzx eax, word [edi + 0x10]
mov dword [esp + 0x30], eax
test al, 0x12
jne 0x1004d251
mov dl, byte [esp + 0x58]
mov ecx, edi
push 0
call fcn.10042420
add esp, 4
jmp 0x1004d25f
test eax, 0x400
je 0x1004d27a
mov ecx, edi
call fcn.100423c0
test eax, eax
jne 0x1004e78a
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
mov dword [esp + 0x38], eax
cdq
mov ecx, eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x5c], edx
jg 0x10053406
jl 0x1004d2af
cmp ecx, eax
ja 0x10053406
mov edx, dword [esp + 0x38]
xor eax, eax
cmp esi, edi
mov ecx, esi
sete al
add edx, 2
push eax
call fcn.10042030
add esp, 4
test eax, eax
jne 0x1004e78a
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x1004d301
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.1012be10
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x2c]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 8]
add eax, dword [edi + 0xc]
push eax
call fcn.1012be10
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x48]
mov dl, byte [esp + 0x58]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x54]
cmp dl, 1
jbe 0x1004d33e
mov eax, dword [esp + 0x5c]
and ecx, 0xfffffffe
mov dword [esp + 0x44], eax
mov eax, dword [esi + 8]
mov byte [ecx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov dword [esi + 0xc], ecx
mov byte [esi + 0x12], dl
jmp 0x10053126
mov ecx, dword [esp + 0x10]
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 + 0x1c]
mov dword [esp + 0x30], 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 + 0x10]
mov dword [esp + 0x38], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
mov al, cl
and al, dl
test al, 4
jne 0x1004d3f6
or cl, dl
test cl, 1
jne 0x1004d606
and edx, 0x2d
je 0x1004d3c8
mov ecx, edx
mov dword [esp + 0x30], ecx
jmp 0x1004d3d6
mov ecx, edi
call fcn.1004c5a0
movzx eax, ax
mov dword [esp + 0x30], eax
mov ax, word [esi + 0x10]
and ax, 0x2d
jne 0x1004d3e7
mov ecx, esi
call fcn.1004c5a0
movzx eax, ax
and al, byte [esp + 0x30]
test al, 4
je 0x1004d4ad
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xd4], edi
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x1004d425
jmp dword [eax*4 + 0x10053bf0]
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.10023480
add esp, 8
test eax, eax
jne 0x1004d4a9
jmp 0x1004d5d3
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.10023520
add esp, 8
test eax, eax
jne 0x1004d4a9
jmp 0x1004d5d3
push edx
push ecx
lea ecx, [esp + 0xd8]
call fcn.10023570
add esp, 8
test eax, eax
jne 0x1004d4a9
jmp 0x1004d5d3
mov eax, ecx
or eax, edx
je 0x1004d606
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [esp + 0x30]
jne 0x1004d597
test eax, eax
jne 0x1004d597
cmp edi, 0x80000000
jne 0x1004d597
mov edi, dword [esp + 0x2c]
mov ecx, edi
call fcn.10042750
mov ecx, esi
movsd qword [esp + 0x40], xmm0
call fcn.10042750
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x1004d4d0
jmp dword [eax*4 + 0x10053c00]
addsd xmm0, qword [esp + 0x40]
jmp 0x1004d55a
subsd xmm0, qword [esp + 0x40]
jmp 0x1004d55a
mulsd xmm0, qword [esp + 0x40]
jmp 0x1004d55a
movsd xmm1, qword [esp + 0x40]
ucomisd xmm1, qword [esp + 0x138]
lahf
test ah, 0x44
jnp 0x1004d606
divsd xmm0, xmm1
jmp 0x1004d55a
mov ecx, edi
call fcn.100426c0
mov ecx, dword [esp + 0x38]
mov esi, eax
mov edi, edx
call fcn.100426c0
mov ecx, esi
mov dword [esp + 0xd0], eax
or ecx, edi
mov dword [esp + 0xd4], edx
je 0x1004d606
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1004d54a
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.1013b790
mov ecx, eax
call fcn.1013bb40
movsd qword [esp + 0x40], xmm0
call fcn.10021fa0
test eax, eax
jne 0x1004d606
mov edx, dword [esp + 0x48]
mov ecx, 0xf248
movsd xmm0, qword [esp + 0x40]
mov ax, word [edx + 0x10]
and ax, cx
movsd qword [edx], xmm0
or ax, 8
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x10053126
push edx
push ecx
push edi
push eax
call fcn.1013b6e0
jmp 0x1004d5c5
mov eax, ecx
or eax, edx
je 0x1004d606
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x1004d5b8
mov ecx, 1
xor edx, edx
mov eax, dword [esp + 0x30]
push edx
push ecx
push edi
push eax
call fcn.1013b790
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd0], eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
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 0x10053126
mov eax, dword [esp + 0x48]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x1004d621
mov ecx, eax
call fcn.100425b0
jmp 0x10053126
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x10053126
mov eax, dword [eax + 4]
test eax, eax
je 0x1005185c
push 0
push 0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042c40
add esp, 8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x38], ecx
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 0x10]
or al, byte [ecx + 0x10]
mov dword [esp + 0x48], esi
test al, 1
je 0x1004d6f2
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x1004d6cb
mov ecx, esi
call fcn.100425b0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, edx
call fcn.100426c0
mov ecx, dword [esp + 0x38]
mov edi, eax
mov esi, edx
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], esi
call fcn.100426c0
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov al, byte [eax]
mov byte [esp + 0x2b], al
cmp al, 0x66
jne 0x1004d72e
and edi, ecx
and esi, edx
jmp 0x1004d79c
cmp al, 0x67
jne 0x1004d738
or edi, ecx
or esi, edx
jmp 0x1004d79c
mov eax, ecx
or eax, edx
je 0x1004d79c
test edx, edx
jg 0x1004d767
jl 0x1004d748
test ecx, ecx
jae 0x1004d767
mov al, 0xd1
sub al, byte [esp + 0x2b]
cmp edx, 0xffffffff
jl 0x1004d776
jg 0x1004d75a
cmp ecx, 0xffffffc0
jbe 0x1004d776
neg ecx
mov dword [esp + 0x30], ecx
adc edx, 0
neg edx
jmp 0x1004d76b
mov al, byte [esp + 0x2b]
test edx, edx
jl 0x1004d7be
jg 0x1004d776
cmp ecx, 0x40
jb 0x1004d7be
test esi, esi
jg 0x1004d78b
jl 0x1004d780
test edi, edi
jae 0x1004d78b
cmp al, 0x68
je 0x1004d78b
or edi, 0xffffffff
or esi, edi
jmp 0x1004d79c
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], edi
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 0x10], ax
jmp 0x10053126
movq xmm1, qword [esp + 0x128]
movd xmm0, ecx
cmp al, 0x68
jne 0x1004d7db
psllq xmm1, xmm0
movq qword [esp + 0x40], xmm1
jmp 0x1004d794
psrlq xmm1, xmm0
movq qword [esp + 0x40], xmm1
test esi, esi
jg 0x1004d794
jl 0x1004d7ef
test edi, edi
jae 0x1004d794
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x30]
or edx, 0xffffffff
call fcn.1013b890
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
or edi, eax
or esi, edx
jmp 0x1004d79c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.100426c0
mov dword [esi], eax
mov ecx, 0xf244
mov ax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x10]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1004d8b6
push dword [esp + 0x58]
mov dl, 0x43
mov ecx, esi
call fcn.1004c420
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x1004d8b6
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jne 0x10052992
mov edx, 0x14
mov dword [esp + 0x20], edx
jmp 0x10053240
mov eax, dword [esp + 0x10]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea ecx, [esi + eax*8]
je 0x1005185c
call fcn.10042840
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x1004d945
mov ecx, esi
call fcn.100423c0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x58]
mov dl, byte [eax + 8]
call fcn.100429d0
add esp, 4
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x6c], edi
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x2c], ecx
and dword [esp + 0x2c], eax
test byte [esp + 0x2c], 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], ecx
je 0x1004da8f
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov esi, dword [edi + 4]
mov dword [esp + 0x38], eax
mov eax, dword [edi]
mov edi, dword [esp + 0x38]
cmp edi, esi
jl 0x1004da21
jg 0x1004d9e0
cmp ecx, eax
jbe 0x1004da17
cmp byte [edx + 0x10151a58], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jne 0x10052992
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], 1
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp edi, esi
jg 0x1004da58
jl 0x1004da21
cmp ecx, eax
jae 0x1004da58
cmp byte [edx + 0x10151a4c], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jne 0x10052992
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], 0xffffffff
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp byte [edx + 0x10151a52], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jne 0x10052992
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, ecx
or edx, eax
mov dword [esp + 0x38], edx
test dl, 1
je 0x1004db1a
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x1004dae8
test byte [esp + 0x2c], 1
je 0x1004dad5
test ecx, 0x100
jne 0x1004dad5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x70], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x10151a52]
jmp 0x1004dc8e
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x1004dc18
mov edi, dword [esp + 0x18]
test al, 0x10
mov eax, dword [esp + 0x10]
jne 0x10052992
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], 1
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 2]
and dl, 0x47
mov byte [esp + 0x2b], dl
cmp dl, 0x43
mov edx, dword [esp + 0x38]
jb 0x1004db6b
test dl, 2
je 0x1004dc01
and al, 0x2e
cmp al, 2
jne 0x1004db51
xor edx, edx
mov ecx, edi
call fcn.1004c240
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x24], ecx
and cl, 0x2e
cmp cl, 2
jne 0x1004dc01
xor edx, edx
mov ecx, esi
call fcn.1004c240
jmp 0x1004dc01
cmp byte [esp + 0x2b], 0x42
jne 0x1004dc01
test dl, 2
je 0x1004dc01
test al, 2
jne 0x1004dbc9
test al, 0x2c
je 0x1004dbc9
mov dl, byte [esp + 0x58]
mov ecx, edi
push 1
call fcn.10042420
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
mov edx, dword [esp + 0x58]
add esp, 4
xor ax, dx
and ax, cx
xor ax, word [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x54], eax
cmp edi, esi
jne 0x1004dbc5
or eax, 2
movzx ecx, ax
mov dword [esp + 0x24], ecx
jmp 0x1004dbc9
mov ecx, dword [esp + 0x24]
test cl, 2
jne 0x1004dc01
test cl, 0x2c
je 0x1004dc01
mov dl, byte [esp + 0x58]
mov ecx, esi
push 1
call fcn.10042420
mov ecx, dword [esp + 0x28]
add esp, 4
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x10]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.10047410
mov ecx, dword [esp + 0x28]
add esp, 4
mov edx, dword [esp + 0x54]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
mov dword [esp + 0x30], eax
movzx eax, cx
mov dword [esp + 0x5c], eax
movzx eax, dx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
jge 0x1004dc48
mov al, byte [eax + 0x10151a4c]
jmp 0x1004dc8e
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
test edi, edi
movzx edx, cx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x6c]
movzx ecx, cx
jne 0x1004dc6e
mov al, byte [eax + 0x10151a52]
jmp 0x1004dc8e
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov al, byte [eax + 0x10151a58]
movzx edx, cx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x6c]
movzx ecx, cx
mov word [esi + 0x10], cx
test al, al
mov eax, dword [esp + 0x10]
mov word [edi + 0x10], dx
jne 0x10051df8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp dword [esp + 0x70], 0
je 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x1004dcef
xor eax, eax
jmp 0x1004dcf5
mov eax, dword [edx - 4]
add eax, 4
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov esi, dword [esi + 4]
mov dword [esp + 0x5c], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], edx
test ecx, ecx
jle 0x10053126
lea edi, [edx + 0x14]
nop word [eax + eax]
test eax, eax
je 0x1004dd39
mov ecx, dword [eax + esi*4]
jmp 0x1004dd3b
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x1c]
push dword [edi]
movzx eax, byte [eax + esi]
and eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x58], eax
call fcn.10047410
mov edx, eax
add esp, 4
mov dword [esp + 0x70], edx
test edx, edx
jne 0x1004dd9e
mov eax, dword [esp + 0x30]
inc esi
mov edx, dword [esp + 0x48]
add edi, 4
cmp esi, dword [esp + 0x2c]
jl 0x1004dd30
jmp 0x10053126
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x1004ddc5
mov eax, dword [esp + 0x54]
test byte [eax + 0x10], 1
jne 0x1004ddbf
mov eax, dword [esp + 0x6c]
test byte [eax + 0x10], 1
je 0x1004ddc5
neg edx
mov dword [esp + 0x70], edx
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x10]
je 0x1005312a
mov edi, dword [esp + 0x18]
neg edx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
test edx, edx
jns 0x1004de2a
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
jne 0x1004de52
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
add eax, 0xffffffec
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov edx, 2
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042780
mov esi, eax
mov edx, 2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
call fcn.10042780
mov ecx, dword [esp + 0x10]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x1004dec1
mov dl, byte [esi + eax + 0x10155634]
jmp 0x1004dec8
mov dl, byte [esi + eax + 0x10156488]
mov eax, dword [ecx + 0xc]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + esi*8 + 0x10]
cmp dl, 2
jne 0x1004df08
and ecx, 0xf241
or ecx, 1
mov word [eax + esi*8 + 0x10], cx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edi, dword [esp + 0x1c]
and ecx, 0xf244
movzx eax, dl
or ecx, 4
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov edi, dword [esp + 0x18]
mov dword [eax + esi*8 + 4], edx
mov word [eax + esi*8 + 0x10], cx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042780
mov ecx, dword [esp + 0x10]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
jmp 0x1004d63e
mov edx, dword [esp + 0x10]
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 0x1004dfc4
xor edx, edx
call fcn.10042780
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.10042c40
mov eax, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, esi
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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.10042ba0
test byte [edi + 0x10], 1
jne 0x10053126
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.100426c0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x10053126
mov edi, dword [edi + 0xd0]
mov eax, dword [esp + 0x18]
test edi, edi
je 0x1004e082
mov ecx, dword [esp + 0x10]
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 0x1005298a
bts edx, ecx
mov byte [esi + edi], dl
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jmp 0x1004e095
mov eax, dword [eax + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x10051df4
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042780
test eax, eax
mov eax, dword [esp + 0x10]
jne 0x10051df8
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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.10042780
test eax, eax
mov eax, dword [esp + 0x10]
je 0x10051df8
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 0x10]
jne 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x1004e1b7
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 0x1004e1a2
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x1004e199
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
movzx eax, ax
jmp 0x1004e1d7
movzx eax, byte [eax + 0x1015134c]
jmp 0x1004e1d7
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, 1
dec ecx
shl ax, cl
movzx eax, ax
jmp 0x1004e1d7
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.10049050
mov edx, 1
add esp, 4
lea ecx, [eax - 1]
shl dx, cl
movzx eax, dx
mov edi, dword [esp + 0x10]
test word [edi + 2], ax
mov eax, edi
mov edi, dword [esp + 0x18]
jne 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x1004e227
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x1004e227
mov eax, dword [ecx + 8]
jmp 0x1004d63a
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
mov eax, dword [esp + 0x10]
je 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1005185c
cmp byte [eax + 2], 0
mov eax, dword [esp + 0x10]
je case.0x1004c906.89
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042ba0
jmp 0x1005298e
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x60], ecx
cmp eax, dword [edi + 0x1c]
je 0x1004e325
cmp byte [esi + 2], 0
jne 0x1004e37f
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x1004e301
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004e34f
mov eax, dword [eax + edx*4 + 4]
test eax, eax
je 0x1004e34f
mov esi, dword [esi + 0x28]
lea edx, [eax - 1]
mov edi, dword [esp + 0x18]
jmp 0x1004e2c0
cmp byte [edi], 0
je 0x1004e364
mov ecx, esi
call fcn.10046ba0
mov edi, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov edx, dword [esp + 0x24]
jmp 0x1004e2c4
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x1004e45f
mov ecx, esi
call fcn.10046ba0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov edx, dword [esp + 0x24]
jmp 0x1004e2c4
mov ecx, esi
call fcn.10046b30
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov ecx, edi
call fcn.10038c80
lea edx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.10039230
mov ecx, eax
lea edi, [esi + 0x54]
jmp 0x1004e3aa
cmp byte [esi], 3
jne 0x1004e42f
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x1004e42f
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea edi, [esi + 0x54]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [edi], eax
mov dword [esi + 0x50], eax
mov ecx, dword [edx + ecx*8 + 8]
mov eax, dword [esp + 0x18]
lea edx, [esi + 0x34]
mov dword [esi + 0x4c], ecx
mov dword [esp + 0x54], edx
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov ecx, dword [esp + 0x60]
mov dword [ecx], eax
cmp eax, 0x80
jae 0x1004e3d5
mov eax, 1
jmp 0x1004e3ea
mov edx, ecx
mov ecx, dword [esi + 0x4c]
call fcn.10023330
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x54]
movzx eax, al
mov dword [edx], eax
xor eax, eax
lea edx, [esi + 0x3e]
mov word [edx], ax
mov eax, dword [edi]
mov dword [esp + 0x2c], edx
cmp eax, dword [ecx]
jae 0x1004e423
mov dword [esi + 0x4c], 0
mov dword [edi], 0
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x1004e631
cmp eax, dword [esi + 0x50]
ja 0x1004e631
jmp 0x1004e466
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x30], eax
jmp 0x1004e4ed
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
lea edx, [esi + 0x3e]
mov dword [esp + 0x2c], edx
movzx eax, word [edx]
mov edi, dword [esp + 0x24]
cmp eax, edi
ja 0x1004e6dc
lea eax, [esi + 0x34]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
cmp eax, dword [ecx]
jae 0x1004e667
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x1004e4e1
xorps xmm0, xmm0
lea eax, [esp + 0x140]
movaps xmmword [esp + 0x140], xmm0
movaps xmmword [esp + 0x150], xmm0
movq qword [esp + 0x160], xmm0
mov edx, dword [ecx]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.100432f0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x148]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
jmp 0x1004e4e9
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], edx
movzx ecx, word [edx]
xor edx, edx
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x68], edx
lea edx, [ecx + 0x16]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + ecx*4]
lea edx, [esi + edx*4]
mov edi, dword [edi]
add edi, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x48], edx
mov eax, dword [eax]
add eax, dword [esp + 0x30]
mov dword [esp + 0x6c], eax
movzx eax, byte [edi]
mov dword [esp + 0x74], eax
mov dword [edx], eax
mov eax, dword [esp + 0x74]
cmp eax, 0x80
jae 0x1004e553
mov cl, al
inc edi
call fcn.10046c20
mov ecx, dword [esp + 0x5c]
movzx eax, al
cdq
add ecx, eax
adc dword [esp + 0x68], edx
jmp 0x1004e581
lea edx, [esp + 0x74]
mov ecx, edi
call fcn.10023330
mov ecx, dword [esp + 0x48]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x74]
mov dword [ecx], eax
mov ecx, dword [esp + 0x74]
call fcn.10046c00
mov ecx, dword [esp + 0x5c]
add ecx, eax
adc dword [esp + 0x68], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
inc eax
add dword [esp + 0x48], 4
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x38], eax
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0x48]
cmp eax, dword [esp + 0x24]
ja 0x1004e5b4
cmp edi, dword [esp + 0x6c]
jb 0x1004e527
mov edx, dword [esp + 0x6c]
jmp 0x1004e5bc
mov edx, dword [esp + 0x6c]
cmp edi, edx
jb 0x1004e5fd
cmp edi, edx
ja 0x1004e610
cmp ecx, dword [esi + 0x50]
jne 0x1004e610
cmp dword [esp + 0x68], 0
jne 0x1004e60c
mov edx, dword [esp + 0x2c]
sub edi, dword [esp + 0x30]
cmp dword [esi + 0x4c], 0
mov word [edx], ax
mov eax, dword [esp + 0x54]
mov dword [eax], edi
jne 0x1004e5f3
lea ecx, [esp + 0x140]
call fcn.10042630
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x24]
jmp 0x1004e66d
mov edx, dword [esp + 0x68]
test edx, edx
jb 0x1004e5cc
ja 0x1004e60c
cmp ecx, dword [esi + 0x50]
jbe 0x1004e5cc
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x60]
cmp dword [eax], 0
jne 0x1004e61f
xor eax, eax
mov edi, edx
jmp 0x1004e5cc
cmp dword [esi + 0x4c], 0
jne 0x1004e631
lea ecx, [esp + 0x140]
call fcn.10042630
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x1005322c
mov edi, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x1c]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
xor ecx, ecx
mov dword [esp + 0x74], ecx
movzx eax, word [edx]
cmp eax, edi
ja 0x1004e6e4
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
jne 0x1004e6b9
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.10042df0
mov eax, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esi + edi*4 + 0x58]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
mov dword [esp + 0x38], edi
test word [edi + 0x10], ax
je 0x1004e70f
mov ecx, edi
call fcn.10042ba0
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x38]
jb 0x1004e7f2
mov eax, dword [esp + 0x24]
mov eax, dword [edx + eax*4]
add eax, dword [esi + 0x4c]
mov dword [esp + 0x38], eax
cmp ecx, 0xc
jae 0x1004e74d
mov edx, ecx
mov ecx, eax
push edi
call fcn.10046c30
add esp, 4
jmp 0x10053126
mov al, byte [esp + 0x58]
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 0x1004e7b5
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 0x78]
jg 0x10053406
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.10042030
add esp, 4
test eax, eax
je 0x1004e7bb
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, eax
call fcn.1001eb60
push str.out_of_memory
push edi
call fcn.10043b80
mov edx, 7
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x3c]
push dword [edi + 8]
call fcn.1012be10
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 + 0x74]
and eax, 1
mov ax, word [eax*2 + 0x1014ddb0]
mov word [edi + 0x10], ax
jmp 0x10053126
mov al, byte [esp + 0x58]
mov byte [edi + 0x12], al
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x74]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x1004e817
cmp edx, 0xc
jb 0x1004e813
test dl, 1
je 0x1004e826
test al, al
js 0x1004e826
mov ecx, edx
call fcn.10046c00
test eax, eax
jne 0x1004e839
mov edx, dword [esp + 0x74]
push edi
mov ecx, 0x10150d90
call fcn.10046c30
add esp, 4
jmp 0x10053126
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x78]
jg 0x10053406
mov ecx, dword [esp + 0x24]
push edi
push eax
mov eax, dword [esp + 0x68]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.10043210
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0x74]
mov ecx, dword [edi + 8]
push edi
call fcn.10046c30
mov eax, 0xbfff
add esp, 4
and word [edi + 0x10], ax
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
mov dword [esp + 0x48], 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 + 0x40], edi
cmp ax, word [edx + 0x22]
jge 0x10053126
add edi, 8
mov dword [esp + 0x38], edi
nop
movzx eax, word [edi + 6]
test al, 0x60
je 0x1004e8de
test al, 0x20
jne 0x1004e99c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x1004e999
push dword [esp + 0x58]
mov dl, byte [edi]
mov ecx, esi
call fcn.1004c420
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x5c], ecx
test cl, 1
jne case.default.0x1004e914
mov eax, dword [edi - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x1004e914
jmp dword [edx*4 + 0x10053c10]
test cl, 0x10
jmp 0x1004e98b
test cl, 4
jmp 0x1004e98b
test cl, 2
jmp 0x1004e98b
test cl, 4
je 0x1004e988
mov edi, dword [esi]
mov edx, edi
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x1004e961
jb 0x1004e94c
cmp edx, 0xffffffff
ja 0x1004e961
or ecx, 0x20
movzx eax, cx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [esp + 0x38]
jmp case.default.0x1004e914
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.1013bb40
mov eax, dword [esp + 0x5c]
or eax, 8
movsd qword [esi], xmm0
movzx eax, ax
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [esp + 0x38]
jmp case.default.0x1004e914
test cl, 0x28
je 0x10053258
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], edi
cmp ecx, eax
jl 0x1004e8c0
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi]
nop dword [eax + eax]
push dword [esp + 0x58]
mov dl, al
mov ecx, esi
call fcn.1004c420
add esp, 4
cmp byte [edi], 0x45
jne 0x1004ea3a
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x38], ecx
test cl, 4
je 0x1004ea3a
mov edx, dword [esi]
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x1004ea1c
jb 0x1004ea0d
cmp edx, 0xffffffff
ja 0x1004ea1c
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x1004ea3a
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.1013bb40
mov eax, dword [esp + 0x38]
and eax, 0xfffb
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
mov al, byte [edi + 1]
inc edi
test al, al
je 0x10053126
add esi, 0x28
jmp 0x1004e9d0
mov ecx, dword [esp + 0x10]
xorps xmm0, xmm0
xor edx, edx
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x60], edx
movlpd qword [esp + 0x38], xmm0
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x6c], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x48], eax
test edi, edi
je 0x1004eadb
mov al, byte [edi]
lea esi, [ecx + 0x10]
nop dword [eax]
push dword [esp + 0x58]
lea ecx, [esi - 0x10]
mov dl, al
call fcn.1004c420
add esp, 4
cmp byte [edi], 0x45
jne 0x1004eac8
movzx eax, word [esi]
test al, 4
je 0x1004eac8
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x1004eaa0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x24], esi
lea eax, [eax*8 - 0xc]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x5c], ecx
movzx ecx, word [eax - 0xc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x40], ecx
test cl, 1
je 0x1004eb2a
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
inc edx
mov dword [eax], ecx
jmp 0x1004ed93
test cl, 0x24
je 0x1004ecef
mov edx, dword [eax - 0x1c]
mov eax, dword [eax - 0x18]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
test eax, eax
jg 0x1004eb4f
jl 0x1004eb4b
test edx, edx
jae 0x1004eb4f
not edx
not eax
inc dword [esp + 0x60]
test eax, eax
ja 0x1004ec5a
jb 0x1004eb62
cmp edx, 0x7f
ja 0x1004ebc6
mov ecx, dword [esp + 0x30]
mov eax, ecx
and eax, 1
mov dword [esp + 0x30], 0
cmp eax, ecx
jne 0x1004eba4
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jne 0x1004eba4
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x93], 4
jb 0x1004eba4
mov ecx, dword [esp + 0x68]
lea eax, [edx + 8]
mov edx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
mov ecx, dword [esp + 0x68]
add esi, 1
mov edx, dword [esp + 0x60]
mov eax, 1
mov dword [esp + 0x24], esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
test eax, eax
ja 0x1004ec5a
jb 0x1004ebd8
cmp edx, 0x7fff
ja 0x1004ebfa
mov ecx, dword [esp + 0x68]
add esi, 2
mov edx, dword [esp + 0x60]
mov eax, 2
mov dword [esp + 0x24], esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
test eax, eax
ja 0x1004ec5a
jb 0x1004ec08
cmp edx, 0x7fffff
ja 0x1004ec2a
mov ecx, dword [esp + 0x68]
add esi, 3
mov edx, dword [esp + 0x60]
mov eax, 3
mov dword [esp + 0x24], esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
test eax, eax
ja 0x1004ec5a
jb 0x1004ec38
cmp edx, 0x7fffffff
ja 0x1004ec5a
mov ecx, dword [esp + 0x68]
add esi, 4
mov edx, dword [esp + 0x60]
mov eax, 4
mov dword [esp + 0x24], esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
cmp eax, 0x7fff
ja 0x1004ec8a
jb 0x1004ec68
cmp edx, 0xffffffff
ja 0x1004ec8a
mov ecx, dword [esp + 0x68]
add esi, 6
mov edx, dword [esp + 0x60]
mov eax, 5
mov dword [esp + 0x24], esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
add esi, 8
mov dword [esp + 0x24], esi
adc edi, 0
test cl, 0x20
je 0x1004ecd7
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
call fcn.1013bb40
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
movsd qword [eax - 0x1c], xmm0
mov eax, dword [esp + 0x40]
and eax, 0xffdf
or eax, 8
mov word [ecx - 0xc], ax
mov eax, 7
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
mov ecx, dword [esp + 0x68]
mov eax, 6
mov edx, dword [esp + 0x60]
mov dword [ecx], eax
mov eax, dword [esp + 0x68]
jmp 0x1004ed97
test cl, 8
je 0x1004ed0a
inc edx
mov dword [eax], 7
add esi, 8
mov dword [esp + 0x24], esi
adc edi, 0
jmp 0x1004ed93
mov edx, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [esp + 0x38], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [esp + 0x30], eax
test ecx, 0x400
je 0x1004ed6d
mov ecx, dword [esp + 0x68]
add ecx, 0xffffffe4
mov edx, dword [ecx]
lea eax, [eax + edx*2]
mov dword [esp + 0x30], eax
mov eax, esi
or eax, edi
je 0x1004ed5a
call fcn.100423c0
test eax, eax
jne 0x1004e78a
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x38]
add edx, dword [eax - 0x1c]
jmp 0x1004ed69
mov eax, edx
cdq
add dword [esp + 0x5c], eax
adc dword [esp + 0x2c], edx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add esi, edx
push 0
push eax
mov dword [esp + 0x2c], esi
adc edi, 0
call fcn.100233b0
mov ecx, dword [esp + 0x70]
add esp, 8
mov edx, dword [esp + 0x60]
add edx, eax
mov eax, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, ecx
mov dword [esp + 0x60], edx
add eax, 0xffffffe4
cmp eax, dword [esp + 0x54]
je 0x1004edac
mov eax, dword [esp + 0x68]
sub eax, 0x28
jmp 0x1004eb04
cmp edx, 0x7e
jle 0x1004edde
mov eax, edx
cdq
push edx
push eax
call fcn.100233b0
mov esi, eax
mov eax, dword [esp + 0x68]
add eax, esi
mov dword [esp + 0x68], eax
cdq
push edx
push eax
call fcn.100233b0
mov edx, dword [esp + 0x70]
add esp, 0x10
cmp esi, eax
mov esi, dword [esp + 0x24]
jge 0x1004ede3
inc edx
mov dword [esp + 0x60], edx
mov eax, edx
cdq
mov ecx, eax
mov eax, edx
add esi, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], ecx
mov ecx, esi
adc edi, eax
mov eax, dword [esp + 0x48]
add ecx, dword [esp + 0x5c]
adc edi, dword [esp + 0x2c]
mov eax, dword [eax + 0x18]
cdq
cmp edi, edx
jg 0x1004ee1e
jl 0x1004ee12
cmp ecx, eax
ja 0x1004ee1e
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x1004ee4f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x78]
cdq
cmp edi, edx
jg 0x10053406
jl 0x1004ee38
cmp ecx, eax
ja 0x10053406
mov ecx, dword [esp + 0x48]
mov edx, esi
call fcn.100422c0
test eax, eax
jne 0x1004e78a
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x2c]
mov dword [edx + 0xc], esi
je 0x1004ee72
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x24], ecx
lea esi, [ecx + eax]
cmp eax, 0x80
jge 0x1004ee8c
mov byte [ecx], al
inc ecx
jmp 0x1004eea2
push dword [esp + 0x40]
push dword [esp + 0x3c]
call fcn.10023140
mov ecx, dword [esp + 0x2c]
add esp, 8
add ecx, eax
mov edi, dword [esp + 0x54]
mov dword [esp + 0x24], ecx
add edi, 0xc
nop dword [eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x1004eef5
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x24], ecx
test edx, edx
je 0x1004ef3f
movzx edx, byte [edx + 0x10151430]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [esp + 0x40], edx
sub edx, 1
mov byte [edx + esi], cl
je 0x1004eeef
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x1004eee0
add esi, dword [esp + 0x40]
jmp 0x1004ef3b
cmp edx, 0x80
jae 0x1004ef11
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x24], ecx
cmp edx, 0xe
jb 0x1004ef3f
mov eax, dword [edi]
test eax, eax
jle 0x1004ef3f
jmp 0x1004ef2c
push 0
push edx
call fcn.10023140
mov ecx, dword [esp + 0x2c]
add esp, 8
add ecx, eax
mov eax, dword [edi]
mov dword [esp + 0x24], ecx
test eax, eax
je 0x1004ef3f
push eax
push dword [edi - 4]
push esi
call fcn.1012be10
add esp, 0xc
add esi, dword [edi]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x6c]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x54]
cmp edi, eax
je 0x10053126
add edi, 0x28
jmp 0x1004eeb0
mov ecx, dword [esp + 0x10]
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 + 0x10]
cmp dword [eax + 0xc], 0
je 0x1004ef8f
mov ecx, edx
call fcn.10039e80
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x1004efbd
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf8]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xfc], xmm0
call fcn.1003fac0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x100517b9
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
jne 0x1004f0c1
cmp dword [eax + 0xc4], 0
jg 0x10053297
mov ecx, edi
call fcn.10021fe0
mov esi, eax
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], esi
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.100ac840
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0x21]
push edx
push eax
call fcn.1001e890
mov esi, eax
add esp, 8
test esi, esi
je 0x1004f38b
mov ecx, dword [esp + 0x40]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.1012be10
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x1004f083
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x1004f089
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 0x1004f38b
mov esi, dword [eax + 0x1ec]
xor ecx, ecx
mov dword [esp + 0x24], ecx
test esi, esi
je 0x1004f0e9
mov ecx, dword [esi]
mov edx, edi
call fcn.10022350
test eax, eax
je 0x1004f10a
inc dword [esp + 0x24]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x1004f0d1
push edi
mov edi, dword [esp + 0x1c]
push str.no_such_savepoint:__s
push edi
call fcn.10043b80
mov edx, 1
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x10053240
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
cmp dword [eax + 0xc4], 0
jle 0x1004f124
cmp edx, 1
je 0x100532b4
cmp dword [esi + 0x18], 0
jne 0x1004f196
cmp byte [eax + 0x5d], 0
je 0x1004f196
mov dword [esp + 0x54], 1
cmp edx, 1
jne 0x1004f19e
mov ecx, dword [esp + 0x18]
call fcn.100463c0
mov edi, eax
test edi, edi
jne 0x1005383c
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, edi
mov byte [eax + 0x55], 1
call fcn.10046430
cmp eax, 5
je 0x100532e1
mov edx, dword [edi + 0x24]
mov dword [esp + 0x20], edx
test edx, edx
jne 0x100532d4
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov byte [edx + 0x5d], 0
lea edi, [edx + 0x1f8]
jmp 0x1004f2da
mov dword [esp + 0x54], 0
add eax, 0x1f8
mov dword [esp + 0x48], eax
mov eax, dword [eax]
sub eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
cmp edx, 2
jne 0x1004f230
mov edi, dword [esp + 0x14]
mov dword [esp + 0x38], 0
mov ecx, dword [edi + 0x18]
and ecx, 1
cmp dword [edi + 0x14], 0
mov dword [esp + 0x30], ecx
jle 0x1004f236
mov eax, ecx
xor eax, 1
xor edi, edi
mov dword [esp + 0x40], eax
push eax
mov eax, dword [esp + 0x18]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.100384a0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x38]
add edi, 0x10
mov ecx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x38], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x40]
jl 0x1004f1e2
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
jmp 0x1004f236
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x38], 0
cmp dword [edi + 0x14], 0
jle 0x1004f297
xor edi, edi
nop word [eax + eax]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.100387b0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x38]
add edi, 0x10
mov ecx, dword [esp + 0x14]
inc eax
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x24]
jl 0x1004f250
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
test ecx, ecx
je 0x1004f2c6
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x1004f2bb
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 0x1004f2a2
mov ecx, edi
call fcn.1006f880
or dword [edi + 0x18], 1
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x1004f308
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x1ec], eax
mov edx, ecx
mov ecx, dword [esp + 0x14]
call fcn.1001e3f0
mov edx, dword [esp + 0x14]
dec dword [edi]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
jne 0x1004f2e4
mov edx, dword [esp + 0x2c]
cmp edx, 1
jne 0x1004f338
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.1001e3f0
cmp dword [esp + 0x54], 0
jne 0x1004f38b
dec dword [edi]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
jmp 0x1004f36e
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edi + 0x200], eax
mov dword [edi + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x208], eax
mov eax, edi
mov dword [eax + 0x20c], ecx
je 0x1004f36e
cmp edx, 2
jne 0x1004f38b
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, eax
call fcn.100ac840
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x95], 3
je 0x10053316
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
mov esi, dword [ecx + 8]
test esi, esi
je 0x1004f3ed
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
and ecx, 2
mov eax, edx
and eax, 0x100000
or eax, ecx
jne 0x10053320
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x40], eax
test eax, eax
je 0x1004f4e2
lea ecx, [esp + 0x30]
mov edx, esi
push ecx
mov ecx, eax
call fcn.10037350
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005334b
test byte [edi + 0x98], 0x20
lea esi, [edi + 0x98]
mov edi, esi
je 0x1004f4f4
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x1004f4f4
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x55], dl
je 0x1004f46c
mov eax, dword [esp + 0x14]
mov edi, esi
cmp dword [eax + 0xc0], 1
jle 0x1004f4f4
mov edi, eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x1004f48c
mov eax, dword [edi + 0x1f8]
inc dword [edi + 0x1fc]
add eax, dword [edi + 0x1fc]
mov dword [ecx + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, edi
call fcn.100ac840
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x1004f4b6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + 0x30]
call fcn.10038750
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x200]
mov ecx, dword [edi + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi + 0x208]
mov ecx, dword [edi + 0x20c]
mov edi, esi
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
jmp 0x1004f4e8
add edi, 0x98
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x1005312a
mov ecx, dword [esp + 0x10]
mov esi, edi
mov eax, dword [esp + 0x30]
cmp eax, dword [ecx + 0xc]
jne 0x10053380
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
je 0x10053126
mov eax, dword [esp + 0x18]
lea esi, [eax + 0x98]
jmp 0x10053384
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x118]
mov ecx, dword [esp + 0x14]
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.1003f9a0
mov eax, dword [esp + 0x14]
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 0x1004f5a8
call fcn.1004c6a0
mov ecx, eax
mov eax, dword [esp + 0x118]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x118]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
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.1003fa00
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x1004f630
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 + 0x14]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.100819b0
mov edx, dword [esp + 0x10]
jmp 0x1004f63e
cmp eax, 2
jne 0x1004f63e
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x1004f656
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.10048690
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x1004f6a6
mov eax, dword [esi + 0x38]
cmp eax, dword [edx + 8]
jne 0x1004f6a6
mov ecx, dword [esi + 0x2c]
call fcn.100344a0
jmp 0x1004f7c9
mov cl, byte [esp + 0x2b]
jmp 0x1004f6b0
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x98]
mov esi, dword [esp + 0x14]
and al, 3
cmp al, 1
je 0x100533e8
mov eax, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
shl eax, 4
add eax, dword [esi + 0x10]
cmp cl, 0x71
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov esi, dword [eax + 4]
mov dword [esp + 0x5c], esi
jne 0x1004f720
mov eax, dword [eax + 0xc]
movzx edi, word [ecx + 2]
mov esi, dword [esp + 0x18]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x1004f722
mov byte [esi + 0x93], al
jmp 0x1004f722
xor edi, edi
test byte [ecx + 2], 0x10
je 0x1004f743
mov ecx, dword [esp + 0x1c]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.100427d0
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x1004f757
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
movzx eax, word [eax + 8]
jmp 0x1004f764
cmp al, 0xfd
jne 0x1004f760
mov eax, dword [ecx + 0x10]
jmp 0x1004f764
mov eax, dword [esp + 0x40]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
push 0
push eax
call fcn.1004c150
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e78a
push dword [esi + 0x2c]
mov eax, dword [esp + 0x4c]
push dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
or dword [esi + 8], 4
mov byte [esi + 1], al
mov eax, dword [esp + 0x40]
mov edx, eax
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x38], eax
call fcn.100389c0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x2c]
movzx edx, word [eax + 2]
and edx, 3
call fcn.100346e0
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 + 0x1c]
movsx eax, word [edi + 0x3c]
push eax
call fcn.1004c150
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e78a
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.100389c0
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x1004f8b2
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], 0x10156603
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x1004f927
test byte [esi + 8], 8
jne 0x1004f927
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x1004f927
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.1003f5d0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.1004c150
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e78e
mov eax, dword [esp + 0x10]
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 + 0x1c]
push edi
push eax
mov ecx, dword [eax]
call fcn.10035fa0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.10037350
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1004fa0c
mov edx, dword [esp + 0x10]
mov ecx, dword [edi]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x1004f9e7
movzx eax, word [edx + 2]
lea edx, [esi + 0x38]
or eax, 2
push eax
call fcn.1003f2d0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1004f9e1
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esp + 0x44]
mov ecx, dword [edi]
push 4
call fcn.100389c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
mov byte [esi + 4], 0
jmp 0x1004fa0c
push dword [esi + 0x2c]
mov edx, 1
mov dword [esi + 0x38], 1
push 0
push 4
call fcn.100389c0
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x100533f6
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.1004c150
add esp, 8
test eax, eax
je 0x1004e78e
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
call fcn.100551c0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 + 0x10]
je 0x10051df8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.1004c150
add esp, 8
test eax, eax
je 0x1004e78e
mov ecx, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x10168921
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x1004fb6e
mov ecx, edi
call fcn.10045960
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x24], 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 0x1004fd1c
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x40], eax
and al, 0x2e
cmp al, 2
jne 0x1004fbe9
xor edx, edx
mov ecx, esi
call fcn.1004c240
mov ecx, esi
call fcn.100426c0
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x1004fcae
test cl, 8
jne 0x1004fc7c
test cl, 1
jne 0x10051df4
cmp dword [esp + 0x2c], 0x17
jae 0x10051df4
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x7c]
call fcn.10039660
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x7c], 0
jne 0x10051df4
mov eax, dword [esp + 0x10]
test edx, edx
je 0x1005312a
mov edi, dword [esp + 0x18]
add eax, 0x14
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
push dword [esp + 0x48]
movsd xmm1, qword [esi]
push dword [esp + 0x34]
call fcn.10047390
add esp, 8
test eax, eax
jle 0x1004fc9f
mov eax, dword [esp + 0x2c]
test al, 1
jne 0x1004fcae
dec eax
jmp 0x1004fcaa
jns 0x1004fcae
mov eax, dword [esp + 0x2c]
test al, 1
je 0x1004fcae
inc eax
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x4c]
lea esi, [edi + 0x2c]
xor edx, edx
push dword [esp + 0x38]
call fcn.10039680
mov edx, eax
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x7c]
cmp eax, 0x17
jl 0x1004fe0c
test ecx, ecx
js 0x1004fdcb
jne 0x1004fd0f
cmp eax, 0x18
je 0x1004fdcb
mov dword [esp + 0x7c], 0
jmp 0x1004fc4f
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x2b], al
mov eax, 0
setne al
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x90], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xa4], ax
lea eax, [edx - 1]
test al, 1
mov byte [esp + 0xaa], 0
lea edx, [esp + 0x90]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0xa6], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x7c]
mov ecx, dword [esi]
push eax
call fcn.10039920
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
cmp byte [esp + 0x2b], al
je 0x1004fce7
mov edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
cmp byte [esp + 0xaa], al
je 0x1004fc44
jmp 0x1004fceb
mov dword [esp + 0x7c], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.1003a030
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x1004fc40
mov edi, dword [esp + 0x18]
cmp edx, 0x65
jne 0x10053240
mov dword [esp + 0x20], 0
mov dword [esp + 0x7c], 1
jmp 0x1005298e
test ecx, ecx
jg 0x1004fe27
jne 0x1004fe17
cmp eax, 0x15
je 0x1004fe27
mov ecx, dword [esi]
call fcn.10039e70
mov dword [esp + 0x7c], eax
jmp 0x1004fc40
mov dword [esp + 0x7c], 0
xor edx, edx
mov ecx, dword [esi]
call fcn.1003a1a0
jmp 0x1004fddc
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x1004e0a2
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x90], eax
mov byte [esp + 0xa6], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0xa4], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xf4], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x94], eax
nop word [eax + eax]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x94]
mov edx, edi
push eax
call fcn.10048570
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0xf4]
test eax, eax
jle 0x1004fee3
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], dx
je 0x1004ff17
test eax, eax
jns 0x10051df4
test esi, esi
jle 0x10053126
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
call fcn.1003a030
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x1004fea0
cmp edx, 0x65
jne 0x1005323c
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x64]
add eax, 0x14
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x1004ff86
mov word [eax + 0xc], cx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x1005185c
mov word [eax + 0xc], cx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x1004c906.9
cmp byte [eax + 2], 0
je 0x1005185c
jmp case.0x1004c906.9
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
mov eax, ecx
jge case.0x1004c906.89
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x94], ecx
movzx eax, word [eax + 0x10]
mov word [esp + 0xa4], ax
test ax, ax
je 0x1005005d
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [esp + 0x90], eax
lea edx, [esp + 0x90]
mov byte [esp + 0xa6], 0
mov ecx, dword [esi + 0x2c]
push edi
call fcn.10039920
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
jmp 0x100500c8
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x10050075
call fcn.100423c0
test eax, eax
jne 0x1004e78e
mov ecx, dword [esi + 0x30]
call fcn.10046ef0
mov edi, eax
test edi, edi
je 0x1004e78a
mov edx, dword [esp + 0x94]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.10046f50
lea eax, [esi + 0x24]
mov byte [edi + 0x16], 0
mov ecx, dword [esi + 0x2c]
mov edx, edi
push eax
call fcn.10039920
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, edi
mov dword [esp + 0x20], eax
call fcn.1001e3f0
mov edx, dword [esp + 0x20]
lea edi, [esi + 0x24]
test edx, edx
jne 0x1005323c
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 + 0x10]
mov al, byte [eax]
cmp al, 0x1d
jne 0x10050114
mov eax, dword [esp + 0x10]
test ecx, ecx
je 0x10051df8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
test ecx, ecx
jne 0x10051df4
cmp al, 0x1b
jne 0x10050156
movzx edx, word [esp + 0xa4]
test edx, edx
je 0x10053126
mov eax, dword [esp + 0x94]
add eax, 0x10
nop word [eax + eax]
test byte [eax], 1
jne 0x10051df4
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10050140
jmp 0x10053126
cmp al, 0x1a
mov eax, dword [esp + 0x10]
jne 0x1005312a
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x100501df
movups xmm0, xmmword [esi + eax*8]
mov dl, 0x43
lea ecx, [esp + 0x90]
push dword [esp + 0x58]
movups xmmword [esp + 0x94], xmm0
movups xmm0, xmmword [esi + eax*8 + 0x10]
movups xmmword [esp + 0xa4], xmm0
movq xmm0, qword [esi + eax*8 + 0x20]
movq qword [esp + 0xb4], xmm0
call fcn.1004c420
add esp, 4
test byte [esp + 0xa0], 4
je 0x10051df4
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
jmp 0x100501ec
mov ecx, dword [esp + 0x10]
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 + 0x38], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xe4]
push eax
push edx
push edi
mov ecx, dword [esi + 0x2c]
xor edx, edx
mov dword [esp + 0xf0], 0
call fcn.10039680
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x44]
add esp, 0xc
mov dword [esi + 0x44], eax
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0xe4]
mov dword [esi + 0x24], eax
cmp dword [esp + 0xe4], 0
mov dword [esp + 0x20], edx
je 0x10050272
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jne 0x10051df8
mov ecx, 0x17548
call fcn.100cedc0
mov edx, eax
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x18]
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x100502c2
mov ecx, edx
call fcn.1004c6a0
mov edx, eax
jmp 0x100502cb
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [edx], ecx
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 + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov dword [esp + 0x30], 0
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x38], edx
test word [edx + 0x10], ax
je 0x1005034f
mov ecx, edx
call fcn.1004c6a0
mov dword [esp + 0x38], eax
jmp 0x10050358
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x40], edi
test byte [edi + 8], 2
jne 0x100503d0
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x30]
call fcn.10039660
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
cmp dword [esp + 0x30], eax
je 0x1005039d
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], eax
jmp 0x100503d0
mov ecx, dword [edi + 0x2c]
call fcn.10038c50
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp edx, 0x7fffffff
jl 0x100503c2
jg 0x100503bc
cmp eax, 0xffffffff
jb 0x100503c2
or dword [edi + 8], 2
jmp 0x100503d0
add eax, 1
mov dword [esp + 0x48], eax
adc edx, 0
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10050481
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x10050408
mov eax, dword [edx + 4]
test eax, eax
je 0x100503fd
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x100503f4
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x1005040e
lea eax, [ecx + ecx*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.100426c0
mov dword [esi], eax
mov ecx, 0xf244
mov ax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
mov edx, dword [esi]
or ax, 4
mov ecx, dword [esi + 4]
mov word [esi + 0x10], ax
cmp edx, 0xffffffff
jne 0x10050444
cmp ecx, 0x7fffffff
je 0x100504e5
test byte [edi + 8], 2
jne 0x100504e5
mov edi, dword [esp + 0x4c]
add edx, 1
adc ecx, 0
cmp edi, ecx
jg 0x10050474
jl 0x10050466
mov eax, dword [esp + 0x48]
cmp eax, edx
jae 0x10050478
mov eax, edx
mov edi, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
jmp 0x10050478
mov eax, dword [esp + 0x48]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x40]
mov dword [esi], eax
test byte [edi + 8], 2
je 0x100504ef
xor esi, esi
nop dword [eax]
lea eax, [esp + 0x48]
push eax
push 8
call fcn.100217e0
mov eax, dword [esp + 0x54]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x50]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [esp + 0x54], ecx
push eax
mov dword [esp + 0x5c], eax
xor edx, edx
push ecx
mov ecx, dword [edi + 0x2c]
call fcn.10039680
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
cmp dword [esp + 0x30], eax
jne 0x100504ef
inc esi
cmp esi, 0x64
jl 0x10050490
mov edx, 0xd
jmp 0x10053238
mov edx, dword [esp + 0x38]
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x1c]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5c], 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 + 0x40]
mov dword [esp + 0x38], eax
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], eax
jne 0x10050592
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xfc], 0
je 0x1005058e
mov eax, dword [esp + 0x14]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x30], eax
jmp 0x100505a2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
test byte [ecx + 2], 1
je 0x100505cc
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [esp + 0x38]
je 0x100505cc
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0xac], eax
test cl, 0x10
je 0x100505f4
mov edi, dword [esi + 0x24]
jmp 0x100505f6
xor edi, edi
mov eax, dword [esp + 0x1c]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x5c]
je 0x10050616
mov eax, dword [eax + edx*8]
mov dword [esp + 0xb0], eax
jmp 0x10050621
mov dword [esp + 0xb0], 0
and ecx, 0x8a
mov dword [esp + 0x90], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x98]
call fcn.1003de50
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [esp + 0x20], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10053126
push dword [esp + 0x9c]
mov ecx, 0x17
push dword [esp + 0x9c]
push dword [eax]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x54]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x10053126
mov edx, dword [esp + 0x10]
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 + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100506e5
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov edi, dword [esp + 0x1c]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x18]
jmp 0x100506f6
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.1003e540
add esp, 8
jmp 0x1004d95a
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x1005076f
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xfc], 0
lea edi, [eax + 0xfc]
je 0x10050779
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x38], eax
je 0x10050787
cmp byte [esi + 4], 0
je 0x10050787
mov ecx, dword [esi + 0x2c]
call fcn.10038c50
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x40], eax
jmp 0x10050787
mov edi, dword [esp + 0x14]
add edi, 0xfc
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], eax
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.1003e980
mov edx, eax
mov dword [esi + 0x20], 0
mov dword [esp + 0x20], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x1005323c
test byte [esp + 0x40], 1
je 0x10053126
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov ecx, dword [edi]
test ecx, ecx
je 0x10053126
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10053126
test byte [eax + 0x1c], 0x80
jne 0x10053126
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
mov eax, dword [esp + 0x20]
push dword [esp + 0x3c]
push 9
push dword [eax + 0xf8]
call ecx
add esp, 0x18
jmp 0x10053126
push dword [edi + 0x2c]
mov ecx, dword [esp + 0x18]
push dword [edi + 0x28]
call fcn.10048670
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x10c], 0
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
lea eax, [esp + 0x10c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.100576c0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10c], edx
jne 0x10051df8
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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.10057620
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
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 + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10038c80
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x78]
ja 0x10053406
push esi
mov edx, eax
mov ecx, edi
call fcn.100432f0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], edx
jne 0x1005312a
mov ecx, 0x4000
test word [esi + 0x10], cx
je 0x1005312a
mov ecx, esi
call fcn.10042330
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x1004e78e
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov ecx, dword [esp + 0x10]
mov edi, eax
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x100509cb
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x10053126
cmp byte [esi + 3], 0
je 0x100509ef
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10053126
cmp byte [esi], 2
jne 0x10050a3f
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xc8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10048890
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10053126
mov ecx, esi
call fcn.10046be0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
cmp byte [esi + 2], al
je 0x10050a67
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x10053126
mov ecx, dword [esi + 0x2c]
call fcn.10038c50
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10053126
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x10050ac4
push 3
push 1
mov ecx, edi
call fcn.1004c150
add esp, 8
test eax, eax
je 0x1004e78e
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x10168921
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x10053126
mov ecx, dword [eax + 0x2c]
call fcn.100344a0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp byte [esp + 0x2b], 0x89
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0xe0], 0
jne 0x10050b32
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.10038c40
test eax, eax
jne 0x10053126
cmp byte [edi], 0
jne 0x10050b5f
test byte [edi + 1], 8
je 0x10050b5f
mov dword [esp + 0xe0], 0
mov dword [esp + 0x20], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
jmp 0x10050b90
lea edx, [esp + 0xe0]
mov ecx, edi
call fcn.100395d0
mov edx, eax
mov al, byte [esp + 0xe0]
mov dword [esp + 0x20], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10053238
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
jle 0x1005312a
cmp dword [esp + 0xe0], 0
jne 0x10051df8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xe8]
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.100395a0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
cmp dword [esp + 0xe8], eax
jne 0x10051df4
mov ecx, esi
call fcn.10039e80
test edx, edx
jl 0x10050c38
jg 0x10050c14
test eax, eax
jb 0x10050c38
push edx
push eax
call fcn.10023680
mov ecx, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x10050c38
mov dword [esp + 0xe8], 1
jmp 0x1005298e
cmp dword [esp + 0xe8], 0
mov eax, dword [esp + 0x10]
jne 0x10051df8
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
inc dword [edi + 0xac]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0xdc], 1
cmp byte [esi], 1
jne 0x10050c9d
lea edx, [esp + 0xdc]
mov ecx, esi
call fcn.100574f0
mov edx, eax
mov dword [esp + 0x20], edx
jmp 0x10050ce8
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.100392e0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10050cc3
mov ecx, edi
mov dword [esp + 0xdc], eax
call fcn.10039550
mov edx, eax
jmp 0x10050cd5
cmp edx, 0x10
jne 0x10050cd9
mov dword [esp + 0xdc], 1
xor edx, edx
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x18]
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10053240
mov al, byte [esp + 0xdc]
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
jle 0x1005312a
cmp dword [esp + 0xdc], edx
jne 0x10051df8
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.10057580
jmp 0x10050d7a
mov edx, dword [esp + 0x10]
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.1003a1a0
jmp 0x10050d7a
mov edx, dword [esp + 0x10]
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.1003a030
mov edx, eax
mov dword [esp + 0x20], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10050da2
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x10052b15
cmp edx, 0x65
jne 0x10053240
mov dword [esp + 0x20], 0
mov byte [esi + 2], 1
jmp 0x100517b5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x10050de8
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x10050e0c
mov ecx, esi
call fcn.100423c0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xa4], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0xa8], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x10050e55
mov ecx, dword [edi + 0x24]
jmp 0x10050e57
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x94]
and eax, 0x8a
push eax
call fcn.1003de50
mov edx, eax
mov dword [edi + 0x20], 0
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 0x10050ed9
mov ecx, esi
call fcn.100423c0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov edx, esi
mov ecx, edi
call fcn.100563b0
mov edi, dword [esp + 0x18]
jmp 0x1004d95a
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x90], eax
mov ax, word [edx + 0xc]
mov word [esp + 0xa4], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x90]
mov byte [esp + 0xa6], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x94], eax
lea eax, [esp + 0x11c]
push eax
call fcn.10039920
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
cmp dword [esp + 0x11c], eax
jne 0x10050f76
mov dl, 4
mov ecx, edi
call fcn.1003e980
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
jmp 0x10050f92
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x10050f96
mov ecx, dword [esp + 0x14]
call fcn.1006fff0
test eax, eax
je 0x10053426
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 0x10050ff2
mov ecx, esi
call fcn.10046ba0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov edx, dword [esp + 0x10]
jmp 0x10050ffa
mov dword [esp + 0x20], 0
cmp byte [esi + 2], 0
jne 0x100510cf
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x100]
xorps xmm0, xmm0
movlpd qword [esp + 0x100], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.10048390
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x8d
jne 0x10051095
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 + 0x10]
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x28], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, eax
mov ecx, edi
call fcn.1004c6c0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov esi, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x1005185c
call fcn.10046b30
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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 + 0x90], eax
mov ax, word [edx + 0x10]
mov word [esp + 0xa4], ax
sbb al, al
mov byte [esp + 0xa6], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x94], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.10038c00
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x10053442
cmp esi, 0x7fffffff
ja 0x10053442
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x178]
push 0
call fcn.10042b80
add esp, 4
lea eax, [esp + 0x178]
mov edx, esi
mov ecx, edi
push eax
call fcn.100432f0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov edx, dword [esp + 0x180]
mov ecx, dword [esp + 0x184]
push eax
lea eax, [esp + 0x94]
push eax
call fcn.10047610
add esp, 8
lea ecx, [esp + 0x178]
mov esi, eax
call fcn.10042650
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
test dl, 1
cmovne esi, ecx
test esi, esi
jg 0x10051df8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x1005346a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], eax
add eax, eax
mov dword [esp + 0x90], 0
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003f950
mov dword [esp + 0x24], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x8c]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x20]
mov dword [esi], eax
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x10053126
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
push dword [ecx + 4]
mov ecx, dword [esp + 0x18]
push eax
call fcn.10073dd0
mov cl, byte [esp + 0x40]
add esp, 8
mov eax, dword [esp + 0x10]
inc cl
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x7b], cl
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x40]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x44], 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.1003f5d0
mov edx, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edx
cmp dword [eax + 0xc], 0
je 0x10051384
mov edx, dword [esp + 0x40]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0x44]
adc dword [edi + 0x2c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1005137c
lea ecx, [eax + eax*4]
add dword [esi + ecx*8], edx
mov eax, dword [esp + 0x44]
adc dword [esi + ecx*8 + 4], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10053240
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x100513da
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x14]
call fcn.10055690
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [ecx + 0x2c]
call fcn.1003f680
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov edx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xec], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [esp + 0xf0]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.1003f2d0
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0xec]
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push 0
push 0
inc byte [ecx + 0x60]
push 0
push dword [eax + 0x10]
push ecx
call fcn.10089cf0
mov esi, dword [esp + 0x28]
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
dec byte [esi + 0x60]
test edx, edx
jne 0x10053244
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0x10], 0
mov esi, dword [ecx + 4]
jne 0x1005152d
mov eax, dword [esp + 0x14]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.10079330
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, esi
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.10092490
mov ecx, dword [esp + 0x1c]
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
or dword [ecx + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x10051619
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x7c]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], esi
add esi, esi
mov dword [esp + 0x94], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xa0], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.10035d50
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x10]
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.100211e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1005347f
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x90]
push 0
push ecx
push fcn.10092200
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb8], 0
call fcn.10089cf0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100515ff
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100515ff
cmp dword [esp + 0xa4], eax
jne 0x100515ff
mov ecx, 0x17b44
call fcn.100cedc0
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.1001e3f0
mov edx, dword [esp + 0x14]
mov byte [edx + 0xb1], 0
mov edx, dword [esp + 0x20]
test edx, edx
je 0x1004cd94
mov ecx, dword [esp + 0x14]
call fcn.1006f880
mov edx, dword [esp + 0x20]
cmp edx, 7
je 0x1004e78e
mov dword [esp + 0x20], edx
jmp 0x10053240
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.1006d110
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.1006fe10
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.1006f6b0
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.100a4930
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x124]
push eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x24]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.10040760
add esp, 0x14
mov dword [esp + 0x20], eax
mov ecx, edi
call fcn.10042ba0
mov eax, dword [esp + 0x120]
test eax, eax
je 0x100517a5
cmp dword [esp + 0x20], 0
jne 0x1005348d
mov ecx, dword [esp + 0x1c]
dec eax
cdq
push fcn.1001e330
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov ecx, edi
mov edx, dword [esp + 0xfc]
push 0xffffffffffffffff
call fcn.10042eb0
add esp, 0x10
movzx edx, byte [esp + 0x58]
mov ecx, edi
call fcn.10042010
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x128], 0
jne 0x10053738
mov eax, dword [esp + 0xc4]
cmp eax, dword [esp + 0x84]
jb 0x10053126
mov ecx, dword [esp + 0x80]
ja 0x10051800
cmp dword [esp + 0x88], ecx
jb 0x10053126
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [edx + 0x174]
test eax, eax
je 0x10053126
add ecx, dword [edx + 0x17c]
push dword [edx + 0x178]
adc dword [esp + 0x88], 0
mov dword [esp + 0x84], ecx
call eax
add esp, 4
test eax, eax
jne 0x10053542
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x80]
cmp eax, dword [esp + 0x84]
ja 0x10051800
jb 0x1005185c
cmp dword [esp + 0x88], ecx
jae 0x10051800
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x1005189f
mov ecx, esi
call fcn.10042cd0
test eax, eax
jne 0x1004e78a
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 8]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.1002b0d0
add esp, 8
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
je 0x1005190d
mov ecx, dword [esi + 8]
lea edx, [esp + 0x130]
call fcn.1002b3e0
test eax, eax
je 0x1005190d
mov eax, dword [esp + 0x10]
push dword [esp + 0x134]
mov esi, dword [esp + 0x20]
push dword [esp + 0x134]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.10042c40
add esp, 8
jmp 0x100517b9
mov ecx, esi
call fcn.10042ba0
jmp 0x10052b15
mov ecx, dword [esp + 0x10]
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 + 0x38], eax
jne 0x1005194d
mov ecx, esi
call fcn.10042cd0
test eax, eax
jne 0x1004e78a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x10051977
mov ecx, dword [esp + 0x1c]
mov edx, eax
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
mov ecx, dword [esi + 8]
call fcn.1002b480
add esp, 8
test eax, eax
jne 0x10051df4
mov eax, dword [esp + 0x38]
test eax, eax
js 0x10053126
jmp 0x1005189f
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
cmp word [eax + 2], 0
je 0x100519ca
mov eax, dword [edi + 0xd0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x100519c6
cmp dword [eax + 0x18], ecx
je 0x1004cd94
mov eax, dword [eax + 4]
test eax, eax
jne 0x100519b6
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x100534a5
test byte [ecx + 0x10], 0x10
jne 0x10051aec
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 + 0x48]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x10051a13
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea edi, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov eax, edi
cdq
push edx
push eax
call fcn.1001e820
add esp, 8
mov dword [esp + 0x38], eax
test eax, eax
je 0x1004e78a
mov ecx, dword [esp + 0x30]
call fcn.10042630
mov ecx, dword [esp + 0x30]
mov eax, 0x1010
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x64]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
mov edi, eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x24], 0x10045000
mov ecx, dword [esp + 0x48]
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 + 0x18]
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 0x10051ae6
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [eax + 0x14], edx
mov word [eax + 0x10], si
add eax, 0x28
cmp eax, ecx
jne 0x10051ad6
mov esi, dword [esp + 0x48]
jmp 0x10051aef
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc dword [edx + 0xd8]
mov eax, dword [edx + 0xd0]
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 + 0x1c], 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 + 0x1c]
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.1012a970
mov ecx, dword [esi]
add esp, 0xc
mov edi, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
lea edx, [ecx - 0x14]
mov dword [edi + 0x68], ecx
mov eax, dword [esi + 4]
mov dword [edi + 0x6c], eax
mov dword [esp + 0x10], edx
jmp 0x100517b5
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
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 + 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.10042df0
mov eax, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
je 0x10051c5e
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x14]
cdq
add dword [esi + 0x208], eax
mov eax, dword [esp + 0x10]
adc dword [esi + 0x20c], edx
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x10051c92
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x200], eax
mov eax, dword [esp + 0x10]
adc dword [ecx + 0x204], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x10]
adc dword [edi + 0x44], edx
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
cmp dword [eax + 4], 0
je 0x10051cd0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x200]
or eax, dword [edx + 0x204]
jne 0x1005185c
jmp 0x10051ce0
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x1005185c
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x208]
or eax, dword [edx + 0x20c]
mov eax, dword [esp + 0x10]
je 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x10051d3b
mov eax, dword [edx + 4]
test eax, eax
je 0x10051d29
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10051d20
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x10051d48
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
call fcn.100426c0
mov dword [edi], eax
mov ecx, 0xf244
movzx eax, word [edi + 0x10]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.100426c0
mov dword [esi], eax
mov ecx, 0xf244
movzx eax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov ecx, edx
mov word [esi + 0x10], ax
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x10053126
jl 0x10051dac
cmp dword [edi], eax
jae 0x10053126
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x10053126
jg 0x10051ddd
test ecx, ecx
je 0x10053126
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x1c]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x40], edx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x10051e64
mov ecx, esi
call fcn.1004c6a0
mov edx, dword [esp + 0x40]
mov esi, eax
jmp 0x10051e6d
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], eax
test eax, eax
jl 0x10051ee3
jg 0x10051e90
test ecx, ecx
je 0x10051ee3
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
jl 0x10051ea5
jg 0x10051eb6
test eax, eax
jne 0x10051eb6
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push ecx
push eax
lea ecx, [esp + 0x118]
call fcn.10023480
add esp, 8
test eax, eax
jne 0x10051ee3
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x114]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10053126
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, ecx
or eax, edx
je 0x1004cd94
test edx, edx
jl 0x1005298e
jg 0x10051f26
test ecx, ecx
je 0x1005298e
mov eax, dword [esp + 0x1c]
sub ecx, 1
sbb edx, 0
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
jmp 0x1005298e
mov ecx, dword [esp + 0x10]
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 0x10051f68
jg 0x10051f5b
test eax, eax
je 0x10051f68
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 + 0x10]
je 0x10052992
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
push 0
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
lea eax, [eax*4 + 0x44]
push eax
call fcn.1001e890
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e78e
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
add eax, 7
push 1
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov dword [esi], ecx
call fcn.10042b80
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x64]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x10]
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 + 0x58]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x38]
mov dword [esi + 0x14], 0
mov byte [esi + 0x1a], al
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x10052027
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x38], edi
cmp dword [esi + 8], edi
je 0x1005207e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x1005207e
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x1c]
lea edx, [edx + ecx*4]
nop
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 0x10052060
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x1005209d
mov eax, dword [ecx + 0x1c]
jmp 0x100520a0
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x10053126
jle 0x100520d7
mov ecx, dword [esi]
mov dl, 1
call fcn.100434c0
mov edi, dword [esp + 0x18]
push eax
push 0x101586b4
push edi
call fcn.10043b80
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x100520db
mov edi, dword [esp + 0x18]
cmp byte [esi + 0x19], 0
je 0x10052106
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x10052102
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.10042c40
add esp, 8
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x10052119
cmp dword [ecx + 0x18], 0
je 0x1005211e
call fcn.100425f0
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x20]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x1004d960
mov ecx, dword [esp + 0x10]
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 0x1005217a
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
push edx
lea edx, [ecx + eax*8]
mov ecx, esi
call fcn.10042540
mov ecx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x10052183
mov ecx, esi
call fcn.100424a0
mov edi, eax
mov dword [esp + 0x20], edi
test edi, edi
jne 0x100534c5
movzx edx, byte [esp + 0x58]
mov ecx, esi
call fcn.10042010
jmp 0x10053126
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1a8]
push eax
lea eax, [esp + 0x1a8]
mov dword [esp + 0x1a4], 0
push eax
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1b4], 0xffffffff
mov dword [esp + 0x1b0], 0xffffffff
call fcn.100cd350
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
je 0x1005220d
cmp edx, 5
jne 0x10053240
mov dword [esp + 0x20], 0
mov dword [esp + 0x1a0], 1
mov eax, dword [esp + 0x10]
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 + 0x1a0]
cdq
test word [esi + 0x10], cx
je 0x10052242
push edx
push eax
mov ecx, esi
call fcn.10042c10
add esp, 8
mov ecx, 0x9000
jmp 0x10052250
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 0x10052221
jmp 0x10053126
mov edx, dword [esp + 0x10]
mov ecx, edi
call fcn.1004c6c0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [esp + 0x40], eax
call fcn.1003fc00
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.10030bf0
mov ecx, dword [esp + 0x24]
mov edi, eax
cmp esi, 0xffffffff
cmove esi, edi
call fcn.10030c00
mov ecx, dword [esp + 0x24]
test eax, eax
mov edx, 1
cmove esi, edi
call fcn.10030880
cmp esi, 5
jne 0x10052330
mov ecx, eax
call fcn.10021fe0
test eax, eax
je 0x100522db
mov ecx, dword [esp + 0x24]
call fcn.10030c30
test eax, eax
jne 0x10052330
mov esi, edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x100522e7
mov esi, edi
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.10030a90
mov esi, dword [esp + 0x38]
mov ecx, 0x2202
mov word [esi + 0x10], cx
mov ecx, eax
call fcn.1008ad40
mov ecx, eax
mov dword [esi + 8], eax
call fcn.10021fe0
movzx edx, byte [esp + 0x58]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0x12], 1
call fcn.10042010
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
jmp 0x1004d960
cmp esi, edi
je 0x100522dd
cmp edi, 5
je 0x1005233e
cmp esi, 5
jne 0x100522dd
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x55], 0
je 0x100534ea
cmp dword [eax + 0xc0], 1
jg 0x100534ea
cmp edi, 5
jne 0x10052382
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.10030db0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x100522e5
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.10030a90
jmp 0x1005239e
cmp edi, 4
jne 0x10052393
mov ecx, dword [esp + 0x24]
lea edx, [edi - 2]
call fcn.10030a90
cmp dword [esp + 0x20], 0
jne 0x100522e5
mov ecx, dword [esp + 0x40]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.10040e20
mov dword [esp + 0x20], eax
jmp 0x100522e1
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
test eax, eax
je 0x100523cc
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x100523ce
xor eax, eax
mov edx, dword [esp + 0x14]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.100aa8b0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10037e10
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x10053126
cmp edx, 0x65
jne 0x10053240
mov dword [esp + 0x20], 0
jmp 0x1005298e
cmp dword [eax + 4], 0
jne 0x10052472
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x14]
call fcn.10048690
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov eax, dword [eax + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10038c60
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.10038c70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0xc]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x124], al
test al, al
jne 0x10052525
mov eax, dword [edx + 0x20]
and eax, 0x400
mov dword [esp + 0x40], eax
jne 0x1005185c
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + 0x10]
mov edx, dword [esp + 0x10]
push dword [esp + 0x124]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10040c90
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
je 0x1004d64c
cmp dl, 6
jne 0x10053240
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.10043b80
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x10053240
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.100ac770
mov edx, eax
mov dword [esp + 0x20], edx
test esi, esi
je 0x1004d960
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.10048890
mov edx, dword [esp + 0x20]
jmp 0x1004d960
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x90]
xorps xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x10]
movaps xmmword [esp + 0x90], xmm0
movq qword [esp + 0xb0], xmm0
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
call fcn.10042e40
mov dl, 1
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x90]
call fcn.100434c0
test eax, eax
je 0x10052625
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.100ac190
add esp, 8
mov dword [esp + 0x20], eax
test dword [esp + 0xa0], 0x9000
jne 0x1005263c
cmp dword [esp + 0xa8], 0
je 0x10052648
lea ecx, [esp + 0x90]
call fcn.100425f0
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10053240
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc dword [ecx + 0xcc]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.100ac550
mov esi, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
dec dword [esi + 0xcc]
test edx, edx
jne 0x10053244
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x10053534
mov edi, dword [esi]
test edi, edi
je 0x10053530
lea eax, [esp + 0x30]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [esp + 0x20]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10048890
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x18]
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.1004c150
add esp, 8
test eax, eax
je 0x1005351f
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.100cac40
test eax, eax
jne 0x1004e78a
push eax
push 8
call fcn.1001e110
mov esi, eax
add esp, 8
test esi, esi
je 0x1004e78a
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
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.1004c6c0
mov ecx, 1
mov edx, esi
push fcn.1001e330
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.10042c80
mov eax, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea esi, [esi + edx*8]
add esi, 0x28
mov dword [esp + 0x48], esi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
mov edi, dword [esi]
movd xmm0, esi
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x2c], ecx
pshufd xmm3, xmm0, 0
mov dword [esp + 0x30], edi
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + edx*8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x38], edx
test edi, edi
jle 0x10052933
cmp edi, 0x10
jb 0x1005291f
cmp dword [0x10168178], 2
jl 0x1005291f
movaps xmm2, xmmword [0x101610f0]
mov eax, edi
and eax, 0x8000000f
jns 0x10052860
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____]
mov esi, edi
sub esi, eax
add edx, 0x20
mov dword [esp + 0x40], esi
mov esi, 8
mov edi, dword [esp + 0x40]
nop dword [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, edi
jl 0x10052880
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
cmp ecx, edi
jge 0x10052933
mov esi, dword [esp + 0x48]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x10052928
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
push edx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x60]
push dword [esp + 0x68]
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [esp + 0x80]
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
call fcn.10048890
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x1005323c
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x28]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x10053126
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x10]
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]
jne 0x1005311f
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x58]
movaps xmmword [esp + 0x90], xmm0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x90], esi
mov byte [esp + 0xa8], al
je 0x10052a2e
mov ecx, esi
call fcn.10042ba0
mov edx, dword [esp + 0x10]
mov eax, 0x401
mov dword [esi], 0
jmp 0x10052a41
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 + 0x90]
push dword [edx + 8]
push eax
mov eax, dword [esp + 0x48]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.10048890
cmp dword [esp + 0xa4], 0
jle 0x10052a9f
push esi
call fcn.10048f90
add esp, 4
push eax
push 0x101586b4
push edi
call fcn.10043b80
mov eax, dword [esp + 0xb0]
add esp, 0xc
mov dword [esp + 0x20], eax
movzx edx, byte [esp + 0x58]
mov ecx, esi
call fcn.10042010
mov edx, dword [esp + 0x20]
jmp 0x1004d960
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x1004e0a2
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x44], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.10048890
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x1005323c
mov eax, dword [esp + 0x40]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x100517b1
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x64]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov dword [esp + 0x10], edx
jmp 0x100517b9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov edi, dword [ecx + 0x20]
or dword [ecx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [edx + 4]
mov dword [esp + 0x38], ecx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 2
lea esi, [esi + eax*8]
jne 0x10052b72
mov byte [esi + 0x12], 1
jmp 0x10052b93
cmp byte [esi + 0x12], 1
je 0x10052b93
mov dl, 1
mov ecx, esi
call fcn.100219e0
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x1005323c
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
push dword [esi + 8]
push ecx
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x20], eax
test edi, edi
jne 0x10052bba
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [esp + 0x18]
mov ecx, edi
mov edx, dword [esp + 0x38]
call fcn.10048890
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x20]
jmp 0x1004d960
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
cmp byte [eax + 0x57], 0
jne 0x1004e792
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
test edx, edx
je 0x10053534
mov eax, dword [edx]
mov dword [esp + 0x40], eax
test eax, eax
je 0x10053534
cmp dword [eax + 0x34], 0
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 8]
je 0x1004cd94
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edi, dword [edi + 0x5c]
mov al, byte [eax + 0x5c]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x10052c5b
nop word [eax + eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x10052c50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x44]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x2b]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.10048890
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x10052cc0
mov esi, dword [esp + 0x10]
cmp dword [esi + 4], edx
mov esi, dword [esp + 0x14]
je 0x10052d0d
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x10052d0d
cmp dl, 0x13
jne 0x10052d09
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x10052d09
mov ecx, dword [esp + 0x10]
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x10053565
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov esi, dword [esp + 0x14]
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x10053244
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x10052d61
mov ecx, edx
call fcn.1004c6a0
mov edx, eax
jmp 0x10052d6a
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
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 + 0x10]
mov dword [edx + 4], 0
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
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 0x10052dcd
mov ecx, esi
call fcn.1004c6a0
mov esi, eax
jmp 0x10052dd6
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], edx
je 0x10052e09
mov ecx, edi
call fcn.10035d50
mov edx, eax
mov eax, dword [esp + 0x10]
cmp edx, dword [eax + 0xc]
cmovb edx, dword [eax + 0xc]
mov ecx, edi
call fcn.10036ec0
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x10053126
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x38], edi
cmp dword [esi], edi
je 0x10052e83
mov eax, dword [esp + 0x18]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x58]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x10052e83
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x1c]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x10052e65
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
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 0x10053126
jle 0x10052ede
mov dl, 1
mov ecx, edi
call fcn.100434c0
mov edi, dword [esp + 0x18]
push eax
push 0x101586b4
push edi
call fcn.10043b80
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x10052ee2
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
lea edx, [edi + 0xe4]
mov ecx, dword [esp + 0x14]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.10046970
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [esi + 0x14], 0
jmp 0x1004d960
mov eax, dword [eax + 4]
mov ecx, 0xf7ff
lea eax, [eax + eax*4]
and word [esi + eax*8 + 0x10], cx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
call fcn.1004c6f0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.1013b660
mov ecx, dword [esp + 0x1c]
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 0x10053126
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x40], edi
call fcn.1004c6f0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.1013b660
mov ecx, dword [esp + 0x40]
mov edi, eax
mov eax, dword [esp + 0x1c]
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 + 0x18]
shl eax, cl
test eax, edx
mov eax, dword [esp + 0x10]
jne 0x10052fe9
inc dword [edi + 0xc4]
jmp 0x10052992
inc dword [edi + 0xc0]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov edx, dword [esp + 0x14]
mov cl, byte [edx + 0x5e]
test cl, 0x41
je 0x100530c8
cmp byte [edi + 0x93], 0xfe
je 0x100530c8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x1005303b
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x100530c4
test cl, 0x40
je 0x1005306d
mov edx, eax
mov ecx, edi
call fcn.1004bcb0
mov esi, eax
mov eax, dword [esp + 0x14]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.1001e330
mov esi, dword [esp + 0x28]
add esp, 0xc
jmp 0x100530c4
cmp dword [edx + 0xc8], 1
push eax
jle 0x100530b0
push str.____s
push edx
call fcn.100211e0
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x14]
push esi
mov ecx, dword [eax + 0xd8]
push edi
push dword [eax + 0xdc]
push 1
call ecx
push esi
push dword [esp + 0x28]
call fcn.1001e550
mov esi, dword [esp + 0x34]
add esp, 0x18
jmp 0x100530c4
mov eax, dword [edx + 0xd8]
push edi
push dword [edx + 0xdc]
push 1
call eax
add esp, 0x10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [0x10165c04]
jl 0x1005310c
mov eax, dword [esp + 0x10]
cmp byte [eax], 0xb5
je case.0x1004c906.89
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x1005310a
mov eax, 0x14
nop dword [eax + eax]
mov ecx, dword [edi + 0x68]
cmp byte [ecx + eax], 0xf
jne 0x10053101
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x100530f0
xor eax, eax
mov ecx, dword [esp + 0x10]
inc eax
mov dword [ecx + 4], eax
inc dword [edi + 0xbc]
jmp 0x1005298e
mov ecx, esi
call fcn.10042ba0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
add eax, 0x14
mov edx, dword [esp + 0xc4]
jmp 0x1004c8d5
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov dword [edi + 0x24], ecx
mov al, byte [esi + 8]
mov byte [edi + 0x92], al
test ecx, ecx
je 0x100531f8
mov ecx, esi
movzx eax, word [ecx + 2]
test ax, ax
je 0x100531aa
push dword [eax*4 + 0x1014f1a0]
push str._s_constraint_failed
push edi
call fcn.10043b80
mov edi, esi
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x100531bf
mov esi, dword [esp + 0x18]
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.100211e0
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x100531bf
push dword [ecx + 0x10]
push 0x101586b4
push edi
call fcn.10043b80
mov edi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, edi
sub ecx, dword [esp + 0x64]
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.10021490
mov edi, dword [esp + 0x2c]
add esp, 0x14
mov ecx, edi
call fcn.10046430
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x18]
cmp edi, 5
jne 0x10053216
mov dword [eax + 0x24], edi
jmp 0x10053840
cmp dword [eax + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x10053840
mov ecx, 0x16c85
call fcn.100cedc0
mov edx, eax
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x57], 0
je 0x10053767
mov edx, 7
jmp 0x10053792
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
add ecx, ecx
push dword [edx + ecx*8]
mov ecx, dword [esp + 0x4c]
push dword [ecx]
mov ecx, esi
push dword [eax*4 + 0x10166f94]
call fcn.1004c7a0
mov edi, dword [esp + 0x24]
push eax
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.10043b80
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x20], edx
jmp 0x10053240
mov edi, dword [esp + 0x18]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.10043b80
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
mov edi, dword [esp + 0x18]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.10043b80
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
mov esi, dword [esp + 0x14]
mov byte [esi + 0x55], 0
jmp 0x10053244
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 5
mov eax, dword [esp + 0x18]
mov byte [ecx + 0x55], 0
mov dword [eax + 0x24], edi
jmp 0x10053840
mov edi, 0x65
jmp 0x1005383c
mov esi, dword [esp + 0x14]
and edx, 0x100000
or edx, 0
je 0x1005333d
mov edx, 8
mov dword [esp + 0x20], edx
jmp 0x10053244
mov edx, 0xb
mov dword [esp + 0x20], edx
jmp 0x10053244
cmp dl, 5
jne 0x10053240
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [eax + 0x24], edi
jmp 0x1005383c
mov eax, dword [esp + 0x18]
push dword [eax + 0x7c]
push dword [esp + 0x18]
call fcn.1001e550
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, str.database_schema_has_changed
call fcn.1001ea20
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x7c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esp + 0x14]
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 0x100533d1
mov ecx, dword [esp + 0x14]
call fcn.1006f810
mov esi, edi
mov eax, dword [esi]
mov edx, 0x11
and eax, 0xfffffffd
or eax, 1
and eax, 0xffffffef
mov dword [esi], eax
jmp 0x10053238
mov edx, 0x204
mov dword [esp + 0x20], edx
jmp 0x10053244
mov ecx, dword [edi]
call fcn.10036a40
mov edx, dword [esp + 0x20]
jmp 0x1005323c
mov edi, dword [esp + 0x18]
push str.string_or_blob_too_big
push edi
call fcn.10043b80
mov edx, 0x12
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
push str.index_corruption
mov edx, 0x1797b
mov ecx, 0x30b
call fcn.100ced90
add esp, 4
jmp 0x10053236
push 0x10156d84
push 0x17a48
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov edx, 0xb
jmp 0x10053238
mov edx, 6
mov byte [edi + 0x92], 2
mov dword [esp + 0x20], edx
jmp 0x10053240
mov ecx, dword [esp + 0x14]
call fcn.1006f880
jmp 0x1004e78e
push dword [esp + 0xf0]
call fcn.1001e330
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x1005323c
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x28], 1
call fcn.10043b80
add esp, 8
mov edx, 1
jmp 0x10053240
push esi
call fcn.10048f90
mov edi, dword [esp + 0x1c]
add esp, 4
push eax
push 0x101586b4
push edi
call fcn.10043b80
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x10053240
mov edi, dword [esp + 0x18]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x20], 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.10043b80
add esp, 0xc
mov edx, 1
jmp 0x10053240
push dword [esp + 0x30]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x1004e78a
mov edi, dword [esp + 0x18]
mov edx, 6
mov dword [esp + 0x20], edx
jmp 0x10053240
or ecx, 0xffffffff
mov dword [esp + 0x84], 0xffffffff
mov edx, 9
mov dword [esp + 0x80], ecx
mov dword [esp + 0x20], edx
jmp 0x10053240
cmp ecx, 5
movzx eax, cl
mov esi, 2
cmove eax, esi
mov byte [edi + 0x92], al
jmp 0x10053240
mov eax, dword [edi + 0x1c]
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edi + 0x78], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x57], 0
jne 0x1004e792
test byte [eax + 0x5e], 4
je 0x100535c4
push 0
push edi
push dword [eax + 0xdc]
mov eax, dword [eax + 0xd8]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
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 0x1005383c
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x8c], ecx
movzx eax, byte [edx + 0x55]
cmp ecx, eax
je 0x100536d4
test esi, esi
je 0x10053624
mov esi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, esi
call fcn.100cc2c0
mov al, 1
jmp 0x10053667
test ecx, ecx
je 0x1005363b
cmp dword [edx + 0xc4], 0
jle 0x1005363b
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x100532a0
mov edx, 1
mov ecx, edi
call fcn.100463c0
mov edi, eax
test edi, edi
jne 0x1005383c
mov al, byte [esp + 0x8c]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov byte [esp + 0x8c], al
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.10046430
cmp eax, 5
jne 0x100536b3
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov al, 1
sub al, byte [esp + 0x8c]
mov edi, 5
mov byte [ecx + 0x55], al
mov eax, dword [esp + 0x18]
mov dword [eax + 0x24], edi
jmp 0x10053840
mov ecx, esi
call fcn.100cbc70
mov eax, dword [esp + 0x18]
mov edi, 0x65
cmp dword [eax + 0x24], 0
mov eax, 1
cmovne edi, eax
jmp 0x1005383c
test ecx, ecx
jne 0x100536f5
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.10043b80
mov edx, 1
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
mov ecx, str.cannot_commit___no_transaction_is_active
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push edi
call fcn.10043b80
mov edx, 1
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x10053240
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x88], eax
mov edx, 9
mov dword [esp + 0x20], edx
jmp 0x10053240
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x88], eax
jmp 0x1004e78e
cmp edx, 0x210a
jne 0x10053796
push 0x10156d84
push 0x182d7
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x20], edx
cmp dword [edi + 0x7c], 0
jne 0x100537ba
cmp edx, 0xc0a
je 0x100537ba
mov ecx, edx
call fcn.100cc400
push eax
push 0x101586b4
push edi
call fcn.10043b80
add esp, 0xc
mov esi, dword [esp + 0x20]
mov edx, esi
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x24], esi
call fcn.10022080
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
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.10021490
add esp, 0x14
cmp byte [edi + 0x95], 2
jne 0x1005380d
mov ecx, edi
call fcn.10046430
cmp esi, 0xc0a
jne 0x100538bb
mov ecx, dword [esp + 0x14]
call fcn.1001eb60
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x7b]
mov edi, 1
test al, al
je 0x10053840
movzx edx, al
dec edx
call fcn.1006f810
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x84]
nop word [eax + eax]
cmp dword [esp + 0xc4], esi
jb 0x100538e1
mov edx, dword [esp + 0x80]
ja 0x1005386f
cmp dword [esp + 0x88], edx
jb 0x100538e1
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x100538e1
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x84], edx
adc esi, 0
call eax
mov ecx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x10053850
or ecx, 0xffffffff
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x80], ecx
mov edx, 9
jmp 0x10053238
cmp esi, 0xb
jne 0x10053822
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x55], 0
jne 0x10053826
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x10053826
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x10053902
mov ecx, eax
call fcn.10044f10
mov ecx, dword [esp + 0x1ac]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.10129081
mov esp, ebp
pop ebp
ret