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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a0
mov eax, dword [0x4fb744]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov ebx, dword [esi + 0x68]
mov edx, dword [esi + 0x58]
push edi
mov edi, dword [esi]
mov cl, byte [edi + 0x4e]
xor eax, eax
push esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], edi
mov byte [ebp - 0x55], al
mov byte [ebp - 0x4c], cl
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x24], edx
call fcn.0042b910
add esp, 4
cmp dword [edi + 0x148], 0
je 0x498b0c
mov edi, dword [edi + 0x150]
mov eax, dword [esi + 0xb4]
xor edx, edx
div edi
sub edi, edx
mov dword [ebp - 0x64], edi
jmp 0x498b13
mov dword [ebp - 0x64], 0xffffffff
cmp dword [esi + 0x28], 7
je 0x49a16e
mov ecx, dword [ebp - 0x20]
xor edx, edx
mov eax, esi
mov dword [eax + 0x38], edx
mov dword [eax + 0x3c], edx
mov dword [eax + 0x78], edx
mov dword [ecx + 0x19c], edx
mov ecx, dword [ecx + 0x110]
test ecx, ecx
jne 0x49db4d
mov eax, dword [eax + 0x24]
lea edx, [eax + eax*4]
mov eax, ebx
lea ebx, [eax + edx*4]
lea esp, [esp]
mov cl, byte [ebx]
inc dword [ebp - 0x88]
movzx eax, cl
cmp eax, 0xa8
ja case.0x498b66.86
jmp dword [eax*4 + 0x49dd20]
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebx
sub edx, dword [ebp - 0x44]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x49d709
mov ebx, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x44]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*4]
mov ecx, 0x80
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*8]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebx + 8], 0
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x44]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*4 - 0x14]
mov edx, 0x80
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x44]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
mov edx, 4
sub ebx, edi
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
lea eax, [esi + esi*4]
lea ebx, [edi + eax*4]
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je case.0x498b66.86
mov esi, dword [ebp - 0x18]
mov ecx, ebx
sub ecx, dword [ebp - 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [ebx + 4], 0
jne 0x49d7b7
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x49d7b7
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x20]
dec dword [esi + 0xd0]
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0x2c]
add dword [edx + 0x68], eax
push ecx
mov dword [edx + 0x64], eax
call fcn.00480290
add esp, 4
cmp dword [ebx + 8], 4
jne 0x498ce4
mov edx, dword [esi + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
dec eax
mov ebx, dword [esi + 0x68]
mov ecx, dword [esi + 0x58]
mov dword [ebp - 0x44], ebx
lea edx, [eax + eax*4]
lea ebx, [ebx + edx*4]
mov dword [ebp - 0x24], ecx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebx + 0x10]
fld qword [ecx]
add ebx, 0x14
fstp qword [eax]
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov edi, dword [ebx + 0x10]
mov esi, eax
mov eax, edi
call fcn.004124c0
cmp byte [ebp - 0x4c], 1
mov dword [ebx + 4], eax
je 0x498dd6
push 0
push 1
push 0xffffffffffffffff
push edi
push esi
call fcn.004a70f0
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb59
movzx ecx, byte [ebp - 0x4c]
mov eax, esi
call fcn.00434aa0
test eax, eax
jne 0x49a16e
mov edx, 0x800
or word [esi + 8], dx
mov dword [esi + 0x18], eax
cmp byte [ebx + 1], 0xf9
jne 0x498dc6
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x20]
call fcn.004121e0
mov byte [ebx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 0x20]
cmp edx, dword [eax + 0x6c]
jg 0x49cb59
mov byte [ebx], 0x48
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov ecx, eax
mov edx, 0xa02
mov word [ecx + 8], dx
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebx + 4]
mov al, byte [ebp - 0x4c]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle case.0x498b66.86
mov edi, dword [ebp - 0x24]
lea esi, [eax + eax*4]
movzx eax, word [ebx + 2]
mov edi, dword [edi + esi*8]
cdq
cmp edi, eax
jne case.0x498b66.86
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
jne case.0x498b66.86
mov edx, 0xa10
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ecx, cx
lea edi, [eax + 0xc]
mov dword [ebp - 0x1c], ecx
mov word [eax + 8], cx
mov dword [edi], 0
test esi, esi
jle case.0x498b66.86
lea esp, [esp]
add edi, 0x28
lea eax, [edi - 0xc]
call fcn.00418040
mov dx, word [ebp - 0x1c]
dec esi
mov word [edi - 4], dx
mov dword [edi], 0
test esi, esi
jg 0x498e90
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov dx, word [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
mov ecx, 0xff41
and dx, cx
or dx, 1
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov edx, dword [ebx + 4]
push 0
push 0
mov esi, eax
mov eax, dword [ebx + 0x10]
push edx
push eax
push esi
call fcn.004a70f0
mov cl, byte [ebp - 0x4c]
add esp, 0x14
mov byte [esi + 0xa], cl
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x64]
lea edi, [ecx + edx*8 - 0x28]
mov ecx, edi
call fcn.00418140
test eax, eax
jne 0x49cb59
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
mov ecx, 0x2400
test word [esi + 8], cx
je 0x498f4b
mov eax, esi
call fcn.00418040
mov edx, dword [edi]
mov dword [esi], edx
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ecx, dword [edi + 8]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0xc], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov cx, word [esi + 8]
mov edx, 0xebff
and cx, dx
mov eax, 0x840
or cx, ax
mov word [esi + 8], cx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
push edi
mov eax, esi
call fcn.004181f0
mov ecx, 0x1000
add esp, 4
test word [esi + 8], cx
je 0x498fc7
mov eax, esi
call fcn.0042b2d0
test eax, eax
jne 0x49a16e
add edi, 0x28
add esi, 0x28
dec dword [ebp - 0x1c]
jne 0x498fa2
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c], edx
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
push 0x1000
push edi
push esi
call fcn.00418190
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x49901e
mov eax, esi
call fcn.0042b2d0
test eax, eax
jne 0x49a16e
mov eax, dword [ebp - 0x1c]
mov ecx, eax
dec eax
mov dword [ebp - 0x1c], eax
test ecx, ecx
je case.0x498b66.86
add esi, 0x28
add edi, 0x28
jmp 0x498ff5
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
push 0x1000
push eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
push eax
call fcn.00418190
add esp, 0xc
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
mov eax, dword [ecx + eax*8]
push edx
push eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
call fcn.004180a0
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov al, byte [edi + 8]
or al, cl
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x48], ecx
test al, 1
je 0x4990d4
mov eax, esi
call fcn.00418040
add ebx, 0x14
jmp 0x498b50
test cl, 0x12
jne 0x499108
mov ecx, dword [ebp - 0x4c]
push 0
push ecx
mov edi, edx
call fcn.00434ac0
add esp, 8
test eax, eax
jne 0x49a16e
mov edx, dword [ebp - 0x28]
mov ax, word [edx + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [ebp - 0x48], edx
jmp 0x499134
test ecx, 0x4000
je 0x499137
mov esi, dword [ebp - 0x28]
call fcn.00417a30
test eax, eax
jne 0x49a16e
mov eax, esi
mov cx, word [eax + 8]
mov edx, 0xfffd
and cx, dx
movzx eax, cx
mov dword [ebp - 0x48], eax
mov edi, dword [ebp - 0x2c]
movzx eax, word [edi + 8]
mov dword [ebp - 0x38], eax
test al, 0x12
jne 0x49916f
mov ecx, dword [ebp - 0x4c]
push 0
push ecx
call fcn.00434ac0
add esp, 8
test eax, eax
jne 0x49a16e
mov edi, dword [ebp - 0x2c]
mov dx, word [edi + 8]
mov eax, 0xfffd
and dx, ax
movzx ecx, dx
mov dword [ebp - 0x38], ecx
jmp 0x49919c
test eax, 0x4000
je 0x49919c
mov esi, dword [ebp - 0x2c]
call fcn.00417a30
test eax, eax
jne 0x49a16e
mov edx, esi
mov ax, word [edx + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [ebp - 0x38], edx
mov edi, esi
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov ecx, edx
mov edx, dword [ebp - 0x20]
mov esi, eax
mov eax, dword [edx + 0x6c]
cdq
cmp ecx, edx
jg 0x49cb59
jl 0x4991c3
cmp esi, eax
ja 0x49cb59
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, dword [ebp - 0x2c]
lea edx, [esi + 3]
sete cl
push ecx
push edx
push eax
call fcn.004a6f70
add esp, 0xc
test eax, eax
jne 0x49a16e
mov edi, dword [ebp - 0x30]
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [edi + 8], ax
mov eax, dword [ebp - 0x2c]
cmp edi, eax
je 0x499221
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov ecx, dword [edi + 0x10]
push edx
push eax
push ecx
call fcn.004b4d50
mov dx, word [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
push edx
mov edx, dword [eax + 0xc]
add edx, dword [edi + 0x10]
push ecx
push edx
call fcn.004b4d50
mov ax, word [ebp - 0x48]
mov ecx, dword [ebp - 0x28]
mov word [ecx + 8], ax
mov edx, dword [edi + 0x10]
mov byte [esi + edx], 0
mov eax, dword [edi + 0x10]
mov byte [esi + eax + 1], 0
mov ecx, dword [edi + 0x10]
mov al, byte [ebp - 0x4c]
mov byte [esi + ecx + 2], 0
mov edx, 0x200
or word [edi + 8], dx
add esp, 0xc
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], al
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
mov ecx, esi
call fcn.0041a220
movzx edx, ax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov ecx, edi
mov dword [ebp - 0x1c], edx
call fcn.0041a220
movzx ecx, ax
mov eax, dword [ebx + 0xc]
and cl, byte [ebp - 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
mov ax, word [edi + 8]
or ax, word [esi + 8]
mov dword [ebp - 0x30], edx
movzx eax, ax
test cl, 4
je 0x4993c5
mov edx, dword [edi]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x6c], edx
mov edx, dword [edi + 4]
mov dword [ebp - 0x68], edx
movzx edx, byte [ebx]
add edx, 0xffffff99
cmp edx, 3
ja case.default.0x4992e8
jmp dword [edx*4 + 0x49dfc4]
push ecx
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.004130a0
add esp, 0xc
test eax, eax
jne 0x4993cd
jmp 0x49939b
push ecx
push eax
lea edx, [ebp - 0x6c]
call fcn.00413140
add esp, 8
test eax, eax
jne 0x4993cd
jmp 0x49939b
push ecx
push eax
lea ecx, [ebp - 0x6c]
push ecx
call fcn.00413190
add esp, 0xc
test eax, eax
jne 0x4993cd
jmp 0x49939b
mov edx, eax
or edx, ecx
je 0x4994b7
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x49935b
cmp dword [ebp - 0x6c], 0
jne 0x49935b
cmp dword [ebp - 0x68], 0x80000000
je 0x4993cd
push ecx
mov ecx, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x68]
push eax
push ecx
call fcn.004b4be0
jmp 0x499395
mov edx, eax
or edx, ecx
je 0x4994b7
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x499386
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x68]
push eax
push ecx
call fcn.004b4c90
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x68]
mov dword [eax], edx
mov dx, word [eax + 8]
mov dword [eax + 4], ecx
mov ecx, 0x3e40
and dx, cx
or dx, 4
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x498b50
test al, 1
jne 0x4994b7
mov eax, esi
call fcn.00417d80
fstp qword [ebp - 0x40]
mov eax, edi
call fcn.00417d80
movzx eax, byte [ebx]
add eax, 0xffffff99
cmp eax, 3
ja case.default.0x4993e9
jmp dword [eax*4 + 0x49dfd4]
fadd qword [ebp - 0x40]
jmp 0x499480
fsub qword [ebp - 0x40]
jmp 0x499480
fmul qword [ebp - 0x40]
jmp 0x499480
fld qword [ebp - 0x40]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4994b3
fdivp st(1)
jmp 0x499480
mov ecx, esi
fstp st(0)
call fcn.00417d10
mov ecx, edi
mov esi, eax
mov dword [ebp - 0x128], edx
call fcn.00417d10
mov ecx, dword [ebp - 0x128]
mov edi, esi
or edi, ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
je 0x4994b7
mov edi, esi
and edi, ecx
cmp edi, 0xffffffff
jne 0x499465
mov dword [ebp - 0x128], 0
mov ecx, dword [ebp - 0x128]
mov esi, 1
push ecx
push esi
push edx
push eax
call fcn.004b4c90
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
sub esp, 8
fst qword [esp]
call fcn.00412490
add esp, 8
test eax, eax
jne 0x4994b5
mov eax, dword [ebp - 0x30]
mov dx, word [eax + 8]
fstp qword [eax]
mov ecx, 0x3e40
and dx, cx
or dx, 8
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x498b50
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 0x30]
call fcn.00418040
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
test eax, eax
je case.0x498b66.86
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
push 0
push 0
lea eax, [eax + edx*8]
call fcn.004180a0
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea esi, [edx + ecx*8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [ebp - 0x30], edi
test dl, 1
je 0x49952a
mov eax, edi
call fcn.00418040
add ebx, 0x14
jmp 0x498b50
call fcn.00417d10
mov ecx, esi
mov dword [ebp - 0x98], eax
mov edi, edx
call fcn.00417d10
mov esi, eax
mov al, byte [ebx]
cmp al, 0x63
jne 0x499553
and dword [ebp - 0x98], esi
and edi, edx
jmp 0x49963b
cmp al, 0x64
jne 0x499564
or dword [ebp - 0x98], esi
or edi, edx
jmp 0x49963b
mov ecx, esi
or ecx, edx
je 0x49963b
test edx, edx
jg 0x49959c
jl 0x499578
test esi, esi
jae 0x499591
mov cl, 0xcb
sub cl, al
mov al, cl
cmp edx, 0xffffffff
jl 0x49959c
jg 0x49958a
cmp esi, 0xffffffc0
jbe 0x49959c
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x4995ca
jg 0x49959c
cmp esi, 0x40
jb 0x4995ca
test edi, edi
jg 0x4995bd
jl 0x4995ab
cmp dword [ebp - 0x98], 0
jae 0x4995bd
cmp al, 0x65
je 0x4995bd
or eax, 0xffffffff
cdq
mov dword [ebp - 0x98], eax
mov edi, edx
jmp 0x49963b
xor eax, eax
cdq
mov dword [ebp - 0x98], eax
mov edi, edx
jmp 0x49963b
cmp al, 0x65
mov eax, dword [ebp - 0x98]
mov edx, edi
mov ecx, esi
jne 0x4995eb
call fcn.004b5350
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
jmp 0x499629
call fcn.004b53c0
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
test edi, edi
jg 0x499629
jl 0x49960b
cmp dword [ebp - 0x98], 0
jae 0x499629
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004b5350
or dword [ebp - 0xb0], eax
or dword [ebp - 0xac], edx
mov edx, dword [ebp - 0xb0]
mov edi, dword [ebp - 0xac]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x98]
mov dx, word [eax + 8]
mov dword [eax], ecx
mov ecx, 0x3e40
and dx, cx
or dx, 4
mov dword [eax + 4], edi
mov word [eax + 8], dx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
call fcn.00417e70
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 8]
lea esi, [edx + ecx*8]
test al, 4
jne 0x4996d5
test al, 8
jne 0x4996b2
test al, 2
je 0x4996b7
push 1
mov eax, esi
call fcn.0041a070
add esp, 4
jmp 0x4996b7
call fcn.00417e00
movzx eax, word [esi + 8]
test al, 4
jne 0x4996d5
cmp dword [ebx + 8], 0
jne 0x49d709
mov dword [ebp - 0x14], 0x14
jmp 0x49cb70
and eax, 0x3e40
or eax, 4
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x24
lea esi, [ecx + eax*8]
je case.0x498b66.86
call fcn.00417ed0
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x49972e
call fcn.00417a30
mov dword [ebp - 0x14], eax
jmp 0x499735
mov dword [ebp - 0x14], 0
mov dl, byte [ebp - 0x4c]
mov cl, byte [ebx + 8]
push esi
call fcn.00441170
add esp, 4
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
movzx ecx, word [esi + edx*8 + 8]
lea edi, [esi + edx*8]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov eax, edx
or eax, ecx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], edx
test al, 1
je 0x49980e
movzx eax, word [ebx + 2]
test al, al
jns 0x4997ca
mov al, dl
mov cl, al
and cl, byte [ebp - 0x30]
test cl, 1
je 0x4997b7
test edx, 0x100
jne 0x4997b7
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4e08a4]
xor eax, eax
jmp 0x499887
test al, 1
mov eax, 0
sete al
lea eax, [eax + eax - 1]
jmp 0x499998
test al, 0x20
je 0x4997fe
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov cx, word [eax + edx*8 + 8]
lea eax, [eax + edx*8]
mov edx, 0x3e40
and cx, dx
or cx, 1
mov dword [ebp - 0x70], 1
mov word [eax + 8], cx
add ebx, 0x14
jmp 0x498b50
test al, 0x10
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov cl, byte [ebx + 2]
and cl, 0x47
cmp cl, 0x43
jl 0x499916
test al, 2
je 0x499854
mov al, byte [ebp - 0x30]
and al, 0x2e
cmp al, 2
jne 0x49983d
push 0
mov eax, edi
call fcn.0041a070
movzx ecx, word [esi + 8]
add esp, 4
mov dword [ebp - 0x2c], ecx
mov dl, byte [ebp - 0x2c]
and dl, 0x2e
cmp dl, 2
jne 0x499854
push 0
mov eax, esi
call fcn.0041a070
add esp, 4
mov al, byte [esi + 8]
and al, byte [edi + 8]
test al, 4
je 0x499988
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edx, dword [edi]
cmp eax, dword [edi + 4]
jl 0x499904
jg 0x499878
cmp ecx, edx
jbe 0x4998f1
mov eax, 1
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4e08ac]
mov cx, word [ebp - 0x30]
mov dword [ebp - 0x28], edx
mov dx, word [ebp - 0x2c]
mov word [edi + 8], cx
mov word [esi + 8], dx
movzx edx, word [ebx + 2]
test dl, 0x20
je 0x4999c0
mov ecx, dword [ebx + 8]
mov esi, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
mov dword [ebp - 0x70], eax
test dl, 8
je 0x4998cc
xor edx, edx
cmp byte [ebx], 0x35
sete dl
cmp edx, dword [ebp - 0x28]
je case.0x498b66.86
mov ax, word [ecx + 8]
mov edx, 0x3e40
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x28]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x498b50
cmp eax, dword [edi + 4]
jg 0x4997a6
jl 0x499904
cmp ecx, edx
jae 0x4997a6
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4e089c]
or eax, 0xffffffff
jmp 0x499887
cmp cl, 0x42
jne 0x499988
mov al, byte [ebp - 0x30]
test al, 2
jne 0x499953
test al, 0x2c
je 0x499953
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x28]
push 1
push ecx
call fcn.00434ac0
mov ax, word [ebp - 0x30]
mov edx, edi
mov cx, word [edx + 8]
xor cx, ax
mov edx, 0x3e40
and cx, dx
add esp, 8
xor ax, cx
mov word [ebp - 0x30], ax
mov al, byte [ebp - 0x2c]
test al, 2
jne 0x499988
test al, 0x2c
je 0x499988
mov eax, dword [ebp - 0x4c]
push 1
push eax
mov edi, esi
call fcn.00434ac0
mov ax, word [ebp - 0x2c]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x3e40
and cx, dx
add esp, 8
xor ax, cx
mov word [ebp - 0x2c], ax
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp - 0x28]
mov eax, esi
call fcn.00435210
mov edi, dword [ebp - 0x28]
test eax, eax
jns 0x4999ab
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4e089c]
jmp 0x499887
jne 0x49987d
movzx ecx, byte [ebx]
movzx edx, byte [ecx + 0x4e08a4]
jmp 0x499887
cmp dword [ebp - 0x28], 0
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
cmp dword [ebp - 0x70], 0
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
test byte [ebx + 2], 1
jne 0x4999f1
xor edx, edx
mov dword [ebp - 0x38], edx
jmp 0x4999fc
mov eax, dword [ebx - 4]
add eax, 4
mov dword [ebp - 0x38], eax
mov edx, eax
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x2c], eax
test ecx, ecx
jle case.0x498b66.86
add esi, 0x14
mov dword [ebp - 0x48], esi
jmp 0x499a33
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x499a3f
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x28], ecx
jmp 0x499a42
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x48]
mov edi, dword [edx]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x2c]
movzx esi, byte [ecx + edx]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
add eax, ecx
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
mov eax, dword [ebp - 0x34]
add eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + ecx*8]
and esi, 1
call fcn.00435210
mov dword [ebp - 0x70], eax
test eax, eax
jne 0x499a9a
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x48], 4
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, dword [ebp - 0x3c]
jl 0x499a30
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x2c]
test byte [ecx + edx], 2
je 0x499ad3
mov edx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x28]
lea ecx, [edi + edx]
mov edx, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
test byte [edx + ecx*8 + 8], 1
jne 0x499ace
mov ecx, dword [ebp - 0x30]
add ecx, edi
lea ecx, [ecx + ecx*4]
test byte [edx + ecx*8 + 8], 1
je 0x499ad3
neg eax
mov dword [ebp - 0x70], eax
test esi, esi
je case.0x498b66.86
mov edx, dword [ebp - 0x70]
neg edx
mov dword [ebp - 0x70], edx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x70]
test eax, eax
jns 0x499b07
mov ebx, dword [ebx + 4]
mov ecx, dword [ebp - 0x44]
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*4 - 0x14]
add ebx, 0x14
jmp 0x498b50
jne 0x499b1e
mov ebx, dword [ebx + 8]
mov eax, dword [ebp - 0x44]
lea edx, [ebx + ebx*4]
lea ebx, [eax + edx*4 - 0x14]
add ebx, 0x14
jmp 0x498b50
mov ebx, dword [ebx + 0xc]
mov edx, dword [ebp - 0x44]
lea ecx, [ebx + ebx*4]
lea ebx, [edx + ecx*4 - 0x14]
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
push 2
lea eax, [edi + eax*8]
call fcn.00417db0
mov esi, eax
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
push 2
lea eax, [edi + ecx*8]
call fcn.00417db0
add esp, 8
cmp byte [ebx], 0x2c
jne 0x499b6d
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x4e08e8]
jmp 0x499b78
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x4e08f4]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
cmp eax, 2
jne 0x499ba2
mov dx, word [ecx + 8]
mov eax, 0x3e40
and dx, ax
or dx, 1
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x498b50
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
mov dword [ecx], eax
mov eax, 0x3e40
and dx, ax
or dx, 4
mov word [ecx + 8], dx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x24]
lea edx, [eax + eax*4]
push ecx
lea eax, [esi + edx*8]
call fcn.00417db0
xor eax, dword [ebx + 0x10]
cdq
push edx
push eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
call fcn.004180a0
add esp, 0xc
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
lea eax, [edx + ecx*8]
mov ecx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8]
jne 0x4990c5
push 0
call fcn.00417db0
neg eax
sbb eax, eax
inc eax
cdq
push edx
push eax
mov eax, esi
call fcn.004180a0
add esp, 0xc
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.00418040
test byte [edi + 8], 1
jne case.0x498b66.86
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.00417d10
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc8]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x499ce8
mov ecx, ebx
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x1c]
mov edi, eax
mov esi, eax
mov eax, dword [edx + 0x18]
and edi, 7
mov edx, 1
mov ecx, edi
shl edx, cl
shr esi, 3
test byte [esi + eax], dl
jne 0x49d709
mov eax, dword [ebp - 0x1c]
add esi, dword [eax + 0x18]
mov dl, 1
shl dl, cl
or byte [esi], dl
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [eax + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, dword [ebx + 4]
je 0x49d709
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
push edx
lea eax, [ecx + eax*8]
call fcn.00417db0
add esp, 4
test eax, eax
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
xor edx, edx
cmp dword [ebx + 0xc], edx
lea eax, [eax + eax*4]
sete dl
lea eax, [ecx + eax*8]
push edx
call fcn.00417db0
add esp, 4
test eax, eax
je 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
test byte [eax + edx*8 + 8], 1
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x49d709
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x60]
mov eax, dword [edx + eax*4]
cmp byte [eax + 2], 0
je case.0x498b66.86
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.00418040
jmp 0x49d709
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x60]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x80], ecx
lea ecx, [ebp - 0x80]
lea edx, [ebp - 0xec]
mov dword [ebp - 0xec], eax
call fcn.004651d0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x48]
lea esi, [ecx + edx*8]
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], esi
cmp edx, dword [eax + 0x20]
je 0x499ee8
cmp byte [edi + 2], 0
je 0x499e48
cmp byte [edi], 3
jne 0x4990c5
mov eax, dword [edi + 0x20]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov ecx, dword [eax + 0xc]
mov dword [edi + 0x54], ecx
mov dword [edi + 0x50], ecx
mov eax, dword [eax + 0x10]
mov dword [edi + 0x4c], eax
jmp 0x499e7b
mov esi, dword [edi + 0x28]
mov ecx, esi
mov dword [ebp - 0x3c], esi
call fcn.00417670
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x50], ecx
mov ecx, dword [ebp - 0x3c]
lea esi, [edi + 0x54]
call fcn.004176b0
mov dword [edi + 0x4c], eax
mov edx, dword [edi + 0x50]
mov eax, dword [ebp - 0x20]
cmp edx, dword [eax + 0x6c]
ja 0x49cb59
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x20]
mov dword [edi + 0x1c], edx
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x499e9c
mov ecx, dword [ebp - 0x28]
movzx eax, al
mov dword [ecx], eax
mov eax, 1
jmp 0x499eaa
mov esi, dword [ebp - 0x28]
call fcn.00412ff0
mov esi, dword [ebp - 0x38]
movzx eax, al
movzx edx, al
xor eax, eax
mov dword [edi + 0x30], edx
mov word [edi + 0x3a], ax
mov ecx, dword [edi + 0x54]
mov eax, dword [ebp - 0x28]
cmp ecx, dword [eax]
jae 0x499f73
mov dword [edi + 0x4c], 0
mov dword [edi + 0x54], 0
mov eax, dword [eax]
cmp eax, 0x18003
ja 0x49a0c9
cmp eax, dword [edi + 0x50]
ja 0x49a0c9
movzx edx, word [edi + 0x3a]
mov eax, dword [ebp - 0x80]
cmp edx, eax
jg 0x49a0ef
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [ecx]
jae 0x49a0e6
cmp dword [edi + 0x4c], 0
jne 0x499f73
xor eax, eax
lea edx, [ebp - 0x1f0]
push edx
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], eax
mov edx, dword [edi + 0x28]
push eax
mov eax, ecx
mov eax, dword [eax]
call fcn.00456ca0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov edx, dword [ebp - 0x1e0]
jmp 0x499f76
mov edx, dword [edi + 0x4c]
movzx eax, word [edi + 0x3a]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx + eax*4]
mov ecx, dword [edi + 0x30]
add ecx, edx
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
lea eax, [edi + eax*4 + 0x58]
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x48], eax
movzx eax, byte [ecx]
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x60], eax
mov dword [edx], eax
cmp eax, 0x80
jae 0x499fe1
movzx eax, al
movzx eax, byte [eax + 0x4e07d8]
cdq
inc ecx
add esi, eax
adc dword [ebp - 0x8c], edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x90], esi
jmp 0x49a015
mov ecx, dword [ebp - 0x30]
lea esi, [ebp - 0x60]
call fcn.00412ff0
mov edx, dword [ebp - 0x48]
movzx ecx, al
mov eax, dword [ebp - 0x60]
add dword [ebp - 0x30], ecx
mov dword [edx], eax
call fcn.00418c10
add dword [ebp - 0x90], eax
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x30]
adc dword [ebp - 0x8c], 0
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x28]
add dword [ebp - 0x48], 4
inc eax
mov dword [edx + eax*4], esi
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
cmp eax, dword [ebp - 0x80]
jg 0x49a038
cmp ecx, edx
jb 0x499fb0
jmp 0x49a03c
cmp ecx, edx
jb 0x49a04f
cmp ecx, edx
ja 0x49a060
cmp esi, dword [edi + 0x50]
jne 0x49a060
xor edx, edx
cmp dword [ebp - 0x8c], edx
jne 0x49a060
xor edx, edx
cmp dword [ebp - 0x8c], edx
jb 0x49a06d
ja 0x49a060
cmp esi, dword [edi + 0x50]
jbe 0x49a06d
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
jne 0x49a0b8
mov ecx, dword [ebp - 0x1c]
xor eax, eax
sub ecx, dword [ebp - 0x2c]
mov word [edi + 0x3a], ax
mov dword [edi + 0x30], ecx
cmp dword [edi + 0x4c], 0
jne 0x49a088
lea eax, [ebp - 0x1f0]
call fcn.00417c60
mov esi, dword [ebp - 0x38]
movzx eax, word [edi + 0x3a]
cmp eax, dword [ebp - 0x80]
jg 0x49a0f6
cmp byte [ebx + 1], 0xf5
jne 0x4990c5
mov ecx, dword [ebx + 0x10]
push 0x800
push ecx
push esi
call fcn.00418190
add esp, 0xc
add ebx, 0x14
jmp 0x498b50
cmp dword [edi + 0x4c], 0
jne 0x49a0c9
lea eax, [ebp - 0x1f0]
call fcn.00417c60
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x49d930
lea edx, [eax + eax*4]
lea ebx, [ecx + edx*4 - 0x14]
add ebx, 0x14
jmp 0x498b50
mov dword [ebp - 0x60], 0
jmp 0x49a08b
mov edx, dword [edi + eax*4 + 0x58]
mov dword [ebp - 0x60], edx
mov eax, 0x2400
test word [esi + 8], ax
je 0x49a108
mov eax, esi
call fcn.00418040
mov ecx, dword [edi + 0x54]
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x80]
cmp ecx, dword [eax + edx*4 + 4]
jb 0x49a1cf
mov ecx, dword [edi + 0x4c]
add ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x2c], ecx
cmp eax, 0xc
jae 0x49a13f
push esi
mov edx, eax
call fcn.00418d20
add esp, 4
add ebx, 0x14
jmp 0x498b50
mov dl, byte [ebp - 0x4c]
lea edi, [eax - 0xc]
shr edi, 1
lea eax, [edi + 2]
mov dword [esi + 0xc], edi
mov byte [esi + 0xa], dl
cmp dword [esi + 0x18], eax
jge 0x49a18f
push 0
push eax
mov ecx, 1
push esi
mov word [esi + 8], cx
call fcn.004a6f70
add esp, 0xc
test eax, eax
je 0x49a195
mov eax, dword [ebp - 0x20]
call fcn.00412220
mov esi, dword [ebp - 0x18]
push 0x4de68c
call fcn.004417c0
mov dword [ebp - 0x14], 7
jmp 0x49cb6d
mov edx, dword [esi + 0x14]
mov dword [esi + 0x10], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x10]
push edi
push eax
push ecx
call fcn.004b4d50
mov edx, dword [esi + 0x10]
mov byte [edi + edx], 0
mov eax, dword [esi + 0x10]
mov byte [eax + edi + 1], 0
mov eax, dword [ebp - 0x60]
and eax, 1
mov cx, word [eax*2 + 0x4e0900]
add esp, 0xc
mov word [esi + 8], cx
add ebx, 0x14
jmp 0x498b50
mov dl, byte [ebp - 0x4c]
mov eax, dword [ebp - 0x60]
mov byte [esi + 0xa], dl
movzx ecx, word [ebx + 2]
test cl, 0xc0
je 0x49a1ee
cmp eax, 0xc
jb 0x49a1ea
test al, 1
je 0x49a1f7
test cl, cl
js 0x49a1f7
call fcn.00418c10
test eax, eax
jne 0x49a210
mov edx, dword [ebp - 0x60]
push esi
mov ecx, 0x61dfd4
call fcn.00418d20
add esp, 4
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + edx*4]
mov edx, dword [edi + 0x28]
push esi
push ecx
call fcn.00456ca0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov edx, dword [ebp - 0x60]
mov ecx, dword [esi + 0x10]
push esi
call fcn.00418d20
add esp, 4
mov edx, 0xefff
and word [esi + 8], dx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edx, dword [ebp - 0x4c]
mov al, byte [edi]
push edx
mov ecx, esi
call fcn.004363d0
add esp, 4
cmp byte [edi], 0x45
jne 0x49a2ca
movzx ecx, word [esi + 8]
test cl, 4
je 0x49a2ca
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], eax
cmp eax, 0x7fff
jg 0x49a2b5
jl 0x49a29d
cmp edx, 0xffffffff
ja 0x49a2b5
cmp eax, 0xffff8000
jl 0x49a2b5
jg 0x49a2aa
test edx, edx
jb 0x49a2b5
and ecx, 0xfffb
or ecx, 0x20
jmp 0x49a2c6
fild qword [ebp - 0x148]
and ecx, 0xfffb
or ecx, 8
fstp qword [esi]
mov word [esi + 8], cx
inc edi
cmp byte [edi], 0
je case.0x498b66.86
add esi, 0x28
jmp 0x49a260
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8 - 0x28]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0x93]
xor edx, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], ecx
cmp edi, edx
je 0x49a361
add esi, 8
nop
mov edx, dword [ebp - 0x4c]
mov al, byte [edi]
push edx
lea ecx, [esi - 8]
call fcn.004363d0
add esp, 4
cmp byte [edi], 0x45
jne 0x49a358
movzx eax, word [esi]
test al, 4
je 0x49a358
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x49a330
mov edi, dword [ebp - 0x48]
add edi, 0x1c
movzx eax, word [edi - 0x14]
test al, 1
je 0x49a385
and eax, 0x4000
neg eax
sbb eax, eax
and eax, 0xa
inc dword [ebp - 0x28]
mov dword [edi], eax
jmp 0x49a54b
test al, 0x24
je 0x49a4c5
mov esi, dword [edi - 0x18]
mov ecx, dword [edi - 0x1c]
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x24c], esi
test esi, esi
jg 0x49a3bd
jl 0x49a3af
test ecx, ecx
jae 0x49a3bd
mov edx, ecx
not edx
mov dword [ebp - 0xf8], edx
not esi
jmp 0x49a3c3
mov dword [ebp - 0xf8], ecx
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0xf8]
test esi, esi
ja 0x49a40c
jb 0x49a3d7
cmp edx, 0x7f
ja 0x49a40c
mov eax, ecx
and eax, 1
xor esi, esi
cmp eax, ecx
jne 0x49a3fa
cmp esi, dword [ebp - 0x24c]
jne 0x49a3fa
cmp dword [ebp - 0x3c], 4
jl 0x49a3fa
add edx, 8
mov dword [edi], edx
jmp 0x49a54b
add dword [ebp - 0x54], 1
mov dword [edi], 1
adc dword [ebp - 0x50], esi
jmp 0x49a54b
xor ecx, ecx
cmp esi, ecx
ja 0x49a46e
jb 0x49a41c
cmp edx, 0x7fff
ja 0x49a42e
add dword [ebp - 0x54], 2
mov dword [edi], 2
adc dword [ebp - 0x50], ecx
jmp 0x49a54b
cmp esi, ecx
ja 0x49a46e
jb 0x49a43c
cmp edx, 0x7fffff
ja 0x49a44e
add dword [ebp - 0x54], 3
mov dword [edi], 3
adc dword [ebp - 0x50], ecx
jmp 0x49a54b
cmp esi, ecx
ja 0x49a46e
jb 0x49a45c
cmp edx, 0x7fffffff
ja 0x49a46e
add dword [ebp - 0x54], 4
mov dword [edi], 4
adc dword [ebp - 0x50], ecx
jmp 0x49a54b
cmp esi, 0x7fff
ja 0x49a48f
jb 0x49a47d
cmp edx, 0xffffffff
ja 0x49a48f
add dword [ebp - 0x54], 6
mov dword [edi], 5
adc dword [ebp - 0x50], ecx
jmp 0x49a54b
add dword [ebp - 0x54], 8
adc dword [ebp - 0x50], ecx
test al, 0x20
je 0x49a4ba
fild qword [ebp - 0x168]
and eax, 0xffdf
or eax, 8
mov word [edi - 0x14], ax
fstp qword [edi - 0x1c]
mov dword [edi], 7
jmp 0x49a54b
mov dword [edi], 6
jmp 0x49a54b
test al, 8
je 0x49a4dc
inc dword [ebp - 0x28]
add dword [ebp - 0x54], 8
mov dword [edi], 7
adc dword [ebp - 0x50], 0
jmp 0x49a54b
mov ecx, dword [edi - 0x10]
mov edx, eax
shr edx, 1
and edx, 1
mov dword [ebp - 0x1c], ecx
lea ecx, [edx + ecx*2 + 0xc]
mov dword [ebp - 0x2c], ecx
test eax, 0x4000
je 0x49a52e
mov eax, dword [edi - 0x1c]
lea esi, [edi - 0x1c]
mov edx, ecx
lea ecx, [edx + eax*2]
mov edx, dword [ebp - 0x54]
or edx, dword [ebp - 0x50]
mov dword [ebp - 0x2c], ecx
je 0x49a521
call fcn.00417a30
test eax, eax
jne 0x49a16e
mov eax, dword [esi]
add dword [ebp - 0x1c], eax
jmp 0x49a52e
cdq
add dword [ebp - 0xa4], eax
adc dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0x1c]
add dword [ebp - 0x54], ecx
mov esi, dword [ebp - 0x2c]
push 0
adc dword [ebp - 0x50], 0
push esi
call fcn.00413060
add esp, 8
add dword [ebp - 0x28], eax
mov dword [edi], esi
lea edx, [edi - 0x1c]
cmp edx, dword [ebp - 0x34]
je 0x49a55b
sub edi, 0x28
jmp 0x49a367
cmp dword [ebp - 0x28], 0x7e
jle 0x49a585
mov eax, dword [ebp - 0x28]
cdq
push edx
push eax
call fcn.00413060
mov esi, eax
mov eax, dword [ebp - 0x28]
add eax, esi
mov dword [ebp - 0x28], eax
cdq
push edx
push eax
call fcn.00413060
add esp, 0x10
cmp esi, eax
jge 0x49a588
inc dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x54]
mov edi, dword [ebp - 0x50]
cdq
add esi, eax
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x18]
adc edi, edx
mov ecx, esi
add ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x118], edx
adc edi, dword [ebp - 0xa0]
cdq
cmp edi, edx
jg 0x49a5ce
jl 0x49a5c1
cmp ecx, eax
ja 0x49a5ce
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x10], ecx
mov edi, eax
jmp 0x49a603
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x6c]
cdq
cmp edi, edx
jg 0x49cb59
jl 0x49a5e7
cmp ecx, eax
ja 0x49cb59
mov edi, dword [ebp - 0x30]
cmp dword [edi + 0x18], esi
jge 0x49a646
push 0
push esi
push edi
call fcn.004a6f70
add esp, 0xc
test eax, eax
jne 0x49a16e
mov eax, dword [ebp - 0xa4]
mov edx, eax
or edx, dword [ebp - 0xa0]
mov ecx, 0x10
mov dword [edi + 0xc], esi
mov word [edi + 8], cx
je 0x49a62a
mov dword [edi], eax
mov eax, 0x4010
mov word [edi + 8], ax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov esi, dword [ecx + 0x10]
lea edi, [esi + eax]
cmp eax, 0x80
jae 0x49a653
mov byte [esi], al
mov eax, 1
jmp 0x49a669
mov eax, dword [edi + 0x14]
and word [edi + 8], 0x2d
mov dword [edi + 0x10], eax
jmp 0x49a603
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x11c]
push edx
push eax
call fcn.00412e10
add esp, 8
mov edx, dword [ebp - 0x34]
movzx ecx, al
add esi, ecx
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x2c], eax
cmp eax, 0x80
jae 0x49a68d
mov byte [esi], al
mov eax, 1
jmp 0x49a69b
mov ecx, dword [ebp - 0x2c]
push 0
push ecx
call fcn.00412e10
add esp, 8
mov ecx, dword [ebp - 0x2c]
movzx edx, al
mov eax, dword [ebp - 0x38]
add esi, edx
call fcn.00418c30
add edi, eax
mov eax, dword [ebp - 0x38]
add eax, 0x28
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x48]
jbe 0x49a674
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x18]
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx + 0x28]
lea ecx, [ebp - 0x100]
xor edi, edi
push ecx
mov dword [ebp - 0x100], edi
mov dword [ebp - 0xfc], edi
call fcn.00455d00
add esp, 4
mov dword [ebp - 0x14], eax
cmp eax, edi
jne 0x49cb70
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov edx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xfc]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], eax
test ecx, ecx
jne 0x49a7eb
cmp dword [edi + 0xb8], ecx
jg 0x49d71e
call fcn.004124c0
mov edx, dword [edi + 0x1d0]
add edx, dword [edi + 0x1cc]
mov esi, eax
push edx
push 0
push edi
call fcn.0041f080
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
lea eax, [esi + 0x21]
push 0
push eax
mov ecx, edi
call fcn.00427040
mov edi, eax
add esp, 8
test edi, edi
je case.0x498b66.86
mov ecx, dword [ebp - 0x34]
inc esi
push esi
lea eax, [edi + 0x20]
push ecx
push eax
mov dword [edi], eax
call fcn.004b4d50
mov eax, dword [ebp - 0x20]
add esp, 0xc
cmp byte [eax + 0x4f], 0
je 0x49a7aa
mov byte [eax + 0x4f], 0
mov byte [eax + 0x57], 1
jmp 0x49a7b0
inc dword [eax + 0x1cc]
mov edx, dword [eax + 0x1c4]
mov dword [edi + 0x18], edx
mov ecx, dword [eax + 0x1d8]
mov dword [eax + 0x1c4], edi
mov dword [edi + 8], ecx
mov edx, dword [eax + 0x1dc]
mov dword [edi + 0xc], edx
mov ecx, dword [eax + 0x1e0]
mov dword [edi + 0x10], ecx
mov edx, dword [eax + 0x1e4]
mov dword [edi + 0x14], edx
add ebx, 0x14
jmp 0x498b50
mov esi, dword [edi + 0x1c4]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x49a81b
nop
mov eax, dword [ebp - 0x34]
mov edx, dword [esi]
call fcn.004125b0
test eax, eax
je 0x49a83b
mov esi, dword [esi + 0x18]
inc dword [ebp - 0x28]
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x49a800
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x18]
push eax
push str.no_such_savepoint:__s
call fcn.004417c0
add esp, 8
mov dword [ebp - 0x14], 1
jmp 0x49cb70
xor ecx, ecx
cmp dword [edi + 0xb8], ecx
jle 0x49a84f
cmp dword [ebp - 0x2c], 1
je 0x49d737
cmp dword [esi + 0x18], ecx
jne 0x49a8a5
cmp byte [edi + 0x57], cl
je 0x49a8a5
mov eax, 1
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x2c], eax
jne 0x49a8a8
mov esi, dword [ebp - 0x18]
push eax
mov eax, esi
call fcn.00441f60
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49dcb3
mov eax, esi
mov byte [edi + 0x4f], 1
call fcn.00482770
cmp eax, 5
je 0x49d942
mov byte [edi + 0x57], 0
mov eax, dword [esi + 0x28]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
jmp 0x49a981
mov dword [ebp - 0x34], ecx
mov edx, dword [edi + 0x1cc]
sub edx, dword [ebp - 0x28]
dec edx
cmp dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], edx
jne 0x49a91b
mov eax, dword [edi + 0x18]
and eax, 1
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], ecx
cmp dword [edi + 0x14], ecx
jle 0x49a920
xor eax, eax
cmp dword [ebp - 0x38], eax
sete al
xor esi, esi
mov dword [ebp - 0x3c], eax
lea esp, [esp]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [edi + 0x10]
mov eax, dword [esi + edx + 4]
push ecx
push 0x204
push eax
call fcn.0045c5a0
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebp - 0x30]
inc eax
add esi, 0x10
mov dword [ebp - 0x30], eax
cmp eax, dword [edi + 0x14]
jl 0x49a8e0
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
jmp 0x49a920
xor eax, eax
mov dword [ebp - 0x38], eax
xor ecx, ecx
mov dword [ebp - 0x30], ecx
cmp dword [edi + 0x14], ecx
jle 0x49a969
mov dword [ebp - 0x1c], ecx
lea ecx, [ecx]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edi + 0x10]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [ecx + eax + 4]
push edx
call fcn.00471550
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebp - 0x30]
add dword [ebp - 0x1c], 0x10
inc eax
mov dword [ebp - 0x30], eax
cmp eax, dword [edi + 0x14]
jl 0x49a930
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x49a981
xor ecx, ecx
mov eax, edi
call fcn.00419330
mov eax, edi
call fcn.0045dd70
or dword [edi + 0x18], 1
cmp dword [edi + 0x1c4], esi
je 0x49a9e8
lea esp, [esp]
cmp dword [edi + 0x1e8], 0
mov eax, dword [edi + 0x1c4]
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x1c4], ecx
je 0x49a9b1
mov ecx, edi
call fcn.00412160
jmp 0x49a9da
cmp eax, dword [edi + 0x138]
jb 0x49a9d1
cmp eax, dword [edi + 0x13c]
jae 0x49a9d1
mov edx, dword [edi + 0x134]
mov dword [eax], edx
mov dword [edi + 0x134], eax
jmp 0x49a9da
push eax
call fcn.004120f0
add esp, 4
dec dword [edi + 0x1cc]
cmp dword [edi + 0x1c4], esi
jne 0x49a990
cmp dword [ebp - 0x2c], 1
jne 0x49aa12
mov eax, dword [esi + 0x18]
mov dword [edi + 0x1c4], eax
mov eax, esi
mov ecx, edi
call fcn.004121e0
cmp dword [ebp - 0x34], 0
jne 0x499744
dec dword [edi + 0x1cc]
jmp 0x49aa46
cmp dword [ebp - 0x34], 0
mov ecx, dword [esi + 8]
mov dword [edi + 0x1d8], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 0x1dc], edx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1e0], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x1e4], ecx
je 0x49aa46
cmp dword [ebp - 0x2c], 2
jne 0x499744
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
push edx
push eax
push edi
call fcn.0041f080
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebx + 8]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xb8], 0
test edx, edx
je 0x49aa90
mov eax, dword [edi + 0x20]
and eax, 0x100000
xor ecx, ecx
or eax, ecx
jne 0x49da6d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49ab59
lea ecx, [ebp - 0xb8]
push ecx
push edx
push eax
call fcn.00471210
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49da79
mov esi, dword [ebp - 0x18]
cmp dword [ebx + 8], eax
je 0x49ab5c
test byte [esi + 0x98], 0x80
je 0x49ab5c
cmp byte [edi + 0x4f], al
je 0x49aaef
cmp dword [edi + 0xb4], 1
jle 0x49ab5c
cmp dword [esi + 0x30], 0
jne 0x49ab0a
mov edx, dword [edi + 0x1cc]
inc dword [edi + 0x1d0]
add edx, dword [edi + 0x1d0]
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
dec eax
push eax
push 0
push edi
call fcn.0041f080
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49ab33
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0x3c]
push ecx
call fcn.0042b070
add esp, 4
mov dword [ebp - 0x14], eax
mov edx, dword [edi + 0x1d8]
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0x1dc]
mov dword [esi + 0x4c], eax
mov ecx, dword [edi + 0x1e0]
mov dword [esi + 0x50], ecx
mov edx, dword [edi + 0x1e4]
mov dword [esi + 0x54], edx
jmp 0x49ab5c
mov esi, dword [ebp - 0x18]
cmp word [ebx + 2], 0
je 0x49ab8a
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebx + 0xc]
jne 0x49d750
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [edx + ecx*8 + 0xc]
mov ecx, dword [eax + 4]
cmp ecx, dword [ebx + 0x10]
jne 0x49d750
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x130]
push edx
mov edx, dword [ebp - 0x20]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
call fcn.0042b190
mov edx, dword [ebp - 0x18]
add esp, 8
mov eax, ebx
call fcn.0041a280
mov ecx, eax
mov eax, dword [ebp - 0x130]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [edi + 0x10]
push ecx
mov eax, dword [esi + 4]
push edx
push eax
call fcn.00434780
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 8]
mov ecx, 1
add esp, 0xc
cmp eax, ecx
jne 0x49ac1a
mov edx, dword [esi + 0xc]
mov eax, dword [ebx + 0xc]
mov dword [edx], eax
or dword [edi + 0x18], ecx
jmp 0x49ac28
cmp eax, 2
jne 0x49ac28
mov edx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [edx + 0x4c], al
cmp dword [ebx + 4], ecx
jne 0x49ac40
xor ecx, ecx
mov eax, edi
call fcn.00419330
mov eax, dword [ebp - 0x18]
and dword [eax + 0x98], 0xfffffffc
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov esi, dword [edx + 0x60]
mov esi, dword [esi + eax*4]
test esi, esi
je 0x49ac73
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x49ad64
jmp 0x49ac73
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x98]
and al, 3
cmp al, 1
je 0x49daaa
mov edi, dword [ebx + 0xc]
mov esi, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x34], eax
mov eax, edi
shl eax, 4
add eax, dword [esi + 0x10]
mov esi, dword [eax + 4]
mov dword [ebp - 0x3c], esi
cmp cl, 0x62
jne 0x49accd
movzx ecx, word [ebx + 2]
and ecx, 8
or ecx, 4
mov dword [ebp - 0x48], ecx
mov ecx, dword [eax + 0xc]
mov al, byte [ecx + 0x4c]
cmp al, byte [edx + 0x93]
jae 0x49acd4
mov byte [edx + 0x93], al
jmp 0x49acd4
mov dword [ebp - 0x48], 0
test byte [ebx + 2], 0x10
je 0x49acf0
mov eax, dword [ebp - 0x34]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + edx*8]
call fcn.00417e70
mov ecx, dword [esi]
mov dword [ebp - 0x34], ecx
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x49ad06
mov eax, dword [ebx + 0x10]
movzx edx, word [eax + 8]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x1c], edx
jmp 0x49ad10
cmp al, 0xfd
jne 0x49ad10
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
push 0
push edi
mov edi, dword [ebx + 4]
push ecx
call fcn.00480310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x49a16e
mov edx, dword [esi + 0x28]
mov edi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
or dword [esi + 8], 4
push edx
push edi
push ecx
mov ecx, dword [ebp - 0x3c]
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.00451b20
add esp, 0xc
mov dword [esi + 0x2c], edi
cmp byte [ebx + 1], 0xf7
mov dword [ebp - 0x14], eax
setne dl
mov byte [esi + 4], dl
mov al, byte [ebx + 2]
mov ecx, dword [esi + 0x28]
and al, 3
cmp dword [ebp - 0x14], 0
mov byte [ecx + 3], al
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov edx, dword [ebx + 8]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + edx*4]
movsx ecx, word [eax + 0x38]
mov edi, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push ecx
mov dword [ebp - 0x3c], eax
call fcn.00480310
add esp, 0xc
test eax, eax
je 0x49a16e
or dword [eax + 8], 1
mov edi, dword [ebp - 0x3c]
mov esi, dword [eax + 8]
mov byte [eax + 2], 1
mov edx, dword [edi + 0x2c]
mov dword [eax + 0x2c], edx
mov cl, byte [edi + 4]
mov byte [eax + 4], cl
mov edx, dword [edi + 0x34]
mov dword [eax + 0x34], edx
mov ecx, dword [edi + 8]
mov edx, dword [eax + 0x28]
xor ecx, esi
and ecx, 4
xor ecx, esi
mov dword [eax + 8], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x34]
push edx
push ecx
mov ecx, dword [edi + 0xc]
push 4
call fcn.00451b20
add esp, 0xc
mov dword [ebp - 0x14], eax
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 0x60]
mov esi, dword [ecx + eax*4]
xor edi, edi
cmp esi, edi
je 0x49ae37
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], edi
cmp eax, edi
je 0x49af26
mov edx, dword [esi + 0x34]
push edi
push edx
call fcn.00464860
add esp, 8
mov dword [ebp - 0x14], eax
jmp 0x49af26
mov ecx, dword [ebx + 8]
push 0
push 0xffffffffffffffff
push ecx
mov edi, eax
mov esi, edx
call fcn.00480310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x49a16e
or dword [esi + 8], 1
movzx edx, word [ebx + 2]
mov eax, dword [ebp - 0x20]
push 0x41e
or edx, 5
push edx
push eax
mov eax, dword [eax]
push 0
push eax
lea ecx, [esi + 0xc]
call fcn.00463120
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49af0d
mov ecx, dword [esi + 0xc]
push eax
push 1
push ecx
call fcn.00471210
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49af0d
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x3c], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x49aeeb
movzx edx, word [ebx + 2]
or edx, 2
lea eax, [esi + 0x34]
push edx
push eax
mov eax, dword [esi + 0xc]
call fcn.00464810
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49aee5
mov eax, dword [esi + 0x28]
mov ecx, dword [ebp - 0x3c]
push eax
mov eax, dword [esi + 0x34]
push ecx
mov ecx, dword [esi + 0xc]
push 4
call fcn.00451b20
add esp, 0xc
mov dword [ebp - 0x14], eax
mov byte [esi + 4], 0
jmp 0x49af0d
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0xc]
push edx
mov eax, 1
push 0
push 4
mov dword [esi + 0x34], eax
call fcn.00451b20
add esp, 0xc
mov dword [ebp - 0x14], eax
mov byte [esi + 4], 1
xor eax, eax
cmp word [ebx + 2], 8
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
xor edi, edi
cmp dword [ebp - 0x14], edi
jne 0x49cb70
mov byte [esi + 2], 1
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 4]
mov esi, dword [ebp - 0x18]
push 1
push 0xffffffffffffffff
push ecx
call fcn.00480310
add esp, 0xc
test eax, eax
je 0x49a16e
mov edx, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x20]
push eax
mov dword [eax + 0x2c], edx
mov eax, dword [ebx + 0xc]
push eax
push ecx
call fcn.00442320
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, ecx
or eax, edx
je 0x49d709
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
mov esi, dword [ebp - 0x18]
push 3
push 0xffffffffffffffff
push edx
call fcn.00480310
add esp, 0xc
test eax, eax
je 0x49a16e
mov byte [eax + 2], 1
mov ecx, dword [ebx + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x61e153
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + edx*4]
push esi
call fcn.004801b0
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x60]
add esp, 4
mov dword [edx + ecx*4], 0
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x60]
mov esi, dword [edx + ecx*4]
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov word [esi + 2], ax
mov dword [esi + 0x1c], eax
cmp byte [esi + 4], al
je 0x49b143
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov dword [ebp - 0x3c], eax
and al, 0x2e
cmp al, 2
jne 0x49b065
push 0
mov eax, edi
call fcn.0041a070
add esp, 4
mov ecx, edi
call fcn.00417d10
mov dword [ebp - 0xe4], eax
movzx eax, word [edi + 8]
mov dword [ebp - 0xe0], edx
mov dx, word [ebp - 0x3c]
mov word [edi + 8], dx
test al, 0x24
jne 0x49b103
test al, 8
jne 0x49b0d5
test al, 1
jne 0x49d709
cmp dword [ebp - 0x2c], 0x18
jge 0x49d709
mov eax, dword [esi + 0x28]
lea edi, [ebp - 0x5c]
call fcn.004523e0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
xor edi, edi
cmp dword [ebp - 0x5c], edi
jne 0x49d709
xor edi, edi
cmp dword [ebp - 0x1c], edi
je case.0x498b66.86
add ebx, 0x14
add ebx, 0x14
jmp 0x498b50
fild qword [ebp - 0xe4]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x49b0f1
test byte [ebp - 0x2c], 1
fstp st(0)
je 0x49b103
dec dword [ebp - 0x2c]
jmp 0x49b103
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x49b103
test byte [ebp - 0x2c], 1
jne 0x49b103
inc dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xe4]
mov edx, dword [esi + 0x28]
lea eax, [ebp - 0x5c]
push eax
push 0
push ecx
push edi
push 0
push edx
call fcn.0045c6d0
mov ecx, dword [ebp - 0xe0]
add esp, 0x18
mov dword [ebp - 0x14], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x49cb70
xor edi, edi
jmp 0x49b1ca
mov edx, dword [esi + 0x28]
test byte [edx + 3], 2
je 0x49b153
mov dword [ebp - 0x1c], 1
test byte [ebp - 0x2c], 1
mov eax, dword [esi + 0x2c]
mov cx, word [ebx + 0x10]
sete dl
mov dword [ebp - 0x140], eax
mov eax, dword [ebx + 0xc]
mov word [ebp - 0x138], cx
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
xor edi, edi
lea edx, [edx + edx - 1]
mov byte [ebp - 0x136], dl
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x5c]
push eax
push edi
push edi
push edi
lea ecx, [ebp - 0x140]
mov dword [ebp - 0x13c], edx
mov byte [ebp - 0x132], 0
mov edx, dword [esi + 0x28]
push ecx
push edx
call fcn.0045c6d0
add esp, 0x18
mov dword [ebp - 0x14], eax
cmp eax, edi
jne 0x49cb70
cmp dword [ebp - 0x1c], edi
je 0x49b1ca
cmp byte [ebp - 0x132], 0
je 0x49b0b6
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x5c]
cmp ecx, 0x18
jl 0x49b21b
cmp eax, edi
jl 0x49b1e8
jne 0x49b1e0
cmp ecx, 0x19
je 0x49b1e8
mov dword [ebp - 0x5c], edi
jmp 0x49b0c1
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [ebp - 0x5c], edi
call fcn.00463d00
add esp, 8
mov dword [ebp - 0x14], eax
cmp eax, edi
je 0x49b0c1
cmp eax, 0x65
jne 0x49cb70
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x5c], 1
jmp 0x49d709
cmp eax, edi
jg 0x49b238
jne 0x49b226
cmp ecx, 0x16
je 0x49b238
mov ecx, dword [esi + 0x28]
xor edx, edx
cmp byte [ecx], dl
setne dl
mov dword [ebp - 0x5c], edx
jmp 0x49b0b6
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [ebp - 0x5c], edi
call fcn.00463e20
jmp 0x49b1f5
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [eax + 8]
and ecx, 8
xor dword [eax + 8], ecx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx + edx*4]
test byte [edx + 8], 8
jne case.0x498b66.86
cmp dword [ebx + 0x10], 0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x60]
mov edi, dword [edx + eax*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x34], eax
jle 0x49b2cd
mov edx, dword [edi + 0x2c]
mov cx, word [ebx + 0x10]
mov dword [ebp - 0x248], edx
mov word [ebp - 0x240], cx
mov dword [ebp - 0x244], eax
lea esi, [ebp - 0x248]
mov dword [ebp - 0x1c], 0
jmp 0x49b315
mov edx, 0x4000
test word [eax + 8], dx
je 0x49b2e8
mov esi, dword [ebp - 0x34]
call fcn.00417a30
test eax, eax
jne 0x49a16e
mov esi, dword [edi + 0x2c]
call fcn.00435070
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x49a16e
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x2c]
push esi
push ecx
push edx
push eax
call fcn.00418ec0
add esp, 0x10
xor ecx, ecx
mov byte [esi + 0xa], 0
cmp byte [ebx], 0x1b
mov dword [ebp - 0x34], ecx
jne 0x49b34b
xor edx, edx
cmp dx, word [esi + 8]
jae 0x49b34b
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x49b344
movzx edx, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x49b331
jmp 0x49b34b
mov dword [ebp - 0x34], 1
mov ecx, dword [edi + 0x28]
lea eax, [ebp - 0x10c]
push eax
push 0
push 0
push 0
push esi
push ecx
call fcn.0045c6d0
add esp, 0x18
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], eax
je 0x49b379
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
call fcn.004121a0
cmp dword [ebp - 0x14], 0
jne 0x49cb70
mov ecx, dword [ebp - 0x10c]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
sub dl, al
mov dword [edi + 0x20], ecx
mov byte [edi + 2], dl
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
cmp byte [ebx], 0x1d
jne 0x49b3ba
test eax, eax
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
cmp dword [ebp - 0x34], 0
jne 0x49d709
test eax, eax
je 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x24
lea esi, [ecx + eax*8]
jne 0x49b448
mov ecx, 0xa
lea edi, [ebp - 0x278]
rep movsd dword es:[edi], dword [esi]
mov al, byte [ebp - 0x270]
test al, 4
jne 0x49b431
test al, 8
jne 0x49b418
test al, 2
je 0x49b429
push 1
lea eax, [ebp - 0x278]
call fcn.0041a070
add esp, 4
jmp 0x49b423
lea esi, [ebp - 0x278]
call fcn.00417e00
mov al, byte [ebp - 0x270]
test al, 4
je 0x49d709
mov ecx, dword [ebp - 0x274]
mov edi, dword [ebp - 0x278]
mov dword [ebp - 0x120], ecx
jmp 0x49b45b
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
mov dword [ebp - 0x120], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x60]
mov eax, dword [ebx + 4]
mov esi, dword [edx + eax*4]
mov edx, dword [ebp - 0x120]
mov eax, dword [esi + 0x28]
lea ecx, [ebp - 0xd0]
push ecx
push 0
push edx
push edi
push 0
push eax
mov dword [ebp - 0xd0], 0
call fcn.0045c6d0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x120]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0xd0]
add esp, 0x18
mov dword [esi + 0x40], edi
mov dword [esi + 0x1c], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x49b4d0
cmp dword [ebx + 8], 0
jne 0x49d709
mov eax, 0x159d3
call fcn.0044c590
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x60]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + edx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
xor edi, edi
mov eax, ebx
mov edx, esi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0xa8], edi
call fcn.0041a280
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x60]
mov esi, dword [edx + ecx*4]
test byte [esi + 8], 2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x1c], esi
jne 0x49b5ad
mov eax, dword [esi + 0x28]
lea edi, [ebp - 0xa8]
call fcn.004523e0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebp - 0xa8], eax
je 0x49b576
mov dword [ebp - 0x78], 1
xor edi, edi
jmp 0x49b5aa
mov edi, dword [esi + 0x28]
mov ecx, edi
call fcn.00417670
mov eax, dword [edi + 0x20]
mov edi, dword [edi + 0x24]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edi
cmp edi, 0x7fffffff
jl 0x49b5a1
jg 0x49b59b
cmp eax, 0xffffffff
jb 0x49b5a1
or dword [esi + 8], 2
jmp 0x49b5ad
add eax, 1
mov dword [ebp - 0x78], eax
adc edi, 0
mov dword [ebp - 0x74], edi
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x49b639
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc8]
test ecx, ecx
je 0x49b5e4
mov eax, dword [ecx + 4]
test eax, eax
je 0x49b5d9
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x49b5d0
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x49b5ed
lea ecx, [edx + edx*4]
mov edx, dword [ebp - 0x24]
lea esi, [edx + ecx*8]
call fcn.00417e70
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x49b608
cmp ecx, 0x7fffffff
je 0x49b6a1
mov edx, dword [ebp - 0x1c]
test byte [edx + 8], 2
jne 0x49b6a1
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x49b62e
jl 0x49b626
cmp dword [ebp - 0x78], eax
jae 0x49b62e
mov edi, ecx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edi
mov eax, dword [ebp - 0x78]
mov dword [esi], eax
mov dword [esi + 4], edi
mov esi, dword [ebp - 0x1c]
test byte [esi + 8], 2
je 0x49b6ad
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x78]
push ecx
push 8
call fcn.00427560
mov edi, dword [ebp - 0x74]
mov eax, dword [ebp - 0x78]
lea edx, [ebp - 0xa8]
push edx
and edi, 0x3fffffff
add eax, 1
push 0
adc edi, 0
push edi
push eax
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 0x28]
push 0
push eax
mov dword [ebp - 0x74], edi
call fcn.0045c6d0
add esp, 0x20
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebp - 0xa8], eax
jne 0x49b6ad
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x64
jl 0x49b646
mov dword [ebp - 0x14], 0xd
jmp 0x49cb70
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x78]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [eax], ecx
mov dword [eax + 4], edi
add ebx, 0x14
jmp 0x498b50
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi + 0x60]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov esi, dword [esi + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
lea edx, [ecx + edx*8]
mov dword [ebp - 0x230], edi
mov ecx, dword [ecx + eax*8 + 4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x22c], ecx
jne 0x49b722
cmp dword [eax + 0xf0], 0
je 0x49b722
movsx ecx, byte [esi + 1]
mov edi, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [edi + ecx*8]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebx + 0x10]
jmp 0x49b727
xor ecx, ecx
mov dword [ebp - 0x34], ecx
test byte [ebx + 2], 1
mov dword [ebp - 0x1c], ecx
je 0x49b736
mov ecx, dword [ebp - 0x18]
inc dword [ecx + 0x2c]
test byte [ebx + 2], 0x20
je 0x49b74e
mov ecx, dword [ebp - 0x230]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x22c]
mov dword [eax + 0x2c], ecx
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x228], eax
movzx eax, word [ebx + 2]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x21c], ecx
test al, 0x10
je 0x49b76d
mov ecx, dword [esi + 0x20]
jmp 0x49b76f
xor ecx, ecx
mov edi, 0x4000
test word [edx + 8], di
je 0x49b786
mov edx, dword [edx]
mov dword [ebp - 0x218], edx
xor edi, edi
jmp 0x49b78e
xor edi, edi
mov dword [ebp - 0x218], edi
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x238]
mov dword [ebp - 0x238], edi
mov ecx, dword [esi + 0x28]
push eax
push ecx
call fcn.00463e60
add esp, 0x10
mov dword [ebp - 0x14], eax
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
cmp eax, edi
jne 0x49cb70
mov eax, dword [ebp - 0x1c]
cmp eax, edi
je case.0x498b66.86
mov edx, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x230]
push edx
mov edx, dword [eax]
mov eax, dword [ebp - 0x34]
push ecx
mov cl, byte [ebx + 2]
push edx
and cl, 4
movzx edx, cl
neg edx
sbb edx, edx
push eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xec]
and edx, 5
add edx, 0x12
push edx
mov edx, dword [eax + 0xf0]
push ecx
call edx
add esp, 0x18
add ebx, 0x14
jmp 0x498b50
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x34], eax
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x49b86d
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0xf0], 0
je 0x49b86d
movsx ecx, byte [esi + 1]
mov edx, dword [eax + 0x10]
mov edi, dword [ebx + 0x10]
add ecx, ecx
test byte [ebx + 2], 2
mov eax, dword [edx + ecx*8]
mov dword [ebp - 0x1c], eax
je 0x49b872
cmp byte [esi + 4], 0
je 0x49b872
mov ecx, dword [esi + 0x28]
mov dword [ebp - 0x3c], ecx
call fcn.00417670
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x20]
mov dword [esi + 0x40], ecx
mov edx, dword [eax + 0x24]
mov dword [esi + 0x44], edx
jmp 0x49b872
xor edi, edi
mov dword [ebp - 0x1c], edi
mov eax, dword [esi + 0x28]
push eax
mov al, byte [ebx + 2]
call fcn.00464220
xor ecx, ecx
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
cmp eax, ecx
jne 0x49cb70
test byte [ebp - 0x34], 1
je case.0x498b66.86
mov eax, dword [ebp - 0x18]
inc dword [eax + 0x2c]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0xf0]
test eax, eax
je case.0x498b66.86
test byte [edi + 0x24], 0x20
jne case.0x498b66.86
mov edx, dword [esi + 0x44]
mov ecx, dword [esi + 0x40]
push edx
mov edx, dword [edi]
push ecx
mov ecx, dword [ebp - 0x1c]
push edx
mov edx, dword [ebp - 0x20]
push ecx
mov ecx, dword [edx + 0xec]
push 9
push ecx
call eax
add esp, 0x18
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x2c]
mov ecx, dword [ebp - 0x20]
add dword [ecx + 0x68], eax
mov dword [ecx + 0x64], eax
mov dword [edx + 0x2c], 0
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebx + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx + edx*8]
mov edx, dword [ebx + 0x10]
lea esi, [ebp - 0xd8]
push esi
push edx
push ecx
mov dword [ebp - 0xd8], 0
call fcn.00458890
add esp, 0xc
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebp - 0xd8], eax
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 8]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
mov edx, dword [esi + 0x60]
mov eax, dword [edx + ecx*4]
call fcn.0041a8c0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebx + 0xc]
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx + eax*4]
mov dword [edx + 0x1c], 0
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov ecx, dword [esi + 0x60]
mov edi, eax
mov eax, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
mov esi, dword [edx + 0x28]
mov ecx, esi
call fcn.00417670
mov eax, dword [esi + 0x2c]
mov ecx, dword [ebp - 0x20]
cmp eax, dword [ecx + 0x6c]
ja 0x49cb59
push edi
push 0
mov edx, esi
call fcn.00456ca0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebx + 0xc], eax
jne case.0x498b66.86
mov edx, 0x1000
test word [edi + 8], dx
je case.0x498b66.86
mov eax, edi
call fcn.0042b2d0
test eax, eax
jne 0x49a16e
add ebx, 0x14
jmp 0x498b50
mov edi, dword [ebp - 0x18]
mov eax, ebx
mov edx, edi
call fcn.0041a280
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [ebx + 4]
mov edi, dword [ecx + eax*4]
cmp byte [edi + 2], 0
mov dword [ebp - 0x30], esi
je 0x49ba42
mov edx, 1
mov word [esi + 8], dx
add ebx, 0x14
jmp 0x498b50
cmp byte [edi + 3], 0
je 0x49ba6d
mov eax, dword [edi + 0x40]
mov dword [ebp - 0xc8], eax
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0xc4], ecx
mov dword [esi], eax
mov ecx, dword [ebp - 0xc4]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x498b50
cmp byte [edi], 2
jne 0x49babc
mov edi, dword [edi + 0x28]
mov esi, dword [edi]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
lea edx, [ebp - 0xc8]
push edx
push edi
call eax
mov ecx, dword [ebp - 0x18]
push esi
push ecx
mov dword [ebp - 0x14], eax
call fcn.00435340
add esp, 0x10
cmp dword [ebp - 0x14], 0
jne 0x49cb70
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc8]
mov dword [esi], eax
mov ecx, dword [ebp - 0xc4]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov edx, dword [edi + 0x28]
cmp byte [edx], 0
je 0x49baeb
call fcn.00465190
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp byte [edi + 2], 0
je 0x49baf4
mov eax, 1
mov word [esi + 8], ax
add ebx, 0x14
jmp 0x498b50
mov dword [ebp - 0x14], 0
jmp 0x49bad4
mov edi, dword [edi + 0x28]
mov ecx, edi
call fcn.00417670
mov ecx, dword [edi + 0x20]
mov dword [ebp - 0xc8], ecx
mov edx, dword [edi + 0x24]
mov dword [ebp - 0xc4], edx
mov eax, ecx
mov dword [esi], eax
mov ecx, dword [ebp - 0xc4]
mov dword [esi + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x498b66.86
mov esi, dword [eax + 0x28]
call fcn.00417090
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi + 0x28]
mov dword [ebp - 0xd4], 0
cmp cl, 0x82
jne 0x49bb83
mov dword [esi + 0x20], 0xffffffff
cmp byte [eax], 0
je case.0x498b66.86
lea edi, [ebp - 0xd4]
call fcn.004523e0
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x14], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x49cb70
cmp dword [ebx + 8], eax
jle case.0x498b66.86
test ecx, ecx
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov esi, dword [ecx + 0x28]
lea edi, [ebp - 0xf0]
mov eax, esi
call fcn.004523b0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebp - 0xf0], eax
jne 0x49d709
push esi
call fcn.00417760
add esp, 4
test edx, edx
jl case.0x498b66.86
jg 0x49bc14
test eax, eax
jb case.0x498b66.86
push edx
push eax
call fcn.00413320
movsx edx, ax
add esp, 8
cmp edx, dword [ebx + 0xc]
jge case.0x498b66.86
mov dword [ebp - 0xf0], 1
jmp 0x49d709
mov eax, dword [ebp - 0x18]
inc dword [eax + 0xac]
jmp 0x49bc47
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x60]
mov esi, dword [edx + ecx*4]
cmp byte [esi], 1
mov dword [ebp - 0xb4], 1
lea edi, [ebp - 0xb4]
jne 0x49bc6e
mov ecx, esi
call fcn.00458840
jmp 0x49bc81
mov eax, dword [esi + 0x28]
call fcn.004523b0
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebp - 0xb4]
mov byte [esi + 2], al
test eax, eax
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x60]
mov esi, dword [ecx + eax*4]
mov edx, dword [ebp - 0x20]
push edx
mov eax, esi
call fcn.00436d10
add esp, 4
jmp 0x49bcdd
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x60]
mov esi, dword [ecx + eax*4]
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x28]
mov ecx, dword [ebx + 0x10]
push edx
push eax
call ecx
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [esi + 0x1c], ecx
cmp eax, ecx
jne 0x49bd03
mov byte [esi + 2], cl
movzx edx, word [ebx + 2]
inc dword [edi + edx*4 + 0xa4]
lea eax, [edi + edx*4 + 0xa4]
jmp case.0x498b66.11
cmp eax, 0x65
jne 0x49cb70
mov dword [ebp - 0x14], ecx
mov byte [esi + 2], 1
jmp 0x49d223
test byte [ebx + 2], 1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x60]
mov edi, dword [edx + eax*4]
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x49bd39
inc dword [ecx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x49bd54
call fcn.00417a30
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp byte [ebx], 0x83
jne 0x49bd66
push esi
mov eax, edi
call fcn.00458410
add esp, 4
jmp 0x49bdca
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x298], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x294], edx
mov ecx, dword [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x2a0], ecx
lea ecx, [eax + edx*8]
movzx eax, word [ebx + 2]
mov dx, word [ebx + 0x10]
mov dword [ebp - 0x28c], ecx
mov word [ebp - 0x288], dx
test al, 0x10
je 0x49bda9
mov ecx, dword [edi + 0x20]
jmp 0x49bdab
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
and eax, 0xa
push eax
lea eax, [ebp - 0x2a0]
push eax
push ecx
call fcn.00463e60
add esp, 0x10
mov dword [edi + 0x1c], 0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebx + 4]
mov esi, dword [ecx + edx*4]
mov edi, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov ax, word [ebx + 0xc]
mov word [ebp - 0x208], ax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x210], edx
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
lea ecx, [ebp - 0x110]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x210]
push edx
push edi
mov byte [ebp - 0x206], 0
mov dword [ebp - 0x20c], eax
call fcn.0045c6d0
add esp, 0x18
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp dword [ebp - 0x110], eax
jne 0x49be5f
push edi
mov al, 4
call fcn.00464220
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov edi, dword [ecx + eax*4]
mov edx, dword [edi + 0x28]
cmp byte [edx], 0
je 0x49bf05
call fcn.00465190
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp byte [edi + 2], 0
jne 0x49bf2e
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [edi + 0x28]
push ecx
call fcn.004575c0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
cmp byte [ebx], 0x86
jne 0x49bf0c
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + edx*4]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
mov word [eax + 2], 0x100
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], edi
add ebx, 0x14
jmp 0x498b50
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x49be97
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + edx*8]
call fcn.00418040
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x2c]
cmp cl, 0x27
sbb cl, cl
mov dword [ebp - 0x200], edx
mov dx, word [ebx + 0x10]
mov byte [ebp - 0x1f6], cl
mov ecx, dword [ebx + 0xc]
mov word [ebp - 0x1f8], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp - 0x24]
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0x84]
push ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1fc], edx
lea edx, [ebp - 0x200]
push edx
push ecx
mov dword [ebp - 0x84], 0
call fcn.00457700
add esp, 0xc
test byte [ebx], 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x84]
je 0x49bfba
neg eax
jmp 0x49bfbb
inc eax
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x84], eax
jne 0x49cb70
test eax, eax
jg 0x49d709
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov edi, eax
mov eax, dword [ebp - 0x20]
mov edx, 1
mov word [edi + 8], dx
mov ecx, dword [eax + 0xc0]
inc ecx
cmp dword [eax + 0xb4], ecx
jg 0x49dab6
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
lea edx, [ebp - 0xdc]
push edx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x1c], ecx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
push edx
mov dword [ebp - 0xdc], 0
call fcn.00464b90
mov esi, dword [ebp - 0xdc]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [ebp - 0x14], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x49cb70
test esi, esi
je case.0x498b66.86
mov edi, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
call fcn.0041c620
mov al, byte [ebp - 0x1c]
inc al
mov byte [ebp - 0x55], al
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xcc]
and eax, ecx
mov ecx, dword [ebp - 0x20]
push eax
mov eax, dword [ebx + 8]
push edx
mov edx, dword [ecx + 0x10]
add eax, eax
mov dword [ebp - 0xcc], 0
mov eax, dword [edx + eax*8 + 4]
call fcn.00464860
add esp, 8
cmp dword [ebx + 0xc], 0
mov dword [ebp - 0x14], eax
je 0x49c0de
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xcc]
add dword [ecx + 0x2c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x49c0de
mov edx, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x60]
mov eax, dword [edx + eax*4]
cmp byte [eax], 1
mov eax, dword [eax + 0x28]
jne 0x49c119
mov ecx, dword [ebp - 0x20]
push eax
push ecx
call fcn.00436520
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 8]
push 0
push edx
call fcn.00464860
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebx + 0xc]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
push edx
mov eax, dword [eax + 4]
lea ecx, [ebp - 0xe8]
push ecx
mov dword [ebp - 0xe8], 0
call fcn.00464810
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov eax, dword [ebp - 0xe8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x20]
inc byte [esi + 0x5a]
mov edx, dword [ebx + 0x10]
push 0
push 0
push 0
push edx
push esi
call fcn.0049e530
dec byte [esi + 0x5a]
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 4]
mov edi, dword [ebp - 0x20]
test eax, eax
jne 0x49c20e
mov ecx, dword [edi + 0x10]
mov eax, esi
add eax, eax
mov edx, dword [ecx + eax*8 + 0xc]
push edx
call fcn.00459a90
mov eax, dword [ebp - 0x18]
and dword [edi + 0x18], 0xffffffef
push 1
add eax, 0x7c
push eax
push esi
push edi
call fcn.0049ec20
or dword [edi + 0x18], 1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
add esp, 0x14
and dword [eax + 0x98], 0xfffffffc
jmp 0x49c2bd
mov ecx, dword [ebp - 0x18]
mov edx, dword [edi + 0x10]
push eax
mov dword [ebp - 0x198], esi
add ecx, 0x7c
mov dword [ebp - 0x1a0], edi
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x190], 0
add esi, esi
mov eax, dword [edx + esi*8]
push str.sqlite_master
push eax
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
mov edx, edi
call fcn.0043ee90
mov esi, eax
add esp, 0x10
test esi, esi
je 0x49d7ab
xor eax, eax
push eax
lea ecx, [ebp - 0x1a0]
push ecx
push fcn.004988a0
push esi
push edi
mov byte [edi + 0xa5], 1
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x18c], eax
call fcn.0049e530
add esp, 0x14
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49c2ad
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49c2ad
cmp dword [ebp - 0x18c], eax
jne 0x49c2ad
mov eax, 0x15f55
call fcn.0044c590
mov dword [ebp - 0x14], eax
mov eax, esi
mov ecx, edi
call fcn.004121a0
mov byte [edi + 0xa5], 0
cmp dword [ebp - 0x14], 0
je case.0x498b66.86
mov eax, edi
call fcn.0045dd70
cmp dword [ebp - 0x14], 7
je 0x49a16e
jmp 0x49cb70
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
call fcn.00443f10
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x20]
push edx
push eax
mov eax, dword [ebx + 4]
call fcn.00444720
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebx + 4]
push ecx
push edx
call fcn.00437fb0
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x20]
push eax
mov eax, dword [ebx + 4]
push ecx
call fcn.004490f0
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [esi]
inc eax
push eax
push ecx
movzx ecx, word [ebx + 2]
add edx, 4
push edx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
push ecx
lea ecx, [ebp - 0x114]
call fcn.00456660
mov dword [ebp - 0x3c], eax
add esp, 0x10
mov eax, edi
call fcn.00418040
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x49c3c8
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x49a16e
push fcn.004120f0
dec eax
cdq
sub dword [esi], eax
push 1
push 0xffffffffffffffff
sbb dword [esi + 4], edx
push ecx
push edi
call fcn.004a70f0
add esp, 0x14
movzx ecx, byte [ebp - 0x4c]
mov eax, edi
call fcn.00434aa0
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x10
mov eax, dword [ebx + 8]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x49c404
call fcn.0042b380
test eax, eax
jne 0x49a16e
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov esi, dword [esi + 0x10]
push ecx
push edx
call fcn.00428b00
add esp, 8
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea edi, [ecx + eax*8]
je 0x49c46a
mov eax, dword [edi + 0x10]
lea esi, [ebp - 0x158]
call fcn.004156f0
test eax, eax
je 0x49c46a
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x158]
push edx
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.004180a0
add esp, 8
jmp 0x49d223
mov eax, edi
call fcn.00418040
jmp case.0x498b66.11
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x10]
lea edi, [edi + ecx*8]
mov dword [ebp - 0x1c], eax
jne 0x49c4a8
call fcn.0042b380
test eax, eax
jne 0x49a16e
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x49c4cc
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push edx
push ecx
push eax
mov eax, dword [esi + 0x10]
call fcn.00428b90
add esp, 0xc
test eax, eax
jne 0x49d709
mov eax, dword [ebp - 0x1c]
test eax, eax
js case.0x498b66.86
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov esi, dword [esi + 0x10]
push edx
push eax
call fcn.00428b00
add esp, 8
add ebx, 0x14
jmp 0x498b50
cmp word [ebx + 2], 0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea esi, [eax + ecx*8]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], esi
je 0x49c530
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 0xc8]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x49c533
jmp 0x49c520
cmp dword [eax + 0x1c], ecx
je case.0x498b66.86
mov eax, dword [eax + 4]
test eax, eax
jne 0x49c520
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0xd0]
mov eax, dword [ebp - 0x20]
cmp ecx, dword [eax + 0x94]
jge 0x49dac9
test byte [esi + 8], 0x10
jne 0x49c645
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
add eax, ecx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jne 0x49c565
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + eax*4 + 0xa]
mov eax, dword [ebp - 0x38]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 4]
add eax, 7
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
cdq
push edx
push eax
call fcn.0043d8b0
mov esi, eax
add esp, 8
test esi, esi
je 0x49a16e
mov edi, dword [ebp - 0x3c]
mov eax, edi
call fcn.00417c60
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x1c]
sub ebx, dword [ebp - 0x44]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x418b10
mov edx, 0x410
mov word [edi + 8], dx
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x38]
mov dword [esi + 0x3c], ecx
mov dword [esi], edi
mov eax, dword [edx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x58]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x38], eax
mov edx, dword [edi + 0x60]
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0x68]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x6c]
mov edx, dword [ebp - 0x38]
mov dword [esi + 0x34], eax
mov eax, dword [edx + 0x14]
lea ecx, [ecx + ecx*4 + 0xa]
mov dword [esi + 0x1c], eax
lea ecx, [esi + ecx*8]
lea eax, [esi + 0x50]
cmp eax, ecx
je 0x49c648
mov edx, dword [ebp - 0x20]
mov edi, edi
mov ebx, 0x80
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x49c630
jmp 0x49c648
mov esi, dword [esi + 0x10]
inc dword [edi + 0xd0]
mov edx, dword [edi + 0xc8]
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
mov ecx, dword [eax + 0x28]
mov dword [esi + 0x20], ecx
mov edx, dword [eax + 0x2c]
mov dword [esi + 0x24], edx
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x44], eax
mov ecx, dword [edi]
mov edx, dword [ecx + 0x64]
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0xdc]
mov dword [esi + 0x28], eax
mov ebx, dword [ebp - 0x38]
xor eax, eax
mov dword [edi + 0xdc], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xc8], esi
lea ecx, [esi + 0x50]
mov dword [edi + 0x58], ecx
mov edx, dword [esi + 0x3c]
mov dword [edi + 0x18], edx
movzx eax, word [esi + 0x40]
mov dword [edi + 0x1c], eax
mov eax, edx
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [edi + 0x60], eax
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [esi + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.004b3f30
mov eax, dword [ebx]
mov dword [edi + 0x68], eax
mov edx, dword [ebx + 4]
add esp, 0xc
mov dword [ebp - 0x44], eax
mov dword [edi + 0x6c], edx
lea ebx, [eax - 0x14]
jmp 0x49d223
mov esi, dword [ebp - 0x18]
mov eax, ebx
mov edx, esi
call fcn.0041a280
mov edx, dword [esi + 0xc8]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebx + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.00418190
add esp, 0xc
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x20]
and eax, 0x80000
xor edx, edx
or eax, edx
mov eax, dword [ebx + 8]
je 0x49c757
cdq
add dword [ecx + 0x1e0], eax
adc dword [ecx + 0x1e4], edx
add ebx, 0x14
jmp 0x498b50
cmp dword [ebx + 4], edx
cdq
je 0x49c771
add dword [ecx + 0x1d8], eax
adc dword [ecx + 0x1dc], edx
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebp - 0x18]
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
add ebx, 0x14
jmp 0x498b50
cmp dword [ebx + 4], 0
je 0x49c79f
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x1d8]
or edx, dword [eax + 0x1dc]
jne case.0x498b66.86
jmp 0x49c7b1
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x40]
or edx, dword [eax + 0x44]
jne case.0x498b66.86
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x1e0]
or ecx, dword [eax + 0x1e4]
je 0x49d709
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0xc8]
test ecx, ecx
je 0x49c7f7
mov eax, dword [ecx + 4]
test eax, eax
je 0x49c7e9
nop
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x49c7e0
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x49c803
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
mov esi, edi
call fcn.00417e70
mov eax, dword [ebx + 8]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.00417e70
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x498b66.86
jl 0x49c835
cmp dword [edi], eax
jae case.0x498b66.86
mov dword [edi], eax
mov dword [edi + 4], esi
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
test esi, esi
jl case.0x498b66.86
jg 0x49c867
test edi, edi
je case.0x498b66.86
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
sbb esi, edx
mov dword [ecx], edi
mov dword [ecx + 4], esi
jmp 0x49d709
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
mov edx, dword [ebp - 0x18]
lea edi, [ecx + eax*8]
mov eax, ebx
call fcn.0041a280
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x104], esi
test esi, esi
jl 0x49c8fa
jg 0x49c8b6
test ecx, ecx
je 0x49c8fa
mov eax, dword [edi]
mov edi, dword [edi + 4]
test edi, edi
jl 0x49c8c5
jg 0x49c8c9
test eax, eax
jne 0x49c8c9
xor eax, eax
xor edi, edi
push edi
push eax
lea ecx, [ebp - 0x108]
push ecx
call fcn.004130a0
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x30]
jne 0x49c8fa
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebx, 0x14
jmp 0x498b50
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*8 + 4]
lea edx, [eax + edx*8]
mov eax, dword [edx]
mov esi, eax
or esi, ecx
je case.0x498b66.86
test ecx, ecx
jl 0x49d709
jg 0x49c93d
test eax, eax
je 0x49d709
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x49d709
mov eax, dword [ebx + 4]
mov edx, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, 0x80000000
jl 0x49c977
jg 0x49c96c
test edx, edx
je 0x49c977
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
je 0x49d709
add ebx, 0x14
jmp 0x498b50
movzx eax, word [ebx + 2]
mov ecx, dword [ebp - 0x20]
lea edx, [eax*4 + 0x44]
push 0
push edx
mov dword [ebp - 0x3c], eax
call fcn.00427040
mov esi, eax
add esp, 8
test esi, esi
je 0x49a16e
mov ecx, dword [ebp - 0x3c]
lea eax, [esi + ecx*4 + 0x1c]
mov dword [esi], eax
xor edi, edi
mov dword [esi + 8], edi
mov dword [eax + 0x18], edi
mov edx, 1
mov word [eax + 8], dx
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x20], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov edx, ebx
sub edx, dword [ebp - 0x44]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], edx
mov byte [esi + 0x18], 0
mov dword [esi + 0x14], edi
mov byte [esi + 0x19], cl
mov dword [ebx + 0x10], esi
mov word [ebx], 0xf09b
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x3c], eax
cmp dword [edi + 8], eax
je 0x49ca46
movzx ecx, byte [edi + 0x19]
dec ecx
mov dword [edi + 8], eax
js 0x49ca46
lea edx, [edi + ecx*4 + 0x1c]
lea esp, [esp]
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x49ca30
mov eax, dword [ebp - 0x3c]
inc dword [eax + 0xc]
cmp dword [ebx + 4], 0
je 0x49ca63
movzx eax, byte [edi + 0x19]
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0x1c]
lea edx, [edi + 0x1c]
push edx
push eax
push edi
call ecx
jmp 0x49ca75
movzx ecx, byte [edi + 0x19]
mov edx, dword [edi + 4]
mov edx, dword [edx + 0x10]
lea eax, [edi + 0x1c]
push eax
push ecx
push edi
call edx
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je case.0x498b66.86
jle 0x49caa4
mov eax, dword [edi]
push eax
call fcn.004354b0
mov esi, dword [ebp - 0x18]
push eax
push 0x4e6160
call fcn.004417c0
mov ecx, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x14], ecx
cmp byte [edi + 0x18], 0
je 0x49caca
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x49cac6
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
push 0
push 1
lea eax, [eax + edx*8]
call fcn.004180a0
add esp, 8
mov byte [edi + 0x18], 0
mov eax, dword [edi]
call fcn.00417c60
cmp dword [ebp - 0x14], 0
mov ecx, dword [edi]
mov edx, 1
mov word [ecx + 8], dx
mov dword [edi + 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x49cb28
lea ecx, [eax + eax*4]
push edi
mov edi, dword [ebx + 0x10]
lea eax, [esi + ecx*8]
call fcn.0042b320
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
add esp, 4
lea edi, [esi + edx*8]
jmp 0x49cb35
mov ecx, dword [ebx + 0x10]
mov eax, edi
call fcn.00417aa0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x49dae2
movzx ecx, byte [ebp - 0x4c]
mov eax, edi
call fcn.00434aa0
mov ecx, edi
call fcn.00418140
test eax, eax
je case.0x498b66.86
mov esi, dword [ebp - 0x18]
push str.string_or_blob_too_big
call fcn.004417c0
mov dword [ebp - 0x14], 0x12
add esp, 4
mov edi, dword [ebp - 0x20]
cmp byte [edi + 0x51], 0
je 0x49db7d
mov eax, 7
mov dword [ebp - 0x14], eax
jmp 0x49db80
mov edx, dword [ebx + 8]
or eax, 0xffffffff
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [ebx + 4]
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 0x20]
push edx
push eax
xor esi, esi
push ecx
mov dword [ebp - 0x10], esi
call fcn.00462130
add esp, 0x14
mov dword [ebp - 0x14], eax
cmp eax, esi
je 0x49cbca
cmp eax, 5
jne 0x49cb70
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], 1
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
mov eax, edi
call fcn.004180a0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x49cbd6
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
mov edi, eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx]
movzx edx, byte [eax + 5]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
cmp esi, 0xffffffff
jne 0x49cc2f
mov esi, edx
mov edx, dword [ebp - 0x2c]
mov eax, edx
call fcn.00416290
test eax, eax
jne 0x49cc40
mov esi, dword [ebp - 0x28]
cmp byte [edx + 0xf], 0
mov eax, 0x4de410
jne 0x49cc51
mov eax, dword [edx + 0xa8]
cmp esi, 5
jne 0x49cc73
call fcn.004124c0
test eax, eax
je 0x49cc6b
mov eax, dword [ebp - 0x2c]
call fcn.004162c0
test eax, eax
jne 0x49cc73
mov esi, dword [ebp - 0x28]
jmp 0x49ccf6
mov ecx, dword [ebp - 0x28]
cmp esi, ecx
je 0x49ccf6
cmp ecx, 5
je 0x49cc88
cmp esi, 5
jne 0x49ccf6
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x4f], 0
je 0x49dafe
cmp dword [eax + 0xb4], 1
jg 0x49dafe
cmp ecx, 5
jne 0x49ccc6
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00462e30
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49ccfc
mov eax, dword [ebp - 0x2c]
mov ecx, esi
call fcn.00470e10
jmp 0x49ccde
cmp ecx, 4
jne 0x49ccd8
mov eax, dword [ebp - 0x2c]
mov ecx, 2
call fcn.00470e10
cmp dword [ebp - 0x14], 0
jne 0x49ccfc
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp esi, 5
sete cl
inc ecx
push ecx
call fcn.00471610
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x49ccff
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov ecx, esi
call fcn.00470e10
mov edx, 0xa02
mov word [edi + 8], dx
call fcn.0041dca0
mov dword [edi + 0x10], eax
call fcn.004124c0
movzx ecx, byte [ebp - 0x4c]
mov dword [edi + 0xc], eax
mov eax, edi
mov byte [edi + 0xa], 1
call fcn.00434aa0
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 8]
test eax, eax
je 0x49cd55
mov ecx, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x49cd57
xor eax, eax
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
push eax
mov eax, dword [ebx + 4]
add edx, 0x7c
push edx
call fcn.00497550
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.004639f0
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je case.0x498b66.86
cmp eax, 0x65
jne 0x49cb70
mov dword [ebp - 0x14], 0
jmp 0x49d709
cmp dword [ebx + 4], 0
mov ecx, dword [ebx + 8]
jne 0x49cdd1
mov eax, dword [ebp - 0x20]
call fcn.00419330
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
inc ecx
xor ecx, dword [eax + 0x98]
and ecx, 3
xor dword [eax + 0x98], ecx
add ebx, 0x14
jmp 0x498b50
mov cl, byte [ebx + 0xc]
test cl, cl
jne 0x49ce14
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x20]
and eax, 0x400
mov dword [ebp - 0x40], eax
mov eax, 0
jne case.0x498b66.86
test eax, eax
jne case.0x498b66.86
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push edx
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + 0x10]
add eax, eax
mov eax, dword [edx + eax*8 + 4]
call fcn.0042b260
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je case.0x498b66.86
cmp al, 6
jne 0x49cb70
mov edx, dword [ebx + 0x10]
mov esi, dword [ebp - 0x18]
push edx
push str.database_table_is_locked:__s
call fcn.004417c0
add esp, 8
jmp 0x49cb70
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp - 0x20]
call fcn.0041efb0
mov dword [ebp - 0x14], eax
test edi, edi
je 0x49ce7d
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x18]
push eax
push ecx
call fcn.00435340
add esp, 8
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x20]
xor eax, eax
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], eax
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], eax
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
lea eax, [ebp - 0x1c8]
mov dword [ebp - 0x1a8], esi
call fcn.0042b3d0
lea ecx, [ebp - 0x1c8]
push ecx
mov dword [ebp - 0x14], eax
call fcn.004354b0
add esp, 4
test eax, eax
je 0x49cf1b
mov edx, dword [ebp - 0x18]
add edx, 0x7c
push edx
push eax
mov eax, dword [ebx + 4]
mov ecx, esi
call fcn.00449c60
add esp, 8
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c8]
call fcn.00417c60
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x20]
inc dword [esi + 0xc0]
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
push esi
call fcn.00449d30
dec dword [esi + 0xc0]
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x9c], 0
mov esi, dword [ecx + 8]
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x49db41
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49db41
mov eax, dword [eax + 0x18]
lea edx, [ebp - 0x9c]
push edx
push esi
call eax
mov ecx, dword [ebp - 0x18]
push esi
push ecx
mov dword [ebp - 0x14], eax
call fcn.00435340
add esp, 0x10
cmp dword [ebp - 0x14], 0
jne 0x49cb70
mov edx, dword [ebp - 0x9c]
mov eax, esi
mov esi, dword [ebp - 0x18]
push 2
mov dword [edx], eax
mov edi, dword [ebx + 4]
push 0xffffffffffffffff
push 0
call fcn.00480310
add esp, 0xc
test eax, eax
je 0x49db2a
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0x1c]
inc dword [eax + 4]
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ebp - 0x48], eax
mov eax, dword [edx]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x3c], edi
test ecx, ecx
jle 0x49d04e
mov edi, dword [ebp - 0x1c]
add edx, 0x50
jmp 0x49d040
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x49d040
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 0x10]
push edx
mov edx, dword [ebp - 0x34]
push ecx
mov ecx, dword [ebp - 0x38]
push eax
mov eax, dword [edx + 0x20]
push ecx
push esi
call eax
mov ecx, dword [ebp - 0x18]
push edi
push ecx
mov dword [ebp - 0x14], eax
call fcn.00435340
add esp, 0x1c
cmp dword [ebp - 0x14], 0
jne 0x49cb70
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x48]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x49d709
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edi, [eax + edx*8]
je 0x49d0ce
mov eax, edi
call fcn.00418040
add ebx, 0x14
jmp 0x498b50
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
mov edx, dword [eax]
mov dword [ebp - 0x1c], eax
xor eax, eax
test byte [ebx + 2], 1
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x188], edi
je 0x49d131
mov eax, edi
call fcn.00418040
mov eax, 0x4001
mov word [edi + 8], ax
mov dword [edi], 0
jmp 0x49d145
mov cx, word [edi + 8]
mov edx, 0x3e40
and cx, dx
or cx, 1
mov word [edi + 8], cx
mov eax, dword [ebx + 8]
mov edx, dword [esi + 0x28]
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x188]
push ecx
mov ecx, dword [eax + 0x2c]
push edx
call ecx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
push edx
push eax
call fcn.00435340
add esp, 0x14
cmp dword [ebp - 0x174], 0
jle 0x49d198
push edi
call fcn.004354b0
mov esi, dword [ebp - 0x18]
push eax
push 0x4e6160
call fcn.004417c0
mov ecx, dword [ebp - 0x174]
add esp, 0xc
mov dword [ebp - 0x14], ecx
movzx ecx, byte [ebp - 0x4c]
mov eax, edi
call fcn.00434aa0
mov ecx, edi
call fcn.00418140
test eax, eax
jne 0x49cb59
cmp dword [ebp - 0x14], eax
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x60]
mov edi, dword [ecx + edx*4]
cmp byte [edi + 2], 0
jne case.0x498b66.86
mov eax, dword [edi + 0x28]
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
push eax
mov dword [ebp - 0x3c], ecx
call edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
push esi
push eax
call fcn.00435340
add esp, 0xc
cmp dword [ebp - 0x14], 0
jne 0x49cb70
mov ecx, dword [edi + 0x28]
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x49d223
mov ebx, dword [ebx + 8]
mov edx, dword [ebp - 0x44]
lea ecx, [ebx + ebx*4]
lea ebx, [edx + ecx*4 - 0x14]
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x110]
test ecx, ecx
jne 0x49db4d
mov edx, dword [ebp - 0x64]
cmp dword [ebp - 0x88], edx
jb case.0x498b66.86
mov esi, eax
jmp 0x49d250
mov eax, dword [esi + 0x148]
test eax, eax
je case.0x498b66.86
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x20]
add edi, dword [esi + 0x150]
mov ecx, dword [esi + 0x14c]
push ecx
mov dword [ebp - 0x64], edi
call eax
add esp, 4
test eax, eax
jne 0x49dce1
cmp dword [ebp - 0x88], edi
jae 0x49d250
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x20]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
or dword [esi + 0x20], 0x4000000
mov dword [esi + 0x24], edx
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
lea eax, [eax + edx*8]
mov ecx, 1
and edi, 0x4000000
mov dword [ebp - 0x3c], eax
call fcn.00434aa0
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov edx, dword [edx + 0x10]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x14], eax
test edi, edi
jne 0x49d300
mov ecx, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], ecx
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
push edx
push esi
call fcn.00435340
and dword [esi + 0x98], 0xfffffffc
add esp, 8
cmp dword [ebp - 0x14], 0
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x51], 0
jne 0x49a16e
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x49db41
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x49db41
cmp dword [eax + 0x34], 0
mov ecx, dword [ebx + 8]
je case.0x498b66.86
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov esi, dword [eax + 0x5c]
mov dl, byte [edi + 0x56]
mov eax, dword [ebx + 0xc]
mov byte [ebp - 0x79], dl
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x49d38d
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x49d382
mov dl, byte [ebx + 2]
lea eax, [ebp - 0x160]
push eax
push esi
mov byte [edi + 0x56], dl
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, dword [ebp - 0x1c]
push ecx
call eax
mov edx, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x79]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
push edx
push eax
mov byte [edi + 0x56], cl
call fcn.00435340
add esp, 0x18
cmp dword [ebp - 0x14], 0
jne 0x49d3df
cmp dword [ebx + 4], 0
je 0x49d3df
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x15c]
mov dword [edi + 0x28], ecx
mov dword [edi + 0x2c], edx
mov ecx, dword [ebp - 0x14]
cmp cl, 0x13
jne 0x49d41d
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x49d41d
movzx eax, word [ebx + 2]
cmp eax, 4
jne 0x49d408
mov dword [ebp - 0x14], 0
add ebx, 0x14
jmp 0x498b50
cmp eax, 5
jne 0x49d412
mov eax, 2
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x92], al
jmp 0x49d423
mov eax, dword [ebp - 0x18]
inc dword [eax + 0x2c]
test ecx, ecx
jne 0x49cb70
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0x20]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebx, 0x14
jmp 0x498b50
mov edx, dword [ebp - 0x18]
mov eax, ebx
call fcn.0041a280
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x10]
add edx, edx
mov eax, dword [ecx + edx*8 + 4]
mov ecx, dword [ebx + 0xc]
xor edx, edx
test ecx, ecx
je 0x49d493
mov edx, dword [eax + 4]
mov edx, dword [edx + 0x2c]
cmp edx, ecx
jae 0x49d493
mov edx, ecx
push edx
call fcn.0042aee0
cdq
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, 0x14
jmp 0x498b50
movzx eax, word [ebx + 2]
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
call fcn.00427040
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x49a16e
mov dword [ecx], 0
mov edx, dword [ebx + 0x10]
mov dword [ecx + 4], edx
mov edx, ebx
sub edx, dword [ebp - 0x44]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x10], eax
mov al, byte [ebp - 0x3c]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x14], 0
mov byte [ecx + 0x19], al
add byte [ebx], 2
mov byte [ebx + 1], 0xf0
mov dword [ebx + 0x10], ecx
mov eax, dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebx + 0x10]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], edi
cmp dword [esi], edi
je 0x49d556
movzx ecx, byte [esi + 0x19]
dec ecx
mov dword [esi], edi
js 0x49d556
mov edi, dword [ebp - 0x24]
lea edx, [esi + ecx*4 + 0x1c]
jmp 0x49d540
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx], eax
sub edx, 4
dec ecx
jns 0x49d540
mov edi, dword [ebp - 0x30]
mov cx, word [edi + 8]
mov edx, 0x3e40
and cx, dx
or cx, 1
mov word [edi + 8], cx
movzx edx, byte [esi + 0x19]
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x10]
lea ecx, [esi + 0x1c]
push ecx
push edx
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x49d5dd
jle 0x49d5ad
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004354b0
mov esi, dword [ebp - 0x18]
push eax
push 0x4e6160
call fcn.004417c0
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x14]
add esp, 0xc
mov dword [ebp - 0x14], eax
mov esi, edx
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
push ecx
push edx
add eax, 0xdc
push eax
call fcn.00418b70
add esp, 0xc
cmp dword [ebp - 0x14], 0
mov dword [esi + 0x14], 0
jne 0x49cb70
mov edi, dword [ebp - 0x30]
test byte [edi + 8], 0x12
je case.0x498b66.86
movzx ecx, byte [ebp - 0x4c]
mov esi, dword [ebp - 0x30]
mov eax, esi
call fcn.00434aa0
mov ecx, esi
call fcn.00418140
test eax, eax
jne 0x49cb59
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x20]
mov cl, byte [esi + 0x58]
mov edi, dword [ebp - 0x18]
test cl, 0x41
je 0x49d6be
test byte [edi + 0x98], 0x10
jne 0x49d6be
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x49d640
mov eax, dword [edi + 0xc0]
test eax, eax
je 0x49d6be
push eax
test cl, 0x40
je 0x49d66f
mov ecx, dword [esi + 0xcc]
mov edx, edi
mov dword [ebp - 0x3c], ecx
call fcn.00435f00
mov edx, dword [esi + 0xd0]
push eax
push edx
mov dword [ebp - 0x1c], eax
call dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
push eax
call fcn.004120f0
jmp 0x49d6bb
cmp dword [esi + 0xbc], 1
jle 0x49d6a9
push str.____s
mov edx, esi
call fcn.0043ee90
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xcc]
push eax
push edi
push ecx
push 1
mov dword [ebp - 0x3c], eax
call edx
mov eax, dword [ebp - 0x3c]
add esp, 0x18
mov ecx, esi
call fcn.004121e0
jmp 0x49d6be
mov eax, dword [esi + 0xd0]
mov ecx, dword [esi + 0xcc]
push edi
push eax
push 1
call ecx
add esp, 0x10
mov edx, dword [ebx + 4]
cmp edx, dword [0x4fa160]
jl 0x49d6fb
cmp byte [ebx], 0xa8
je case.0x498b66.86
mov edi, dword [ebp - 0x18]
mov edx, 1
xor esi, esi
cmp dword [edi + 0x6c], edx
jle 0x49d6f8
mov ecx, 0x14
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x49d6ef
mov dword [eax + ecx + 4], esi
inc edx
add ecx, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x49d6e2
mov dword [ebx + 4], esi
mov eax, 1
add dword [ebx + 4], eax
add dword [edi + 0xbc], eax
mov ebx, dword [ebx + 8]
mov edx, dword [ebp - 0x44]
lea ecx, [ebx + ebx*4]
lea ebx, [edx + ecx*4 - 0x14]
add ebx, 0x14
jmp 0x498b50
mov esi, dword [ebp - 0x18]
push str.cannot_open_savepoint___SQL_statements_in_progress
call fcn.004417c0
mov dword [ebp - 0x14], 5
jmp 0x49cb6d
mov esi, dword [ebp - 0x18]
push str.cannot_release_savepoint___SQL_statements_in_progress
call fcn.004417c0
mov dword [ebp - 0x14], 5
jmp 0x49cb6d
mov eax, dword [esi + 0x7c]
mov ecx, edi
call fcn.004121e0
push str.database_schema_has_changed
mov ecx, edi
call fcn.00432ac0
mov dword [esi + 0x7c], eax
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x10]
mov ecx, eax
add ecx, ecx
mov ecx, dword [edx + ecx*8 + 0xc]
mov edx, dword [ebp - 0xb8]
add esp, 4
cmp dword [ecx], edx
je 0x49d78d
push edi
call fcn.0045da90
add esp, 4
mov eax, dword [esi + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [esi + 0x98], eax
mov dword [ebp - 0x14], 0x11
jmp 0x49cb70
mov dword [ebp - 0x14], 7
jmp 0x49c2c7
mov ecx, dword [ebx + 4]
mov dword [esi + 0x28], ecx
mov dl, byte [ebx + 8]
mov byte [esi + 0x92], dl
mov dword [esi + 0x24], edi
test ecx, ecx
je 0x49d844
movzx eax, word [ebx + 2]
mov esi, dword [ebp - 0x18]
test ax, ax
je 0x49d813
mov ecx, dword [eax*4 + 0x4e08bc]
push ecx
push str._s_constraint_failed
call fcn.004417c0
mov eax, dword [ebx + 0x10]
add esp, 8
test eax, eax
je 0x49d824
mov edx, dword [esi + 0x7c]
push eax
push edx
mov edx, dword [ebp - 0x20]
push str._z:__s
call fcn.0043ee90
add esp, 0xc
mov dword [esi + 0x7c], eax
jmp 0x49d824
mov eax, dword [ebx + 0x10]
push eax
push 0x4e6160
call fcn.004417c0
add esp, 8
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0xc0]
mov eax, dword [ebx + 4]
push ecx
push edx
push edi
push str.abort_at__d_in___s_:__s
push eax
call fcn.0043f0f0
mov esi, dword [ebp - 0x18]
add esp, 0x14
mov eax, esi
call fcn.00482770
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
cmp eax, 5
jne 0x49da2a
mov dword [esi + 0x28], eax
jmp 0x49dcb3
mov esi, dword [ebp - 0x18]
push 0
mov eax, esi
call fcn.00441f60
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49cb70
lea edx, [eax + 1]
mov eax, esi
call fcn.00471bc0
mov ecx, dword [esi + 0x20]
add ecx, 2
or ecx, 1
mov dword [esi + 0x20], ecx
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x24]
lea eax, [eax + edx*8]
xor edi, edi
mov dword [esi + 0x78], eax
cmp dword [ebx + 8], edi
jle 0x49d8da
mov esi, eax
lea ebx, [ebx]
mov ecx, 0x1000
test word [esi + 8], cx
je 0x49d8ca
mov eax, esi
call fcn.0042b2d0
test eax, eax
jne 0x49a16e
mov eax, esi
call fcn.00417a80
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x49d8b0
mov edx, dword [ebp - 0x20]
cmp byte [edx + 0x51], 0
jne 0x49a16e
mov esi, dword [ebp - 0x18]
mov edi, edx
test byte [edi + 0x58], 4
je 0x49d909
mov eax, dword [edi + 0xd0]
mov ecx, dword [edi + 0xcc]
push 0
push esi
push eax
push 4
call ecx
add esp, 0x10
mov ecx, ebx
sub ecx, dword [ebp - 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esi + 0x24], ecx
mov dword [ebp - 0x14], 0x64
jmp 0x49dcb3
mov eax, 0x152d9
call fcn.0044c590
mov dword [ebp - 0x14], eax
jmp 0x49cb70
mov ecx, ebx
sub ecx, dword [ebp - 0x44]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 5
mov byte [edi + 0x4f], 0
mov dword [ebp - 0x14], eax
mov dword [esi + 0x28], eax
jmp 0x49dcb3
mov edi, dword [ebp - 0x20]
movzx edx, byte [edi + 0x4f]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
cmp eax, edx
je 0x49da3f
test ecx, ecx
je 0x49d9a3
push 0x204
mov eax, edi
call fcn.0047ffa0
mov esi, dword [ebp - 0x18]
add esp, 4
mov byte [edi + 0x4f], 1
jmp 0x49d9e9
test eax, eax
je 0x49d9c9
cmp dword [edi + 0xb8], 0
jle 0x49d9c9
mov esi, dword [ebp - 0x18]
push str.cannot_commit_transaction___SQL_statements_in_progress
call fcn.004417c0
mov dword [ebp - 0x14], 5
jmp 0x49cb6d
mov esi, dword [ebp - 0x18]
push 1
mov eax, esi
call fcn.00441f60
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x49dcb3
mov al, byte [ebp - 0x1c]
mov byte [edi + 0x4f], al
mov eax, esi
call fcn.00482770
mov ecx, 5
cmp eax, ecx
jne 0x49da25
mov edx, ebx
sub edx, dword [ebp - 0x44]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, byte [ebp - 0x1c]
mov dword [esi + 0x24], eax
mov byte [edi + 0x4f], dl
mov dword [ebp - 0x14], ecx
mov dword [esi + 0x28], ecx
jmp 0x49dcb3
call fcn.00421200
mov eax, dword [esi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 0x14], eax
jmp 0x49dcb3
test eax, eax
jne 0x49da4a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x49da58
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x49da58
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [ebp - 0x18]
push eax
call fcn.004417c0
mov dword [ebp - 0x14], 1
jmp 0x49cb6d
mov dword [ebp - 0x14], 8
jmp 0x49cb70
cmp byte [ebp - 0x14], 5
jne 0x49cb70
mov esi, dword [ebp - 0x18]
mov ecx, ebx
sub ecx, dword [ebp - 0x44]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], ecx
jmp 0x49dcb3
mov dword [ebp - 0x14], 0x204
jmp 0x49cb70
mov dword [ebp - 0x14], 6
mov byte [esi + 0x92], 2
jmp 0x49cb70
mov esi, dword [ebp - 0x18]
push str.too_many_levels_of_trigger_recursion
mov dword [ebp - 0x14], 1
call fcn.004417c0
jmp 0x49cb6d
push edi
call fcn.004354b0
mov esi, dword [ebp - 0x18]
push eax
push 0x4e6160
call fcn.004417c0
add esp, 0xc
jmp 0x49cb70
mov dword [ebp - 0x14], 1
mov eax, str.into
cmp esi, 5
je 0x49db14
mov eax, str.out_of
mov esi, dword [ebp - 0x18]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.004417c0
add esp, 8
jmp 0x49cb70
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp 0x49a16e
mov dword [ebp - 0x14], 6
jmp 0x49cb70
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x18]
xor edx, edx
cmp byte [eax + 0x51], dl
sete dl
lea edx, [edx + edx + 7]
mov dword [ebp - 0x14], edx
mov dword [esi + 0x28], edx
call fcn.00421370
push eax
push 0x4e6160
call fcn.004417c0
add esp, 8
jmp 0x49cb70
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x7c], 0
jne 0x49dbe8
cmp eax, 0xc0a
je 0x49dbe8
mov ecx, eax
sub ecx, 0x64
mov edx, str.unknown_error
je 0x49dbd2
dec ecx
je 0x49dbcb
sub ecx, 0x19f
je 0x49dbc4
and eax, 0xff
cmp eax, 0x1c
ja 0x49dbd7
mov eax, dword [eax*4 + 0x4e4ed8]
test eax, eax
je 0x49dbd7
mov edx, eax
jmp 0x49dbd7
mov edx, str.abort_due_to_ROLLBACK
jmp 0x49dbd7
mov edx, str.no_more_rows_available
jmp 0x49dbd7
mov edx, str.another_row_available
push edx
push 0x4e6160
call fcn.004417c0
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [esi + 0x28], eax
cmp eax, 0xc0a
je 0x49dc1b
and eax, 0xff
cmp eax, 0xe
je 0x49dc01
cmp eax, 0xa
jne 0x49dc1b
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x49dc16
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x49dc18
xor eax, eax
mov dword [edi + 0x48], eax
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0xc0]
push ecx
push edx
mov ecx, ebx
sub ecx, dword [ebp - 0x44]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.0043f0f0
add esp, 0x14
mov eax, esi
call fcn.00482770
cmp dword [ebp - 0x14], 0xc0a
jne 0x49dc98
cmp byte [edi + 0x51], 0
jne 0x49dc98
cmp byte [edi + 0x52], 0
jne 0x49dc98
cmp dword [edi + 0xbc], 0
mov byte [edi + 0x51], 1
jle 0x49dc81
mov dword [edi + 0x110], 1
mov eax, dword [edi + 0xf4]
inc dword [edi + 0x118]
test eax, eax
je 0x49dc98
mov dword [eax + 0xc], 7
cmp byte [ebp - 0x55], 0
mov dword [ebp - 0x14], 1
jbe 0x49dcb3
movzx eax, byte [ebp - 0x55]
dec eax
push edi
call fcn.0045da90
add esp, 4
mov ecx, dword [ebp - 0x88]
cmp ecx, dword [ebp - 0x64]
jb 0x49dcf4
mov eax, dword [edi + 0x148]
test eax, eax
je 0x49dcf4
mov ecx, dword [edi + 0x14c]
mov edx, dword [edi + 0x150]
add dword [ebp - 0x64], edx
push ecx
call eax
add esp, 4
test eax, eax
je 0x49dcb3
mov dword [ebp - 0x64], 0xffffffff
mov dword [ebp - 0x14], 9
jmp 0x49cb70
add dword [esi + 0xb4], ecx
cmp dword [esi + 0xa0], 0
je 0x49dd0c
push esi
call fcn.004189a0
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b3f21
mov esp, ebp
pop ebp
ret