Function at 0x4a4c40
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x2f4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [esp + 0x18], 0
mov byte [esp + 0x5f], 0
mov eax, dword [edi + 4]
mov ebx, eax
mov esi, dword [edi + 8]
mov dword [esp + 0x48], eax
mov eax, dword [edi]
mov dword [esp + 0x14], eax
mov dword [esp + 0xb8], 0
mov dword [esp + 0x94], 0
mov cl, byte [eax + 0x3e]
mov byte [esp + 0x54], cl
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x9c], 0
mov dword [esp + 0x1c], esi
mov dword [esp + 0x88], 0
mov dword [esp + 0x78], ecx
mov dword [esp + 0x68], eax
call fcn.004a4b60
mov edx, dword [esp + 0x14]
add esp, 4
cmp dword [edi + 0x50], 7
je 0x4a991f
mov dword [edi + 0x50], 0
mov dword [edi + 0x88], 0
mov dword [edi + 0x8c], 0
mov dword [edi + 0x14], 0
cmp dword [edx + 0xf0], 0
mov dword [edx + 0x1c4], 0
jne 0x4a9a96
cmp dword [edx + 0x124], 0
je 0x4a4d29
mov ecx, dword [edx + 0x12c]
xor edx, edx
mov eax, dword [edi + 0x7c]
div ecx
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x98], ecx
mov eax, dword [edi + 0x4c]
mov ecx, ebx
mov dword [esp + 0x108], 0xbe01
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
mov dword [esp + 0x1c], ebx
cmp byte [edx + 0x41], 0
jne 0x4a991f
mov cl, byte [ebx]
inc dword [esp + 0x90]
movzx edx, cl
mov byte [esp + 0x23], cl
mov dword [esp + 0x3c], edx
lea eax, [edx - 1]
cmp eax, 0x9d
ja case.0x4a4d6f.62
jmp dword [eax*4 + 0x4a9ad4]
mov eax, dword [ebx + 4]
mov ecx, ebx
mov edi, dword [esp + 0x18]
sub ecx, dword [esp + 0x44]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [ecx + eax*4]
jmp 0x4a9583
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x44]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
lea eax, [eax + eax*4]
lea eax, [eax + 5]
lea ebx, [edx + eax*4]
mov edx, dword [esp + 0x10]
mov eax, pe_nt_image_headers32
mov word [esi + ecx*8 + 8], ax
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, 4
mov dword [esi + ecx*8 + 4], edx
mov edx, dword [esp + 0x10]
mov word [esi + ecx*8 + 8], ax
cmp dword [ebx + 8], 0
jne 0x4a4dad
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x44]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
jmp 0x4a4dd5
mov eax, dword [ebx + 4]
mov ecx, 4
sub ebx, dword [esp + 0x44]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul ebx
mov ebx, dword [esp + 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ebx + esi*8], eax
lea ebx, [ecx + ecx*4]
mov ecx, dword [esp + 0x44]
lea ebx, [ebx + 5]
mov esi, dword [esp + 0x18]
lea ebx, [ecx + ebx*4]
jmp 0x4a4d3f
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
je case.0x4a4d6f.62
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebx + 4], 0
jne 0x4a965d
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x4a965d
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x10]
dec dword [edi + 0xb8]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0x5c]
add dword [edx + 0x54], eax
push ecx
mov dword [edx + 0x50], eax
call fcn.004aa4b0
mov edx, dword [esp + 0x14]
add esp, 4
cmp dword [ebx + 8], 4
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x74], ecx
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x64], ecx
jne 0x4a4f0c
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [edi + 4]
lea ebx, [eax + 1]
mov esi, dword [edi + 8]
lea ebx, [ebx + ebx*4]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], esi
lea ebx, [ecx + ebx*4]
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov ecx, eax
add esp, 8
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov ecx, dword [ebx + 0x10]
mov edx, eax
add esp, 8
add ebx, 0x14
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x10]
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov edx, dword [esp + 0x18]
mov ecx, eax
mov eax, 8
add esp, 8
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
add ebx, 0x14
fld qword [eax]
fstp qword [ecx]
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov edi, dword [ebx + 0x10]
mov esi, eax
push edi
mov byte [ebx], 0x19
call fcn.0049f710
add esp, 0xc
mov dword [ebx + 4], eax
cmp byte [esp + 0x50], 1
je 0x4a501d
push 0
push 1
push 0xffffffffffffffff
push edi
push esi
call fcn.004abce0
add esp, 0x14
mov dword [esp + 0x14], eax
cmp eax, 0x12
je 0x4a993f
movzx ecx, byte [esp + 0x50]
push ecx
push esi
call fcn.004a41d0
add esp, 8
test eax, eax
jne 0x4a9918
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xff
jne 0x4a500d
push dword [ebx + 0x10]
push dword [esp + 0x14]
call fcn.0047f2c0
add esp, 8
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 8]
cmp eax, dword [ecx + 0x58]
jg 0x4a9942
mov esi, dword [esp + 0x18]
push ebx
push edi
call fcn.0046aff0
mov edx, eax
add esp, 8
mov eax, 0xa02
mov word [edx + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [esp + 0x50]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [edx + 0xc], ecx
mov byte [edx + 0xa], al
cmp byte [ebx + 3], 0
je case.0x4a4d6f.62
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
or eax, dword [esi + ecx*8 + 4]
je case.0x4a4d6f.62
mov eax, 0xa10
mov word [edx + 8], ax
mov edx, dword [esp + 0x10]
jmp 0x4a958a
push ebx
push edi
call fcn.0046aff0
mov edi, dword [ebx + 0xc]
add esp, 8
sub edi, dword [ebx + 8]
mov esi, eax
mov ecx, dword [ebx + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx eax, cx
mov dword [esp + 0x30], eax
mov word [esi + 8], ax
test edi, edi
jle 0x4a50cd
mov ebx, eax
add esi, 0x28
push esi
call fcn.004abbe0
dec edi
mov word [esi + 8], bx
add esp, 4
test edi, edi
jg 0x4a50b4
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
mov edx, 0xff7f
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 8]
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 1
add ebx, 0x14
mov word [esi + ecx*8 + 8], ax
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
push 0
push 0
push dword [ebx + 4]
mov esi, eax
push dword [ebx + 0x10]
push esi
call fcn.004abce0
mov al, byte [esp + 0x6c]
add esp, 0x1c
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
mov esi, dword [edi + 0x3c]
add esi, 0xffffffd8
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
push esi
call fcn.004ac080
add esp, 4
test eax, eax
jne 0x4a9942
push ebx
push edi
call fcn.0046aff0
push 0x800
push esi
push eax
call fcn.004abf50
mov edx, dword [esp + 0x24]
add esp, 0x14
mov esi, dword [esp + 0x18]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
lea ebx, [ebx]
push edi
push esi
call fcn.004ab9d0
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x4a51c6
push esi
call fcn.004ab950
add esp, 4
test eax, eax
jne 0x4a9918
add edi, 0x28
add esi, 0x28
dec dword [esp + 0x28]
jne 0x4a51a0
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov edi, edi
push 0x1000
push edi
push esi
call fcn.004abf50
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x4a522b
push esi
call fcn.004ab950
add esp, 4
test eax, eax
jne 0x4a9918
mov ecx, dword [esp + 0x28]
mov eax, ecx
dec ecx
mov dword [esp + 0x28], ecx
test eax, eax
je 0x4a50cd
add esi, 0x28
add edi, 0x28
jmp 0x4a5200
mov eax, dword [ebx + 4]
push 0x1000
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004abf50
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebx, 0x14
jmp 0x4a4d3f
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x4a52a4
mov edx, dword [esp + 0x90]
cmp edx, dword [esp + 0x98]
jb 0x4a52a4
push dword [ecx + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x4a9709
push 0
push edi
call fcn.004a43b0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne case.0x4a4d6f.62
push 1
push edi
call fcn.004a47d0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x4a9717
mov edx, dword [esp + 0x10]
jmp 0x4a958a
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov dword [esp + 0x38], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x4a5328
push esi
call fcn.004abbe0
add esp, 4
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
test edx, 0x4000
je 0x4a5341
push ecx
call fcn.004ab5b0
add esp, 4
test eax, eax
jne 0x4a9918
mov eax, 0x4000
test word [edi + 8], ax
je 0x4a535d
push edi
call fcn.004ab5b0
add esp, 4
test eax, eax
jne 0x4a9918
mov eax, dword [esp + 0x38]
test byte [eax + 8], 0x12
jne 0x4a537e
push 0
push dword [esp + 0x54]
push eax
call fcn.004abfb0
add esp, 0xc
test eax, eax
jne 0x4a9918
test byte [edi + 8], 0x12
jne 0x4a539b
push 0
push dword [esp + 0x54]
push edi
call fcn.004abfb0
add esp, 0xc
test eax, eax
jne 0x4a9918
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [esp + 0x3c], eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x4a993f
mov ecx, dword [esp + 0x3c]
jl 0x4a53ca
cmp ecx, eax
ja 0x4a993f
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.004ab740
add esp, 0xc
test eax, eax
jne 0x4a9918
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x4a5410
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x38]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 8]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
add ebx, 0x14
mov al, byte [esp + 0x50]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [esp + 0x30], eax
call fcn.0046a710
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [esp + 0x2c], eax
call fcn.0046a710
mov ecx, dword [esp + 0x34]
add esp, 8
movzx edx, ax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x30], edx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov al, byte [esi + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x4a56f7
mov al, dl
and al, byte [esp + 0x28]
test al, 4
je 0x4a5603
mov eax, ecx
mov byte [esp + 0x23], 1
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, esi
mov esi, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [ebx]
add eax, 0xffffffa7
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
cmp eax, 3
ja case.default.0x4a54f4
jmp dword [eax*4 + 0x4a9d4c]
push edx
push ecx
lea eax, [esp + 0x80]
push eax
call fcn.004764b0
add esp, 0xc
test eax, eax
je 0x4a55cb
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004ac620
fstp qword [esp + 0x4c]
push esi
call fcn.004ac620
movzx eax, byte [ebx]
add esp, 8
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4a553f
jmp dword [eax*4 + 0x4a9d5c]
push edx
push ecx
lea eax, [esp + 0x80]
push eax
call fcn.0049f730
add esp, 0xc
test eax, eax
jne 0x4a5515
jmp 0x4a55cb
push edx
push ecx
lea eax, [esp + 0x80]
push eax
call fcn.00492730
add esp, 0xc
test eax, eax
jne 0x4a5515
jmp 0x4a55cb
mov eax, ecx
or eax, edx
je 0x4a56f7
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4a5595
test esi, esi
jne 0x4a5595
cmp edi, 0x80000000
je 0x4a5515
push edx
push ecx
push edi
push esi
call fcn.004020c0
jmp 0x4a55c3
mov eax, ecx
or eax, edx
je 0x4a56f7
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x4a55ba
mov ecx, 1
xor edx, edx
push edx
push ecx
push edi
push esi
call fcn.004022f0
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x38]
mov edx, 0xbe04
mov eax, dword [esp + 0x78]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 4
add ebx, 0x14
mov word [ecx + 8], ax
jmp 0x4a4d3f
mov byte [esp + 0x23], 0
jmp 0x4a551d
fadd qword [esp + 0x48]
jmp 0x4a5688
fsub qword [esp + 0x48]
jmp 0x4a5688
fmul qword [esp + 0x48]
jmp 0x4a5688
fld qword [esp + 0x48]
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x4a56f3
fdivp st(1)
jmp 0x4a5688
fld qword [esp + 0x48]
call fcn.004021a6
mov esi, eax
mov edi, edx
call fcn.004021a6
mov ecx, esi
mov dword [esp + 0x78], eax
or ecx, edi
mov dword [esp + 0x7c], edx
je 0x4a56f7
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4a566a
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004022f0
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], edx
fild qword [esp + 0x150]
sub esp, 8
fst qword [esp + 0x50]
fstp qword [esp]
call fcn.00490a10
add esp, 8
test eax, eax
jne 0x4a56f7
mov ecx, dword [esp + 0x38]
mov edx, 0xbe08
fld qword [esp + 0x48]
mov ax, word [ecx + 8]
and ax, dx
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x30]
or al, byte [esp + 0x28]
fstp qword [ecx]
test al, 8
jne 0x4a5315
cmp byte [esp + 0x23], 0
jne 0x4a5315
push ecx
call fcn.004aabf0
mov edi, dword [ebp + 8]
add esp, 4
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
fstp st(0)
fstp st(0)
push dword [esp + 0x38]
call fcn.004abbe0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, dword [ebp + 8]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a5730
push 0
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push 0
push eax
call fcn.004abba0
add esp, 0xc
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
movzx eax, byte [ebx + 3]
mov dword [esp + 0x30], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.0047f320
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a9aca
mov dword [esi], 0
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
mov dword [esi + 4], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x44]
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1a], al
mov word [ebx], 0xec24
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x30], edi
cmp dword [esi], edi
je 0x4a57df
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], edi
js 0x4a57df
mov edi, dword [esp + 0x18]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x4a57c7
mov edi, dword [esp + 0x30]
mov ecx, dword [esi]
mov edx, 0xbe01
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x64], eax
je 0x4a586e
cmp dword [esi + 0x14], 0
je 0x4a585d
push dword [esi]
call fcn.0043f800
push eax
push 0x4d01e8
push dword [ebp + 8]
call fcn.004a4bd0
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [esp + 0x14], eax
push dword [ebx + 4]
push dword [esi + 0x10]
push dword [ebp + 8]
call fcn.004a4a20
add esp, 0xc
test byte [edi + 8], 0x12
je 0x4a62cc
movzx eax, byte [esp + 0x50]
push eax
push dword [esi]
call fcn.004a41d0
push dword [esi]
call fcn.004ac080
mov edi, dword [ebp + 8]
add esp, 0xc
test eax, eax
jne 0x4a9942
mov edx, dword [esp + 0x10]
jmp 0x4a9586
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [esp + 0x48], edx
test al, 1
je 0x4a58e9
push edx
call fcn.004abbe0
mov edx, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0x18]
add ebx, 0x14
jmp 0x4a4d3f
push ecx
call fcn.004aab80
push esi
mov dword [esp + 0x2c], eax
mov edi, edx
call fcn.004aab80
mov cl, byte [ebx]
add esp, 8
mov esi, eax
cmp cl, 0x55
jne 0x4a5914
mov eax, dword [esp + 0x24]
and eax, esi
and edi, edx
jmp 0x4a59dd
cmp cl, 0x56
jne 0x4a5926
mov eax, dword [esp + 0x24]
or eax, esi
or edi, edx
jmp 0x4a59dd
mov eax, esi
or eax, edx
je 0x4a59d9
test edx, edx
jg 0x4a595e
jl 0x4a593a
test esi, esi
jae 0x4a5953
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4a595e
jg 0x4a594c
cmp esi, 0xffffffc0
jbe 0x4a595e
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x4a597f
jg 0x4a595e
cmp esi, 0x40
jb 0x4a597f
test edi, edi
jg 0x4a5978
jl 0x4a596b
cmp dword [esp + 0x24], 0
jae 0x4a5978
cmp cl, 0x57
je 0x4a5978
or eax, 0xffffffff
cdq
mov edi, edx
jmp 0x4a59dd
xor eax, eax
cdq
mov edi, edx
jmp 0x4a59dd
mov eax, dword [esp + 0x24]
cmp cl, 0x57
mov edx, edi
mov ecx, esi
jne 0x4a5997
call fcn.00402540
mov ecx, eax
mov edi, edx
jmp 0x4a59dd
call fcn.004026e0
mov dword [esp + 0x38], edx
mov ecx, eax
mov dword [esp + 0x30], ecx
test edi, edi
jg 0x4a59d3
jl 0x4a59b3
cmp dword [esp + 0x24], 0
jae 0x4a59d3
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.00402540
mov ecx, dword [esp + 0x30]
or ecx, eax
or dword [esp + 0x38], edx
mov edx, dword [esp + 0x38]
mov eax, ecx
mov edi, edx
jmp 0x4a59dd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov edx, 0xbe04
mov esi, dword [esp + 0x18]
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
mov edi, dword [ebp + 8]
or ax, 4
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov word [ecx + 8], ax
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004ab920
mov eax, dword [ebx + 8]
add esp, 4
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4a5a86
test al, 8
jne 0x4a5a5e
test al, 2
je 0x4a5a67
push 1
push esi
call fcn.00443ba0
add esp, 8
jmp 0x4a5a67
push esi
call fcn.004aabf0
add esp, 4
movzx eax, word [esi + 8]
test al, 4
jne 0x4a5a86
cmp dword [ebx + 8], 0
jne 0x4a4da9
mov dword [esp + 0x14], 0x14
jmp 0x4a7884
mov edx, dword [esp + 0x10]
and eax, 0xbe04
or eax, 4
add ebx, 0x14
mov word [esi + 8], ax
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 4
lea eax, [esi + eax*8]
je 0x4a5abb
push eax
call fcn.004abac0
add esp, 4
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a5aea
push esi
call fcn.004ab5b0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4a5af2
mov dword [esp + 0x14], 0
push dword [esp + 0x50]
movzx eax, byte [ebx + 8]
push eax
push esi
call fcn.004ab440
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a9586
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
mov al, dl
or al, cl
test al, 1
mov al, byte [ebx + 3]
je 0x4a5bb3
test al, al
jns 0x4a5b65
test cl, 1
je 0x4a5b5b
test dl, 1
je 0x4a5b5b
test edx, 0x100
jne 0x4a5b5b
xor edx, edx
jmp 0x4a5cad
mov edx, 1
jmp 0x4a5cad
test al, 0x20
je 0x4a5b98
mov eax, dword [ebx + 8]
mov edx, 0xbe01
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 8]
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 1
add ebx, 0x14
mov word [esi + ecx*8 + 8], ax
jmp 0x4a4d3f
test al, 0x10
jne 0x4a4da9
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
and al, 0x47
cmp al, 0x43
jl 0x4a5be6
and cl, 0xe
cmp cl, 2
jne 0x4a5bcc
push 0
push edi
call fcn.00443ba0
add esp, 8
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x4a5c58
push 0
push esi
call fcn.00443ba0
add esp, 8
jmp 0x4a5c58
cmp al, 0x42
jne 0x4a5c58
test cl, 2
jne 0x4a5c1f
test cl, 0xc
je 0x4a5c1f
push 1
push dword [esp + 0x54]
push edi
call fcn.004abfb0
mov ax, word [edi + 8]
mov ecx, 0x1ff
xor ax, word [esp + 0x30]
add esp, 0xc
and ax, cx
xor ax, word [edi + 8]
movzx eax, ax
mov dword [esp + 0x24], eax
movzx eax, word [esi + 8]
test al, 2
jne 0x4a5c58
test al, 0xc
je 0x4a5c58
push 1
push dword [esp + 0x54]
push esi
call fcn.004abfb0
mov ax, word [esi + 8]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
xor ax, cx
mov ecx, 0x1ff
and ax, cx
xor ax, word [esi + 8]
movzx eax, ax
mov dword [esp + 0x2c], eax
mov eax, 0x4000
test word [edi + 8], ax
je 0x4a5c79
push edi
call fcn.004ab5b0
add esp, 4
mov eax, 0x4000
and dword [esp + 0x24], 0xbfff
test word [esi + 8], ax
je 0x4a5c90
push esi
call fcn.004ab5b0
add esp, 4
and dword [esp + 0x2c], 0xbfff
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x41], 0
jne 0x4a991c
push dword [ebx + 0x10]
push edi
push esi
call fcn.00492420
add esp, 0xc
mov edx, eax
movzx ecx, byte [ebx]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x4a5cb8
jmp dword [ecx*4 + 0x4a9d6c]
xor eax, eax
test edx, edx
sete al
jmp 0x4a5cf3
xor eax, eax
test edx, edx
setne al
jmp 0x4a5cf3
xor eax, eax
test edx, edx
sets al
jmp 0x4a5cf3
xor eax, eax
test edx, edx
setle al
jmp 0x4a5cf3
xor eax, eax
test edx, edx
setg al
jmp 0x4a5cf3
xor eax, eax
test edx, edx
setns al
mov ecx, dword [esp + 0x24]
mov word [edi + 8], cx
mov ecx, dword [esp + 0x2c]
mov word [esi + 8], cx
test byte [ebx + 3], 0x20
je 0x4a5d44
mov ecx, dword [ebx + 8]
mov edx, 0xbe04
mov edi, dword [esp + 0x18]
lea esi, [ecx + ecx*4]
mov cx, word [edi + esi*8 + 8]
and cx, dx
cdq
or cx, 4
mov dword [edi + esi*8 + 4], edx
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov word [edi + esi*8 + 8], cx
mov dword [edi + esi*8], eax
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
test eax, eax
jne 0x4a4da9
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 0x10]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov dword [esp + 0x84], eax
jmp 0x4a4d3f
mov al, byte [ebx + 3]
mov esi, dword [ebx + 4]
and al, 1
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
movzx eax, al
neg eax
mov dword [esp + 0x48], esi
mov esi, dword [ebx + 8]
sbb eax, eax
mov dword [esp + 0x30], esi
and eax, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], edx
test ecx, ecx
jle 0x4a5e47
lea edi, [edx + 0x14]
test eax, eax
je 0x4a5dbe
mov ecx, dword [eax + esi*4]
jmp 0x4a5dc0
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x18]
push dword [edi]
movzx eax, byte [eax + esi]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x34]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [esp + 0x50]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.00492420
add esp, 0xc
mov dword [esp + 0xb4], eax
test eax, eax
jne 0x4a5e31
mov eax, dword [esp + 0x54]
inc esi
mov edx, dword [esp + 0x28]
add edi, 4
cmp esi, dword [esp + 0x40]
jl 0x4a5db5
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x84], 0
jmp 0x4a4d3f
cmp dword [esp + 0x84], 0
je 0x4a5e44
neg eax
mov dword [esp + 0xb4], eax
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
mov dword [esp + 0x84], 0
jmp 0x4a4d3f
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x44]
test eax, eax
jns 0x4a5e83
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
jmp 0x4a4d3f
jne 0x4a5e97
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
jmp 0x4a4d3f
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*4]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea eax, [esi + eax*8]
je 0x4a5ec0
mov esi, 2
jmp 0x4a5ed6
push eax
call fcn.004aab80
add esp, 4
or eax, edx
je 0x4a5ed4
mov esi, 1
jmp 0x4a5ed6
xor esi, esi
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x4a5ef1
mov eax, 2
jmp 0x4a5f07
push eax
call fcn.004aab80
add esp, 4
or eax, edx
je 0x4a5f05
mov eax, 1
jmp 0x4a5f07
xor eax, eax
cmp byte [ebx], 0x48
lea eax, [eax + esi*2]
jne 0x4a5f19
movzx edx, byte [esi + eax + 0x4d9e0c]
jmp 0x4a5f21
movzx edx, byte [esi + eax + 0x4d9e18]
mov eax, dword [ebx + 0xc]
mov esi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x4a5f52
mov ax, word [esi + ecx*8 + 8]
mov edx, 0xbe01
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 1
add ebx, 0x14
mov word [esi + ecx*8 + 8], ax
jmp 0x4a4d3f
mov eax, edx
cdq
mov dword [esi + ecx*8], eax
mov ax, word [esi + ecx*8 + 8]
mov dword [esi + ecx*8 + 4], edx
mov edx, 0xbe04
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 4
add ebx, 0x14
mov word [esi + ecx*8 + 8], ax
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004abbe0
add esp, 4
test byte [edi + 8], 1
jne 0x4a5315
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004aab80
add esp, 4
or eax, edx
jne 0x4a5fd7
mov edi, dword [ebp + 8]
mov eax, 1
cdq
add ebx, 0x14
mov dword [esi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [esi], eax
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov edi, dword [ebp + 8]
xor eax, eax
cdq
add ebx, 0x14
mov dword [esi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [esi], eax
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004abbe0
add esp, 4
test byte [edi + 8], 1
jne 0x4a5315
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004aab80
mov edi, dword [ebp + 8]
not edx
not eax
mov dword [esi + 4], edx
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esi], eax
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [edi + 0xc8]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov byte [eax + ecx], 1
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea eax, [esi + eax*8]
je 0x4a607d
mov ecx, dword [ebx + 0xc]
jmp 0x4a60a8
push eax
call fcn.004ac620
fldz
add esp, 4
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4a6098
mov ecx, 1
jmp 0x4a609a
xor ecx, ecx
cmp byte [ebx], 0x2e
jne 0x4a60a8
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jne 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
jne 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
je 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [esp + 0x5c], edi
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x24], edx
cmp byte [edx + 0x1a], 0
mov esi, dword [edx + 0x50]
mov ecx, dword [edx]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x3c], ecx
je 0x4a6135
push edx
call fcn.004651e0
jmp 0x4a6145
test ecx, ecx
je 0x4a6160
cmp byte [ecx + 0x42], 1
je 0x4a6160
push edx
call fcn.00465240
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
jmp 0x4a6168
mov dword [esp + 0x14], 0
mov edi, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
cmp eax, dword [edi + 0x48]
mov edi, dword [esp + 0x5c]
je 0x4a62d5
cmp byte [edx + 0x19], 0
je 0x4a61c0
test ecx, ecx
jne 0x4a61ae
mov eax, dword [edx + 0x10]
lea esi, [edx + 0x40]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8 + 0xc]
mov dword [edx + 0x44], edi
mov dword [esi], edi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [esp + 0xa4], edi
mov dword [edx + 0x4c], eax
jmp 0x4a6241
mov edi, dword [esp + 0x1c]
push edi
call fcn.004abbe0
add esp, 4
jmp 0x4a65b0
test byte [edx + 0x1c], 4
jne 0x4a61fa
lea eax, [esp + 0x140]
push eax
push ecx
call fcn.0047b040
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x48]
call fcn.0047b010
mov edx, dword [esp + 0x34]
lea esi, [edx + 0x40]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0x150]
mov dword [esi], eax
jmp 0x4a621c
lea esi, [edx + 0x40]
push esi
push ecx
call fcn.0047a2e0
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x48]
call fcn.0047a2b0
mov edx, dword [esp + 0x34]
mov dword [edx + 0x4c], eax
mov eax, dword [esi]
add esp, 0x10
mov edi, dword [esp + 0xa4]
cmp eax, edi
ja 0x4a6231
mov dword [edx + 0x44], eax
jmp 0x4a6234
mov dword [edx + 0x44], edi
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x58]
ja 0x4a993f
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a6264
movzx ecx, al
mov eax, 1
mov dword [esp + 0xa8], ecx
jmp 0x4a6283
lea eax, [esp + 0xa8]
push eax
push ecx
call fcn.0048e5f0
mov ecx, dword [esp + 0xb0]
add esp, 8
mov edx, dword [esp + 0x24]
movzx eax, al
movzx eax, al
mov dword [edx + 0x48], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
cmp ecx, 0x18003
ja 0x4a62bb
cmp ecx, dword [esi]
ja 0x4a62bb
cmp edi, ecx
mov esi, eax
mov edi, dword [esp + 0x5c]
jae 0x4a62e1
mov dword [edx + 0x4c], 0
mov dword [edx + 0x44], 0
jmp 0x4a62e1
push 0x1232f
call fcn.0047e090
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x10]
jmp 0x4a9583
movzx eax, word [edx + 0x16]
cmp eax, edi
jg 0x4a64c0
mov eax, dword [edx + 0x48]
cmp eax, dword [esi]
jae 0x4a6494
mov eax, dword [edx + 0x4c]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4a6382
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x180]
push eax
mov eax, dword [edx + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push dword [esi]
push 0
push dword [esp + 0x4c]
call fcn.004ab6d0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a62cc
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
movzx ecx, word [edx + 0x16]
mov dword [esp + 0x54], ecx
mov edi, dword [esi + ecx*4]
mov esi, dword [edx + 0x48]
lea edx, [edx + ecx*4]
add esi, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
add eax, dword [esp + 0x38]
add edx, 0x54
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edx
lea ebx, [ebx]
mov al, byte [esi]
cmp al, 0x80
jae 0x4a63c3
movzx eax, al
inc esi
mov dword [esp + 0xac], eax
jmp 0x4a63e8
lea eax, [esp + 0xac]
push eax
push esi
call fcn.0048e5f0
mov ecx, dword [esp + 0x5c]
add esp, 8
mov edx, dword [esp + 0x40]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0xac]
push eax
mov dword [edx], eax
call fcn.004ad070
add edi, eax
add esp, 4
mov dword [esp + 0xa8], edi
cmp edi, eax
jb 0x4a6421
mov eax, dword [esp + 0x2c]
inc ecx
add edx, 4
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], edx
mov dword [eax + ecx*4], edi
cmp ecx, dword [esp + 0x5c]
jg 0x4a6426
cmp esi, dword [esp + 0x28]
jb 0x4a63b0
jmp 0x4a6426
mov esi, dword [esp + 0x28]
inc esi
mov edx, dword [esp + 0x24]
mov eax, esi
sub eax, dword [esp + 0x38]
cmp dword [edx + 0x4c], 0
mov word [edx + 0x16], cx
mov dword [edx + 0x48], eax
jne 0x4a645e
lea eax, [esp + 0x180]
push eax
call fcn.004abb20
mov edx, dword [esp + 0x28]
mov eax, 1
add esp, 4
mov word [esp + 0x188], ax
mov eax, dword [esp + 0x28]
cmp esi, eax
jb 0x4a646d
ja 0x4a6472
cmp edi, dword [edx + 0x40]
jne 0x4a6472
cmp edi, dword [edx + 0x40]
jbe 0x4a648c
push 0x12383
call fcn.0047e090
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4a9583
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x5c]
movzx eax, word [edx + 0x16]
cmp eax, edi
jg 0x4a64c0
cmp byte [ebx + 1], 0xf8
mov edi, dword [esp + 0x1c]
jne 0x4a61b2
push 0x800
push dword [ebx + 0x10]
push edi
call fcn.004abf50
add esp, 0xc
jmp 0x4a65b0
mov eax, dword [esp + 0x1c]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4a64dc
push eax
call fcn.004abbe0
mov edx, dword [esp + 0x28]
add esp, 4
mov ecx, dword [edx + edi*4 + 0x54]
mov eax, dword [edx + 0x44]
mov dword [esp + 0x30], ecx
mov dword [esp + 0xac], ecx
cmp eax, dword [esi + edi*4 + 4]
jb 0x4a6511
push dword [esp + 0x1c]
mov eax, dword [edx + 0x4c]
add eax, dword [esi + edi*4]
push ecx
push eax
call fcn.004acd90
mov edi, dword [esp + 0x28]
add esp, 0xc
jmp 0x4a65a9
mov al, byte [ebx + 3]
test al, 0xc0
je 0x4a6526
cmp ecx, 0xc
jb 0x4a6522
test cl, 1
je 0x4a6535
test al, al
js 0x4a6535
push ecx
call fcn.004ad070
mov edx, eax
add esp, 4
test edx, edx
jne 0x4a655a
mov edi, dword [esp + 0x1c]
mov eax, 0xd
cmp eax, ecx
push edi
sbb eax, eax
push ecx
not eax
lea ecx, [esp + 0x148]
and eax, ecx
push eax
call fcn.004acd90
add esp, 0xc
jmp 0x4a65a9
mov eax, dword [esp + 0x24]
push dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
push edx
push dword [esi + edi*4]
push dword [esp + 0x4c]
call fcn.004ab6d0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a62cc
mov edi, dword [esp + 0x1c]
push edi
push dword [esp + 0x34]
push dword [edi + 0x10]
call fcn.004acd90
mov eax, 0xefff
add esp, 0xc
and word [edi + 8], ax
mov al, byte [esp + 0x50]
mov byte [edi + 0xa], al
movzx esi, word [edi + 8]
test esi, 0x1000
je 0x4a62cc
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a62cc
mov edi, dword [edi + 0xc]
and esi, 0x12
lea eax, [edi + 2]
push eax
push dword [esp + 0x20]
call fcn.004ab500
add esp, 8
test eax, eax
jne 0x4a9918
mov eax, dword [esp + 0x1c]
push edi
push dword [esp + 0x34]
push dword [eax + 0x10]
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov edx, dword [esp + 0x10]
or esi, 0x200
mov eax, dword [ecx + 0x10]
mov byte [edi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [eax + edi + 1], 0
mov word [ecx + 8], si
jmp 0x4a9583
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
mov byte [esp + 0xc8], al
test al, al
je 0x4a50cd
jmp 0x4a6650
push dword [esp + 0x50]
lea esi, [esi + 1]
push dword [esp + 0xcc]
push edi
call fcn.00443b30
mov al, byte [esi]
add esp, 0xc
add edi, 0x28
mov byte [esp + 0xc8], al
test al, al
jne 0x4a6650
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov ecx, dword [esp + 0x18]
xor eax, eax
movzx edx, byte [edi + 0x57]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x54], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x30], eax
test esi, esi
je 0x4a6713
mov bl, byte [esi]
mov edi, ecx
lea ecx, [ecx]
push dword [esp + 0x50]
push ebx
push edi
call fcn.00443b30
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x4a66f0
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
push edx
push esi
call fcn.004acf90
mov edi, eax
push edi
mov dword [esi + 0x1c], edi
call fcn.004ad070
mov ecx, 0x4000
mov dword [esp + 0x4c], eax
add esp, 0xc
test word [esi + 8], cx
je 0x4a676d
mov ecx, dword [esp + 0x2c]
or ecx, dword [esp + 0x3c]
je 0x4a675c
push esi
call fcn.004ab5b0
add esp, 4
test eax, eax
jne 0x4a9918
mov eax, dword [esp + 0x40]
jmp 0x4a676d
mov eax, dword [esi]
cdq
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x38], edx
sub eax, dword [esi]
cdq
add dword [esp + 0x2c], eax
adc dword [esp + 0x3c], edx
cmp edi, 0x7f
ja 0x4a6782
mov eax, 1
jmp 0x4a678d
push 0
push edi
call fcn.004a3cb0
add esp, 8
mov ecx, dword [esp + 0x24]
sub esi, 0x28
mov edx, dword [esp + 0x54]
add ecx, eax
mov dword [esp + 0x24], ecx
cmp esi, dword [esp + 0x28]
jae 0x4a6717
cmp ecx, 0x7e
jle 0x4a67d6
mov eax, ecx
cdq
push edx
push eax
call fcn.004a3cb0
mov esi, eax
mov eax, dword [esp + 0x2c]
add eax, esi
mov dword [esp + 0x2c], eax
cdq
push edx
push eax
call fcn.004a3cb0
mov ecx, dword [esp + 0x34]
add esp, 0x10
cmp esi, eax
jge 0x4a67db
inc ecx
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x3c]
mov eax, ecx
mov ecx, dword [esp + 0x2c]
cdq
add ecx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov esi, edx
adc edi, esi
mov dword [esp + 0x2c], ecx
add ecx, dword [esp + 0x5c]
mov eax, dword [eax + 0x58]
adc edi, dword [esp + 0x38]
cdq
cmp edi, edx
jg 0x4a993f
jl 0x4a6816
cmp ecx, eax
ja 0x4a993f
push dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
push edi
call fcn.004ab500
add esp, 8
test eax, eax
jne 0x4a9918
mov ecx, dword [esp + 0x24]
mov edi, dword [edi + 0x10]
cmp ecx, 0x80
jae 0x4a6847
mov byte [edi], cl
mov eax, 1
jmp 0x4a6855
push esi
push dword [esp + 0x44]
push edi
call fcn.00499240
add esp, 0xc
mov ebx, dword [esp + 0x28]
movzx esi, al
lea esp, [esp]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x40], eax
cmp eax, 0x80
jae 0x4a6878
mov byte [esi + edi], al
mov eax, 1
jmp 0x4a6887
push 0
push eax
lea eax, [esi + edi]
push eax
call fcn.00499240
add esp, 0xc
push dword [esp + 0x40]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x28]
add eax, edi
push ebx
push eax
call fcn.004acf30
add dword [esp + 0x30], eax
add ebx, 0x28
add esp, 0xc
cmp ebx, dword [esp + 0x48]
jbe 0x4a6860
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x1c]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x38]
je 0x4a68dc
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov edi, dword [ebp + 8]
add ebx, 0x14
mov esi, dword [esp + 0x18]
mov byte [edx + 0xa], 1
mov edx, dword [esp + 0x10]
jmp 0x4a4d3f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0xe8]
push ecx
push dword [eax]
call fcn.00479f70
push ebx
push edi
mov dword [esp + 0x24], eax
call fcn.0046aff0
mov ecx, dword [esp + 0xf8]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
mov ecx, dword [esp + 0xec]
mov dword [eax + 4], ecx
jmp 0x4a958a
mov edi, dword [ebx + 4]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
test edi, edi
jne 0x4a6a3f
cmp dword [ecx + 0x9c], edi
jg 0x4a97a2
push eax
call fcn.0049f710
mov edi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
push ecx
push 0
push eax
call fcn.004ae8c0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
push edx
lea eax, [edi + 0x21]
push eax
push dword [esp + 0x18]
call fcn.0047f320
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a6a2c
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x2c]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call sub.MSVCRT.dll_memcpy
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [edx + 0x3f], 0
je 0x4a69e4
mov byte [edx + 0x3f], 0
mov byte [edx + 0x46], 1
jmp 0x4a69ea
inc dword [edx + 0x1f0]
mov eax, dword [edx + 0x1e8]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x1f8]
mov dword [edx + 0x1e8], esi
mov dword [esi + 8], eax
mov eax, dword [edx + 0x1fc]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x200]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x204]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov esi, dword [ecx + 0x1e8]
xor edi, edi
mov dword [esp + 0x3c], edi
push eax
test esi, esi
je 0x4a97f6
push dword [esi]
call fcn.0043ae40
add esp, 8
test eax, eax
je 0x4a6a6c
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [esp + 0x28]
jmp 0x4a6a47
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
cmp dword [edx + 0x9c], 0
jle 0x4a6a86
cmp ecx, 1
je 0x4a97c3
cmp dword [esi + 0x18], 0
jne 0x4a6ae6
cmp byte [edx + 0x46], 0
je 0x4a6ae6
mov dword [esp + 0x28], 1
cmp ecx, 1
jne 0x4a6aee
push ecx
push dword [ebp + 8]
call fcn.004a43b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4a9626
mov edi, dword [esp + 0x10]
push dword [ebp + 8]
mov byte [edi + 0x3f], 1
call fcn.004aa620
add esp, 4
cmp eax, 5
je 0x4a97ca
mov eax, dword [ebp + 8]
mov edx, edi
mov byte [edx + 0x46], 0
mov eax, dword [eax + 0x50]
mov dword [esp + 0x14], eax
jmp 0x4a6bde
mov dword [esp + 0x28], 0
mov eax, dword [edx + 0x1f0]
sub eax, edi
dec eax
mov dword [esp + 0x3c], eax
cmp ecx, 2
jne 0x4a6c44
mov ecx, dword [edx + 0x18]
shr ecx, 1
and ecx, 1
mov dword [esp + 0x30], 0
cmp dword [edx + 0x14], 0
mov dword [esp + 0x48], ecx
jle 0x4a6b70
xor eax, eax
test ecx, ecx
sete al
xor edi, edi
mov dword [esp + 0x40], eax
jmp 0x4a6b30
push eax
mov eax, dword [edx + 0x10]
push 0x204
push dword [edi + eax + 4]
call fcn.0047c5f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov eax, dword [esp + 0x30]
add edi, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [edx + 0x14]
mov eax, dword [esp + 0x40]
jl 0x4a6b30
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
cmp dword [edx + 0x14], 0
mov dword [esp + 0x30], 0
jle 0x4a6bc0
xor edi, edi
push eax
mov eax, dword [edx + 0x10]
push ecx
push dword [edi + eax + 4]
call fcn.0047c080
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov eax, dword [esp + 0x30]
add edi, 0x10
mov edx, dword [esp + 0x10]
inc eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
cmp eax, dword [edx + 0x14]
mov eax, dword [esp + 0x3c]
jl 0x4a6b84
cmp dword [esp + 0x48], 0
je 0x4a6bde
push edx
call fcn.00481240
push edx
call fcn.00499d30
mov edx, dword [esp + 0x18]
add esp, 8
or dword [edx + 0x18], 2
cmp dword [edx + 0x1e8], esi
je 0x4a6c11
mov ecx, dword [edx + 0x1e8]
push ecx
push edx
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x1e8], eax
call fcn.0047f2c0
mov edx, dword [esp + 0x18]
add esp, 8
dec dword [edx + 0x1f0]
cmp dword [edx + 0x1e8], esi
jne 0x4a6be6
mov edi, dword [esp + 0x2c]
cmp edi, 1
jne 0x4a6c51
mov eax, dword [esi + 0x18]
push esi
push edx
mov dword [edx + 0x1e8], eax
call fcn.0047f2c0
mov edx, dword [esp + 0x18]
add esp, 8
cmp dword [esp + 0x28], 0
jne 0x4a9583
dec dword [edx + 0x1f0]
jmp 0x4a6c85
mov dword [esp + 0x48], 0
jmp 0x4a6b74
cmp dword [esp + 0x28], 0
mov eax, dword [esi + 8]
mov dword [edx + 0x1f8], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x1fc], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x200], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x204], eax
je 0x4a6c85
cmp edi, 2
jne 0x4a9583
push dword [esp + 0x3c]
push edi
push edx
call fcn.004ae8c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov edx, dword [esp + 0x10]
jmp 0x4a9583
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x10]
test edx, edx
je 0x4a6cc2
test dword [eax + 0x18], 0x2000000
jne 0x4a9817
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
shl ecx, 4
mov esi, dword [ecx + eax + 4]
test esi, esi
je 0x4a6dca
push edx
push esi
call fcn.004796b0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
cmp edx, 5
je 0x4a9824
test edx, edx
jne 0x4a7884
cmp dword [ebx + 8], eax
je 0x4a6d9a
test byte [edi + 0x58], 0x20
je 0x4a6d9a
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x3f], al
je 0x4a6d21
cmp dword [ecx + 0x98], 1
jle 0x4a6d9a
cmp dword [edi + 0x68], 0
jne 0x4a6d3c
mov eax, dword [ecx + 0x1f0]
inc dword [ecx + 0x1f4]
add eax, dword [ecx + 0x1f4]
mov dword [edi + 0x68], eax
mov eax, dword [edi + 0x68]
dec eax
push eax
push 0
push ecx
call fcn.004ae8c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a6d66
push dword [edi + 0x68]
push esi
call fcn.00479650
add esp, 8
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1f8]
mov dword [edi + 0x98], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edi + 0x9c], eax
mov eax, dword [ecx + 0x200]
mov dword [edi + 0xa0], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0xa4], eax
lea eax, [esp + 0xc0]
push eax
push 1
push esi
call fcn.0047a720
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0xc0]
shl ecx, 4
mov eax, dword [edx + 0x10]
mov eax, dword [ecx + eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x4a6dd9
mov edx, dword [esp + 0x10]
xor esi, esi
mov dword [esp + 0xc0], esi
xor eax, eax
cmp byte [ebx + 3], 0
je 0x4a9586
cmp esi, dword [ebx + 0xc]
jne 0x4a6df1
cmp eax, dword [ebx + 0x10]
je 0x4a9586
push dword [edi + 0x2c]
push edx
call fcn.0047f2c0
mov edi, dword [esp + 0x18]
push str.database_schema_has_changed
push edi
call fcn.0047f5f0
mov ecx, dword [ebp + 8]
add esp, 0x10
mov dword [ecx + 0x2c], eax
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 0xc]
cmp dword [eax], esi
je 0x4a6e2f
push edx
push edi
call fcn.00499dc0
add esp, 8
mov edi, dword [ebp + 8]
mov eax, 0x11
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], 0x11
or dword [edi + 0x58], 8
jmp 0x4a958e
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x114]
push eax
mov eax, dword [esp + 0x14]
add ecx, ecx
push dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.0047a720
push ebx
push edi
call fcn.0046aff0
mov ecx, eax
add esp, 0x14
mov eax, dword [esp + 0x114]
add ebx, 0x14
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x4a4d3f
mov eax, dword [esp + 0x10]
mov esi, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
shl esi, 4
add esi, dword [eax + 0x10]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.004ab920
push dword [edi]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.0047c7d0
mov edx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
cmp eax, 1
jne 0x4a6ee2
mov ecx, dword [esi + 0xc]
mov eax, dword [edi]
mov dword [ecx], eax
or dword [edx + 0x18], 2
jmp 0x4a6eef
cmp eax, 2
jne 0x4a6eef
mov ecx, dword [esi + 0xc]
mov al, byte [edi]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], 1
jne 0x4a9583
push edx
call fcn.00481240
mov edi, dword [ebp + 8]
add esp, 4
and dword [edi + 0x58], 0xfffffff7
jmp 0x4a9586
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4a6f27
mov eax, dword [esi + 0x20]
cmp eax, dword [ebx + 8]
je 0x4a7034
mov cl, byte [esp + 0x23]
test byte [edi + 0x58], 8
jne 0x4a9862
mov edx, dword [ebx + 8]
xor edi, edi
mov esi, dword [ebx + 0xc]
mov eax, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x10]
shl eax, 4
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], esi
add eax, dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x28]
cmp cl, 0x37
jne 0x4a6f80
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x48], 1
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x57]
jae 0x4a6f84
mov byte [ecx + 0x57], al
jmp 0x4a6f84
mov dword [esp + 0x48], edi
test byte [ebx + 3], 4
je 0x4a6fb0
mov ecx, dword [esp + 0x18]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.004ab920
mov eax, dword [esi]
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, 2
jl 0x4a984c
mov esi, dword [esp + 0x40]
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x4a6fca
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x4a6fd1
cmp al, 0xf2
jne 0x4a6fd1
mov edi, dword [ebx + 0x10]
push 1
push esi
push edi
push dword [ebx + 4]
mov edi, dword [ebp + 8]
push edi
call fcn.004427f0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a9aca
push dword [esi]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
or dword [esi + 0x1c], 8
push edi
push dword [esp + 0x50]
mov byte [esi + 0x19], 1
push eax
push dword [esp + 0x64]
mov dword [esi + 0x20], eax
call fcn.0047a160
mov dword [esp + 0x28], eax
add esp, 0x14
xor eax, eax
mov dword [esi + 8], edi
cmp byte [ebx + 1], 0xfa
mov edi, dword [ebp + 8]
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
mov cl, byte [ebx + 3]
mov eax, dword [esi]
and cl, 3
mov edx, dword [esp + 0x10]
mov byte [eax + 0x43], cl
jmp 0x4a9586
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.004427f0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a9aca
or dword [esi + 0x1c], 1
lea edi, [esi + 4]
mov byte [esi + 0x19], 1
movzx eax, byte [ebx + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x18]
push edi
push eax
push 0
push dword [eax]
call fcn.0047b7b0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7121
push 1
push dword [edi]
call fcn.004796b0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7121
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a7107
movzx eax, byte [ebx + 3]
or eax, 2
push eax
lea eax, [esp + 0x108]
push eax
push dword [edi]
call fcn.0047a110
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a7101
push dword [esi]
mov eax, dword [esp + 0x34]
push eax
push 1
push dword [esp + 0x110]
mov dword [esi + 8], eax
push dword [edi]
call fcn.0047a160
add esp, 0x14
mov dword [esp + 0x14], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x4a7121
push dword [esi]
push 0
push 1
push 1
push dword [edi]
call fcn.0047a160
add esp, 0x14
mov dword [esp + 0x14], eax
or dword [esi + 0x1c], 4
mov edx, dword [esp + 0x10]
xor eax, eax
cmp byte [ebx + 3], 8
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x4a9583
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.004427f0
add esp, 0x14
test eax, eax
je 0x4a9aca
mov ecx, dword [ebx + 0x10]
push eax
mov dword [eax + 8], ecx
push dword [ebx + 0xc]
push dword [esp + 0x18]
call fcn.004ad3f0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x4a958a
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
je 0x4a4da9
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
push 0
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.004427f0
add esp, 0x14
test eax, eax
je 0x4a9aca
mov edx, dword [esp + 0x10]
mov byte [eax + 0x19], 1
mov ecx, dword [ebx + 8]
or dword [eax + 0x1c], 4
add ebx, 0x14
mov dword [eax + 0x10], ecx
jmp 0x4a4d3f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
push dword [eax + ecx*4]
push edi
call fcn.004aa520
mov ecx, dword [ebx + 4]
add esp, 8
mov eax, dword [edi + 0x38]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4], 0
jmp 0x4a4d3f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
test byte [esi + 0x1c], 4
mov byte [esi + 0x19], 0
je 0x4a72f2
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x4a724f
push 0
push edi
call fcn.00443ba0
add esp, 8
push edi
call fcn.004aab80
movzx ecx, word [edi + 8]
add esp, 4
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
test cl, 4
jne 0x4a72b3
test cl, 8
je 0x4a4da9
fild qword [esp + 0xe0]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x4a729d
mov eax, dword [esp + 0x3c]
fstp st(0)
test al, 1
jne 0x4a72b3
dec eax
jmp 0x4a72af
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x4a72b3
mov eax, dword [esp + 0x3c]
test al, 1
je 0x4a72b3
inc eax
mov dword [esp + 0x3c], eax
mov edi, dword [esp + 0xe0]
lea eax, [esp + 0x60]
push eax
push 0
push edx
push edi
push 0
push dword [esi]
call fcn.0047b220
mov edx, eax
mov dword [esi + 0x30], edi
mov eax, dword [esp + 0xfc]
add esp, 0x18
mov dword [esp + 0x14], edx
mov dword [esi + 0x34], eax
test edx, edx
jne 0x4a7884
mov edi, dword [ebp + 8]
jmp 0x4a736d
mov eax, dword [esi + 8]
mov dword [esp + 0x1dc], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0x1e0], ax
lea eax, [edx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x1e2], al
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
mov dword [esp + 0x1e4], eax
test word [eax + 8], cx
je 0x4a7342
push eax
call fcn.004ab5b0
add esp, 4
lea eax, [esp + 0x60]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x1ec]
push eax
push dword [esi]
call fcn.0047b220
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [esp + 0x60]
cmp eax, 0x41
jl 0x4a73b7
test ecx, ecx
js 0x4a73a1
jne 0x4a7390
cmp eax, 0x42
je 0x4a73a1
mov edx, dword [esp + 0x10]
mov dword [esp + 0x60], 0
jmp 0x4a9586
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 0
push eax
push dword [esi]
call fcn.0047b730
jmp 0x4a73e7
test ecx, ecx
jg 0x4a73d3
jne 0x4a73c2
cmp eax, 0x3f
je 0x4a73d3
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [esp + 0x60], ecx
jmp 0x4a73f8
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 0
push eax
push dword [esi]
call fcn.0047beb0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0x10]
jne 0x4a4dad
jmp 0x4a9586
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x19], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004aab80
mov dword [esi + 0x34], edx
add esp, 4
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov dword [esi + 0x30], eax
mov byte [esi + 0x1a], 1
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
cmp dword [ebx + 0x10], 0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov dword [esp + 0xb8], 0
mov edx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x30], edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [esp + 0x48], ecx
jle 0x4a74db
mov eax, dword [edx + 8]
xor edi, edi
mov dx, word [ebx + 0x10]
mov dword [esp + 0x1c8], eax
xor eax, eax
mov word [esp + 0x1cc], dx
mov dword [esp + 0x1d0], ecx
cmp ax, dx
jae 0x4a74d2
xor esi, esi
mov ebx, 0x4000
test word [esi + ecx + 8], bx
lea eax, [esi + ecx]
je 0x4a74c3
push eax
call fcn.004ab5b0
mov ecx, dword [esp + 0x1d4]
add esp, 4
mov dx, word [esp + 0x1cc]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x4a74a1
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0x1c8]
jmp 0x4a7533
lea eax, [esp + 0xb8]
push eax
push 0xbf
lea eax, [esp + 0x248]
push eax
push dword [edx + 8]
call fcn.004a4160
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4a9918
mov esi, dword [esp + 0x48]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a751d
push esi
call fcn.004ab5b0
add esp, 4
mov eax, dword [esp + 0x30]
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [eax + 8]
call fcn.004acb60
add esp, 0x10
mov byte [edi + 6], 0
xor esi, esi
cmp byte [ebx], 0x44
jne 0x4a7564
movzx edx, word [edi + 4]
xor ecx, ecx
test edx, edx
jle 0x4a7564
mov eax, dword [edi + 8]
add eax, 8
mov edi, edi
test byte [eax], 1
jne 0x4a755f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4a7550
jmp 0x4a7564
mov esi, 1
lea eax, [esp + 0x110]
push eax
push 0
push 0
push 0
push edi
mov edi, dword [esp + 0x44]
push dword [edi]
call fcn.0047b220
push dword [esp + 0xd0]
mov dword [esp + 0x30], eax
push dword [esp + 0x2c]
call fcn.0047f2c0
add esp, 0x20
cmp dword [esp + 0x14], 0
jne 0x4a62cc
mov eax, dword [esp + 0x110]
xor ecx, ecx
test eax, eax
mov dword [edi + 0xc], eax
mov al, 1
mov byte [edi + 0x1a], 0
sete cl
mov dword [edi + 0x3c], 0
sub al, cl
mov byte [edi + 0x19], al
cmp byte [ebx], 0x46
jne 0x4a75e3
test ecx, ecx
jne 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
test esi, esi
jne 0x4a4da9
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x4a4dad
mov edi, dword [ebp + 8]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov dword [esp + 0xd0], 0
mov ebx, dword [eax + ecx*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [esi + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [esp + 0xd0]
push eax
push 0
push edi
push esi
push 0
push dword [ebx]
call fcn.0047b220
mov dword [esp + 0x2c], eax
add esp, 0x18
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], edi
mov word [ebx + 0x19], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0xc], eax
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x4a4dad
jmp 0x4a9583
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [edi + 0x38]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
add ebx, 0x14
jmp 0x4a4d3f
push ebx
push dword [ebp + 8]
xor esi, esi
xor edi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
mov dword [esp + 0x9c], esi
call fcn.0046aff0
mov edx, dword [ebx + 4]
add esp, 8
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x2c], eax
test byte [eax + 0x1c], 2
jne 0x4a7769
lea ecx, [esp + 0x94]
push ecx
push dword [eax]
call fcn.0047b070
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
cmp dword [esp + 0x94], esi
je 0x4a7723
lea edi, [esi + 1]
jmp 0x4a7761
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.0047b040
mov esi, dword [esp + 0x74]
add esp, 8
mov edi, dword [esp + 0x68]
mov dword [esp + 0x14], eax
cmp esi, 0x7fffffff
jl 0x4a775b
jg 0x4a7751
cmp edi, 0xffffffff
jb 0x4a775b
mov eax, dword [esp + 0x2c]
or dword [eax + 0x1c], 2
jmp 0x4a7769
add edi, 1
adc esi, 0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edi
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4a7800
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4a779c
mov eax, dword [edx + 4]
test eax, eax
je 0x4a7791
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4a7788
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x4a77a6
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x2c], eax
call fcn.004ab920
mov eax, dword [esp + 0x2c]
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x4a77cd
cmp edx, 0x7fffffff
je 0x4a787c
mov eax, dword [esp + 0x2c]
test byte [eax + 0x1c], 2
mov eax, dword [esp + 0x28]
jne 0x4a787c
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x4a77fb
jl 0x4a77ef
cmp edi, ecx
jae 0x4a77fb
mov edi, ecx
mov esi, edx
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x2c]
test byte [eax + 0x1c], 2
je 0x4a78a4
mov dword [esp + 0x30], 0
lea eax, [esp + 0x68]
push eax
push 8
call fcn.00438500
mov esi, dword [esp + 0x74]
lea eax, [esp + 0x9c]
mov edi, dword [esp + 0x70]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x38]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x78], edi
push esi
push edi
push 0
push dword [eax]
mov dword [esp + 0x8c], esi
call fcn.0047b220
add esp, 0x20
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a78a0
cmp dword [esp + 0x94], eax
jne 0x4a78a0
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 0x64
jl 0x4a7816
mov dword [esp + 0x14], 0xd
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x41], 0
je 0x4a9873
mov edx, 7
mov dword [esp + 0x14], edx
jmp 0x4a9883
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0x48]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4a9583
cmp byte [esp + 0x23], 0x54
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xc]
jne 0x4a78ee
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
jmp 0x4a78f1
cdq
mov edi, eax
test byte [ebx + 3], 1
mov dword [esp + 0x40], edx
je 0x4a7901
mov eax, dword [ebp + 8]
inc dword [eax + 0x5c]
test byte [ebx + 3], 2
je 0x4a7919
mov eax, dword [esp + 0x10]
mov dword [esp + 0x74], edi
mov dword [esp + 0x64], edx
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], edx
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x4a7932
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov cl, byte [ebx + 3]
mov byte [esp + 0x23], cl
test cl, 0x10
je 0x4a794b
mov ecx, dword [esp + 0x48]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x30], ecx
jmp 0x4a7953
mov dword [esp + 0x30], 0
test eax, 0x4000
je 0x4a7963
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*8]
jmp 0x4a7965
xor ecx, ecx
push dword [esp + 0x30]
movzx eax, byte [esp + 0x27]
shr eax, 3
and eax, 1
push eax
mov eax, dword [esp + 0x20]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [esp + 0x5c]
push edx
push edi
push 0
push dword [esi]
call fcn.0047a8e0
mov edx, eax
mov byte [esi + 0x1a], 0
add esp, 0x24
mov dword [esp + 0x14], edx
mov dword [esi + 0x3c], 0
test edx, edx
jne 0x4a62cc
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xd4]
test edx, edx
je 0x4a9581
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4a62cc
push dword [esp + 0x40]
movsx ecx, byte [esi + 0x18]
mov esi, dword [esp + 0x14]
push edi
push eax
shl ecx, 4
mov eax, dword [esi + 0x10]
push dword [ecx + eax]
mov al, byte [ebx + 3]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push dword [esi + 0xd0]
call edx
add esp, 0x18
mov edx, esi
jmp 0x4a9583
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
push dword [esi]
call fcn.0047a300
mov edx, eax
mov dword [esi + 0x3c], 0
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7a69
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0xd4]
test edx, edx
je 0x4a7a66
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4a7a66
test byte [esi + 0x1c], 4
je 0x4a7a66
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
shl ecx, 4
push eax
mov eax, dword [edi + 0x10]
push dword [ecx + eax]
push 9
push dword [edi + 0xd0]
call edx
add esp, 0x18
mov edi, dword [ebp + 8]
test byte [ebx + 8], 1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
je 0x4a958e
inc dword [edi + 0x5c]
jmp 0x4a958e
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x5c]
add dword [edx + 0x54], eax
add ebx, 0x14
mov dword [edx + 0x50], eax
mov dword [edi + 0x5c], 0
jmp 0x4a4d3f
mov eax, dword [edi + 0x38]
lea edx, [esp + 0xcc]
mov ecx, dword [ebx + 4]
push edx
push dword [ebx + 0x10]
mov dword [esp + 0xd4], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
push ecx
call fcn.004ad310
mov edx, dword [esp + 0x20]
add esp, 0x10
cmp dword [esp + 0xcc], 0
mov dword [esp + 0x14], eax
jne 0x4a4dad
jmp 0x4a958a
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0x38]
push edx
push dword [eax + ecx*4]
call fcn.004ad860
mov ecx, dword [ebx + 0xc]
add esp, 8
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
jmp 0x4a958a
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x48], eax
test byte [eax + 0x1c], 4
mov esi, dword [eax]
mov dword [esp + 0x30], esi
jne 0x4a7b80
lea eax, [esp + 0x148]
push eax
push esi
call fcn.0047b040
mov eax, dword [esp + 0x18]
add esp, 8
mov eax, dword [eax + 0x58]
cdq
cmp dword [esp + 0x14c], edx
jg 0x4a993f
mov esi, dword [esp + 0x148]
jl 0x4a7b99
cmp esi, eax
jmp 0x4a7b93
push esi
call fcn.00463fd0
mov eax, dword [esp + 0x14]
add esp, 4
mov esi, dword [esi + 0x1c]
cmp esi, dword [eax + 0x58]
ja 0x4a993f
mov eax, esi
cmp esi, 0x20
ja 0x4a7ba5
mov eax, 0x20
push eax
push edi
call fcn.004ab500
add esp, 8
test eax, eax
jne 0x4a9918
mov ax, word [edi + 8]
mov ecx, 0xbe10
and ax, cx
mov dword [edi + 0xc], esi
or ax, 0x10
mov word [edi + 8], ax
mov eax, dword [esp + 0x48]
test byte [eax + 0x1c], 4
jne 0x4a7bfd
push 0
push dword [edi + 0x10]
push esi
push 0
push dword [esp + 0x40]
call fcn.00441880
mov edx, dword [esp + 0x24]
add esp, 0x14
mov dword [esp + 0x14], eax
mov byte [edi + 0xa], 1
jmp 0x4a9583
push dword [edi + 0x10]
push esi
push 0
push dword [esp + 0x3c]
call fcn.0047a270
mov edx, dword [esp + 0x20]
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [edi + 0xa], 1
jmp 0x4a9583
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp + 8]
add esp, 8
mov ecx, dword [eax + 0x38]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 0x19], 0
jne 0x4a7cd9
cmp byte [esi + 0x1a], 0
je 0x4a7c78
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xd8], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 4], eax
jmp 0x4a9583
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4a7cbd
mov esi, dword [ecx]
lea edx, [esp + 0xd8]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x24], eax
call fcn.004ae610
mov eax, dword [esp + 0xe8]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [edi], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 4], eax
jmp 0x4a9583
push esi
call fcn.004a49a0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
cmp byte [esi + 0x19], al
je 0x4a7cf5
mov eax, 1
mov word [edi + 8], ax
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
lea eax, [esp + 0xd8]
push eax
push dword [esi]
call fcn.0047b040
mov edx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
mov eax, dword [esp + 0xdc]
mov dword [edi + 4], eax
jmp 0x4a9583
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je 0x4a5abb
push eax
call fcn.00479980
mov edx, dword [esp + 0x14]
add esp, 4
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc4], 0
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xc4]
push eax
push dword [esi]
call fcn.0047b070
mov ecx, dword [esp + 0xcc]
add esp, 8
mov edx, dword [esp + 0x10]
mov byte [esi + 0x19], cl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
cmp dword [ebx + 8], 0
jle 0x4a9586
test ecx, ecx
jne 0x4a4dad
jmp 0x4a9586
inc dword [edi + 0x74]
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov dword [esp + 0xb0], 1
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xb0]
push eax
cmp dword [esi + 0x38], 0
je 0x4a7de7
push esi
call fcn.004ad7f0
jmp 0x4a7df9
push dword [esi]
call fcn.0047a660
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov edx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb0]
mov byte [esi + 0x19], al
test eax, eax
jne 0x4a4dad
jmp 0x4a9586
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0xa0]
push eax
push esi
push dword [esp + 0x18]
mov dword [esp + 0xac], 0
call fcn.004ad5c0
add esp, 0xc
jmp 0x4a7e7b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je case.0x4a4d6f.62
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xa0]
push eax
push dword [esi]
mov eax, dword [ebx + 0x10]
call eax
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x14], eax
jne 0x4a7ea1
mov byte [esi + 0x19], 0
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x6c]
jmp case.0x4a4d6f.14
mov byte [esi + 0x19], 1
jmp 0x4a92af
test byte [ebx + 3], 1
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x4a7ec8
mov eax, dword [ebp + 8]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a7eea
push esi
call fcn.004ab5b0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a62cc
cmp byte [ebx], 0x6e
jne 0x4a7f06
push esi
push edi
call fcn.004ad910
mov edx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4a9583
test byte [ebx + 3], 0x10
je 0x4a7f11
mov eax, dword [edi + 0xc]
jmp 0x4a7f13
xor eax, eax
push eax
push dword [ebx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x4cf8b2
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [edi]
call fcn.0047a8e0
mov edx, dword [esp + 0x34]
add esp, 0x24
mov dword [esp + 0x14], eax
mov dword [edi + 0x3c], 0
jmp 0x4a9583
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [esp + 0x1f0], eax
mov ax, word [ebx + 0xc]
mov word [esp + 0x1f4], ax
mov eax, dword [ebx + 8]
mov byte [esp + 0x1f6], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1f8], eax
lea eax, [esp + 0x10c]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x200]
push eax
push edi
call fcn.0047b220
mov edx, eax
add esp, 0x18
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7fc3
cmp dword [esp + 0x10c], eax
jne 0x4a7fc3
push edi
call fcn.0047a300
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x10]
mov dword [esi + 0x3c], 0
jmp 0x4a9583
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
mov esi, eax
mov ecx, dword [edi + 0x38]
mov edi, dword [ecx + edx*4]
push edi
mov eax, dword [edi]
mov dword [esp + 0x3c], eax
mov eax, 1
mov word [esi + 8], ax
call fcn.004a49a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
cmp byte [edi + 0x19], al
jne 0x4a8060
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x34]
push dword [esp + 0x18]
call fcn.004aaa10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a7884
mov eax, dword [esp + 0xf0]
mov dword [esi], eax
mov eax, dword [esp + 0xf4]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
cmp byte [esp + 0x23], 0x74
mov dword [esp + 0x88], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x204], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0x208], ax
sbb al, al
mov byte [esp + 0x20a], al
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x208]
push eax
push ecx
push dword [esp + 0x1c]
call fcn.004aa900
add esp, 0x10
mov dword [esp + 0x14], eax
test byte [ebx], 1
mov eax, dword [esp + 0x88]
jne 0x4a80ec
neg eax
jmp 0x4a80ed
inc eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x88], eax
test eax, eax
jg 0x4a4dad
jmp 0x4a958a
push ebx
push edi
call fcn.0046aff0
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, 1
add esp, 8
mov word [esi + 8], ax
mov ecx, dword [edx + 0xa4]
inc ecx
cmp dword [edx + 0x98], ecx
jg 0x4a989f
mov eax, dword [ebx + 0xc]
lea ecx, [esp + 0xd4]
push ecx
push dword [ebx + 4]
mov ecx, eax
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x10]
add ecx, ecx
mov dword [esp + 0xdc], 0
push dword [eax + ecx*8 + 4]
call fcn.0047a580
mov ecx, dword [esp + 0xe0]
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, 4
cmp dword [esp + 0x14], 0
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jne 0x4a589a
test ecx, ecx
je 0x4a589a
push dword [ebx + 4]
push ecx
push dword [esp + 0x38]
push dword [esp + 0x1c]
call fcn.0049a470
mov al, byte [esp + 0x40]
add esp, 0x10
mov edx, dword [esp + 0x10]
inc al
mov byte [esp + 0x5b], al
jmp 0x4a9586
mov eax, dword [ebx + 0xc]
lea ecx, [esp + 0xbc]
neg eax
mov dword [esp + 0xbc], 0
sbb eax, eax
and eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [esp + 0x14]
push dword [ebx + 4]
shl ecx, 4
mov eax, dword [eax + 0x10]
push dword [ecx + eax + 4]
call fcn.004799a0
add esp, 0xc
mov dword [esp + 0x14], eax
cmp dword [ebx + 0xc], 0
je case.0x4a4d6f.62
mov eax, dword [esp + 0xbc]
add dword [edi + 0x5c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle case.0x4a4d6f.62
cdq
lea ecx, [ecx + ecx*4]
add dword [esi + ecx*8], eax
adc dword [esi + ecx*8 + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x4a958a
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x38]
test eax, eax
je 0x4a824f
push eax
push dword [esp + 0x14]
call fcn.004ad640
mov edx, dword [esp + 0x18]
add esp, 8
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ecx]
push 0
push dword [eax + 0x34]
push dword [eax]
call fcn.004799a0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], eax
jmp 0x4a958a
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [esp + 0x18]
xor ecx, ecx
shl edx, 4
mov dword [esp + 0x94], 0
add edx, dword [eax + 0x10]
lea eax, [esp + 0x94]
cmp byte [ebx], 0x7a
setne cl
inc ecx
push ecx
push eax
push dword [edx + 4]
call fcn.0047a110
mov dword [esp + 0x28], eax
add esp, 0x14
mov eax, dword [esp + 0x8c]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [esi], eax
jmp 0x4a9586
mov ecx, dword [ebx + 4]
mov edx, str.sqlite_temp_master
cmp ecx, 1
je 0x4a82d7
mov edx, str.sqlite_master
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 8]
push dword [ebx + 0x10]
add eax, 0x2c
mov dword [esp + 0x134], ecx
mov dword [esp + 0x130], eax
mov eax, dword [edi + 0x10]
shl ecx, 4
push edx
mov dword [esp + 0x130], edi
push dword [ecx + eax]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00491e80
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4a8323
mov dword [esp + 0x14], 7
mov edx, edi
jmp 0x4a837c
push 0
lea eax, [esp + 0x12c]
mov byte [edi + 0x91], 1
push eax
push fcn.0048f0a0
push esi
push edi
mov dword [esp + 0x148], 0
call fcn.00433c00
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a8361
mov eax, dword [esp + 0x134]
mov dword [esp + 0x14], eax
push esi
push edi
call fcn.0047f2c0
mov eax, dword [esp + 0x1c]
mov edx, edi
add esp, 8
mov byte [edx + 0x91], 0
test eax, eax
je 0x4a838b
push edx
call fcn.00499d30
mov eax, dword [esp + 0x18]
add esp, 4
mov edx, edi
mov edi, dword [ebp + 8]
cmp eax, 7
je 0x4a991f
mov esi, dword [esp + 0x18]
jmp 0x4a958e
push dword [ebx + 4]
push dword [esp + 0x14]
call fcn.00477190
mov edx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4a958a
push dword [ebx + 0x10]
push dword [ebx + 4]
push dword [esp + 0x18]
call fcn.004a0350
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebx, 0x14
jmp 0x4a4d3f
push dword [ebx + 0x10]
push dword [ebx + 4]
push dword [esp + 0x18]
call fcn.004a02a0
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebx, 0x14
jmp 0x4a4d3f
push dword [ebx + 0x10]
push dword [ebx + 4]
push dword [esp + 0x18]
call fcn.004a03c0
mov edx, dword [esp + 0x1c]
add esp, 0xc
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 8]
mov dword [esp + 0x30], eax
push 0
lea eax, [eax*4 + 4]
push eax
push dword [esp + 0x18]
call fcn.0047f320
mov edi, eax
add esp, 0xc
mov dword [esp + 0x48], edi
test edi, edi
je 0x4a9918
mov ecx, dword [ebx + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
xor esi, esi
mov dword [esp + 0x54], ecx
test eax, eax
jle 0x4a8488
mov ebx, dword [esp + 0x48]
mov edi, ecx
push edi
call fcn.004aab80
mov dword [ebx + esi*4], eax
add esp, 4
mov eax, dword [esp + 0x30]
inc esi
add edi, 0x28
cmp esi, eax
jl 0x4a8468
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x11c]
push ecx
mov ecx, dword [esp + 0x44]
mov dword [edi + esi*4], 0
mov esi, dword [esp + 0x14]
push dword [edx + ecx*8]
movzx ecx, byte [ebx + 3]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push edi
push dword [eax + ecx*8 + 4]
call fcn.0047aaf0
push edi
push esi
mov dword [esp + 0x4c], eax
call fcn.0047f2c0
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x138]
mov eax, esi
cdq
sub dword [edi + ecx*8], eax
sbb dword [edi + ecx*8 + 4], edx
mov edi, dword [esp + 0x70]
push edi
call fcn.004abbe0
add esp, 0x20
test esi, esi
je 0x4a850e
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a9918
push fcn.00438320
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.004abce0
add esp, 0x14
movzx eax, byte [esp + 0x50]
push eax
push edi
call fcn.004a41d0
mov edi, dword [ebp + 8]
add esp, 8
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 0x20
lea esi, [esi + eax*8]
mov eax, dword [ebx + 8]
lea edi, [eax + eax*4]
jne 0x4a8559
push esi
call fcn.004abc10
add esp, 4
test byte [esi + 8], 0x20
je 0x4a9918
mov eax, dword [esp + 0x18]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push dword [esi]
call fcn.0049a600
mov edi, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 0x20
lea esi, [esi + eax*8]
je 0x4a85d0
lea eax, [esp + 0x120]
push eax
push dword [esi]
call fcn.0049a6a0
add esp, 8
test eax, eax
je 0x4a85d0
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x124]
push dword [esp + 0x124]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004abba0
add esp, 0xc
jmp 0x4a92af
push esi
call fcn.004abbe0
add esp, 4
jmp case.0x4a4d6f.14
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 0x20
lea esi, [esi + eax*8]
mov eax, dword [ebx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
jne 0x4a8612
push esi
call fcn.004abc10
add esp, 4
test byte [esi + 8], 0x20
je 0x4a9918
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a863a
mov ecx, dword [esp + 0x18]
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push eax
push dword [esi]
call fcn.0049a700
add esp, 0x10
test eax, eax
jne 0x4a4da9
mov eax, dword [esp + 0x30]
test eax, eax
js 0x4a7ce2
mov eax, dword [esp + 0x18]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push dword [esi]
call fcn.0049a600
mov edi, dword [ebp + 8]
add esp, 0xc
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
jmp 0x4a4d3f
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x28], edx
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [esp + 0x38], ecx
je 0x4a86a4
mov eax, dword [edi + 0xb0]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x4a86a0
nop
cmp dword [eax + 0x1c], ecx
je 0x4a4f3d
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a8690
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0xb8]
mov edi, dword [esp + 0x10]
cmp eax, dword [edi + 0x80]
jge 0x4a98b4
test byte [ecx + 8], 0x40
jne 0x4a87a6
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push edi
call fcn.0047f400
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4a9918
push dword [esp + 0x38]
call fcn.004abb20
mov eax, dword [esp + 0x3c]
mov ecx, 0x40
sub ebx, dword [esp + 0x48]
add esp, 4
mov word [eax + 8], cx
mov dword [eax], edi
mov eax, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ebx
mov ebx, dword [ebp + 8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0xc8]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x4a87ab
mov esi, dword [esp + 0x10]
mov ebx, pe_nt_image_headers32
mov word [eax + 8], bx
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x4a8792
mov edx, dword [esp + 0x28]
jmp 0x4a87a8
mov edi, dword [ecx]
mov ebx, dword [ebp + 8]
inc dword [ebx + 0xb8]
lea esi, [edi + 0x28]
mov eax, dword [ebx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x74]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [edi + 0x24], eax
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [ebx]
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], eax
mov dword [ebx + 0xb0], edi
mov dword [ebx + 0x5c], 0
mov dword [ebx + 8], esi
mov eax, dword [edi + 0x3c]
mov dword [ebx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov edi, dword [ebp + 8]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [edi + 0x38], ecx
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov eax, dword [edx + 4]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x44], ebx
lea ecx, [ecx + eax*4]
mov dword [edi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
push ecx
mov dword [edi + 0xc4], eax
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov esi, eax
mov eax, dword [edi + 0xb0]
push 0x1000
mov ecx, dword [eax + 0x2c]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
add ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.004abf50
mov edx, dword [esp + 0x24]
add esp, 0x14
mov esi, dword [esp + 0x18]
add ebx, 0x14
jmp 0x4a4d3f
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
cdq
test dword [ecx + 0x18], 0x1000000
je 0x4a88b1
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
add ebx, 0x14
mov edx, ecx
jmp 0x4a4d3f
cmp dword [ebx + 4], 0
je 0x4a88cd
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
add ebx, 0x14
mov edx, ecx
jmp 0x4a4d3f
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
add ebx, 0x14
mov edx, ecx
jmp 0x4a4d3f
cmp dword [ebx + 4], 0
mov edx, dword [esp + 0x10]
je 0x4a8915
mov eax, dword [edx + 0x1f8]
or eax, dword [edx + 0x1fc]
jne 0x4a890d
mov eax, dword [edx + 0x200]
or eax, dword [edx + 0x204]
je 0x4a4dad
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jmp 0x4a88f9
mov edx, dword [edi + 0xb0]
test edx, edx
je 0x4a894b
mov eax, dword [edx + 4]
test eax, eax
je 0x4a893d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4a8934
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x4a8954
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
push edi
call fcn.004ab920
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004ab920
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4a7ce2
jl 0x4a8984
cmp dword [edi], eax
jae 0x4a7ce2
mov edx, dword [esp + 0x10]
add ebx, 0x14
mov esi, dword [esp + 0x18]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edi, dword [ebp + 8]
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
jg 0x4a4da9
jl 0x4a4f3d
cmp dword [esi + eax*8], 0
ja 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
cdq
add dword [esi + ecx*8], eax
adc dword [esi + ecx*8 + 4], edx
cmp dword [esi + ecx*8 + 4], 0
jl 0x4a4da9
jg 0x4a4f3d
cmp dword [esi + ecx*8], 0
jb 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov esi, dword [esi + ecx*8]
mov edi, dword [eax + ecx*8 + 4]
mov eax, esi
or eax, edi
je 0x4a50cd
mov eax, dword [ebx + 0xc]
cdq
add eax, esi
mov esi, dword [esp + 0x18]
adc edx, edi
mov dword [esi + ecx*8], eax
mov dword [esi + ecx*8 + 4], edx
jmp 0x4a4da9
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
add dword [esi + ecx*8], 0xffffffff
mov eax, dword [esi + ecx*8]
adc dword [esi + ecx*8 + 4], 0xffffffff
or eax, dword [esi + ecx*8 + 4]
je 0x4a4da9
mov edx, dword [esp + 0x10]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [ebx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + esi*8]
mov ecx, edi
mov edx, dword [eax + esi*8 + 4]
add ecx, 1
mov dword [esp + 0x30], edx
mov eax, edx
mov edx, dword [esp + 0x18]
adc eax, 0
or edi, dword [esp + 0x30]
mov dword [edx + esi*8], ecx
mov ecx, edx
mov dword [ecx + esi*8 + 4], eax
je 0x4a4da9
mov edi, dword [ebp + 8]
add ebx, 0x14
mov edx, dword [esp + 0x10]
mov esi, ecx
jmp 0x4a4d3f
movzx eax, byte [ebx + 3]
mov dword [esp + 0x30], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.0047f320
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a9aca
mov dword [esi + 8], 0
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
mov dword [esi + 4], ecx
mov ecx, ebx
sub ecx, dword [esp + 0x44]
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1a], al
mov word [ebx], 0xec90
mov dword [ebx + 0x10], esi
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x30], edi
cmp dword [esi + 8], edi
je 0x4a8b49
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], edi
js 0x4a8b49
mov edi, dword [esp + 0x18]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x4a8b31
mov edi, dword [esp + 0x30]
inc dword [edi + 0xc]
mov eax, 1
mov word [esp + 0x220], ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x238], eax
lea eax, [esp + 0x218]
mov dword [esp + 0x230], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0x10]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4a8bd4
cmp dword [esi + 0x14], 0
je 0x4a8bc4
lea eax, [esp + 0x218]
push eax
call fcn.0043f800
push eax
push 0x4d01e8
push dword [ebp + 8]
call fcn.004a4bd0
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x218]
push eax
call fcn.004abb20
add esp, 4
cmp byte [esi + 0x18], 0
je 0x4a62cc
mov eax, dword [ebx - 0x10]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x4a8bfc
push 0
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push 1
push eax
call fcn.004abba0
add esp, 0xc
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 8]
jmp 0x4a958a
mov eax, dword [ebx + 4]
push dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004ab610
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x4a8c3a
push esi
call fcn.0043f800
push eax
push 0x4d01e8
push edi
call fcn.004a4bd0
add esp, 0x10
movzx eax, byte [esp + 0x50]
push eax
push esi
call fcn.004a41d0
push esi
call fcn.004ac080
jmp 0x4a588f
lea eax, [esp + 0x100]
mov dword [esp + 0xf8], 0
push eax
lea eax, [esp + 0x100]
mov dword [esp + 0x104], 0xffffffff
push eax
push dword [ebx + 8]
mov dword [esp + 0x108], 0xffffffff
push dword [ebx + 4]
push dword [esp + 0x20]
call fcn.0047c9c0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x14], ecx
cmp ecx, 5
jne 0x4a8cb2
mov dword [esp + 0x14], 0
mov dword [esp + 0xf8], 1
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
xor esi, esi
lea ecx, [ecx]
mov eax, dword [esp + esi*4 + 0xf8]
cdq
push edx
push eax
push edi
call fcn.004abba0
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x4a8cc0
mov edx, dword [esp + 0x10]
jmp 0x4a9583
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
add esp, 8
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
mov dword [esp + 0x28], ecx
cmp esi, 0xffffffff
jne 0x4a8d1e
mov esi, ecx
cmp byte [edi + 0x10], 3
jae 0x4a8d3a
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x4a8d3c
cmp dword [edi + 0x4c], 0
jl 0x4a8d3c
jg 0x4a8d3a
cmp dword [edi + 0x48], 0
jbe 0x4a8d3c
mov esi, ecx
cmp byte [edi + 0xf], 0
mov eax, 0x4cf8b2
jne 0x4a8d4d
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x4a8d78
push eax
call fcn.0049f710
add esp, 4
test eax, eax
je 0x4a8df0
push edi
call fcn.00494fe0
add esp, 4
test eax, eax
je 0x4a8df0
mov ecx, dword [esp + 0x28]
cmp esi, ecx
je 0x4a8df4
cmp ecx, 5
je 0x4a8d8e
cmp esi, 5
jne 0x4a8df4
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x3f], 0
je 0x4a98d9
cmp dword [eax + 0x98], 1
jg 0x4a98d9
cmp ecx, 5
jne 0x4a8dc2
push edi
call fcn.00493950
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x4a8df0
push esi
jmp 0x4a8dc9
cmp ecx, 4
jne 0x4a8dd2
push 2
push edi
call fcn.004949a0
add esp, 8
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [esp + 0x34]
call fcn.0047c520
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x4a8df4
mov esi, dword [esp + 0x28]
push esi
push edi
call fcn.004949a0
mov esi, dword [esp + 0x50]
add esp, 8
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x4a8e14
xor eax, eax
jmp 0x4a8e1b
mov eax, dword [eax*4 + 0x4d699c]
push eax
mov dword [esi + 0x10], eax
call fcn.0049f710
mov dword [esi + 0xc], eax
movzx eax, byte [esp + 0x54]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.004a41d0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a9583
push dword [esp + 0x10]
lea eax, [edi + 0x2c]
push eax
call fcn.0049adf0
mov edx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x4a958a
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 4]
shl ecx, 4
mov eax, dword [eax + 0x10]
push dword [ecx + eax + 4]
call fcn.0047a7e0
mov edx, eax
add esp, 4
mov dword [esp + 0x14], edx
cmp edx, 0x65
mov edx, dword [esp + 0x10]
jne 0x4a958a
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x14], 0
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [ecx + eax*4]
jmp 0x4a9583
cmp dword [ebx + 4], 0
jne 0x4a8ec4
mov edx, dword [esp + 0x10]
push edx
call fcn.00481240
add esp, 4
add ebx, 0x14
jmp 0x4a4d3f
or dword [edi + 0x58], 8
add ebx, 0x14
mov edx, dword [esp + 0x10]
jmp 0x4a4d3f
mov al, byte [ebx + 0xc]
mov edx, dword [esp + 0x10]
mov byte [esp + 0x118], al
test al, al
jne 0x4a8ef3
test dword [edx + 0x18], 0x4000
jne 0x4a958a
mov ecx, dword [ebx + 4]
push dword [esp + 0x118]
mov eax, dword [edx + 0x10]
push dword [ebx + 8]
shl ecx, 4
push dword [ecx + eax + 4]
call fcn.0047b160
mov edx, eax
add esp, 0xc
mov dword [esp + 0x14], edx
cmp dl, 6
jne case.0x4a4d6f.62
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.004a4bd0
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a958a
mov esi, dword [ebx + 0x10]
push esi
push dword [esp + 0x14]
call fcn.004ade40
add esp, 8
mov dword [esp + 0x14], eax
test esi, esi
je 0x4a589a
push dword [esi + 8]
push edi
call fcn.004ae610
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x4a9586
mov ecx, dword [esp + 0x18]
xor eax, eax
mov esi, dword [esp + 0x10]
mov dword [esp + 0x178], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x17c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x178], esi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x15c]
push eax
call fcn.004ab530
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x160]
push eax
call fcn.0043f800
add esp, 0xc
test eax, eax
je 0x4a9007
lea ecx, [edi + 0x2c]
push ecx
push eax
push dword [ebx + 4]
push esi
call fcn.004ae0c0
add esp, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x158]
push eax
call fcn.004abb20
add esp, 4
mov edx, esi
jmp 0x4a9586
mov eax, dword [esp + 0x10]
inc dword [eax + 0xa4]
push dword [ebx + 0x10]
push dword [ebx + 4]
push eax
call fcn.004ae190
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x14], eax
dec dword [edx + 0xa4]
jmp 0x4a958a
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x9c], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x4a995e
mov edi, dword [esi]
test edi, edi
je 0x4a995e
lea eax, [esp + 0x9c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x24], eax
call fcn.004ae610
add esp, 0x10
cmp dword [esp + 0x14], 0
jne 0x4a62cc
mov eax, dword [esp + 0x9c]
push 0
push 0xffffffffffffffff
push 0
mov dword [eax], esi
push dword [ebx + 4]
push dword [ebp + 8]
call fcn.004427f0
add esp, 0x14
test eax, eax
je 0x4a9909
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp 0x4a9583
mov eax, dword [ebx + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x28], 0
lea edi, [eax + eax*4]
mov eax, dword [esi + 0x38]
mov esi, dword [esi + 0xc]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x24]
mov edx, dword [ecx + edi*8 + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + edi*8]
mov dword [esp + 0x30], eax
xor eax, eax
test edx, edx
jle 0x4a912b
lea ecx, [ecx + edi*8]
add ecx, 0x50
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4a9120
mov edi, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x4c]
push edx
push dword [ebx + 0x10]
mov eax, dword [edi + 0x20]
push dword [esp + 0x3c]
push esi
call eax
push dword [esp + 0x68]
mov dword [esp + 0x2c], eax
push dword [ebp + 8]
call fcn.004ae610
add esp, 0x1c
cmp dword [esp + 0x14], 0
jne 0x4a9172
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x3c]
add esp, 4
mov byte [ecx + 0x19], 0
jmp 0x4a766c
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov byte [ecx + 0x19], 0
jmp 0x4a766c
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
cmp byte [edx + 0x19], 0
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
je 0x4a91b3
push edi
call fcn.004abbe0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, dword [ebp + 8]
add ebx, 0x14
jmp 0x4a4d3f
mov eax, dword [edx + 0x24]
mov esi, dword [eax]
xor eax, eax
mov ecx, dword [esi]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1a8], edi
mov ax, word [edi + 8]
and ax, word [esp + 0x108]
or ax, 1
mov word [edi + 8], ax
lea eax, [esp + 0x1a8]
push dword [ebx + 8]
push eax
push dword [edx + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x28], eax
call fcn.004ae610
mov eax, dword [esp + 0x1d0]
add esp, 0x14
test eax, eax
je 0x4a9241
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x50]
push eax
push edi
call fcn.004a41d0
push edi
jmp 0x4a5887
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x4a8bfc
mov eax, dword [edi + 0x24]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx + 0x24]
call eax
push esi
push dword [ebp + 8]
mov dword [esp + 0x20], eax
call fcn.004ae610
add esp, 0xc
cmp dword [esp + 0x14], 0
jne case.0x4a4d6f.14
mov eax, dword [esp + 0x30]
push dword [edi + 0x24]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4a92af
mov ebx, dword [ebx + 8]
mov ecx, dword [esp + 0x44]
dec ebx
lea ebx, [ebx + ebx*4]
lea ebx, [ecx + ebx*4]
mov edx, dword [esp + 0x10]
cmp dword [edx + 0xf0], 0
jne 0x4a9a93
mov ecx, dword [edx + 0x124]
test ecx, ecx
je 0x4a9583
mov edi, dword [esp + 0x90]
cmp edi, dword [esp + 0x98]
jb 0x4a9583
mov esi, dword [edx + 0x12c]
mov eax, edi
xor edx, edx
div esi
mov eax, dword [esp + 0x10]
sub esi, edx
add esi, edi
mov dword [esp + 0x98], esi
push dword [eax + 0x128]
call ecx
add esp, 4
test eax, eax
jne 0x4a9709
mov edx, dword [esp + 0x10]
jmp 0x4a9583
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x18]
push 1
mov esi, dword [eax + 8]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.004a41d0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
jne 0x4a62cc
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
mov edi, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x24], eax
call fcn.004ae610
mov edx, dword [esp + 0x20]
add esp, 0x10
and dword [edi + 0x58], 0xfffffff7
jmp 0x4a9586
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4a995e
mov eax, dword [edi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x4a995e
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
je 0x4a8bfc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov al, byte [eax + 0x45]
mov byte [esp + 0x23], al
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0xc]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x4a93cb
jmp 0x4a93c0
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4a93c0
mov ecx, dword [esp + 0x10]
mov al, byte [ebx + 3]
mov byte [ecx + 0x45], al
lea eax, [esp + 0x138]
push eax
mov eax, dword [esp + 0x34]
push esi
push edx
push edi
mov eax, dword [eax + 0x34]
call eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x33]
push edi
mov edi, dword [ebp + 8]
push edi
mov byte [ecx + 0x45], al
call fcn.004ae610
mov edx, dword [esp + 0x28]
add esp, 0x18
cmp dword [esp + 0x14], 0
jne 0x4a9432
cmp dword [ebx + 4], 0
je 0x4a9432
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], ecx
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
mov eax, dword [esp + 0x14]
cmp al, 0x13
jne 0x4a947e
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x4a947a
mov al, byte [ebx + 3]
cmp al, 4
jne 0x4a945e
mov esi, dword [esp + 0x18]
add ebx, 0x14
mov dword [esp + 0x14], 0
jmp 0x4a4d3f
cmp al, 5
jne 0x4a946f
mov eax, 2
mov byte [edi + 0x56], al
jmp 0x4a9586
movzx eax, al
mov byte [edi + 0x56], al
jmp 0x4a9586
mov eax, dword [esp + 0x14]
inc dword [edi + 0x5c]
mov esi, dword [esp + 0x18]
jmp 0x4a958e
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [esp + 0x10]
add edx, edx
add ebx, 0x14
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
jmp 0x4a4d3f
push ebx
push edi
call fcn.0046aff0
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [esp + 0x18]
add edx, edx
add esp, 8
mov ecx, dword [eax + 0x10]
mov esi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4a94f0
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x2c]
cmp ecx, edx
jae 0x4a94f0
mov ecx, edx
push ecx
push esi
call fcn.0047b1d0
mov esi, dword [esp + 0x20]
add esp, 8
cdq
add ebx, 0x14
mov dword [edi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [edi], eax
mov edi, dword [ebp + 8]
jmp 0x4a4d3f
mov edx, dword [esp + 0x10]
cmp dword [edx + 0xb0], 0
je 0x4a9569
test dword [edi + 0x58], 0x200
jne 0x4a9569
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x4a953a
mov eax, dword [edi + 0xa8]
test eax, eax
je 0x4a9569
push eax
push edi
call fcn.004a9d80
mov edi, dword [esp + 0x18]
mov esi, eax
push esi
push dword [edi + 0xb4]
mov ecx, dword [edi + 0xb0]
call ecx
push esi
push edi
call fcn.0047f2c0
mov esi, dword [esp + 0x30]
mov edx, edi
mov edi, dword [ebp + 8]
add esp, 0x18
cmp dword [ebx + 8], 0
je 0x4a958a
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebx, [ecx + eax*4]
jmp 0x4a9583
mov edx, eax
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add ebx, 0x14
mov dword [esp + 0x1c], ebx
test eax, eax
je 0x4a4d43
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
sub ebx, dword [esp + 0x44]
push dword [eax + 0x2c]
mov dword [eax + 0x50], edx
push dword [eax + 0xa8]
mov eax, 0x66666667
imul ebx
mov ebx, dword [esp + 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.0043b3c0
push dword [ebp + 8]
call fcn.004aa620
add esp, 0x18
cmp ebx, 0xc0a
mov ebx, dword [esp + 0x10]
jne 0x4a95f0
mov byte [ebx + 0x41], 1
mov al, byte [esp + 0x5b]
mov edi, 1
test al, al
je 0x4a9626
movzx esi, al
mov eax, dword [ebx + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0049b350
add esp, 4
cmp esi, edi
je 0x4a9626
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0049b350
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x90]
add dword [eax + 0x7c], ecx
cmp dword [eax + 0x64], 0
je 0x4a9654
push eax
call fcn.004b6e90
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 4]
mov dword [edi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x4a96dc
mov al, byte [ebx + 3]
test al, al
je 0x4a96a2
movzx eax, al
mov eax, dword [eax*4 + 0x4d7288]
test eax, eax
je 0x4a96a4
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4a96a4
push ecx
push eax
push str._s_constraint_failed:__s
push edi
call fcn.004a4bd0
add esp, 0x10
jmp 0x4a96c2
xor eax, eax
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4a96b3
push ecx
push 0x4d01e8
jmp 0x4a96b9
push eax
push str._s_constraint_failed
push edi
call fcn.004a4bd0
add esp, 0xc
push dword [edi + 0x2c]
push dword [edi + 0xa8]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0043b3c0
add esp, 0x14
push edi
call fcn.004aa620
add esp, 4
cmp eax, 5
jne 0x4a96f7
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x50], edi
jmp 0x4a9626
mov edi, dword [edi + 0x50]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x4a9626
mov edx, 9
mov dword [esp + 0x14], edx
jmp 0x4a95a1
mov eax, dword [edi + 0x48]
add eax, 2
or eax, 1
mov dword [edi + 0x48], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edi + 0x14], esi
xor edi, edi
cmp dword [ebx + 8], edi
jle 0x4a976e
jmp 0x4a9740
mov eax, 0x1000
test word [esi + 8], ax
je 0x4a975c
push esi
call fcn.004ab950
add esp, 4
test eax, eax
jne 0x4a9918
push esi
call fcn.004aba10
inc edi
add esp, 4
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x4a9740
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x41], 0
jne 0x4a991c
sub ebx, dword [esp + 0x44]
mov eax, 0x66666667
mov ecx, dword [ebp + 8]
mov edi, 0x64
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ecx + 0x4c], eax
jmp 0x4a9626
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [ebp + 8]
call fcn.004a4bd0
mov edx, 5
add esp, 8
mov dword [esp + 0x14], edx
add ebx, 0x14
jmp 0x4a95a1
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x4a97a7
sub ebx, dword [esp + 0x44]
mov eax, 0x66666667
mov ecx, dword [ebp + 8]
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x4c], eax
mov byte [edi + 0x3f], 0
mov edi, 5
mov dword [ecx + 0x50], edi
jmp 0x4a9626
push str.no_such_savepoint:__s
push dword [ebp + 8]
call fcn.004a4bd0
mov edx, 1
add esp, 0xc
mov dword [esp + 0x14], edx
add ebx, 0x14
jmp 0x4a95a1
mov dword [esp + 0x14], 8
jmp 0x4a7884
sub ebx, dword [esp + 0x44]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x4c], eax
mov edi, 5
mov eax, dword [ebp + 8]
mov dword [eax + 0x50], edi
jmp 0x4a9626
push 0x126cf
call fcn.0047e090
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x4a7884
mov edx, 0x204
add ebx, 0x14
mov dword [esp + 0x14], edx
jmp 0x4a95a1
mov edx, dword [esp + 0x14]
cmp edx, 0xc0a
je 0x4a95a1
push edx
call fcn.004810f0
push eax
push 0x4d01e8
push dword [ebp + 8]
call fcn.004a4bd0
add esp, 0x10
jmp 0x4a959d
mov edx, 6
mov byte [edi + 0x56], 2
mov dword [esp + 0x14], edx
add ebx, 0x14
jmp 0x4a95a1
push str.too_many_levels_of_trigger_recursion
push dword [ebp + 8]
mov dword [esp + 0x1c], 1
call fcn.004a4bd0
add esp, 8
mov edx, 1
add ebx, 0x14
jmp 0x4a95a1
mov dword [esp + 0x14], 1
mov eax, str.into
cmp esi, 5
je 0x4a98f0
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp + 8]
call fcn.004a4bd0
add esp, 0xc
add ebx, 0x14
jmp 0x4a959d
push dword [esp + 0x9c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 8]
push str.out_of_memory
push edi
mov byte [edx + 0x41], 1
call fcn.004a4bd0
mov edx, 7
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x4a95a1
mov edi, dword [ebp + 8]
push str.string_or_blob_too_big
push edi
call fcn.004a4bd0
mov edx, 0x12
add esp, 8
mov dword [esp + 0x14], edx
jmp 0x4a95a1
mov edx, 6
add ebx, 0x14
mov dword [esp + 0x14], edx
jmp 0x4a95a1
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], ecx
test ecx, ecx
je 0x4a99a1
cmp byte [eax + 0x3f], 0
jne 0x4a99a1
test edx, edx
jne 0x4a99a1
cmp dword [eax + 0x9c], edx
jle 0x4a99a1
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
jmp 0x4a97aa
movzx eax, byte [eax + 0x3f]
cmp ecx, eax
jne 0x4a99f6
test ecx, ecx
jne 0x4a99cd
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.004a4bd0
mov edx, 1
add esp, 8
mov dword [esp + 0x14], edx
add ebx, 0x14
jmp 0x4a95a1
mov eax, str.cannot_rollback___no_transaction_is_active
test edx, edx
jne 0x4a99db
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push edi
call fcn.004a4bd0
mov edx, 1
add esp, 8
mov dword [esp + 0x14], edx
add ebx, 0x14
jmp 0x4a95a1
test edx, edx
je 0x4a9a2e
mov edi, dword [esp + 0x10]
push 0x204
push edi
call fcn.0049a2b0
mov esi, dword [ebp + 8]
add esp, 8
mov byte [edi + 0x3f], 1
push edi
call fcn.0047cd70
mov edi, dword [esi + 0x50]
add esp, 4
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x4a9626
push 1
push edi
call fcn.004a43b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x4a9626
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x8c]
mov esi, dword [ebp + 8]
push esi
mov byte [edi + 0x3f], al
call fcn.004aa620
add esp, 4
cmp eax, 5
jne 0x4a9a13
sub ebx, dword [esp + 0x44]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x8c]
mov byte [edi + 0x3f], al
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x4a9626
mov edi, dword [ebp + 8]
mov ecx, dword [str.interrupted]
mov eax, str.unknown_error
mov dword [esp + 0x14], 9
mov dword [edi + 0x50], 9
test ecx, ecx
je 0x4a9ab6
mov eax, ecx
push eax
push 0x4d01e8
push edi
call fcn.004a4bd0
add esp, 0xc
jmp 0x4a959d
mov edx, dword [esp + 0x10]
jmp 0x4a991f