Function at 0x100466c0
Capabilities:
Encrypt data using speck
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28c
mov eax, dword [0x102beb54]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x208], edi
mov byte [ebp - 0x259], 0
mov dword [ebp - 0x26c], 0
mov esi, dword [edi]
mov ebx, dword [edi + 0x58]
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x204], ebx
mov al, byte [esi + 0x42]
mov byte [ebp - 0x238], al
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x21c], eax
call fcn.1003fa00
cmp dword [edi + 0x28], 7
je 0x10048b15
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x68], 0
cmp dword [esi + 0xf8], 0
mov dword [esi + 0x184], 0
jne 0x1004cd8e
cmp dword [esi + 0x130], 0
je 0x10046784
mov ecx, dword [esi + 0x138]
xor edx, edx
mov eax, dword [edi + 0xb0]
div ecx
sub ecx, edx
jmp 0x10046787
or ecx, 0xffffffff
mov eax, dword [edi + 0x24]
xorps xmm0, xmm0
mov dword [ebp - 0x214], ecx
mov dword [ebp - 0x274], 0xff61
mov dword [ebp - 0x278], 0x17
lea eax, [eax + eax*4]
movsd qword [ebp - 0x288], xmm0
lea edx, [ebx + eax*4]
xor ebx, ebx
inc ebx
mov dword [ebp - 0x204], edx
mov dl, byte [edx]
mov dword [ebp - 0x210], ebx
movzx ebx, dl
mov byte [ebp - 0x221], dl
cmp ebx, 0xa4
ja case.0x100467db.74
jmp dword [ebx*4 + 0x1004cdf4]
mov edx, dword [ebp - 0x204]
mov ecx, edx
mov ebx, dword [ebp - 0x21c]
sub ecx, dword [ebp - 0x23c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x23c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [ebx + esi*8], eax
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov edx, dword [edx + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x23c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8 + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [ebx + ecx*8], eax
mov eax, 4
mov word [ebx + ecx*8 + 8], ax
cmp dword [edx + 8], 0
jne 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x23c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
add edx, 0xffffffec
jmp 0x10046870
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x23c]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x23c]
mov dword [ebx + esi*8 + 4], edx
lea edx, [ecx + eax*4]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x1004687a
jmp 0x10046993
mov edx, dword [ebp - 0x204]
mov ecx, edx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x23c]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x204]
mov ecx, dword [edx + 4]
test ecx, ecx
jne 0x1004c88c
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x1004c886
mov eax, dword [edx + 4]
mov ecx, edx
mov esi, dword [ebp - 0x20c]
dec dword [edi + 0xcc]
mov dword [edi + 0xc4], eax
mov eax, dword [edi + 0x2c]
add dword [esi + 0x5c], eax
mov dword [esi + 0x58], eax
call fcn.100403d0
mov ebx, dword [edi + 0x58]
mov ecx, eax
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x23c], ebx
cmp dword [eax + 8], 4
jne 0x10046a0f
lea eax, [ecx + ecx*4]
mov ecx, dword [ebx + eax*4 + 8]
dec ecx
mov eax, dword [edi + 0x5c]
mov dword [ebp - 0x21c], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x214]
lea edx, [ebx + eax*4]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10046a7f
call fcn.10046670
mov ebx, dword [ebp - 0x210]
mov ecx, eax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x10046ad9
mov ecx, edx
call fcn.10046670
mov edx, eax
jmp 0x10046ae2
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x214]
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x204]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10046b33
call fcn.10046670
mov ecx, eax
mov edx, dword [ebp - 0x204]
mov eax, 8
mov ebx, dword [ebp - 0x210]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10046b8f
mov ecx, esi
call fcn.10046670
mov esi, eax
jmp 0x10046b98
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [ebx + 0x10]
mov byte [ebx], 0x3a
test edx, edx
jne 0x10046ba6
xor ecx, ecx
jmp 0x10046bc5
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10046bb0
sub ecx, edi
mov edi, dword [ebp - 0x208]
and ecx, 0x3fffffff
mov dword [ebx + 4], ecx
mov bl, byte [ebp - 0x238]
cmp bl, 1
je 0x10046c4f
push 0
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.1003dab0
add esp, 0xc
mov dword [ebp - 0x218], eax
test byte [esi + 8], 2
je 0x10046c05
cmp byte [esi + 0xa], bl
je 0x10046c05
mov dl, bl
mov ecx, esi
call fcn.10022690
test eax, eax
jne 0x1004cdb2
mov ecx, dword [ebp - 0x204]
mov eax, 0x800
or word [esi + 8], ax
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xf9
jne 0x10046c39
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x10046c39
mov ecx, dword [ebp - 0x20c]
call fcn.1001ff30
mov ecx, dword [ebp - 0x204]
mov byte [ecx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x204]
mov ecx, dword [esi + 0xc]
mov dword [eax + 4], ecx
mov esi, dword [ebp - 0x20c]
cmp ecx, dword [esi + 0x60]
jg 0x1004cb2b
mov ebx, dword [ebp - 0x204]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10046c82
call fcn.10046670
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x238]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x10046a97
mov ebx, dword [ebp - 0x21c]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x204]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x10046e3e
cmp dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
jne 0x1004a96f
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x10046d29
mov ecx, edx
call fcn.10046670
mov edx, eax
jmp 0x10046d32
mov eax, 4
mov word [edx + 8], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 8]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x10046d89
mov eax, 0x2460
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x10046d7a
lea ecx, [esi - 8]
call fcn.1003d2f0
mov eax, 0x2460
dec edi
mov word [esi], bx
mov dword [esi + 4], 0
test edi, edi
jg 0x10046d64
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, word [ebp - 0x274]
or ax, 1
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10046e12
mov ecx, esi
call fcn.10046670
mov esi, eax
jmp 0x10046e1b
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x204]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.1003dab0
mov al, byte [ebp - 0x238]
add esp, 0xc
mov byte [esi + 0xa], al
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x74]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.1003d990
test eax, eax
jne 0x1004cb2b
mov eax, dword [ebp - 0x204]
lea edx, [esi - 0x28]
mov ecx, dword [ebp - 0x21c]
push 0x800
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003d9f0
mov edx, dword [ebp - 0x204]
add esp, 4
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop word [eax + eax]
mov eax, 0x2460
test word [esi + 8], ax
jne 0x10046f01
cmp dword [esi + 0x18], 0
je 0x10046f08
mov ecx, esi
call fcn.1003d370
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x10046f4a
mov ecx, esi
call fcn.1003d030
test eax, eax
jne 0x10048b09
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x10046ef0
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.1003d9f0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x10046fcb
mov ecx, esi
call fcn.1003d030
test eax, eax
jne 0x10048b09
mov eax, ebx
dec ebx
test eax, eax
je 0x10046d89
add esi, 0x28
add edi, 0x28
jmp 0x10046fa0
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
push 0x1000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.1003d9f0
mov edx, dword [ebp - 0x204]
add esp, 4
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x2460
test word [ecx + 8], bx
je 0x1004707a
push eax
push edx
call fcn.1003d850
mov edx, dword [ebp - 0x204]
add esp, 8
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x210]
mov dword [ecx + 4], eax
mov eax, 4
mov dword [ecx], edx
mov edx, dword [ebp - 0x204]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov al, byte [edi + 8]
or al, cl
test al, 1
je 0x1004713f
mov eax, 0x2460
test word [esi + 8], ax
je 0x10047110
mov ecx, esi
call fcn.1003d2f0
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, 1
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20c]
add edx, 0x14
jmp 0x100467b7
test ecx, 0x4000
je 0x10047156
mov ecx, ebx
call fcn.1003d0b0
test eax, eax
jne 0x10048b09
mov eax, 0x4000
test word [edi + 8], ax
je 0x10047170
mov ecx, edi
call fcn.1003d0b0
test eax, eax
jne 0x10048b09
test byte [ebx + 8], 0x12
jne 0x10047190
mov dl, byte [ebp - 0x238]
mov ecx, ebx
push 0
call fcn.1003d140
add esp, 4
test eax, eax
jne 0x10048b09
test byte [edi + 8], 0x12
jne 0x100471b0
mov dl, byte [ebp - 0x238]
mov ecx, edi
push 0
call fcn.1003d140
add esp, 4
test eax, eax
jne 0x10048b09
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebx + 0xc]
add ecx, dword [edi + 0xc]
mov dword [ebp - 0x22c], ecx
cmp ecx, dword [eax + 0x60]
jg 0x1004cb25
xor eax, eax
lea edx, [ecx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.1003cec0
add esp, 4
test eax, eax
jne 0x10048b09
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x10047211
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.10200b60
add esp, 0xc
push dword [ebx + 0xc]
mov eax, dword [esi + 0x10]
push dword [ebx + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.10200b60
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [ebp - 0x238]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x214]
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x20c]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x21c]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x228], eax
call fcn.10046650
movzx eax, ax
mov dword [ebp - 0x264], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [ebp - 0x234], eax
call fcn.10046650
mov edx, dword [ebp - 0x228]
movzx eax, ax
mov dword [ebp - 0x24c], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0x234]
mov dword [ebp - 0x220], ebx
mov ax, word [esi + 8]
or ax, word [edx + 8]
movzx ecx, ax
mov al, byte [ebp - 0x24c]
and al, byte [ebp - 0x264]
test al, 4
je 0x100474eb
mov eax, edx
mov byte [ebp - 0x221], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x234]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], edi
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x1004732e
jmp dword [eax*4 + 0x1004d088]
test esi, esi
jl 0x100473c2
jg 0x10047343
test edx, edx
jb 0x100473c2
test edi, edi
jl 0x1004740c
jg 0x10047355
test ebx, ebx
je 0x1004740c
or ecx, 0xffffffff
mov eax, accept
sub ecx, ebx
sbb eax, edi
cmp eax, esi
jg 0x1004740c
jl 0x10047373
cmp ecx, edx
jae 0x1004740c
mov esi, dword [ebp - 0x234]
mov edx, dword [ebp - 0x228]
mov ebx, dword [ebp - 0x220]
mov ecx, edx
call fcn.1003d530
mov ecx, esi
movsd qword [ebp - 0x230], xmm0
call fcn.1003d530
mov eax, dword [ebp - 0x204]
movaps xmm1, xmm0
movsd qword [ebp - 0x248], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x100473bb
jmp dword [eax*4 + 0x1004d098]
test edi, edi
jg 0x1004740c
jl 0x100473cc
test ebx, ebx
jae 0x1004740c
mov eax, 1
mov ecx, accept
sub eax, ebx
mov dword [ebp - 0x22c], eax
mov eax, edx
sbb ecx, edi
add eax, 1
mov dword [ebp - 0x244], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jg 0x10047373
jl 0x1004740c
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x244]
ja 0x10047373
add ebx, edx
mov dword [ebp - 0x28], ebx
adc edi, esi
mov dword [ebp - 0x24], edi
jmp 0x100474a0
push esi
push edx
lea ecx, [ebp - 0x28]
call fcn.10023f70
add esp, 8
test eax, eax
jne 0x10047373
jmp 0x100474a0
push esi
push edx
lea ecx, [ebp - 0x28]
call fcn.10023fc0
add esp, 8
test eax, eax
jne 0x10047373
jmp 0x100474a0
mov eax, edx
or eax, esi
je 0x10047628
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x1004746c
test ebx, ebx
jne 0x1004746c
cmp edi, 0x80000000
je 0x10047373
push esi
push edx
push edi
push ebx
call fcn.101ea530
jmp 0x1004749a
mov eax, edx
or eax, esi
je 0x10047628
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x10047491
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ebx
call fcn.101eaa40
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x220]
mov edx, 0x3e00
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
mov dword [ecx], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
mov edx, dword [ebp - 0x204]
or ax, 4
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
test cl, 1
jne 0x10047628
mov byte [ebp - 0x221], 0
jmp 0x10047385
addsd xmm1, qword [ebp - 0x230]
jmp 0x10047594
subsd xmm1, qword [ebp - 0x230]
jmp 0x10047594
mulsd xmm1, qword [ebp - 0x230]
jmp 0x10047594
movsd xmm0, qword [ebp - 0x230]
ucomisd xmm0, qword [ebp - 0x288]
lahf
test ah, 0x44
jnp 0x10047628
divsd xmm1, xmm0
jmp 0x10047594
movsd xmm0, qword [ebp - 0x230]
call fcn.101ea7df
movsd xmm0, qword [ebp - 0x248]
mov esi, eax
mov edi, edx
call fcn.101ea7df
mov ecx, eax
mov dword [ebp - 0x24], edx
mov eax, esi
mov dword [ebp - 0x28], ecx
or eax, edi
je 0x10047628
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x10047581
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.101eaa40
mov ecx, eax
call fcn.101ea930
movaps xmm1, xmm0
movsd qword [ebp - 0x230], xmm1
movsd xmm0, qword [ebp - 0x230]
movsd qword [ebp - 0x248], xmm0
movsd xmm0, qword [ebp - 0x230]
ucomisd xmm0, qword [ebp - 0x248]
lahf
test ah, 0x44
jp 0x10047628
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x24c]
or al, byte [ebp - 0x264]
test al, 8
jne 0x10046d89
cmp byte [ebp - 0x221], 0
jne 0x10046d89
mov ecx, ebx
call fcn.1003d560
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ecx, dword [ebp - 0x220]
mov eax, 0x2460
test word [ecx + 8], ax
jne 0x100470e5
mov eax, 1
mov word [ecx + 8], ax
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 4]
test eax, eax
je 0x10046880
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x1004769b
push 0
push 0
mov ecx, eax
call fcn.1003d850
mov edx, dword [ebp - 0x204]
add esp, 8
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x210]
mov ecx, 4
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x214]
mov dword [eax], 0
mov dword [eax + 4], 0
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [ebx + 8]
mov dword [ebp - 0x22c], edx
test al, 1
je 0x10047751
mov eax, 0x2460
test word [edx + 8], ax
je 0x1004772e
mov ecx, edx
call fcn.1003d2f0
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ecx, dword [ebp - 0x214]
mov eax, 1
mov ebx, dword [ebp - 0x210]
mov word [edx + 8], ax
mov edx, dword [ebp - 0x204]
add edx, 0x14
jmp 0x100467b7
call fcn.1003d4b0
mov edi, eax
mov esi, edx
mov ecx, ebx
mov dword [ebp - 0x280], edi
mov dword [ebp - 0x27c], esi
call fcn.1003d4b0
mov ebx, eax
mov eax, dword [ebp - 0x204]
mov cl, byte [eax]
cmp cl, 0x54
jne 0x10047782
and edi, ebx
and esi, edx
jmp 0x100477ee
cmp cl, 0x55
jne 0x1004778d
or edi, ebx
or esi, edx
jmp 0x100477ee
mov eax, ebx
or eax, edx
je 0x100477ee
test edx, edx
jg 0x100477c1
jl 0x1004779d
test ebx, ebx
jae 0x100477b6
mov al, 0xad
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x100477c1
jg 0x100477af
cmp ebx, 0xffffffc0
jbe 0x100477c1
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x10047812
jg 0x100477c1
cmp ebx, 0x40
jb 0x10047812
test esi, esi
jg 0x100477d7
jl 0x100477cb
test edi, edi
jae 0x100477d7
cmp cl, 0x56
je 0x100477d7
or edi, 0xffffffff
or esi, edi
jmp 0x100477ee
xorps xmm0, xmm0
movlpd qword [ebp - 0x248], xmm0
mov esi, dword [ebp - 0x244]
mov edi, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x22c]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], edi
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x10046d89
movq xmm1, qword [ebp - 0x280]
movd xmm0, ebx
cmp cl, 0x56
jne 0x10047831
psllq xmm1, xmm0
movq qword [ebp - 0x248], xmm1
jmp 0x100477e2
psrlq xmm1, xmm0
movq qword [ebp - 0x248], xmm1
test esi, esi
jg 0x100477e2
jl 0x10047847
test edi, edi
jae 0x100477e2
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.101ead10
mov edi, dword [ebp - 0x248]
mov esi, dword [ebp - 0x244]
or edi, eax
or esi, edx
jmp 0x100477ee
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003d4b0
mov ebx, dword [ebp - 0x210]
mov ecx, 0x3e00
mov dword [esi], eax
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
mov ecx, dword [ebp - 0x214]
or ax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
mov ecx, eax
test al, 4
jne 0x10047924
push dword [ebp - 0x238]
mov dl, 0x43
mov ecx, esi
call fcn.100464f0
movzx eax, word [esi + 8]
add esp, 4
mov edx, dword [ebp - 0x204]
mov ecx, eax
test al, 4
jne 0x10047924
cmp dword [edx + 8], 0
jne 0x1004b63a
mov edx, 0x14
jmp 0x1004868f
mov ebx, dword [ebp - 0x210]
and ecx, 0x3e00
or ecx, 4
mov word [esi + 8], cx
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je 0x10046954
mov ecx, esi
call fcn.1003d530
mov ax, word [esi + 8]
mov ecx, 0x3e00
mov edx, dword [ebp - 0x204]
and ax, cx
mov ecx, dword [ebp - 0x214]
or ax, 8
mov ebx, dword [ebp - 0x210]
movsd qword [esi], xmm0
mov word [esi + 8], ax
mov esi, dword [ebp - 0x20c]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x100479d9
mov ecx, esi
call fcn.1003d0b0
mov dword [ebp - 0x218], eax
jmp 0x100479e3
mov dword [ebp - 0x218], 0
mov eax, dword [ebp - 0x204]
mov ecx, esi
push dword [ebp - 0x238]
mov dl, byte [eax + 8]
call fcn.1003d730
add esp, 4
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx esi, word [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
movzx eax, word [ebx + 8]
mov ecx, esi
mov edx, ecx
mov dword [ebp - 0x220], eax
or edx, eax
mov dword [ebp - 0x228], ecx
mov eax, dword [ebp - 0x204]
test dl, 1
je 0x10047b0a
movzx eax, word [eax + 2]
test al, al
jns 0x10047aa1
mov al, byte [ebp - 0x228]
and al, byte [ebp - 0x220]
test al, 1
je 0x10047b7e
test ecx, 0x100
jne 0x10047b7e
xor edx, edx
jmp 0x10047c33
test al, 0x20
je 0x10047adc
mov eax, dword [ebp - 0x204]
mov edx, 0x3e00
mov ebx, dword [ebp - 0x21c]
mov dword [ebp - 0x26c], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 8], ax
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
test al, 0x10
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x10047ba2
mov ecx, esi
test dl, 2
je 0x10047b5d
mov al, byte [ebp - 0x220]
and al, 0xe
cmp al, 2
jne 0x10047b3d
xor edx, edx
mov ecx, ebx
call fcn.10046460
movzx eax, word [edi + 8]
mov dword [ebp - 0x228], eax
mov al, byte [ebp - 0x228]
movzx ecx, word [ebp - 0x228]
and al, 0xe
cmp al, 2
jne 0x10047b5d
xor edx, edx
mov ecx, edi
call fcn.10046460
movzx ecx, word [edi + 8]
mov al, byte [ebx + 8]
and al, cl
test al, 4
je 0x10047c1c
mov esi, dword [edi + 4]
mov edx, dword [ebx + 4]
mov ecx, dword [edi]
mov eax, dword [ebx]
cmp esi, edx
jl 0x10047b9a
jg 0x10047b7e
cmp ecx, eax
jbe 0x10047b88
mov edx, 1
jmp 0x10047c33
cmp esi, edx
jg 0x10047a9a
jl 0x10047b9a
cmp ecx, eax
jae 0x10047a9a
or edx, 0xffffffff
jmp 0x10047c33
cmp al, 0x42
jne 0x10047c1c
mov al, byte [ebp - 0x220]
test al, 2
jne 0x10047be2
test al, 0xc
je 0x10047be2
mov dl, byte [ebp - 0x238]
mov ecx, ebx
push 1
call fcn.1003d140
mov ax, word [ebx + 8]
mov esi, 0x3e00
xor ax, word [ebp - 0x220]
add esp, 4
and ax, si
xor word [ebp - 0x220], ax
jmp 0x10047be7
mov esi, 0x3e00
mov al, byte [ebp - 0x228]
test al, 2
jne 0x10047c1c
test al, 0xc
je 0x10047c1c
mov dl, byte [ebp - 0x238]
mov ecx, edi
push 1
call fcn.1003d140
mov ax, word [edi + 8]
add esp, 4
xor ax, word [ebp - 0x228]
and ax, si
xor word [ebp - 0x228], ax
mov eax, dword [ebp - 0x204]
mov edx, ebx
mov ecx, edi
push dword [eax + 0x10]
call fcn.10042330
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x204]
movzx eax, byte [eax]
add eax, 0xffffffb3
cmp eax, 4
ja case.default.0x10047c44
jmp dword [eax*4 + 0x1004d0a8]
xor ecx, ecx
test edx, edx
sete cl
jmp 0x10047c75
mov ecx, edx
jmp 0x10047c75
mov ecx, edx
jmp 0x10047c72
xor ecx, ecx
test edx, edx
setle cl
jmp 0x10047c75
xor ecx, ecx
test edx, edx
setg cl
jmp 0x10047c75
mov ecx, edx
not ecx
shr ecx, 0x1f
movzx eax, word [ebp - 0x220]
mov word [ebx + 8], ax
movzx eax, word [ebp - 0x228]
mov word [edi + 8], ax
mov eax, dword [ebp - 0x204]
movzx eax, word [eax + 2]
test al, 0x20
je 0x10047cf8
mov dword [ebp - 0x26c], edx
xor edx, edx
test ecx, ecx
setne dl
test al, 8
je 0x10047cc0
mov esi, dword [ebp - 0x204]
xor eax, eax
cmp byte [esi], 0x4e
sete al
cmp eax, edx
je 0x10046d89
mov eax, dword [ebp - 0x204]
mov esi, 0x3e00
mov ebx, dword [ebp - 0x21c]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, si
mov dword [ebx + ecx*8], edx
or ax, 4
mov dword [ebx + ecx*8 + 4], 0
mov word [ebx + ecx*8 + 8], ax
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
test ecx, ecx
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp dword [ebp - 0x26c], 0
mov edx, dword [ebp - 0x204]
jne 0x1004b63a
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
test byte [edx + 2], 1
jne 0x10047d57
xor ebx, ebx
jmp 0x10047d5d
mov ebx, dword [edx - 4]
add ebx, 4
mov esi, dword [ebp - 0x204]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [ebp - 0x254], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x244], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x24c], edx
mov dword [ebp - 0x22c], ecx
test eax, eax
jle 0x10046e3e
lea edi, [edx + 0x14]
test ebx, ebx
je 0x10047d9d
mov ecx, dword [ebx + esi*4]
jmp 0x10047d9f
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x21c]
push dword [edi]
mov al, byte [esi + eax]
mov byte [ebp - 0x221], al
mov eax, dword [ebp - 0x22c]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0x244]
add eax, ecx
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10042330
mov ecx, eax
add esp, 4
mov dword [ebp - 0x26c], ecx
test ecx, ecx
jne 0x10047e00
mov edx, dword [ebp - 0x24c]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x254]
jl 0x10047d94
jmp 0x10046d89
cmp byte [ebp - 0x221], 0
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
je 0x1004a96f
neg ecx
mov dword [ebp - 0x26c], ecx
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ecx, dword [ebp - 0x26c]
mov edx, dword [ebp - 0x204]
test ecx, ecx
jns 0x10047e71
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x23c]
mov ebx, dword [ebp - 0x210]
lea edx, [eax - 1]
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
jne 0x10047e99
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x23c]
mov ebx, dword [ebp - 0x210]
lea edx, [eax - 1]
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x23c]
mov ebx, dword [ebp - 0x210]
lea edx, [eax - 1]
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10047ee2
mov esi, 6
jmp 0x10047ef4
call fcn.1003d4b0
or eax, edx
je 0x10047ef2
mov esi, 3
jmp 0x10047ef4
xor esi, esi
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x10047f16
mov eax, 0x102a68a2
mov ecx, 0x102a93aa
jmp 0x10047f35
call fcn.1003d4b0
or eax, edx
je 0x10047f2b
mov eax, 0x102a68a1
mov ecx, 0x102a93a9
jmp 0x10047f35
mov eax, 0x102a68a0
mov ecx, 0x102a93a8
cmp byte [ebx], 0x47
mov ebx, dword [ebp - 0x21c]
cmove eax, ecx
mov dl, byte [eax + esi]
mov esi, 0x3e00
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, si
movzx esi, ax
cmp dl, 2
jne 0x10047f91
mov edx, dword [ebp - 0x204]
mov eax, 1
or eax, esi
mov esi, dword [ebp - 0x20c]
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
movzx eax, dl
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
or eax, esi
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10047ffc
mov ecx, esi
call fcn.1003d2f0
jmp 0x10048005
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x10046d89
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.1003d4b0
or eax, edx
jne 0x10048034
mov eax, 1
xor ecx, ecx
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10046d89
xorps xmm0, xmm0
movlpd qword [ebp - 0x230], xmm0
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x10048089
mov ecx, esi
call fcn.1003d2f0
jmp 0x10048092
mov eax, 1
mov word [esi + 8], ax
test byte [edi + 8], 1
jne 0x10046d89
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.1003d4b0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x10046d89
mov edi, dword [edi + 0xc4]
test edi, edi
je 0x10048137
mov edx, dword [ebp - 0x208]
mov eax, 0x66666667
mov ecx, dword [ebp - 0x204]
mov edi, dword [edi + 0x18]
sub ecx, dword [edx + 0x58]
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 0x1004b62e
mov ebx, dword [ebp - 0x210]
bts edx, ecx
mov byte [esi + edi], dl
mov edi, dword [ebp - 0x208]
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x214]
mov dword [edx + 4], eax
add edx, 0x14
jmp 0x100467b7
mov edi, dword [ebp - 0x208]
mov edx, dword [ebp - 0x204]
mov ecx, dword [edi + 0x58]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
je 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [edx + 4], eax
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x1004818c
mov ecx, edx
mov ecx, dword [ecx + 0xc]
jmp 0x100481b4
call fcn.1003d530
ucomisd xmm0, qword [ebp - 0x288]
mov edx, dword [ebp - 0x204]
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [edx], 0x16
jne 0x100481b4
xor ecx, eax
test ecx, ecx
jne 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x1004687a
mov ecx, dword [ebp - 0x21c]
mov eax, edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x1004829e
mov ecx, eax
call fcn.1003d2f0
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov edx, dword [edx + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ecx, 1
mov word [eax + 8], cx
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov edx, dword [edx + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
lea edx, [ebp - 0xec]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0xec], eax
call fcn.10041930
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x21c]
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x208]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x48]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x234], edi
cmp eax, dword [edx + 0x20]
je 0x10048485
cmp byte [esi + 2], 0
je 0x100483a8
cmp byte [esi], 3
jne 0x10048388
mov eax, dword [esi + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [ebp - 0x34], eax
mov dword [esi + 0x54], eax
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0x21c]
mov ecx, dword [eax + edx*8 + 0x10]
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x4c], ecx
jmp 0x100483f8
mov eax, 0x2460
test word [ebx + 8], ax
je 0x1004839a
mov ecx, ebx
jmp 0x100470e5
mov eax, 1
mov word [ebx + 8], ax
jmp 0x10046d89
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10035960
mov eax, dword [ebp - 0xe4]
lea edx, [ebp - 0x34]
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x50], ecx
mov ecx, esi
call fcn.10035fc0
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x4c], eax
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x34]
mov eax, dword [ecx + 0x50]
cmp eax, edx
ja 0x100483e6
mov dword [ecx + 0x54], eax
jmp 0x100483f8
mov esi, dword [ebp - 0x20c]
cmp eax, dword [esi + 0x60]
ja 0x1004cb25
mov dword [ecx + 0x54], edx
mov eax, dword [ebp - 0x208]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0xe4]
mov esi, dword [ecx + 0x4c]
mov al, byte [esi]
cmp al, 0x80
jae 0x10048423
movzx eax, al
mov dword [ebp - 0x30], eax
mov al, 1
jmp 0x10048433
lea edx, [ebp - 0x30]
mov ecx, esi
call fcn.10023d50
mov ecx, dword [ebp - 0xe4]
movzx eax, al
mov dword [ecx + 0x30], eax
xor ecx, ecx
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x3a], cx
mov eax, dword [ebp - 0x30]
mov dword [edi], eax
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x34], eax
jae 0x1004853f
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x54], ecx
mov eax, dword [ebp - 0x30]
cmp eax, 0x18003
ja 0x1004c939
mov esi, dword [ebp - 0xe4]
cmp eax, dword [esi + 0x50]
ja 0x1004c939
movzx eax, word [esi + 0x3a]
mov edx, dword [ebp - 0xec]
cmp eax, edx
jg 0x1004883d
mov eax, dword [esi + 0x30]
cmp eax, dword [edi]
jae 0x100487cf
mov ebx, dword [esi + 0x4c]
mov dword [ebp - 0x264], ebx
test ebx, ebx
jne 0x10048500
xorps xmm0, xmm0
lea eax, [ebp - 0x180]
movups xmmword [ebp - 0x180], xmm0
push eax
movups xmmword [ebp - 0x170], xmm0
xor edx, edx
movq qword [ebp - 0x160], xmm0
push dword [edi]
mov ecx, dword [esi + 0x28]
call fcn.1003ddc0
mov edx, eax
add esp, 8
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov ebx, dword [ebp - 0x170]
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0x264], ebx
mov edx, dword [ebp - 0x234]
xor ecx, ecx
movzx eax, word [esi + 0x3a]
mov dword [ebp - 0x258], eax
mov edx, dword [edx]
lea eax, [edi + eax*4]
add edx, ebx
mov edi, dword [esi + 0x30]
mov dword [ebp - 0x254], edx
add edi, ebx
mov edx, 0x58
mov dword [ebp - 0x228], eax
sub edx, dword [ebp - 0x234]
mov eax, dword [eax]
mov dword [ebp - 0x22c], edx
jmp 0x10048566
mov esi, dword [ebp - 0xe4]
test eax, eax
je 0x10048485
mov ebx, dword [esi + 0x4c]
jmp 0x100484fa
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0x220], ecx
movzx ecx, byte [edi]
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0xe8], ecx
cmp ecx, 0x80
jae 0x10048592
movzx eax, byte [ecx + 0x102a7140]
mov ebx, 1
cdq
jmp 0x100485c6
lea edx, [ebp - 0xe8]
mov ecx, edi
call fcn.10023d50
mov ecx, dword [ebp - 0xe8]
movzx ebx, al
cmp ecx, 0x80
jb 0x100485b7
lea eax, [ecx - 0xc]
shr eax, 1
jmp 0x100485be
movzx eax, byte [ecx + 0x102a7140]
mov esi, dword [ebp - 0xe4]
xor edx, edx
add dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x22c]
adc dword [ebp - 0x220], edx
add eax, esi
mov edx, dword [ebp - 0x228]
add edi, ebx
mov ebx, dword [ebp - 0x258]
inc ebx
mov dword [ebp - 0x258], ebx
mov dword [eax + edx], ecx
add edx, 4
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x228], edx
mov dword [edx], eax
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0x254]
cmp ebx, dword [ebp - 0xec]
jg 0x10048621
cmp edi, edx
jb 0x10048560
jmp 0x10048629
cmp edi, edx
jb 0x10048757
cmp edi, edx
ja 0x10048640
cmp eax, dword [esi + 0x50]
jne 0x10048640
mov ecx, dword [ebp - 0x220]
test ecx, ecx
je 0x1004875d
cmp dword [esi + 0x4c], 0
jne 0x10048666
test dword [ebp - 0x178], 0x2460
jne 0x1004865b
cmp dword [ebp - 0x168], 0
je 0x10048666
lea ecx, [ebp - 0x180]
call fcn.1003d370
push 0x102af5bc
push 0x13e57
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10022360
add esp, 0x14
mov edx, 0xb
mov edi, dword [ebp - 0x208]
mov esi, dword [ebp - 0x20c]
mov eax, 7
cmp byte [esi + 0x45], 0
cmovne edx, eax
cmp dword [edi + 0x6c], 0
mov dword [ebp - 0x218], edx
jne 0x100486d1
cmp edx, 0xc0a
je 0x100486d1
mov ecx, edx
call fcn.10097510
push eax
push 0x102ab71c
push edi
call fcn.1003e570
mov edx, dword [ebp - 0x218]
add esp, 0xc
mov ecx, esi
mov dword [edi + 0x28], edx
call fcn.10022d10
mov ecx, dword [ebp - 0x204]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x23c]
push dword [edi + 0x6c]
imul ecx
push dword [edi + 0xbc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0x218]
call fcn.10022360
add esp, 0x14
mov ecx, edi
call fcn.10040fc0
cmp dword [ebp - 0x218], 0xc0a
jne 0x1004872f
mov ecx, esi
call fcn.10020610
mov al, byte [ebp - 0x259]
mov dword [ebp - 0x218], 1
test al, al
je 0x1004cdca
movzx edx, al
mov ecx, esi
dec edx
call fcn.1005f730
jmp 0x1004cdca
mov ecx, dword [ebp - 0x220]
test ecx, ecx
ja 0x10048640
jb 0x10048770
cmp eax, dword [esi + 0x50]
ja 0x10048640
sub edi, dword [ebp - 0x264]
mov word [esi + 0x3a], bx
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x30], edi
mov esi, dword [ebp - 0xe4]
cmp dword [esi + 0x4c], 0
jne 0x100487b5
test dword [ebp - 0x178], 0x2460
jne 0x100487a4
cmp dword [ebp - 0x168], 0
je 0x100487b5
lea ecx, [ebp - 0x180]
call fcn.1003d370
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe8]
mov ebx, dword [ebp - 0x244]
mov edi, dword [ebp - 0x234]
jmp 0x100487d7
xor ecx, ecx
mov dword [ebp - 0xe8], ecx
movzx eax, word [esi + 0x3a]
cmp eax, edx
jg 0x10048847
mov edx, dword [ebp - 0x204]
cmp byte [edx + 1], 0xf5
jne 0x10048802
mov edx, dword [edx + 0x10]
mov ecx, ebx
push 0x800
call fcn.1003d9f0
add esp, 4
jmp 0x10046d89
mov eax, 0x2460
test word [ebx + 8], ax
je 0x10048814
mov ecx, ebx
jmp 0x100470e5
mov esi, dword [ebp - 0x20c]
mov eax, 1
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov word [ebx + 8], ax
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ecx, dword [esi + edx*4 + 0x58]
mov dword [ebp - 0xe8], ecx
mov eax, 0x2460
test word [ebx + 8], ax
je 0x1004886b
mov ecx, ebx
call fcn.1003d2f0
mov esi, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe8]
mov eax, dword [esi + 0x54]
cmp eax, dword [edi + edx*4 + 4]
jb 0x10048910
mov eax, dword [ebp - 0x234]
mov edi, dword [esi + 0x4c]
add edi, dword [eax + edx*4]
cmp ecx, 0xc
jae 0x1004889b
mov edx, ecx
mov ecx, edi
push ebx
call fcn.10041c40
add esp, 4
jmp 0x10046d89
mov al, byte [ebp - 0x238]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [ebx + 0xc], esi
mov byte [ebx + 0xa], al
lea edx, [esi + 2]
cmp dword [ebx + 0x18], edx
jge 0x100488d6
mov eax, 1
mov ecx, ebx
push 0
mov word [ebx + 8], ax
call fcn.1003cec0
add esp, 4
test eax, eax
jne 0x10048b09
mov eax, dword [ebx + 0x10]
jmp 0x100488dc
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
push esi
push edi
push eax
call fcn.10200b60
mov eax, dword [ebx + 0x10]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [ebx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0xe8]
and eax, 1
mov ax, word [eax*2 + 0x102a91c0]
mov word [ebx + 8], ax
jmp 0x10046d89
mov al, byte [ebp - 0x238]
mov byte [ebx + 0xa], al
mov eax, dword [ebp - 0x204]
mov edx, dword [ebp - 0xe8]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x1004893b
cmp edx, 0xc
jb 0x10048937
test dl, 1
je 0x10048955
test al, al
js 0x10048955
cmp edx, 0x80
jb 0x1004894a
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x10048951
movzx eax, byte [edx + 0x102a7140]
test eax, eax
jne 0x10048968
push ebx
mov ecx, 0x102c704c
call fcn.10041c40
add esp, 4
jmp 0x10046d89
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe4]
push ebx
push eax
mov edx, dword [edi + edx*4]
mov ecx, dword [ecx + 0x28]
call fcn.1003ddc0
mov edx, eax
add esp, 8
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebx + 0x10]
push ebx
call fcn.10041c40
mov eax, 0xefff
add esp, 4
and word [ebx + 8], ax
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
nop
push dword [ebp - 0x238]
mov dl, al
mov ecx, edi
call fcn.100464f0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x100489d0
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
xor eax, eax
mov ecx, dword [ebp - 0x21c]
xorps xmm0, xmm0
mov dword [ebp - 0x228], eax
movlpd qword [ebp - 0x250], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [ebp - 0x268], xmm0
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
movzx ecx, byte [edi + 0x8f]
mov dword [ebp - 0x258], ebx
mov dword [ebp - 0x244], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x254], eax
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x22c], edx
test esi, esi
je 0x10048a96
mov al, byte [esi]
mov edi, ebx
mov ebx, dword [ebp - 0x238]
nop
push ebx
mov dl, al
mov ecx, edi
call fcn.100464f0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x10048a70
mov ebx, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x244]
mov eax, dword [ebp - 0x24c]
mov edi, dword [ebp - 0x254]
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x264], eax
nop dword [eax]
lea eax, [ebp - 0x40]
mov edx, ecx
push eax
mov ecx, edi
call fcn.10041980
mov esi, eax
add esp, 4
mov eax, 0x4000
mov dword [edi + 0x1c], esi
test word [edi + 8], ax
je 0x10048b48
mov ecx, dword [ebp - 0x220]
or ecx, dword [ebp - 0x234]
je 0x10048b34
mov ecx, edi
call fcn.1003d0b0
test eax, eax
je 0x10048b48
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, esi
call fcn.10020610
push str.out_of_memory
push edi
call fcn.1003e570
add esp, 8
mov edx, 7
jmp 0x1004868f
mov ecx, dword [edi]
mov eax, ecx
cdq
add dword [ebp - 0x264], eax
adc dword [ebp - 0x24c], edx
sub dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x220]
mov edx, 1
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x220], eax
adc dword [ebp - 0x234], 0
cmp esi, 0x7f
jbe 0x10048b81
shr esi, 7
xor ecx, ecx
mov eax, esi
or eax, ecx
je 0x10048b81
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x10048b73
mov eax, dword [ebp - 0x228]
add eax, edx
mov dword [ebp - 0x228], eax
cmp edi, ebx
je 0x10048ba1
mov ecx, dword [ebp - 0x244]
sub edi, 0x28
jmp 0x10048ad0
cmp eax, 0x7e
jle 0x10048c09
cdq
mov ebx, 1
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x10048bce
nop dword [eax + eax]
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x10048bc0
mov eax, dword [ebp - 0x228]
mov edi, 1
add eax, ebx
mov dword [ebp - 0x228], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x10048bff
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x10048bf1
mov eax, dword [ebp - 0x228]
cmp ebx, edi
jge 0x10048c10
inc eax
mov dword [ebp - 0x228], eax
mov edi, dword [ebp - 0x234]
cdq
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x220]
add eax, ebx
mov ecx, eax
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x20c]
adc edi, esi
add ecx, dword [ebp - 0x264]
adc edi, dword [ebp - 0x24c]
mov eax, dword [eax + 0x60]
cdq
cmp edi, edx
jg 0x1004cb25
jl 0x10048c55
cmp ecx, eax
ja 0x1004cb25
mov edi, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x220]
cmp dword [edi + 0x18], eax
jge 0x10048c7e
push 0
mov edx, eax
mov ecx, edi
call fcn.1003cec0
add esp, 4
test eax, eax
jne 0x10048b09
jmp 0x10048c89
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov edx, dword [ebp - 0x228]
mov edi, dword [edi + 0x10]
cmp edx, 0x80
jae 0x10048ca3
mov byte [edi], dl
mov eax, 1
jmp 0x10048caf
push esi
push ebx
mov ecx, edi
call fcn.10023b50
add esp, 8
mov ebx, dword [ebp - 0x258]
movzx esi, al
nop dword [eax + eax]
mov ebx, dword [ebx + 0x1c]
lea ecx, [esi + edi]
cmp ebx, 0x80
jae 0x10048cd7
mov byte [ecx], bl
mov eax, 1
jmp 0x10048ce2
push 0
push ebx
call fcn.10023b50
add esp, 8
mov ecx, dword [ebp - 0x228]
push ebx
mov ebx, dword [ebp - 0x258]
mov edx, ebx
movzx eax, al
lea ecx, [ecx + edi]
add esi, eax
call fcn.10041ae0
add dword [ebp - 0x228], eax
add ebx, 0x28
add esp, 4
mov dword [ebp - 0x258], ebx
cmp ebx, dword [ebp - 0x254]
jbe 0x10048cc0
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x264]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x24c]
je 0x1004a969
mov eax, 0x4010
mov dword [edx], ecx
mov ecx, dword [ebp - 0x214]
mov word [edx + 8], ax
mov edx, dword [ebp - 0x204]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
xorps xmm0, xmm0
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x98]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
movlpd qword [ebp - 0x98], xmm0
call fcn.1003aea0
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x10048dfc
call fcn.10046670
mov edx, dword [ebp - 0x204]
mov ecx, eax
mov eax, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x210]
mov dword [ecx], eax
mov eax, dword [ebp - 0x94]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, 4
mov ebx, dword [ebp - 0x210]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x98]
mov dword [ecx], eax
mov eax, dword [ebp - 0x94]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x22c], edi
test eax, eax
jne 0x10048f4a
cmp dword [esi + 0xa4], eax
jg 0x1004c948
test edi, edi
jne 0x10048e64
xor esi, esi
jmp 0x10048e7f
mov esi, edi
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x10048e70
sub esi, ecx
and esi, 0x3fffffff
mov ebx, dword [ebp - 0x20c]
xor edx, edx
mov ecx, ebx
mov eax, dword [ebx + 0x1b4]
add eax, dword [ebx + 0x1b0]
push eax
call fcn.100862e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
lea eax, [esi + 0x21]
mov ecx, ebx
push edx
push eax
call fcn.10020250
mov edi, eax
add esp, 8
test edi, edi
je 0x1004c842
lea ecx, [esi + 1]
push ecx
push dword [ebp - 0x22c]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.10200b60
mov esi, ebx
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x10048ef1
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x10048ef7
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], edi
mov dword [edi + 8], eax
mov eax, dword [esi + 0x1bc]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x1c4]
mov dword [edi + 0x14], eax
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov esi, dword [esi + 0x1a8]
xor ebx, ebx
test esi, esi
je 0x10048f6b
mov ecx, dword [esi]
mov edx, edi
call fcn.10022fb0
test eax, eax
je 0x10048f76
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x10048f56
push edi
push str.no_such_savepoint:__s
jmp 0x1004cae1
mov edx, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x220]
cmp dword [edx + 0xa4], 0
jle 0x10048f94
cmp edi, 1
je 0x1004c966
cmp dword [esi + 0x18], 0
jne 0x10049006
cmp byte [edx + 0x4b], 0
je 0x10049006
mov dword [ebp - 0x258], 1
cmp edi, 1
jne 0x10049010
mov ecx, dword [ebp - 0x208]
mov edx, edi
call fcn.10040f60
mov dword [ebp - 0x218], eax
test eax, eax
jne 0x1004cdc4
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x208]
mov byte [eax + 0x43], 1
call fcn.10040fc0
cmp eax, 5
je 0x1004c96d
mov edx, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x208]
mov byte [edx + 0x4b], 0
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x218], ecx
jmp 0x1004913c
mov dword [ebp - 0x258], 0
mov ecx, dword [edx + 0x1b0]
mov eax, dword [edx + 0x14]
sub ecx, ebx
dec ecx
mov dword [ebp - 0x24c], ecx
cmp edi, 2
jne 0x100490a0
mov edx, dword [edx + 0x18]
xor ebx, ebx
shr edx, 0x17
and edx, 1
mov dword [ebp - 0x264], edx
test eax, eax
jle 0x100490a8
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [ebp - 0x22c], ecx
nop dword [eax]
mov eax, dword [ebp - 0x20c]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.100353c0
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov eax, dword [ebp - 0x20c]
inc ebx
mov ecx, dword [ebp - 0x22c]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x10049050
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x264]
jmp 0x100490a8
xor edx, edx
mov dword [ebp - 0x264], edx
xor ebx, ebx
test eax, eax
mov eax, dword [ebp - 0x20c]
jle 0x100490f7
xor edi, edi
mov edx, dword [ebp - 0x220]
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.10035650
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov eax, dword [ebp - 0x20c]
inc ebx
mov ecx, dword [ebp - 0x24c]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x100490b6
mov edx, dword [ebp - 0x264]
test edx, edx
je 0x1004912a
mov eax, dword [eax + 4]
test eax, eax
je 0x10049110
or dword [eax + 0x94], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x10049102
mov ecx, dword [ebp - 0x20c]
call fcn.1005f770
mov edx, dword [ebp - 0x20c]
or dword [edx + 0x18], 0x800000
jmp 0x10049130
mov edx, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x220]
mov ebx, dword [ebp - 0x24c]
mov ecx, dword [edx + 0x1a8]
cmp ecx, esi
je 0x1004917e
mov edi, dword [ebp - 0x20c]
nop dword [eax]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1a8], eax
call fcn.1001ff30
mov ecx, dword [edi + 0x1a8]
dec dword [edi + 0x1b0]
cmp ecx, esi
jne 0x10049150
mov edi, dword [ebp - 0x220]
mov edx, dword [ebp - 0x20c]
cmp edi, 1
jne 0x100491e7
mov eax, dword [esi + 0x18]
mov dword [edx + 0x1a8], eax
mov edx, esi
mov esi, dword [ebp - 0x20c]
mov ecx, esi
call fcn.1001ff30
cmp dword [ebp - 0x258], 0
jne 0x1004921f
dec dword [esi + 0x1b0]
push ebx
mov edx, edi
mov ecx, esi
call fcn.100862e0
mov edi, dword [ebp - 0x208]
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp dword [ebp - 0x258], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov esi, dword [ebp - 0x20c]
mov dword [esi + 0x1c4], eax
je 0x100491aa
cmp edi, 2
je 0x100491aa
mov edx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x208]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov edx, dword [edx + 8]
test edx, edx
je 0x10049267
test dword [esi + 0x18], 0x80000
jne 0x1004c9b3
mov eax, dword [ebp - 0x204]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x10049361
mov ecx, esi
call fcn.10034450
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004c9bd
mov eax, dword [ebp - 0x204]
cmp dword [eax + 8], edx
je 0x1004932e
test byte [edi + 0x94], 0x40
je 0x1004932e
mov ebx, dword [ebp - 0x20c]
cmp byte [ebx + 0x43], dl
je 0x100492c4
cmp dword [ebx + 0xa0], 1
jle 0x1004932e
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x100492e0
mov eax, dword [ebx + 0x1b0]
inc dword [ebx + 0x1b4]
add eax, dword [ebx + 0x1b4]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
mov ecx, ebx
call fcn.100862e0
mov ecx, eax
add esp, 4
mov dword [ebp - 0x218], ecx
test ecx, ecx
jne 0x1004930a
mov edx, dword [edi + 0x30]
mov ecx, esi
call fcn.100355f0
mov dword [ebp - 0x218], eax
mov eax, dword [ebx + 0x1b8]
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 0x1bc]
mov dword [edi + 0x4c], eax
mov eax, dword [ebx + 0x1c0]
mov dword [edi + 0x50], eax
mov eax, dword [ebx + 0x1c4]
mov dword [edi + 0x54], eax
lea eax, [ebp - 0x54]
mov edx, 1
push eax
mov ecx, esi
call fcn.1003ad80
mov eax, dword [ebp - 0x204]
add esp, 4
mov esi, dword [ebp - 0x20c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x54]
jmp 0x1004936e
mov esi, dword [ebp - 0x20c]
xor eax, eax
mov dword [ebp - 0x54], eax
xor ecx, ecx
mov edx, dword [ebp - 0x204]
cmp word [edx + 2], 0
je 0x1004938d
cmp eax, dword [edx + 0xc]
jne 0x1004c9f4
cmp ecx, dword [edx + 0x10]
jne 0x1004c9f4
cmp dword [ebp - 0x218], 0
jne 0x1004cac0
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x8c]
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003ad80
mov eax, dword [ebp - 0x204]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x1004941c
call fcn.10046670
mov ebx, dword [ebp - 0x210]
mov ecx, eax
mov eax, dword [ebp - 0x8c]
cdq
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x210]
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x8c]
cdq
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x20c]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.1003ade0
mov dword [ebp - 0x218], eax
add esp, 4
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x100494a2
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
or dword [esi + 0x18], 0x800000
jmp 0x100494bc
cmp eax, 2
jne 0x100494b6
mov eax, dword [ebp - 0x204]
mov ecx, dword [esi + 0xc]
mov al, byte [eax + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0x20c]
mov edx, dword [ebp - 0x204]
cmp dword [edx + 4], 1
jne 0x100494e5
mov eax, dword [esi + 4]
test eax, eax
je 0x100494de
nop
or dword [eax + 0x94], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x100494d0
and dword [edi + 0x94], 0xfffffffe
cmp dword [ebp - 0x218], 0
jne 0x1004cac0
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je case.0x100467db.104
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x10049675
test byte [edi + 0x94], 1
jne 0x1004ca44
mov esi, dword [ebp - 0x204]
xor ebx, ebx
mov edi, dword [ebp - 0x20c]
mov dword [ebp - 0x244], ebx
mov ecx, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x254], esi
mov edi, dword [eax + 4]
mov dword [ebp - 0x24c], edi
cmp dl, 0x69
jne 0x1004959a
mov edx, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov edx, dword [ebp - 0x208]
and edi, 8
mov al, byte [eax + 0x4c]
or edi, 4
cmp al, byte [edx + 0x8f]
jae 0x1004959c
mov byte [edx + 0x8f], al
jmp 0x1004959c
xor edi, edi
mov eax, dword [ebp - 0x204]
test byte [eax + 2], 0x10
je 0x100495e2
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x21c]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003d4b0
mov dword [esi], eax
mov ecx, 0x3e00
mov ax, word [esi + 8]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 8], ax
mov eax, dword [esi]
mov esi, dword [ebp - 0x254]
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x204]
mov al, byte [ecx + 1]
cmp al, 0xf7
jne 0x10049604
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x244], eax
movzx ebx, word [eax + 8]
movzx eax, word [eax + 6]
add ebx, eax
jmp 0x1004960b
cmp al, 0xfd
jne 0x1004960b
mov ebx, dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x208]
push 0
push esi
push ebx
call fcn.10046370
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10048b09
push dword [esi + 0x28]
mov eax, dword [ebp - 0x22c]
mov edx, eax
mov ebx, dword [ebp - 0x244]
mov ecx, dword [ebp - 0x24c]
or dword [esi + 8], 4
push ebx
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.10035710
mov edi, dword [ebp - 0x208]
add esp, 0xc
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x204]
mov dword [esi + 0x2c], ebx
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x204]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x100479fc
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, edi
movsx eax, word [esi + 0x38]
push eax
call fcn.10046370
add esp, 0xc
test eax, eax
je 0x1004cdb2
or dword [eax + 8], 1
push dword [eax + 0x28]
mov byte [eax + 2], 1
mov edx, dword [esi + 0x2c]
mov dword [eax + 0x2c], edx
mov cl, byte [esi + 4]
push edx
mov byte [eax + 4], cl
mov edx, 1
mov ecx, dword [esi + 0xc]
push 4
call fcn.10035710
mov edx, dword [ebp - 0x204]
add esp, 0xc
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [ebp - 0x218], eax
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov ecx, edi
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
mov edx, dword [ebx + 4]
call fcn.10046370
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1004cdb2
or dword [esi + 8], 1
lea eax, [esi + 8]
mov dword [ebp - 0x22c], eax
lea edi, [esi + 0xc]
mov byte [esi + 2], 1
xor edx, edx
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0x20c]
push edi
push eax
mov ecx, dword [eax]
call fcn.10033320
mov edx, eax
add esp, 0x10
test edx, edx
jne 0x10048689
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.10034450
mov edx, eax
test edx, edx
jne 0x10048689
mov ebx, dword [ebx + 0x10]
mov ecx, dword [edi]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x100497d2
mov eax, dword [ebp - 0x204]
lea edx, [ebp - 0xa0]
movzx eax, word [eax + 2]
or eax, 2
push eax
call fcn.1003a7e0
add esp, 4
mov dword [ebp - 0x218], eax
test eax, eax
jne 0x100497ce
push dword [esi + 0x28]
mov edx, dword [ebp - 0xa0]
mov ecx, dword [edi]
push ebx
push 4
call fcn.10035710
add esp, 0xc
mov dword [ebp - 0x218], eax
xor al, al
jmp 0x100497ee
push dword [esi + 0x28]
mov edx, 1
push 0
push 4
call fcn.10035710
mov dword [ebp - 0x218], eax
add esp, 0xc
mov al, 1
mov edx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x208]
mov byte [esi + 4], al
test edx, edx
jne 0x1004868f
mov eax, dword [ebp - 0x204]
xor ecx, ecx
mov edx, dword [ebp - 0x22c]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [edx]
and eax, 0xfffffffb
or ecx, eax
mov dword [edx], ecx
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
push 1
push 0xffffffffffffffff
push dword [edx + 8]
mov edx, dword [edx + 4]
call fcn.10046370
add esp, 0xc
test eax, eax
je 0x10048b15
mov edx, dword [ebp - 0x204]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, esi
mov edx, dword [edx + 0xc]
call fcn.1004e580
add esp, 4
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0x208]
mov dword [edx + 0x14], eax
mov edx, dword [ebp - 0x204]
je 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
mov edx, dword [edx + 4]
call fcn.10046370
add esp, 0xc
test eax, eax
je 0x10048b15
mov ecx, dword [ebp - 0x204]
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x214]
mov byte [eax + 4], 1
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
mov eax, dword [edx + 4]
mov edx, dword [edi + 0x70]
mov edx, dword [edx + eax*4]
call fcn.100402f0
mov eax, dword [ebp - 0x204]
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
xor edi, edi
mov dword [ebp - 0x244], edi
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x10049a75
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x100499db
xor edx, edx
mov ecx, edi
call fcn.10046460
mov ecx, edi
call fcn.1003d4b0
movzx ecx, word [edi + 8]
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x24c], edx
test cl, 4
jne 0x10049a2a
test cl, 8
je 0x1004b62e
mov ecx, eax
call fcn.101ea930
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x10049a1e
test bl, 1
lea eax, [ebx - 1]
cmove eax, ebx
mov ebx, eax
jmp 0x10049a2a
comisd xmm1, xmm0
jbe 0x10049a2a
test bl, 1
jne 0x10049a2a
inc ebx
mov edi, dword [ebp - 0x22c]
lea eax, [ebp - 0x14]
mov ecx, dword [esi + 0x28]
xor edx, edx
push eax
push 0
push dword [ebp - 0x24c]
push edi
call fcn.100363b0
mov dword [ebp - 0x218], eax
add esp, 0x10
mov edx, dword [ebp - 0x218]
mov eax, dword [ebp - 0x24c]
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], eax
test edx, edx
jne 0x10048689
mov edi, dword [ebp - 0x244]
jmp 0x10049b10
mov ecx, dword [esi + 0x28]
mov edx, 2
call fcn.1003c040
mov ecx, dword [ebp - 0x204]
lea edx, [ebp - 0x100]
test eax, eax
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x100], eax
test bl, 1
mov ax, word [ecx + 0x10]
mov word [ebp - 0xf8], ax
sete al
mov byte [ebp - 0xf2], 0
lea eax, [eax*2 - 1]
mov byte [ebp - 0xf6], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x14]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.100363b0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
test edi, edi
je 0x10049b10
cmp byte [ebp - 0xf2], al
je 0x10049c09
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ebp - 0x14]
cmp ebx, 0x1a
jl 0x10049bdb
test eax, eax
js 0x10049b67
jne 0x10049b32
cmp ebx, 0x1b
je 0x10049b67
mov ecx, dword [ebp - 0x204]
test edi, edi
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
lea edx, [ecx + 0x14]
mov dword [ebp - 0x14], 0
cmove edx, ecx
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov dword [ebp - 0x14], 0
push 0
push dword [esi + 0x28]
call fcn.10036a70
mov edx, eax
add esp, 8
mov dword [ebp - 0x218], edx
test edx, edx
je 0x10049c09
mov edi, dword [ebp - 0x208]
cmp edx, 0x65
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x23c]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov edx, dword [edx + 8]
dec edx
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x14], 1
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
test eax, eax
jg 0x10049bf3
jne 0x10049be6
cmp ebx, 0x18
je 0x10049bf3
mov ecx, dword [esi + 0x28]
call fcn.100368f0
mov dword [ebp - 0x14], eax
jmp 0x10049c0c
mov dword [ebp - 0x14], 0
push 0
push dword [esi + 0x28]
call fcn.10036be0
jmp 0x10049b78
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x1004b62e
mov ecx, dword [ebp - 0x204]
test edi, edi
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ebx, dword [ebp - 0x210]
lea edx, [ecx + 0x14]
cmove edx, ecx
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 0x10]
test ecx, ecx
jle 0x10049c87
mov eax, dword [ebx + 0x2c]
lea edi, [ebp - 0x190]
mov dword [ebp - 0x18c], esi
xor esi, esi
mov dword [ebp - 0x190], eax
mov word [ebp - 0x188], cx
jmp 0x10049cd3
mov eax, 0x4000
test word [esi + 8], ax
je 0x10049ca1
mov ecx, esi
call fcn.1003d0b0
test eax, eax
jne 0x1004cdb2
mov ecx, dword [ebx + 0x2c]
call fcn.10041e00
mov edi, eax
mov dword [ebp - 0x22c], edi
test edi, edi
je 0x10048b09
mov edx, dword [esi + 0xc]
mov ecx, dword [ebx + 0x2c]
push edi
push dword [esi + 0x10]
call fcn.10041e60
mov edx, dword [ebp - 0x204]
add esp, 8
mov esi, edi
mov byte [edi + 0xa], 0
cmp byte [edx], 0x1c
mov dword [ebp - 0x22c], 0
jne 0x10049d0f
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x10049d0f
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x10049d05
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10049cf6
jmp 0x10049d0f
mov dword [ebp - 0x22c], 1
mov ecx, dword [ebx + 0x28]
lea eax, [ebp - 0x64]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.100363b0
add esp, 0x10
mov edx, eax
mov dword [ebp - 0x218], edx
test esi, esi
je 0x10049d49
mov edx, esi
mov esi, dword [ebp - 0x20c]
mov ecx, esi
call fcn.1001ff30
mov edx, dword [ebp - 0x218]
jmp 0x10049d4f
mov esi, dword [ebp - 0x20c]
test edx, edx
jne 0x10048689
mov eax, dword [ebp - 0x64]
xor ecx, ecx
mov edi, dword [ebp - 0x208]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x64]
test eax, eax
mov byte [ebx + 3], dl
sete cl
mov dword [ebx + 0x1c], edx
mov edx, dword [ebp - 0x204]
test eax, eax
setne al
mov byte [ebx + 2], al
cmp byte [edx], 0x1e
jne 0x10049da2
test ecx, ecx
jne 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp dword [ebp - 0x22c], 0
jne 0x1004b63a
test ecx, ecx
je 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
jne 0x10049e11
push dword [ebp - 0x238]
mov dl, 0x43
mov ecx, esi
call fcn.100464f0
mov edx, dword [ebp - 0x204]
add esp, 4
test byte [esi + 8], 4
je 0x1004b63a
jmp 0x10049e11
mov edx, dword [ebp - 0x204]
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x70]
mov edx, dword [ebp - 0x21c]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebx + 0x28]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x44], 0
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [ebp - 0x44]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.100363b0
mov dword [ebx + 0x40], esi
add esp, 0x10
mov dword [ebx + 0x44], edi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x44]
mov dword [ebx + 0x20], eax
cmp dword [ebp - 0x44], 0
je 0x10049ea1
mov edx, dword [ebp - 0x204]
cmp dword [edx + 8], 0
jne 0x1004b634
mov ecx, 0x144b0
call fcn.100997d0
mov edi, dword [ebp - 0x208]
mov edx, eax
mov dword [ebp - 0x218], edx
jmp 0x10047a02
mov edx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x208]
jmp 0x10047a02
mov ebx, dword [ebp - 0x204]
mov ecx, edi
mov edx, ebx
call fcn.10046690
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x70]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov edx, ebx
mov dword [eax + 4], ecx
mov eax, ebx
mov ebx, dword [ebp - 0x210]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x214]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
xorps xmm0, xmm0
mov ecx, edi
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x2c], 0
call fcn.10046690
mov ecx, dword [edi + 0x70]
mov ebx, eax
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
mov edi, dword [ecx + edx*4]
test byte [edi + 8], 2
jne 0x10049f8c
mov ecx, dword [edi + 0x28]
lea edx, [ebp - 0x2c]
call fcn.10036350
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
cmp dword [ebp - 0x2c], eax
je 0x10049f5d
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], eax
jmp 0x10049f8c
mov ecx, dword [edi + 0x28]
call fcn.100359b0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp edx, 0x7fffffff
jl 0x10049f80
jg 0x10049f7a
cmp eax, 0xffffffff
jb 0x10049f80
or dword [edi + 8], 2
jmp 0x10049f8c
add eax, 1
mov dword [ebp - 0x20], eax
adc edx, 0
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x204]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x1004a024
mov eax, dword [ebp - 0x208]
mov edx, dword [eax + 0xc4]
test edx, edx
je 0x10049fc8
mov eax, dword [edx + 4]
test eax, eax
je 0x10049fbd
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10049fb4
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x10049fd4
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x21c]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003d5c0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x10049ff1
cmp edx, 0x7fffffff
je 0x1004a082
test byte [edi + 8], 2
jne 0x1004a082
add ecx, 1
adc edx, 0
cmp dword [ebp - 0x1c], edx
jg 0x1004a019
jl 0x1004a00f
mov eax, dword [ebp - 0x20]
cmp eax, ecx
jae 0x1004a01c
mov eax, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], eax
jmp 0x1004a01c
mov eax, dword [ebp - 0x20]
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], eax
test byte [edi + 8], 2
je 0x1004a08c
xor esi, esi
nop dword [eax]
lea eax, [ebp - 0x20]
push eax
push 8
call fcn.10022460
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x20], ecx
push 0
push eax
mov dword [ebp - 0x1c], eax
xor edx, edx
push ecx
mov ecx, dword [edi + 0x28]
call fcn.100363b0
mov edx, eax
add esp, 0x18
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
cmp dword [ebp - 0x2c], eax
jne 0x1004a08c
inc esi
cmp esi, 0x64
jl 0x1004a030
mov edx, 0xd
jmp 0x10048689
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 4], eax
jmp 0x10046d89
mov ebx, dword [ebp - 0x204]
mov dword [ebp - 0x22c], 0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0x208]
mov eax, dword [eax + 0x70]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
cmp dl, 0x74
jne 0x1004a0f2
mov ecx, dword [ebp - 0x21c]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov dword [ebp - 0x130], esi
mov edx, dword [ecx + eax*8 + 4]
jmp 0x1004a0fb
cdq
mov esi, eax
mov dword [ebp - 0x130], esi
mov eax, dword [ebp - 0x204]
mov dword [ebp - 0x12c], edx
cmp byte [eax + 1], 0xfa
jne 0x1004a15f
mov ecx, dword [ebp - 0x20c]
cmp dword [ecx + 0xdc], 0
je 0x1004a15f
mov eax, dword [ebp - 0x20c]
movsx ecx, byte [ebx + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebp - 0x204]
mov dword [ebp - 0x254], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x244], eax
movzx eax, word [ecx + 2]
mov ecx, 0x12
test al, 4
cmovne ecx, dword [ebp - 0x278]
mov dword [ebp - 0x22c], ecx
mov ecx, eax
jmp 0x1004a177
movzx ecx, word [eax + 2]
mov dword [ebp - 0x244], 0
mov dword [ebp - 0x254], 0
movzx eax, cx
test cl, 1
je 0x1004a192
mov eax, dword [ebp - 0x208]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x204]
movzx eax, word [eax + 2]
movzx ecx, ax
test al, 0x20
je 0x1004a1b1
mov eax, dword [ebp - 0x20c]
mov dword [eax + 0x20], esi
mov esi, eax
mov eax, dword [ebp - 0x204]
mov dword [esi + 0x24], edx
movzx ecx, word [eax + 2]
mov eax, dword [ebp - 0x21c]
test byte [eax + edi*8 + 8], 1
je 0x1004a1d4
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x11c], 0
jmp 0x1004a1f4
mov eax, dword [eax + edi*8 + 0x10]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x21c]
mov eax, dword [eax + edi*8 + 0xc]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x21c]
test cl, 0x10
je 0x1004a1fe
mov edx, dword [ebx + 0x20]
jmp 0x1004a200
xor edx, edx
mov esi, 0x4000
test word [eax + edi*8 + 8], si
mov esi, dword [ebp - 0x20c]
je 0x1004a21d
mov eax, dword [eax + edi*8]
mov dword [ebp - 0x118], eax
jmp 0x1004a227
mov dword [ebp - 0x118], 0
push edx
and ecx, 0xa
mov dword [ebp - 0x138], 0
push ecx
mov ecx, dword [ebx + 0x28]
lea edx, [ebp - 0x138]
call fcn.10039d00
mov edx, eax
mov byte [ebx + 3], 0
add esp, 8
mov dword [ebp - 0x218], edx
mov dword [ebx + 0x1c], 0
test edx, edx
jne 0x10048689
mov eax, dword [esi + 0xdc]
test eax, eax
je 0x1004c163
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x1004c163
push dword [ebp - 0x12c]
mov edx, dword [ebp - 0x244]
push dword [ebp - 0x130]
push dword [edx]
push dword [ebp - 0x254]
push ecx
push dword [esi + 0xd8]
call eax
mov edx, dword [ebp - 0x204]
add esp, 0x18
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x22c], eax
mov eax, dword [edi + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x1004a322
mov eax, dword [ebp - 0x20c]
cmp dword [eax + 0xdc], 0
je 0x1004a322
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x1004a326
cmp byte [esi + 4], 0
je 0x1004a326
mov ecx, dword [esi + 0x28]
call fcn.100359b0
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0x204]
mov dword [esi + 0x40], eax
jmp 0x1004a326
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x28]
call fcn.1003a0c0
mov edx, eax
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x218], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x10048689
test byte [ebp - 0x22c], 1
je 0x10046d89
mov eax, dword [ebp - 0x208]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x20c]
mov eax, dword [eax + 0xdc]
test eax, eax
je 0x10046d89
test byte [edi + 0x24], 0x20
jne 0x10046d89
push dword [esi + 0x44]
push dword [esi + 0x40]
mov esi, dword [ebp - 0x20c]
push dword [edi]
push ebx
push 9
push dword [esi + 0xd8]
call eax
mov edx, dword [ebp - 0x204]
add esp, 0x18
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [edi + 0x2c]
mov ecx, esi
call fcn.10043230
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [edi + 0x2c], 0
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x68], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x204]
push dword [eax + 0x10]
call fcn.10050aa0
mov edx, eax
add esp, 8
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
cmp dword [ebp - 0x68], eax
jne 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + ecx*4]
call fcn.10050a00
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov eax, ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x214]
mov dword [eax + 0x1c], edx
mov edx, ebx
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov ecx, dword [edi + 0x70]
mov esi, eax
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
mov ecx, edi
call fcn.100359c0
mov ecx, dword [ebp - 0x20c]
cmp eax, dword [ecx + 0x60]
ja 0x1004cb25
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.1003ddc0
mov edx, eax
add esp, 8
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov edx, dword [ebp - 0x204]
cmp dword [edx + 0xc], eax
jne 0x10046d8f
mov eax, 0x1000
test word [esi + 8], ax
je 0x10046d8f
mov ecx, esi
call fcn.1003d030
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
test eax, eax
jne 0x10048b15
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov ecx, dword [ebp - 0x204]
mov edi, eax
mov ebx, dword [ebp - 0x208]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x70]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x1004a5ab
mov eax, 1
mov word [edi + 8], ax
mov edx, dword [ebp - 0x204]
mov edi, ebx
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp byte [esi + 3], 0
je 0x1004a5c7
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0x60], ecx
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x5c], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0x5c]
mov dword [edi + 4], eax
jmp 0x1004a589
cmp byte [esi], 2
jne 0x1004a60d
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x60]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0x218], eax
mov edx, esi
mov ecx, ebx
call fcn.10043350
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x1004cdbd
mov ecx, dword [ebp - 0x60]
mov dword [edi], ecx
mov eax, dword [ebp - 0x5c]
mov dword [edi + 4], eax
jmp 0x1004a589
mov ecx, esi
call fcn.10041910
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004cdbd
cmp byte [esi + 2], al
jne 0x1004a580
mov ecx, dword [esi + 0x28]
call fcn.100359b0
mov ecx, eax
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x60], ecx
mov dword [edi], ecx
mov eax, dword [ebp - 0x5c]
mov dword [edi + 4], eax
jmp 0x1004a589
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x1004687a
mov ecx, dword [ecx + 0x28]
call fcn.10031b40
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x48], 0
mov dword [esi + 0x20], eax
cmp dword [edx + 0xc], 0
je 0x1004a6c3
mov ecx, edi
call fcn.100359a0
test eax, eax
jne 0x10046d89
lea edx, [ebp - 0x48]
mov ecx, edi
call fcn.10036350
mov dword [ebp - 0x218], eax
mov al, byte [ebp - 0x48]
mov edx, dword [ebp - 0x218]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test edx, edx
jne 0x10048689
mov edx, dword [ebp - 0x204]
cmp dword [edx + 8], 0
jle 0x10046d8f
cmp dword [ebp - 0x48], 0
mov edi, dword [ebp - 0x208]
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x4c]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.10036320
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
cmp dword [ebp - 0x4c], eax
jne 0x100482a7
mov ecx, esi
call fcn.10036900
test edx, edx
jl 0x1004a7b9
jg 0x1004a772
test eax, eax
jb 0x1004a7b9
push edx
push eax
call fcn.10024170
mov edx, dword [ebp - 0x204]
add esp, 8
cwde
cmp eax, dword [edx + 0xc]
jge 0x1004a7bf
mov edx, dword [edx + 8]
mov ecx, dword [ebp - 0x23c]
dec edx
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov dword [ebp - 0x4c], 1
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
cmp dword [ebp - 0x4c], 0
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
inc dword [edi + 0xa8]
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
lea edx, [ebp - 0x38]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x38], 1
cmp byte [esi], 1
jne 0x1004a810
mov ecx, esi
call fcn.100508d0
jmp 0x1004a823
mov ecx, dword [esi + 0x28]
call fcn.10036320
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov al, byte [ebp - 0x38]
mov edx, dword [ebp - 0x204]
mov byte [esi + 2], al
cmp dword [ebp - 0x38], 0
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x20c]
call fcn.10050970
jmp 0x1004a8bc
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
cmp dword [eax + ecx*4], 0
je 0x1004687a
jmp 0x1004a89f
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x204]
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [esi + 0x28]
call eax
add esp, 8
mov edx, eax
mov dword [ebp - 0x218], edx
mov dword [esi + 0x1c], 0
test edx, edx
jne 0x1004a8e8
mov byte [esi + 2], al
mov eax, dword [ebp - 0x204]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa0]
jmp 0x1004c2a8
cmp edx, 0x65
jne 0x1004868f
mov dword [ebp - 0x218], 0
mov byte [esi + 2], 1
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
cmp dword [esi + 0xf8], 0
jne 0x1004cd88
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
cmp ebx, ecx
jb 0x1004c878
mov ecx, dword [esi + 0x130]
test ecx, ecx
je 0x1004c864
mov edi, dword [esi + 0x138]
xor edx, edx
mov eax, ebx
div edi
push dword [esi + 0x134]
sub edi, edx
add edi, ebx
mov dword [ebp - 0x214], edi
call ecx
mov edi, dword [ebp - 0x208]
add esp, 4
test eax, eax
jne 0x1004cb64
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ebx, dword [ebp - 0x21c]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x1004a9ac
mov eax, dword [ebp - 0x208]
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x1004a9ce
mov ecx, esi
call fcn.1003d0b0
mov edx, eax
test edx, edx
jne 0x10048689
mov ecx, dword [ebp - 0x204]
cmp byte [ecx], 0x7d
jne 0x1004a9ef
mov edx, esi
mov ecx, edi
call fcn.1004f8a0
mov edi, dword [ebp - 0x208]
mov edx, eax
mov dword [ebp - 0x218], edx
jmp 0x10047a02
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x1f4], edx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x200], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x1ec], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1e8], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x1004aa2f
mov ecx, dword [edi + 0x20]
jmp 0x1004aa31
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [ebp - 0x200]
and eax, 0xa
push eax
call fcn.10039d00
mov edx, eax
mov dword [edi + 0x1c], 0
mov edi, dword [ebp - 0x208]
add esp, 8
mov dword [ebp - 0x218], edx
jmp 0x10047a02
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x158], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x150], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x158]
mov byte [ebp - 0x14e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0xa4]
push eax
push 0
push 0
push 0
call fcn.100363b0
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
cmp dword [ebp - 0xa4], eax
jne 0x1004aaf1
mov dl, 4
mov ecx, edi
call fcn.1003a0c0
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.10041910
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
cmp byte [esi + 2], al
jne 0x1004abea
mov ecx, dword [ebp - 0x20c]
lea eax, [ebp - 0x78]
xorps xmm0, xmm0
movlpd qword [ebp - 0x78], xmm0
mov edx, dword [esi + 0x28]
push eax
call fcn.10042fb0
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x1004868f
mov eax, dword [ebp - 0x204]
cmp byte [eax], 0x80
jne 0x1004abb6
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x70]
mov ebx, dword [ebp - 0x210]
mov ecx, dword [eax + ecx*4]
mov byte [ecx + 2], dl
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x204]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x204]
mov byte [ecx + 3], 1
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x24], esi
mov esi, dword [ebp - 0x20c]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, eax
mov ecx, edi
call fcn.10046690
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x74]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003d830
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
cmp byte [ebp - 0x221], 0x28
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x204]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x148], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x140], ax
sbb al, al
mov byte [ebp - 0x13e], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x3c], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.10043110
mov dword [ebp - 0x218], eax
add esp, 8
mov eax, dword [ebp - 0x204]
test byte [eax], 1
mov eax, dword [ebp - 0x3c]
jne 0x1004aca5
neg eax
jmp 0x1004aca6
inc eax
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x3c], eax
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
test eax, eax
jg 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov edi, dword [ebp - 0x20c]
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [edi + 0xac]
inc ecx
cmp dword [edi + 0xa0], ecx
jg 0x1004ca4e
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x50]
mov ecx, dword [edi + 0x10]
push eax
mov dword [ebp - 0x50], 0
mov ebx, dword [edx + 0xc]
mov eax, ebx
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003ad30
mov dword [ebp - 0x218], eax
add esp, 4
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [ebp - 0x50]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x218]
mov dword [esi], eax
test edx, edx
jne 0x10048689
mov eax, dword [ebp - 0x50]
mov esi, edi
test eax, eax
je 0x1004c163
mov ecx, dword [ebp - 0x204]
mov edx, ebx
push dword [ecx + 4]
mov ecx, esi
push eax
call fcn.10061f80
mov edx, dword [ebp - 0x204]
add esp, 8
mov edi, dword [ebp - 0x208]
inc bl
mov ecx, dword [ebp - 0x214]
mov byte [ebp - 0x259], bl
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x6c]
xor ecx, ecx
mov dword [ebp - 0x6c], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [esi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003a9f0
mov edx, dword [ebp - 0x204]
add esp, 4
mov dword [ebp - 0x218], eax
cmp dword [edx + 0xc], 0
je 0x1004ae0b
mov eax, dword [ebp - 0x6c]
add dword [edi + 0x2c], eax
mov ecx, dword [edx + 0xc]
test ecx, ecx
jle 0x1004ae0b
mov ebx, dword [ebp - 0x21c]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
mov edx, dword [ebp - 0x204]
cmp dword [ebp - 0x218], 0
jne 0x1004cac0
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x1004ae64
mov edx, dword [ecx + 0x28]
mov ecx, esi
call fcn.1004ead0
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ecx, dword [ecx + 0x28]
call fcn.1003aab0
jmp 0x10049885
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov ecx, dword [ebp - 0x20c]
lea edx, [ebp - 0x7c]
mov edi, eax
mov dword [ebp - 0x7c], 0
mov eax, dword [ebp - 0x204]
mov esi, dword [eax + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [eax], 0x87
setne cl
inc ecx
push ecx
mov ecx, dword [esi + 4]
call fcn.1003a7e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
jne 0x10048689
mov eax, dword [ebp - 0x7c]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
inc byte [esi + 0x4e]
push 0
push 0
push 0
push dword [edx + 0x10]
push esi
call fcn.10071280
add esp, 0x14
dec byte [esi + 0x4e]
jmp 0x10049885
mov edx, dword [ebp - 0x204]
lea eax, [edi + 0x6c]
mov dword [ebp - 0x10c], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x110], esi
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
mov dword [ebp - 0x108], ecx
add ecx, ecx
push str.sqlite_master
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.100220d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1004ca65
mov eax, dword [ebp - 0x20c]
lea ecx, [ebp - 0x110]
push 0
push ecx
push fcn.10075500
push esi
push eax
mov byte [eax + 0x99], 1
mov dword [ebp - 0x104], 0
call fcn.10071280
add esp, 0x14
mov edx, esi
mov esi, dword [ebp - 0x20c]
test eax, eax
mov ecx, esi
cmove eax, dword [ebp - 0x104]
mov dword [ebp - 0x218], eax
call fcn.1001ff30
cmp dword [ebp - 0x218], 0
mov byte [esi + 0x99], 0
jne 0x1004ca75
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, esi
mov edx, dword [edx + 4]
call fcn.1005d810
jmp 0x10049885
mov edx, dword [ebp - 0x204]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1005fc40
mov edx, dword [ebp - 0x204]
add esp, 4
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.1005f550
mov edx, dword [ebp - 0x204]
add esp, 4
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, esi
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.10081ed0
mov edx, dword [ebp - 0x204]
add esp, 4
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 0xc]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
lea eax, [ebp - 0x9c]
push eax
mov eax, dword [ecx + esi*8]
mov ecx, dword [ebp - 0x20c]
inc eax
push eax
movzx eax, word [edx + 2]
push dword [edx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003b990
add esp, 0xc
mov ecx, edi
mov ebx, eax
call fcn.1003d830
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x1004b0e2
test ebx, ebx
je 0x10048b09
mov ecx, dword [ebp - 0x21c]
dec eax
cdq
push fcn.1001fe80
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov edx, ebx
mov ecx, edi
call fcn.1003dab0
add esp, 0xc
movzx edx, byte [ebp - 0x238]
mov ecx, edi
call fcn.1003cea0
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x1004b128
mov ecx, esi
call fcn.1003d8c0
test byte [esi + 8], 0x20
je 0x10048b09
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi]
push dword [ebx + edi*8]
call fcn.100298e0
add esp, 8
jmp 0x10046d89
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
je 0x1004b193
mov ecx, dword [esi]
lea edx, [ebp - 0xb0]
call fcn.10029c40
test eax, eax
je 0x1004b193
mov eax, dword [ebp - 0x204]
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.1003d880
add esp, 8
jmp 0x1004a8ff
mov ecx, esi
call fcn.1003d830
jmp 0x1004c2a8
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x1004b1db
mov ecx, esi
call fcn.1003d8c0
test byte [esi + 8], 0x20
je 0x10048b09
mov ecx, dword [ebp - 0x21c]
test ebx, ebx
je 0x1004b1fc
push dword [ecx + edi*8 + 4]
mov edx, ebx
push dword [ecx + edi*8]
mov ecx, dword [esi]
call fcn.10029ca0
add esp, 8
test eax, eax
jne 0x1004b62e
test ebx, ebx
js 0x10046d89
mov ebx, dword [ebp - 0x21c]
jmp 0x1004b128
mov ebx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x24c], esi
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp - 0x204]
cmp word [eax + 2], 0
je 0x1004b255
mov eax, dword [edi + 0xc4]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x1004b255
cmp dword [eax + 0x1c], ecx
je 0x10046e3e
mov eax, dword [eax + 4]
test eax, eax
jne 0x1004b245
mov ecx, dword [ebp - 0x20c]
mov eax, dword [edi + 0xcc]
cmp eax, dword [ecx + 0x88]
jge 0x1004ca90
test byte [ebx + 8], 0x40
jne 0x1004b382
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 + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x24c]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x1004b2a5
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x20c]
cdq
push edx
push eax
call fcn.100201c0
mov edi, eax
add esp, 8
test edi, edi
je 0x10048b09
mov ecx, ebx
call fcn.1003d400
mov ecx, dword [ebp - 0x24c]
mov eax, 0x40
mov edx, dword [ebp - 0x204]
sub edx, dword [ebp - 0x23c]
mov word [ebx + 8], ax
mov dword [ebx], edi
mov ebx, dword [ebp - 0x208]
mov dword [edi], ebx
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 dword [edi + 0x30], eax
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x70]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x58]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x88]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x1004b36e
mov edx, dword [ebp - 0x20c]
mov esi, 0x80
nop word [eax + eax]
mov word [eax + 8], si
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x1004b360
mov eax, dword [ebx + 0xcc]
mov esi, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x20c]
jmp 0x1004b38a
mov edi, dword [ebx]
mov ebx, dword [ebp - 0x208]
inc eax
lea edx, [edi + 0x50]
mov dword [ebx + 0xcc], eax
mov eax, dword [ebx + 0xc4]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x24], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x44], eax
mov eax, dword [ebx]
mov dword [ebp - 0x21c], edx
mov eax, dword [eax + 0x58]
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 0xd8]
mov dword [edi + 0x28], eax
mov dword [ebx + 0x5c], edx
mov dword [ebx + 0xd8], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0xc4], edi
mov ecx, dword [edi + 0x3c]
mov dword [ebx + 0x18], ecx
movzx eax, word [edi + 0x40]
mov dword [ebx + 0x1c], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [ebx + 0x70], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], 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.102010e0
mov ebx, dword [esi]
add esp, 0xc
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x23c], ebx
lea edx, [ebx - 0x14]
mov dword [edi + 0x58], ebx
mov eax, dword [esi + 4]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov dword [edi + 0x88], eax
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov esi, eax
mov eax, dword [edi + 0xc4]
push 0x1000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x204]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
jmp 0x10046e9d
test dword [esi + 0x18], 0x40000
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 8]
je 0x1004b4c4
cdq
add dword [esi + 0x1c0], eax
adc dword [esi + 0x1c4], edx
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp dword [edx + 4], 0
mov ebx, dword [ebp - 0x210]
cdq
je 0x1004b4eb
add dword [esi + 0x1b8], eax
adc dword [esi + 0x1bc], edx
mov edx, dword [ebp - 0x204]
add edx, 0x14
jmp 0x100467b7
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
mov edx, dword [ebp - 0x204]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
cmp dword [edx + 4], 0
je 0x1004b53d
mov eax, dword [esi + 0x1b8]
or eax, dword [esi + 0x1bc]
jne 0x10046880
mov eax, dword [esi + 0x1c0]
or eax, dword [esi + 0x1c4]
je 0x1004b63a
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x1004b517
mov edx, dword [edi + 0xc4]
test edx, edx
je 0x1004b579
mov eax, dword [edx + 4]
test eax, eax
je 0x1004b55f
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x1004b556
mov eax, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x1004b58e
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.1003d5c0
mov ecx, dword [ebp - 0x204]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.1003d5c0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x10046d89
jl 0x1004b5c3
cmp dword [edi], eax
jae 0x10046d89
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x214]
mov dword [edi], eax
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x10046d8f
jg 0x1004b619
test ecx, ecx
je 0x10046d8f
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov edx, dword [edx + 8]
mov ecx, dword [ebp - 0x23c]
dec edx
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.10046690
mov edx, dword [ebp - 0x21c]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], ecx
test ecx, ecx
jl 0x1004b715
jg 0x1004b6a2
test eax, eax
je 0x1004b715
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x1004b6b3
jg 0x1004b6ca
test eax, eax
jne 0x1004b6ca
xorps xmm0, xmm0
movlpd qword [ebp - 0x230], xmm0
mov ecx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x230]
push ecx
push eax
lea ecx, [ebp - 0x88]
call fcn.10023ed0
add esp, 8
test eax, eax
jne 0x1004b715
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [edi], eax
mov eax, dword [ebp - 0x84]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x10046e3e
test edx, edx
jl 0x100482a7
jg 0x1004b77d
test ecx, ecx
je 0x100482a7
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x204]
jmp 0x1004b63a
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x1004b7c9
jg 0x1004b7bc
test eax, eax
je 0x1004b7c9
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
mov edx, dword [ebp - 0x204]
je 0x1004b63a
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, esi
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.10020250
mov esi, eax
add esp, 8
test esi, esi
je 0x1004cdb2
mov eax, dword [ebp - 0x204]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x23c]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
mov byte [esi + 0x1a], bl
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x204]
mov dword [esi + 0x10], eax
mov word [edx], 0xf095
mov dword [edx + 0x10], esi
jmp 0x1004b85e
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp - 0x21c]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x22c], edi
cmp dword [esi + 8], edi
je 0x1004b8af
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x1004b8af
mov edi, dword [ebp - 0x204]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x1004b893
mov edi, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x20c]
lea ecx, [ebp - 0xe0]
inc dword [edi + 0xc]
push 1
call fcn.1003d810
mov ecx, dword [esi + 4]
lea eax, [ebp - 0xe0]
add esp, 4
mov dword [esi], eax
lea eax, [esi + 0x1c]
mov word [esi + 0x18], 0
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x1004b93c
cmp dword [esi + 0x14], 0
je 0x1004b923
lea eax, [ebp - 0xe0]
push eax
call fcn.100439d0
add esp, 4
push eax
push 0x102ab71c
push dword [ebp - 0x208]
call fcn.1003e570
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x218], eax
lea ecx, [ebp - 0xe0]
call fcn.1003d400
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x10048689
cmp byte [esi + 0x18], 0
je 0x10046d89
mov eax, dword [ebp - 0x204]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x10046d89
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.1003d880
mov edx, dword [ebp - 0x204]
add esp, 8
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.1003d220
mov dword [ebp - 0x218], eax
test eax, eax
jne 0x1004caa8
movzx edx, byte [ebp - 0x238]
mov ecx, esi
call fcn.1003cea0
mov ecx, esi
call fcn.1003d990
test eax, eax
jne 0x1004cb2b
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov ecx, esi
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.10098170
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x218], edx
test edx, edx
je 0x1004ba52
cmp edx, 5
jne 0x1004868f
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x204]
xor esi, esi
mov ecx, dword [ebp - 0x21c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop dword [eax]
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.1003d880
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x1004ba70
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov ecx, edi
mov edx, ebx
call fcn.10046690
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x244], eax
mov eax, dword [ebp - 0x20c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x22c], eax
call fcn.1003afd0
mov ebx, eax
mov ecx, ebx
call fcn.1002ee10
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.1002ee20
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.1002ea90
cmp esi, 5
jne 0x1004bbb3
mov ecx, eax
call fcn.10022c50
test eax, eax
je 0x1004bb33
mov ecx, ebx
call fcn.1002ee50
test eax, eax
jne 0x1004bbb3
mov esi, edi
mov eax, dword [ebp - 0x218]
test eax, eax
je 0x1004bb41
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.1002ed00
mov ebx, dword [ebp - 0x244]
mov ecx, 0xa02
mov word [ebx + 8], cx
mov ecx, eax
call fcn.10072400
mov ecx, eax
mov dword [ebx + 0x10], eax
call fcn.10022c50
movzx edx, byte [ebp - 0x238]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
call fcn.1003cea0
mov edx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x208]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
cmp esi, edi
je 0x1004bb35
cmp edi, 5
je 0x1004bbc9
cmp esi, 5
jne 0x1004bb35
mov eax, dword [ebp - 0x20c]
cmp byte [eax + 0x43], 0
je 0x1004cacb
cmp dword [eax + 0xa0], 1
jg 0x1004cacb
cmp edi, 5
jne 0x1004bc0d
mov edx, eax
mov ecx, ebx
call fcn.1002f060
mov dword [ebp - 0x218], eax
test eax, eax
jne 0x1004bb3f
mov edx, esi
mov ecx, ebx
call fcn.1002ed00
jmp 0x1004bc29
cmp edi, 4
jne 0x1004bc1c
lea edx, [edi - 2]
mov ecx, ebx
call fcn.1002ed00
cmp dword [ebp - 0x218], 0
jne 0x1004bb3f
mov ecx, dword [ebp - 0x22c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.1003bfc0
mov dword [ebp - 0x218], eax
jmp 0x1004bb3b
mov edx, dword [ebp - 0x204]
lea ecx, [edi + 0x6c]
push dword [edx + 4]
mov edx, esi
call fcn.10084b90
jmp 0x10049882
mov edx, dword [ebp - 0x204]
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10034db0
mov edx, eax
mov dword [ebp - 0x218], edx
test edx, edx
je 0x10046a97
cmp edx, 0x65
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0x218], 0
jmp 0x1004b63a
mov edx, dword [ebp - 0x204]
cmp dword [edx + 4], 0
jne 0x1004bcd2
mov ecx, esi
call fcn.10043240
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
or dword [edi + 0x94], 1
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov al, byte [edx + 0xc]
mov byte [ebp - 0x270], al
test al, al
jne 0x1004bd07
test dword [esi + 0x18], 0x400
jne 0x10046880
mov eax, dword [ebp - 0x204]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp - 0x204]
push dword [ebp - 0x270]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1003be90
mov edx, eax
add esp, 4
mov dword [ebp - 0x218], edx
test edx, edx
je 0x10046a97
cmp dl, 6
jne 0x1004868f
mov eax, dword [ebp - 0x204]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.1003e570
mov edx, dword [ebp - 0x218]
add esp, 0xc
jmp 0x1004868f
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x20c]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.100861c0
mov edx, eax
mov dword [ebp - 0x218], edx
test esi, esi
je 0x1004bd9d
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.10043350
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x21c]
movq qword [ebp - 0x198], xmm0
movups xmmword [ebp - 0x1b8], xmm0
mov eax, dword [edx + 8]
movups xmmword [ebp - 0x1a8], xmm0
mov dword [ebp - 0x198], esi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x1b8]
call fcn.1003da40
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x1b8]
push eax
call fcn.100439d0
add esp, 4
test eax, eax
je 0x1004be3b
lea ecx, [edi + 0x6c]
push ecx
push eax
mov eax, dword [ebp - 0x204]
mov ecx, esi
mov edx, dword [eax + 4]
call fcn.10085c70
add esp, 8
mov dword [ebp - 0x218], eax
lea ecx, [ebp - 0x1b8]
call fcn.1003d400
mov edx, dword [ebp - 0x218]
jmp 0x1004988d
mov edx, dword [ebp - 0x204]
mov ecx, esi
inc dword [esi + 0xac]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.10085ff0
add esp, 4
dec dword [esi + 0xac]
jmp 0x10049885
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0xf0], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x1004cb1b
mov edi, dword [esi]
test edi, edi
je 0x1004cb15
lea eax, [ebp - 0xf0]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0x208]
add esp, 8
mov edx, esi
mov dword [ebp - 0x218], eax
mov ecx, ebx
call fcn.10043350
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x1004cdbd
mov eax, dword [ebp - 0xf0]
mov ecx, ebx
push 2
push 0xffffffffffffffff
push edx
mov dword [eax], esi
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
call fcn.10046370
add esp, 0xc
test eax, eax
je 0x1004cafa
mov ecx, dword [ebp - 0xf0]
mov edi, ebx
mov edx, dword [ebp - 0x204]
mov ebx, dword [ebp - 0x210]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov ebx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x21c]
add esi, 0x28
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x70]
mov edi, dword [esi + edx*8]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [ebp - 0x254], esi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x234], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x264], eax
mov eax, dword [eax]
mov dword [ebp - 0x220], eax
mov eax, dword [eax]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp - 0x21c]
mov edx, dword [eax + edx*8]
mov eax, dword [ebp - 0x208]
mov dword [ebp - 0x24c], edx
mov ebx, dword [eax + 0x60]
mov dword [ebp - 0x244], ebx
test edi, edi
jle 0x1004c0ab
cmp edi, 0x10
jb 0x1004c091
cmp dword [0x102c65b0], 2
jl 0x1004c091
movaps xmm2, xmmword [0x102afb70]
mov eax, edi
and eax, reloc.WS2_32.dll_ntohs
jns 0x1004bfce
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____]
mov edx, edi
sub edx, eax
mov esi, 8
mov dword [ebp - 0x22c], edx
lea edx, [ebx + 0x20]
mov ebx, dword [ebp - 0x22c]
nop dword [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, ebx
jl 0x1004bff0
mov ebx, dword [ebp - 0x244]
mov esi, dword [ebp - 0x254]
mov edx, dword [ebp - 0x24c]
cmp ecx, edi
jge 0x1004c0ab
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
nop
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x1004c0a0
mov eax, dword [ebp - 0x204]
mov esi, dword [ebp - 0x264]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [ebp - 0x258]
push edx
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [ebp - 0x220]
add esp, 0x14
mov ecx, dword [ebp - 0x208]
mov dword [ebp - 0x218], eax
call fcn.10043350
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x10048689
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x234]
add esp, 4
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov byte [ecx + 2], 0
test eax, eax
jne 0x1004b63a
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
cmp byte [edx + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x1004c183
mov ecx, edi
call fcn.1003d830
mov edx, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov eax, dword [edx + 0x28]
xorps xmm0, xmm0
mov ebx, 0x3e00
mov esi, dword [eax]
mov ecx, dword [esi]
movups xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0x1d8], edi
movups xmmword [ebp - 0x1c8], xmm0
mov ax, word [edi + 8]
and ax, bx
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0x204]
push dword [eax + 8]
lea eax, [ebp - 0x1d8]
push eax
push dword [edx + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [ebp - 0x208]
add esp, 0xc
mov edx, esi
mov dword [ebp - 0x218], eax
call fcn.10043350
mov eax, dword [ebp - 0x1c4]
test eax, eax
mov ecx, dword [ebp - 0x218]
movzx edx, byte [ebp - 0x238]
cmovne ecx, eax
mov dword [ebp - 0x218], ecx
mov ecx, edi
call fcn.1003cea0
mov ecx, edi
call fcn.1003d990
test eax, eax
jne 0x1004cb25
mov edx, dword [ebp - 0x218]
mov edi, dword [ebp - 0x208]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edi + 0x70]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x10046d95
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
mov ecx, dword [ebp - 0x208]
add esp, 4
mov edx, esi
mov dword [ebp - 0x218], eax
call fcn.10043350
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x10048689
push dword [edi + 0x28]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x1004a8ff
mov esi, dword [ebp - 0x20c]
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x23c]
mov edx, dword [edx + 8]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov dword [ebp - 0x204], edx
jmp 0x1004a90b
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x21c]
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, 1
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.1003cea0
mov edx, eax
test edx, edx
jne 0x10048689
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
mov edi, dword [ebp - 0x208]
add esp, 8
mov edx, esi
mov dword [ebp - 0x218], eax
mov ecx, edi
call fcn.10043350
and dword [edi + 0x94], 0xfffffffe
mov edx, dword [ebp - 0x218]
test edx, edx
jne 0x1004868f
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x1004cb1b
mov edx, dword [ebx]
test edx, edx
je 0x1004cb1b
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0x204]
mov esi, dword [esi + 8]
je 0x1004c828
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x21c]
mov edi, dword [edi + 0x60]
mov al, byte [eax + 0x4a]
mov byte [ebp - 0x221], al
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x1004c3c1
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x1004c3b6
mov eax, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x20c]
mov al, byte [eax + 2]
mov byte [ecx + 0x4a], al
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov esi, dword [ebp - 0x20c]
add esp, 0x10
mov edi, dword [ebp - 0x208]
mov edx, ebx
mov dword [ebp - 0x218], eax
mov ecx, edi
mov al, byte [ebp - 0x221]
mov byte [esi + 0x4a], al
call fcn.10043350
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x204]
test eax, eax
jne 0x1004c436
cmp dword [ecx + 4], eax
je 0x1004c436
mov eax, dword [ebp - 0xb8]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x218]
cmp al, 0x13
jne 0x1004c48f
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x1004c48f
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x1004c470
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [ebp - 0x218], 0
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x218]
cmp ecx, 5
movzx eax, cl
mov ecx, 2
cmove eax, ecx
mov byte [edi + 0x8e], al
jmp 0x1004988d
inc dword [edi + 0x2c]
mov edx, dword [ebp - 0x218]
jmp 0x1004988d
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov esi, eax
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x20c]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.10033080
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
mov dword [esi], eax
mov dword [esi + 4], 0
mov esi, dword [ebp - 0x20c]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, edi
call fcn.10046690
mov ecx, dword [esi + 0x10]
mov edi, eax
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x1004c531
mov ecx, esi
call fcn.10033080
mov edx, eax
mov eax, dword [ebp - 0x204]
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.10033ed0
mov esi, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
cdq
mov dword [edi + 4], edx
mov edx, dword [ebp - 0x204]
mov dword [edi], eax
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov ecx, esi
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
call fcn.10020250
mov esi, eax
add esp, 8
test esi, esi
je 0x1004cdb2
mov eax, dword [ebp - 0x204]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x23c]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
mov byte [esi + 0x1a], bl
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x204]
mov dword [esi + 0x10], eax
add byte [edx], 2
mov byte [edx + 1], 0xf0
mov dword [edx + 0x10], esi
jmp 0x1004c5d8
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 0xc]
mov ebx, dword [ebp - 0x21c]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x22c], edi
cmp dword [esi], edi
je 0x1004c62c
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x1004c62c
mov edi, dword [ebp - 0x204]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
nop dword [eax + eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x1004c610
mov edi, dword [ebp - 0x22c]
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov byte [esi + 0x19], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x1004c6c3
cmp dword [esi + 0x14], 0
je 0x1004c68b
push edi
call fcn.100439d0
add esp, 4
push eax
push 0x102ab71c
push dword [ebp - 0x208]
call fcn.1003e570
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x204]
mov edx, dword [ebp - 0x208]
push dword [eax + 4]
lea edx, [edx + 0xd8]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x20c]
mov ecx, esi
call fcn.100414f0
mov edx, dword [ebp - 0x218]
add esp, 8
test edx, edx
jne 0x10048689
jmp 0x1004c6c9
mov esi, dword [ebp - 0x20c]
test byte [edi + 8], 0x12
je 0x1004c163
movzx edx, byte [ebp - 0x238]
mov ecx, edi
call fcn.1003cea0
mov ecx, edi
call fcn.1003d990
mov edi, dword [ebp - 0x208]
test eax, eax
jne 0x1004cb2b
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov cl, byte [esi + 0x4c]
mov edx, dword [ebp - 0x204]
test cl, 0x81
je 0x1004c7d7
test byte [edi + 0x94], 2
jne 0x1004c7d7
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x1004c744
mov eax, dword [edi + 0xbc]
test eax, eax
je 0x1004c7d7
test cl, cl
jns 0x1004c77d
mov ecx, dword [ebp - 0x208]
mov edx, eax
mov edi, dword [esi + 0xb8]
call fcn.10045ea0
mov esi, eax
mov eax, dword [ebp - 0x20c]
push esi
push dword [eax + 0xbc]
call edi
push esi
call fcn.1001fe80
mov edi, dword [ebp - 0x208]
add esp, 0xc
jmp 0x1004c7d1
cmp dword [esi + 0xa8], 1
push eax
jle 0x1004c7bd
push str.____s
push esi
call fcn.100220d0
mov ebx, dword [ebp - 0x20c]
add esp, 0xc
mov esi, eax
mov ecx, dword [ebx + 0xb8]
push esi
push edi
push dword [ebx + 0xbc]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, ebx
call fcn.1001ff70
jmp 0x1004c7d1
mov eax, dword [esi + 0xb8]
push edi
push dword [esi + 0xbc]
push 1
call eax
add esp, 0x10
mov edx, dword [ebp - 0x204]
mov eax, dword [edx + 4]
cmp eax, dword [0x102bf688]
jl 0x1004c819
mov edx, 1
cmp dword [edi + 0x88], edx
jle 0x1004c811
mov eax, 0x14
mov ecx, dword [edi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x1004c805
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x88]
jl 0x1004c7f4
mov edx, dword [ebp - 0x204]
xor eax, eax
inc eax
mov dword [edx + 4], eax
inc dword [edi + 0xb8]
jmp 0x1004b63a
mov edx, dword [ebp - 0x204]
mov esi, dword [ebp - 0x20c]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov esi, ebx
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
mov ebx, dword [ebp - 0x210]
add edx, 0x14
jmp 0x100467b7
mov edi, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
add edx, 0x14
jmp 0x100467b7
mov edi, dword [ebp - 0x208]
add edx, 0x14
jmp 0x100467b7
mov edx, dword [ebp - 0x204]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x8e], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x1004c91b
movzx eax, word [edx + 2]
test ax, ax
je 0x1004c8ea
push dword [eax*4 + 0x102a6790]
push str._s_constraint_failed
push edi
call fcn.1003e570
mov eax, dword [ebp - 0x204]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1004c8fb
push eax
push dword [edi + 0x6c]
push str._z:__s
push dword [ebp - 0x20c]
call fcn.100220d0
add esp, 0x10
mov dword [edi + 0x6c], eax
jmp 0x1004c8fb
push dword [edx + 0x10]
push 0x102ab71c
push edi
call fcn.1003e570
add esp, 0xc
push dword [edi + 0x6c]
mov eax, dword [ebp - 0x204]
push dword [edi + 0xbc]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.10022360
add esp, 0x14
mov ecx, edi
call fcn.10040fc0
mov dword [ebp - 0x218], eax
cmp eax, 5
jne 0x1004cd2e
mov dword [edi + 0x28], eax
jmp 0x1004cdca
push 0x102af5bc
push 0x13e1c
jmp 0x10048670
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [ebp - 0x208]
push edi
call fcn.1003e570
add esp, 8
mov edx, 5
jmp 0x1004868f
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x1004c94d
mov ecx, dword [ebp - 0x204]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x23c]
mov edi, dword [ebp - 0x208]
imul ecx
mov dword [ebp - 0x218], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x20c]
mov byte [eax + 0x43], 0
mov dword [edi + 0x28], 5
jmp 0x1004cdca
mov edx, 8
jmp 0x1004868f
cmp dl, 5
jne 0x1004868f
mov ecx, dword [ebp - 0x204]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x23c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x218]
mov dword [edi + 0x28], eax
jmp 0x1004cdca
mov edx, dword [edi + 0x6c]
test edx, edx
je 0x1004ca02
mov ecx, esi
call fcn.1001ff30
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.100204b0
mov dword [edi + 0x6c], eax
mov eax, dword [ebp - 0x204]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x54]
je 0x1004ca33
mov ecx, esi
call fcn.1005f730
or dword [edi + 0x94], 1
mov edx, 0x11
jmp 0x1004868f
mov edx, 0x204
jmp 0x1004868f
mov edi, dword [ebp - 0x208]
mov edx, 6
mov byte [edi + 0x8e], 2
jmp 0x1004868f
mov esi, dword [ebp - 0x20c]
mov dword [ebp - 0x218], 7
mov ecx, esi
call fcn.1005f770
mov edx, dword [ebp - 0x218]
cmp edx, 7
je 0x10048b15
jmp 0x1004868f
push str.too_many_levels_of_trigger_recursion
push edi
call fcn.1003e570
add esp, 8
mov edx, 1
jmp 0x1004868f
push esi
call fcn.100439d0
add esp, 4
push eax
push 0x102ab71c
push edi
call fcn.1003e570
add esp, 0xc
mov edx, dword [ebp - 0x218]
jmp 0x1004868f
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov edi, dword [ebp - 0x208]
push edi
call fcn.1003e570
add esp, 0xc
mov edx, 1
jmp 0x1004868f
push dword [ebp - 0xf0]
mov eax, dword [edi + 0x1c]
call eax
mov esi, dword [ebp - 0x20c]
add esp, 4
mov edi, ebx
jmp 0x10048b15
mov edi, dword [ebp - 0x208]
mov edx, 6
jmp 0x1004868f
mov edi, dword [ebp - 0x208]
push str.string_or_blob_too_big
push edi
call fcn.1003e570
add esp, 8
mov edx, 0x12
jmp 0x1004868f
mov eax, dword [esi + 0x130]
test eax, eax
je 0x1004cb6e
cmp dword [ebp - 0x210], ecx
jb 0x1004cb6e
push dword [esi + 0x134]
call eax
add esp, 4
test eax, eax
je 0x1004cb6e
mov edx, 9
jmp 0x1004868f
xor edx, edx
mov ecx, edi
call fcn.10040f60
mov edx, eax
test edx, edx
jne 0x1004868f
mov eax, dword [edi]
cmp dword [eax + 0x1b4], edx
je 0x1004cb9c
cmp dword [edi + 0x30], edx
je 0x1004cb9c
mov edx, 1
mov ecx, edi
call fcn.10040df0
mov eax, dword [edi + 0x20]
mov ebx, dword [ebp - 0x204]
add eax, 2
mov ecx, dword [ebp - 0x21c]
or eax, 1
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [edi + 0x68], esi
xor edi, edi
cmp dword [ebx + 8], edi
jle 0x1004cc0c
nop word [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x1004cbea
mov ecx, esi
call fcn.1003d030
test eax, eax
jne 0x10048b09
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
cmp ax, 2
jne 0x1004cc03
mov ecx, esi
call fcn.1003d100
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x1004cbd0
mov esi, dword [ebp - 0x20c]
cmp byte [esi + 0x45], 0
jne 0x10048b0f
test byte [esi + 0x4c], 4
mov edi, dword [ebp - 0x208]
je 0x1004cc3e
mov eax, dword [esi + 0xb8]
push 0
push edi
push dword [esi + 0xbc]
push 4
call eax
add esp, 0x10
sub ebx, dword [ebp - 0x23c]
mov eax, 0x66666667
imul ebx
mov dword [ebp - 0x218], 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x24], eax
jmp 0x1004cdca
mov edx, dword [ebp - 0x204]
movzx eax, byte [esi + 0x43]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x1004cd4a
test ecx, ecx
je 0x1004cc94
mov edx, 0x204
mov ecx, esi
call fcn.100973d0
mov al, 1
jmp 0x1004ccdb
test ebx, ebx
je 0x1004ccb9
cmp dword [esi + 0xa4], 0
jle 0x1004ccb9
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.1003e570
add esp, 8
mov edx, 5
jmp 0x1004868f
mov edx, 1
mov dword [ebp - 0x270], ebx
mov ecx, edi
call fcn.10040f60
mov dword [ebp - 0x218], eax
test eax, eax
jne 0x1004cdca
mov eax, ebx
mov ecx, edi
mov byte [esi + 0x43], al
call fcn.10040fc0
cmp eax, 5
jne 0x1004cd27
mov ecx, dword [ebp - 0x204]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x23c]
imul ecx
mov dword [ebp - 0x218], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, bl
mov byte [esi + 0x43], al
mov dword [edi + 0x28], 5
jmp 0x1004cdca
mov ecx, esi
call fcn.10096c40
cmp dword [edi + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x218], eax
jmp 0x1004cdca
test ebx, ebx
jne 0x1004cd65
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.1003e570
add esp, 8
lea edx, [ebx + 1]
jmp 0x1004868f
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.1003e570
add esp, 8
mov edx, 1
jmp 0x1004868f
mov edi, dword [ebp - 0x208]
xor eax, eax
cmp byte [esi + 0x45], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [ebp - 0x218], eax
mov dword [edi + 0x28], eax
call fcn.10097510
jmp 0x1004cab1
mov esi, dword [ebp - 0x20c]
jmp 0x10048b15
mov edi, ebx
jmp 0x1004868f
mov edi, dword [ebp - 0x208]
mov eax, dword [ebp - 0x210]
mov ecx, edi
add dword [edi + 0xb0], eax
call fcn.1003fad0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x218]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.101e95a5
mov esp, ebp
pop ebp
ret