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

Disassembly:
sub esp, 0x30c
mov eax, dword [0x549950]
xor eax, esp
mov dword [esp + 0x304], eax
push ebx
push ebp
push esi
mov esi, ecx
mov ebp, dword [esi + 4]
mov ecx, dword [esi + 8]
push edi
mov edi, dword [esi]
mov al, byte [edi + 0x42]
mov edx, dword [edi + 0x20]
xor ebx, ebx
mov byte [esp + 0x3c], al
mov eax, dword [edi + 0x24]
push esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
mov byte [esp + 0x57], bl
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
call fcn.00441b30
add esp, 4
cmp dword [esi + 0x50], 7
je 0x44c885
mov dword [esi + 0x50], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x14], ebx
mov ecx, dword [edi + 0xf8]
mov dword [edi + 0x184], ebx
test ecx, ecx
jne 0x44c8d0
cmp dword [edi + 0x130], ebx
je 0x447d34
mov edi, dword [edi + 0x138]
mov eax, dword [esi + 0x84]
xor edx, edx
div edi
sub edi, edx
mov dword [esp + 0x94], edi
mov esi, dword [esi + 0x4c]
lea edx, [esi + esi*4]
mov eax, ebp
lea ebp, [eax + edx*4]
nop
mov cl, byte [ebp]
inc dword [esp + 0x74]
movzx eax, cl
cmp eax, 0x9e
ja case.0x447d55.62
jmp dword [eax*4 + 0x44ca80]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
mov eax, 4
mov word [ecx + 8], ax
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x44c3d6
mov ebp, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [ebp + ebp*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4]
mov ecx, 0x80
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx*8]
mov eax, dword [ebp + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebp + 8], 0
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
lea eax, [ebp + ebp*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4 - 0x14]
mov edx, 0x80
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
mov edx, 4
sub ebp, edi
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
lea eax, [esi + esi*4]
lea ebp, [edi + eax*4]
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je case.0x447d55.62
mov esi, dword [esp + 0x14]
mov ecx, ebp
sub ecx, dword [esp + 0x38]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [ebp + 4], 0
jne 0x44c465
mov ebx, dword [esi + 0xb8]
test ebx, ebx
je 0x44c465
mov eax, dword [ebx + 4]
dec dword [esi + 0xc0]
mov edi, dword [esp + 0x18]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x64]
add dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
call fcn.004424e0
cmp dword [ebp + 8], 4
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
jne 0x447eec
mov ecx, dword [esi + 4]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov ebp, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [esp + 0x38], ebp
lea eax, [eax + eax*4]
lea ebp, [ebp + eax*4]
mov dword [esp + 0x1c], edx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
add ebp, 0x14
fstp qword [eax]
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov edi, dword [ebp + 0x10]
mov esi, eax
mov eax, edi
mov byte [ebp], 0x18
call fcn.00426540
cmp byte [esp + 0x3c], 1
mov dword [ebp + 4], eax
je 0x447fef
push 0
push 1
or ebx, 0xffffffff
push edi
mov eax, ebx
mov ecx, esi
call fcn.004400d0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4487c1
movzx ecx, byte [esp + 0x3c]
mov eax, esi
call fcn.0043f550
test eax, eax
jne 0x44c885
mov edx, 0x800
or word [esi + 8], dx
mov dword [esi + 0x18], eax
cmp byte [ebp + 1], bl
jne 0x447fe0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
call fcn.00423cc0
mov byte [ebp + 1], bl
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + 0x5c]
jg 0x4487c1
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, 0xa02
mov word [eax + 8], cx
mov edx, dword [ebp + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp + 4]
mov dl, byte [esp + 0x3c]
mov dword [eax + 0xc], ecx
mov byte [eax + 0xa], dl
cmp byte [ebp + 3], 0
je case.0x447d55.62
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*8]
or esi, dword [edx + ecx*8 + 4]
je case.0x447d55.62
mov ecx, 0xa10
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 8]
mov edx, dword [ebp + 4]
neg edx
sbb edx, edx
and edx, 0x100
inc edx
movzx ebx, dx
mov edi, eax
mov word [edi + 8], bx
test esi, esi
jle case.0x447d55.62
jmp 0x448090
add edi, 0x28
mov eax, edi
call fcn.0043fda0
dec esi
mov word [edi + 8], bx
test esi, esi
jg 0x448090
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dx, word [ecx + eax*8 + 8]
lea eax, [ecx + eax*8]
mov ecx, 0xff7f
and dx, cx
or dx, 1
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov edx, dword [ebp + 0x10]
push 0
mov esi, eax
mov eax, dword [ebp + 4]
push 0
push edx
mov ecx, esi
call fcn.004400d0
mov al, byte [esp + 0x48]
add esp, 0xc
mov byte [esi + 0xa], al
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 0x3c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8 - 0x28]
mov ecx, esi
call fcn.0043ff50
test eax, eax
jne 0x4487c1
mov eax, ebp
mov edx, edi
call fcn.00447c40
push 0x800
push esi
push eax
call fcn.0043ffa0
add esp, 0xc
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*8]
nop
mov eax, esi
call fcn.00440090
mov eax, 0x1000
test word [esi + 8], ax
je 0x448181
mov eax, esi
call fcn.0043f6b0
test eax, eax
jne 0x44c885
add ebx, 0x28
add esi, 0x28
sub edi, 1
jne 0x448160
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
lea ecx, [ecx]
push 0x1000
push edi
push esi
call fcn.0043ffa0
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x4481d9
mov eax, esi
call fcn.0043f6b0
test eax, eax
jne 0x44c885
mov edx, ebx
dec ebx
test edx, edx
je case.0x447d55.62
add esi, 0x28
add edi, 0x28
jmp 0x4481b0
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 8]
push 0x1000
lea eax, [eax + eax*4]
push edx
lea ecx, [ecx + eax*8]
push ecx
call fcn.0043ffa0
add esp, 0xc
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [ebp + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.0043fe00
add esp, 8
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edi, [eax + ecx*8]
mov ecx, dword [ebp + 8]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0xc]
lea esi, [eax + edx*8]
mov dl, byte [esi + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
movzx eax, word [edi + 8]
or dl, al
test dl, 1
je 0x448281
mov eax, ebx
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
test eax, 0x4000
je 0x448297
mov eax, edi
call fcn.0043f720
test eax, eax
jne 0x44c885
mov eax, 0x4000
test word [esi + 8], ax
je 0x4482b1
mov eax, esi
call fcn.0043f720
test eax, eax
jne 0x44c885
test byte [edi + 8], 0x12
jne 0x4482d0
mov ecx, dword [esp + 0x3c]
push 0
push ecx
mov eax, edi
call fcn.0043f7e0
add esp, 8
test eax, eax
jne 0x44c885
test byte [esi + 8], 0x12
jne 0x4482ef
mov edx, dword [esp + 0x3c]
push 0
push edx
mov eax, esi
call fcn.0043f7e0
add esp, 8
test eax, eax
jne 0x44c885
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x5c]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x4487c1
jl 0x44831e
cmp dword [esp + 0x120], eax
ja 0x4487c1
mov ecx, dword [esp + 0x120]
xor eax, eax
cmp ebx, esi
sete al
add ecx, 2
call fcn.0043f570
test eax, eax
jne 0x44c885
mov cx, word [ebx + 8]
mov edx, 0x3e00
and cx, dx
or cx, 2
mov word [ebx + 8], cx
cmp ebx, esi
je 0x448368
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call fcn.004e9720
add esp, 0xc
mov eax, dword [edi + 0xc]
mov edx, dword [ebx + 0x10]
mov ecx, dword [edi + 0x10]
add edx, dword [esi + 0xc]
push eax
push ecx
push edx
call fcn.004e9720
mov ecx, dword [ebx + 0x10]
mov eax, dword [esp + 0x12c]
mov byte [eax + ecx], 0
mov edx, dword [ebx + 0x10]
mov byte [edx + eax + 1], 0
mov dl, byte [esp + 0x48]
mov ecx, 0x200
or word [ebx + 8], cx
add esp, 0xc
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], dl
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edi
call fcn.00447be0
movzx ecx, ax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [ebx + edx*8]
mov eax, esi
mov dword [esp + 0x24], ecx
call fcn.00447be0
movzx ecx, ax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [esi + 8]
or al, byte [edi + 8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], edx
test al, 1
jne 0x448618
and cl, byte [esp + 0x24]
test cl, 4
je 0x448511
mov edx, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x5c], edx
movzx edx, byte [ebp]
add edx, 0xffffffa7
mov dword [esp + 0x58], ebx
mov byte [esp + 0x2b], 1
cmp edx, 3
ja case.default.0x448431
jmp dword [edx*4 + 0x44ccfc]
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00427800
add esp, 0xc
test eax, eax
jne 0x448516
jmp 0x4484e4
push ecx
push eax
lea edx, [esp + 0x60]
call fcn.004278a0
add esp, 8
test eax, eax
jne 0x448516
jmp 0x4484e4
push ecx
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.004278f0
add esp, 0xc
test eax, eax
jne 0x448516
jmp 0x4484e4
mov edx, eax
or edx, ecx
je 0x448618
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x4484a6
test ebx, ebx
jne 0x4484a6
cmp dword [esp + 0x5c], 0x80000000
je 0x448516
push ecx
push eax
mov eax, dword [esp + 0x64]
push eax
push ebx
call fcn.004e8010
jmp 0x4484dc
mov edx, eax
or edx, ecx
je 0x448618
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x4484cf
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x64]
push eax
push ebx
call fcn.004efde0
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x447d40
mov byte [esp + 0x2b], 0
mov eax, edi
call fcn.0043fb80
fstp qword [esp + 0x40]
mov eax, esi
call fcn.0043fb80
movzx eax, byte [ebp]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x448534
jmp dword [eax*4 + 0x44cd0c]
fadd qword [esp + 0x40]
jmp 0x4485b8
fsub qword [esp + 0x40]
jmp 0x4485b8
fmul qword [esp + 0x40]
jmp 0x4485b8
fldz
fld qword [esp + 0x40]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x448614
fdivp st(1)
jmp 0x4485b8
fld qword [esp + 0x40]
call fcn.004e7f56
mov esi, eax
mov edi, edx
call fcn.004e7f56
mov ecx, esi
or ecx, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
je 0x448618
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x44859a
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004efde0
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], edx
fild qword [esp + 0x180]
sub esp, 8
fst qword [esp + 0x48]
fstp qword [esp]
call fcn.00426500
add esp, 8
test eax, eax
jne 0x448618
mov esi, dword [esp + 0x34]
fld qword [esp + 0x40]
mov dx, word [esi + 8]
fstp qword [esi]
mov eax, 0x3e00
and dx, ax
mov al, byte [esp + 0x20]
or al, byte [esp + 0x24]
or dx, 8
mov word [esi + 8], dx
test al, 8
jne case.0x447d55.62
cmp byte [esp + 0x2b], 0
jne case.0x447d55.62
call fcn.0043fbd0
add ebp, 0x14
jmp 0x447d40
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x34]
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
test eax, eax
je case.0x447d55.62
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
push 0
push 0
lea eax, [edx + ecx*8]
call fcn.0043fe00
add esp, 8
add ebp, 0x14
jmp 0x447d40
movzx ebx, byte [ebp + 3]
mov edi, dword [esp + 0x18]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
mov eax, edi
call fcn.00423fa0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x44c885
mov dword [ecx], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x24
jmp 0x4486b9
mov edi, dword [esp + 0x18]
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x34], eax
cmp dword [ebx], eax
je 0x4486f5
movzx ecx, byte [ebx + 0x1a]
sub ecx, 1
mov dword [ebx], eax
js 0x4486f5
lea edx, [ebx + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x4486e0
mov eax, dword [ebx]
mov cx, word [eax + 8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov byte [ebx + 0x19], 0
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
movzx ecx, byte [ebx + 0x1a]
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0xc]
lea eax, [ebx + 0x1c]
push eax
push ecx
push ebx
call edx
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
add esp, 0xc
cmp byte [ebx + 0x19], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
je 0x448798
cmp dword [ebx + 0x14], 0
je 0x448770
mov edx, dword [ebx]
push edx
call fcn.00445830
mov esi, dword [esp + 0x18]
add esp, 4
push eax
push 0x52f658
call fcn.00440a50
mov eax, dword [ebx + 0x14]
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
push ecx
push edx
add eax, 0xd4
call fcn.004436c0
add esp, 8
cmp dword [esp + 0x10], 0
jne 0x44c7a5
mov eax, dword [esp + 0x34]
test byte [eax + 8], 0x12
je case.0x447d55.62
movzx ecx, byte [esp + 0x3c]
mov eax, dword [ebx]
call fcn.0043f550
mov ecx, dword [ebx]
call fcn.0043ff50
test eax, eax
je case.0x447d55.62
mov esi, dword [esp + 0x14]
push str.string_or_blob_too_big
call fcn.00440a50
add esp, 4
mov dword [esp + 0x10], 0x12
jmp 0x44c7a5
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + ecx*8]
mov ecx, dword [ebp + 8]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
mov edx, dword [ebp + 0xc]
lea edx, [edx + edx*4]
lea eax, [eax + edx*8]
mov dl, byte [ecx + 8]
or dl, byte [esi + 8]
mov dword [esp + 0x34], eax
test dl, 1
je 0x44881a
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
call fcn.0043fb10
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.0043fb10
mov esi, eax
mov al, byte [ebp]
cmp al, 0x55
jne 0x44883c
and ebx, esi
and edi, edx
jmp 0x44890c
cmp al, 0x56
jne 0x448849
or ebx, esi
or edi, edx
jmp 0x44890c
mov ecx, esi
or ecx, edx
je 0x44890c
test edx, edx
jg 0x448881
jl 0x44885d
test esi, esi
jae 0x448876
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x448881
jg 0x44886f
cmp esi, 0xffffffc0
jbe 0x448881
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x4488a2
jg 0x448881
cmp esi, 0x40
jb 0x4488a2
test edi, edi
jg 0x448899
jl 0x44888b
test ebx, ebx
jae 0x448899
cmp al, 0x57
je 0x448899
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x44890c
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x44890c
cmp al, 0x57
mov edx, edi
mov ecx, esi
mov eax, ebx
jne 0x4488c1
call fcn.004e80c0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jmp 0x4488fe
call fcn.004fb3e0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
test edi, edi
jg 0x4488fe
jl 0x4488de
test ebx, ebx
jae 0x4488fe
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004e80c0
or dword [esp + 0xa8], eax
or dword [esp + 0xac], edx
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
mov eax, dword [esp + 0x34]
mov dx, word [eax + 8]
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov dword [eax], ebx
mov dword [eax + 4], edi
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
call fcn.0043fc40
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 8]
lea esi, [edx + ecx*8]
test al, 4
jne 0x4489a4
test al, 8
jne 0x448980
test al, 2
je 0x448985
push 1
mov eax, esi
call fcn.00447a80
add esp, 4
jmp 0x448985
call fcn.0043fbd0
movzx eax, word [esi + 8]
test al, 4
jne 0x4489a4
cmp dword [ebp + 8], 0
jne 0x44c3d6
mov dword [esp + 0x10], 0x14
jmp 0x44c7a5
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je case.0x447d55.62
call fcn.0043fc70
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x448a02
mov eax, esi
call fcn.0043f720
mov dword [esp + 0x10], eax
jmp 0x448a0a
mov dword [esp + 0x10], 0
mov dl, byte [esp + 0x3c]
mov cl, byte [ebp + 8]
mov eax, esi
call fcn.0043fd00
cmp dword [esp + 0x10], 0
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
movzx ecx, word [edi + edx*8 + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
lea edx, [edi + edx*8]
mov dword [esp + 0x34], ecx
mov bl, al
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x34]
mov cl, bl
or cl, al
test cl, 1
mov cl, byte [ebp + 3]
mov dword [esp + 0x30], edx
je 0x448acc
test cl, cl
jns 0x448a90
test al, 1
je 0x448a86
test bl, 1
je 0x448a86
test dword [esp + 0x2c], 0x100
jne 0x448a86
xor eax, eax
jmp 0x448bbe
mov eax, 1
jmp 0x448bbe
test cl, 0x20
je 0x448abb
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov cx, word [edi + edx*8 + 8]
lea eax, [edi + edx*8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x447d40
test cl, 0x10
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
and cl, 0x47
cmp cl, 0x43
jl 0x448b02
and al, 0xe
cmp al, 2
jne 0x448ae8
mov eax, dword [esp + 0x30]
push 0
call fcn.00447a80
add esp, 4
and bl, 0xe
cmp bl, 2
jne 0x448b77
push 0
mov eax, esi
call fcn.00447a80
add esp, 4
jmp 0x448b77
cmp cl, 0x42
jne 0x448b77
test al, 2
jne 0x448b40
test al, 0xc
je 0x448b40
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
push 1
push eax
mov eax, edi
call fcn.0043f7e0
mov ax, word [esp + 0x3c]
mov cx, word [edi + 8]
xor cx, ax
mov edx, 0x7e00
and cx, dx
add esp, 8
xor ax, cx
mov word [esp + 0x34], ax
test bl, 2
jne 0x448b77
test bl, 0xc
je 0x448b77
mov eax, dword [esp + 0x3c]
push 1
push eax
mov eax, esi
call fcn.0043f7e0
mov ax, word [esp + 0x34]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x7e00
and cx, dx
add esp, 8
xor ax, cx
mov word [esp + 0x2c], ax
mov edi, 0x4000
test dword [esp + 0x34], edi
je 0x448b93
mov eax, dword [esp + 0x30]
call fcn.0043f720
and dword [esp + 0x34], 0xbfff
test dword [esp + 0x2c], edi
je 0x448ba8
mov eax, esi
call fcn.0043f720
and dword [esp + 0x2c], 0xbfff
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x30]
mov edx, esi
call fcn.00444520
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
movzx ecx, byte [ebp]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x448bca
jmp dword [ecx*4 + 0x44cd1c]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x448c05
xor ecx, ecx
test eax, eax
setne cl
jmp 0x448c05
xor ecx, ecx
test eax, eax
setl cl
jmp 0x448c05
xor ecx, ecx
test eax, eax
setle cl
jmp 0x448c05
xor ecx, ecx
test eax, eax
setg cl
jmp 0x448c05
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
mov cx, word [esp + 0x34]
mov word [edx + 8], cx
mov dx, word [esp + 0x2c]
mov word [esi + 8], dx
test byte [ebp + 3], 0x20
je 0x448f4b
mov ecx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [edi + ecx*8 + 8]
lea ecx, [edi + ecx*8]
mov esi, 0x3e00
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0x10]
add eax, 4
mov dword [esp + 0x9c], eax
add ebp, 0x14
jmp 0x447d40
test byte [ebp + 3], 1
jne 0x448c75
mov dword [esp + 0x9c], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 4]
xor esi, esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], edx
test ecx, ecx
jle 0x448d1a
lea ecx, [eax + 0x14]
mov dword [esp + 0x30], ecx
jmp 0x448ca4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x448cb4
mov ecx, dword [ecx + esi*4]
jmp 0x448cb6
mov ecx, esi
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x30]
mov edi, dword [edx]
movzx edx, byte [esi + eax]
mov eax, dword [esp + 0x40]
add eax, ecx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
add ecx, ebx
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edx + eax*8]
lea edx, [edx + ecx*8]
call fcn.00444520
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x448d0a
add dword [esp + 0x30], 4
inc esi
cmp esi, dword [esp + 0x4c]
jl 0x448ca0
mov dword [esp + 0x9c], eax
add ebp, 0x14
jmp 0x447d40
cmp dword [esp + 0x24], 0
je 0x448d1a
neg eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x9c], 0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0xbc]
test eax, eax
jge 0x448d4f
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x38]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
add ebp, 0x14
jmp 0x447d40
jne 0x448d68
mov ebp, dword [ebp + 8]
mov edx, dword [esp + 0x38]
lea ecx, [ebp + ebp*4]
lea ebp, [edx + ecx*4 - 0x14]
add ebp, 0x14
jmp 0x447d40
mov ebp, dword [ebp + 0xc]
mov ecx, dword [esp + 0x38]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 1
lea ecx, [edi + edx*8]
je 0x448d9a
mov esi, 2
jmp 0x448dac
call fcn.0043fb10
or eax, edx
je 0x448daa
mov esi, 1
jmp 0x448dac
xor esi, esi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
je 0x448dc3
mov eax, 2
jmp 0x448dd5
call fcn.0043fb10
or eax, edx
je 0x448dd3
mov eax, 1
jmp 0x448dd5
xor eax, eax
cmp byte [ebp], 0x48
jne 0x448de8
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x528dc0]
jmp 0x448df3
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x528dcc]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
cmp eax, 2
jne 0x448e1d
mov dx, word [ecx + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x447d40
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
mov dword [ecx], eax
mov eax, 0x3e00
and dx, ax
or dx, 4
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0043fda0
test byte [edi + 8], 1
jne case.0x447d55.62
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.0043fb10
or eax, edx
jne 0x448e8d
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0043fda0
test byte [edi + 8], 1
jne case.0x447d55.62
mov ecx, 4
mov word [esi + 8], cx
mov ecx, edi
call fcn.0043fb10
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xd0]
mov ecx, dword [ebp + 4]
add eax, ecx
cmp byte [eax], 0
jne 0x44c3d6
mov byte [eax], 1
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
test byte [eax + edx*8 + 8], 1
lea eax, [eax + edx*8]
je 0x448f21
mov eax, dword [ebp + 0xc]
jmp 0x448f4b
call fcn.0043fb80
fcomp qword [0x534e60]
fnstsw ax
test ah, 0x44
jnp 0x448f3a
mov eax, 1
jmp 0x448f3c
xor eax, eax
cmp byte [ebp], 0x2e
jne 0x448f4b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
test byte [eax + edx*8 + 8], 1
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp + 8]
mov dword [esp + 0xd8], edx
lea ecx, [esp + 0x7c]
lea edx, [esp + 0xd8]
mov dword [esp + 0x7c], eax
call fcn.00443cd0
mov ecx, dword [ebp + 0xc]
mov edi, dword [esp + 0xd8]
mov ebx, dword [edi + 0x54]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov ebx, dword [edi + 0x14]
lea edx, [ecx + edx*8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ebx
test eax, eax
jne 0x44c7a5
mov eax, dword [edi + 0x40]
cmp eax, dword [esi + 0x48]
mov eax, dword [esp + 0x7c]
je 0x449134
cmp byte [edi + 2], 0
je 0x449040
cmp byte [edi], 3
jne 0x449031
mov eax, ebx
lea edx, [eax + eax*4]
mov ebx, dword [ecx + edx*8 + 0xc]
lea eax, [ecx + edx*8]
mov dword [edi + 0x48], ebx
mov dword [edi + 0x44], ebx
mov eax, dword [eax + 0x10]
mov dword [esp + 0xb8], ebx
mov dword [edi + 0x50], eax
jmp 0x4490bd
mov eax, edx
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
cmp byte [edi + 4], 0
mov eax, ebx
jne 0x44907e
call fcn.004384b0
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x18c], edx
lea esi, [esp + 0xb8]
mov edx, ebx
mov dword [esp + 0x188], ecx
call fcn.004389d0
mov dword [edi + 0x50], eax
mov eax, dword [esp + 0x188]
mov dword [edi + 0x44], eax
jmp 0x44909a
call fcn.004384b0
mov ecx, dword [ebx + 0x1c]
lea esi, [esp + 0xb8]
mov edx, ebx
mov dword [edi + 0x44], ecx
call fcn.004389d0
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x44]
mov ebx, dword [esp + 0xb8]
cmp eax, ebx
ja 0x4490ad
mov dword [edi + 0x48], eax
jmp 0x4490bd
mov edx, dword [esp + 0x18]
cmp eax, dword [edx + 0x5c]
ja 0x4487c1
mov dword [edi + 0x48], ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x48]
mov dword [edi + 0x40], ecx
mov ecx, dword [edi + 0x50]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4490e1
movzx eax, al
mov dword [esp + 0xec], eax
mov ecx, 1
jmp 0x4490f7
lea esi, [esp + 0xec]
call fcn.00427640
movzx ecx, al
mov eax, dword [esp + 0xec]
movzx edx, cl
xor ecx, ecx
mov dword [edi + 0x4c], edx
mov word [edi + 0x12], cx
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
cmp ebx, eax
jae 0x449144
xor edx, edx
mov dword [edi + 0x50], edx
mov dword [edi + 0x48], edx
cmp eax, 0x18003
ja 0x449121
cmp eax, dword [edi + 0x44]
jbe 0x449144
mov eax, 0x12c96
call fcn.0048f520
mov dword [esp + 0x10], eax
jmp 0x44c7a5
movzx edx, word [edi + 0x12]
cmp edx, eax
jg 0x449358
mov ecx, dword [esp + 0x30]
mov eax, dword [edi + 0x4c]
cmp eax, dword [ecx]
jae 0x44930f
cmp dword [edi + 0x50], 0
jne 0x4491d9
xor eax, eax
xor edx, edx
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
cmp byte [edi + 4], al
sete dl
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x30]
push eax
lea eax, [esp + 0x1c8]
call fcn.004403b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x34], eax
jmp 0x4491e0
mov ecx, dword [edi + 0x50]
mov dword [esp + 0x34], ecx
movzx esi, word [edi + 0x12]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x34]
mov ebx, dword [edi + 0x4c]
mov eax, dword [eax]
add ebx, edx
add eax, edx
lea edx, [edi + esi*4 + 0x58]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], edx
lea ebx, [ebx]
movzx eax, byte [ebx]
mov dword [esp + 0x48], eax
cmp eax, 0x80
jae 0x44924c
movzx eax, al
movzx eax, byte [eax + 0x528ce8]
cdq
inc ebx
add ecx, eax
adc dword [esp + 0x84], edx
mov dword [esp + 0x80], ecx
jmp 0x44927f
lea esi, [esp + 0x48]
mov ecx, ebx
call fcn.00427640
movzx ecx, al
mov eax, dword [esp + 0x48]
add ebx, ecx
call fcn.00443e40
add dword [esp + 0x80], eax
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x80]
adc dword [esp + 0x84], 0
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [eax], edx
add eax, 4
inc esi
cmp esi, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], esi
jg 0x4492ae
cmp ebx, eax
jb 0x449220
mov edx, ebx
sub edx, dword [esp + 0x34]
mov word [edi + 0x12], si
mov dword [edi + 0x4c], edx
cmp ebx, eax
jb 0x4492df
ja 0x44c605
mov eax, dword [edi + 0x44]
xor edx, edx
cmp ecx, eax
jne 0x44c605
cmp dword [esp + 0x84], edx
jne 0x44c605
mov edx, dword [edi + 0x44]
xor eax, eax
cmp dword [esp + 0x84], eax
ja 0x44c605
jb 0x4492fb
cmp ecx, edx
ja 0x44c605
cmp dword [edi + 0x50], 0
jne 0x449317
lea eax, [esp + 0x1c0]
call fcn.0043fa90
jmp 0x449317
mov dword [esp + 0x48], 0
movzx eax, word [edi + 0x12]
mov esi, dword [esp + 0x7c]
cmp eax, esi
jg 0x449364
cmp byte [ebp + 1], 0xf8
jne 0x449347
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x24]
push 0x800
push ecx
push edx
call fcn.0043ffa0
add esp, 0xc
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x24]
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [edi + eax*4 + 0x58]
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
mov ebx, dword [esp + 0x24]
mov ecx, 0x2460
test word [ebx + 8], cx
je 0x44937a
mov eax, ebx
call fcn.0043fda0
mov dl, byte [esp + 0x3c]
mov byte [ebx + 0xa], dl
mov eax, dword [edi + 0x48]
mov edx, dword [esp + 0x30]
cmp eax, dword [edx + esi*4 + 4]
jb 0x44941a
mov edi, dword [edi + 0x50]
add edi, dword [edx + esi*4]
mov edx, dword [esp + 0x48]
cmp edx, 0xc
jae 0x4493b2
mov eax, ebx
mov ecx, edi
call fcn.00443f70
add ebp, 0x14
jmp 0x447d40
lea esi, [edx - 0xc]
shr esi, 1
lea ecx, [esi + 2]
cmp dword [ebx + 0x18], ecx
mov dword [ebx + 0xc], esi
jge 0x4493dc
mov edx, 1
xor eax, eax
mov word [ebx + 8], dx
call fcn.0043f570
test eax, eax
jne 0x44c885
jmp 0x4493e2
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0x10]
push esi
push edi
push ecx
call fcn.004e9720
mov edx, dword [ebx + 0x10]
mov byte [esi + edx], 0
mov eax, dword [ebx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x54]
and eax, 1
mov cx, word [eax*2 + 0x528dd8]
add esp, 0xc
mov word [ebx + 8], cx
add ebp, 0x14
jmp 0x447d40
mov al, byte [ebp + 3]
test al, 0xc0
je 0x449433
cmp dword [esp + 0x48], 0xc
jb 0x44942f
test byte [esp + 0x48], 1
je 0x449442
test al, al
js 0x449442
mov eax, dword [esp + 0x48]
call fcn.00443e40
mov ecx, eax
test ecx, ecx
jne 0x44945a
mov edx, dword [esp + 0x48]
mov eax, ebx
mov ecx, 0x5502b4
call fcn.00443f70
add ebp, 0x14
jmp 0x447d40
mov edx, dword [edx + esi*4]
xor eax, eax
cmp byte [edi + 4], al
sete al
push eax
push edx
mov edx, ecx
mov ecx, dword [esp + 0x34]
mov eax, ebx
call fcn.004403b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov edx, dword [esp + 0x48]
mov ecx, dword [ebx + 0x10]
mov eax, ebx
call fcn.00443f70
mov eax, 0xefff
and word [ebx + 8], ax
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov al, byte [esi]
lea edi, [edx + ecx*8]
test al, al
je case.0x447d55.62
mov ebx, dword [esp + 0x3c]
push ebx
mov ecx, edi
inc esi
call fcn.00447b00
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x4494c0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8 - 0x28]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
movzx eax, byte [edx + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x11c], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], eax
cmp esi, edi
je 0x44955a
mov al, byte [esi]
lea esp, [esp]
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, ebx
call fcn.00447b00
mov al, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test al, al
jne 0x449540
mov esi, dword [esp + 0x4c]
mov edi, edi
mov edx, dword [esp + 0x40]
push edx
lea ebx, [esp + 0xb4]
mov edx, esi
call fcn.00443d20
mov ecx, 0x4000
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esi + 0x1c], eax
test word [esi + 8], cx
je 0x4495c2
mov edx, edi
or edx, dword [esp + 0x11c]
je 0x4495a4
mov eax, esi
call fcn.0043f720
test eax, eax
jne 0x44c885
jmp 0x4495be
mov ebx, dword [esi]
mov eax, ebx
cdq
add dword [esp + 0xa0], eax
adc dword [esp + 0xa4], edx
sub dword [esp + 0xb0], ebx
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0xb0]
mov ebx, dword [esp + 0x11c]
adc ebx, 0
mov dword [esp + 0x11c], ebx
cmp eax, 0x7f
ja 0x4495e6
mov eax, 1
jmp 0x4495f1
push 0
push eax
call fcn.004276c0
add esp, 8
add dword [esp + 0x2c], eax
sub esi, 0x28
cmp esi, dword [esp + 0x20]
jae 0x449560
mov eax, dword [esp + 0x2c]
cmp eax, 0x7e
jg 0x449612
inc eax
mov dword [esp + 0x2c], eax
jmp 0x449639
cdq
push edx
push eax
call fcn.004276c0
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x34], eax
cdq
push edx
push eax
call fcn.004276c0
add esp, 0x10
cmp esi, eax
jge 0x449639
inc dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
cdq
add edi, eax
adc ebx, edx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x5c]
mov ecx, edi
add ecx, dword [esp + 0xa0]
mov esi, ebx
adc esi, dword [esp + 0xa4]
mov dword [esp + 0x134], edx
cdq
cmp esi, edx
mov dword [esp + 0x228], edi
jg 0x4487c1
jl 0x449683
cmp ecx, eax
ja 0x4487c1
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x18], edi
jge 0x4496c1
mov ebx, dword [esp + 0x34]
xor eax, eax
mov ecx, edi
call fcn.0043f570
test eax, eax
jne 0x44c885
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov esi, dword [edx + 0x10]
mov dword [esp + 0x24], esi
cmp ebx, 0x80
jae 0x4496ce
mov byte [esi], bl
mov eax, 1
jmp 0x4496e6
mov ecx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], ecx
jmp 0x4496a1
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x130]
push eax
push ecx
call fcn.00427470
add esp, 8
movzx edx, al
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
mov ecx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x449716
mov edx, dword [esp + 0x24]
mov byte [eax + edx], cl
mov eax, 1
jmp 0x44972c
push 0
push ecx
mov ecx, dword [esp + 0x2c]
lea esi, [eax + ecx]
call fcn.00427470
mov ecx, dword [esp + 0x38]
add esp, 8
mov esi, dword [esp + 0x40]
movzx edx, al
mov eax, dword [esp + 0x24]
add dword [esp + 0x2c], edx
lea edi, [esi + eax]
mov eax, ebx
call fcn.00443e60
add esi, eax
add ebx, 0x28
mov dword [esp + 0x40], esi
cmp ebx, dword [esp + 0x4c]
jbe 0x4496f5
mov ecx, dword [esp + 0x228]
mov eax, dword [esp + 0x34]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0xa0]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [esp + 0xa4]
je 0x449788
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
mov byte [eax + 0xa], 1
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x14]
lea edx, [esp + 0x100]
xor edi, edi
push edx
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], edi
call fcn.0043d000
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x44c7a5
mov eax, ebp
mov edx, esi
call fcn.00447c40
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x4498c1
mov esi, dword [esp + 0x18]
cmp dword [esi + 0xa0], ecx
jg 0x44c3ed
call fcn.00426540
mov ebx, eax
mov eax, dword [esi + 0x1b4]
add eax, dword [esi + 0x1b0]
push eax
push 0
push esi
call fcn.0047e590
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
push eax
lea ecx, [ebx + 0x21]
push ecx
mov eax, esi
call fcn.00423fa0
mov edi, eax
add esp, 8
test edi, edi
je 0x448a18
mov edx, dword [esp + 0x24]
inc ebx
push ebx
lea eax, [edi + 0x20]
push edx
push eax
mov dword [edi], eax
call fcn.004e9720
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x449883
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x449889
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], edi
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x1c4]
mov dword [edi + 0x14], ecx
jmp 0x448a18
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x1a8]
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], esi
test esi, esi
je 0x4498ff
lea esp, [esp]
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
call fcn.004268b0
test eax, eax
je 0x449922
mov esi, dword [esi + 0x18]
inc ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], esi
test esi, esi
jne 0x4498e0
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
push ecx
push str.no_such_savepoint:__s
call fcn.00440a50
add esp, 8
mov dword [esp + 0x10], 1
jmp 0x44c7a5
mov eax, dword [esp + 0x30]
xor ecx, ecx
cmp dword [edi + 0xa0], ecx
jle 0x449939
cmp eax, 1
je 0x44c3f7
cmp dword [esi + 0x18], ecx
jne 0x449992
cmp byte [edi + 0x4b], 0
je 0x449992
mov dword [esp + 0x34], 1
cmp eax, 1
jne 0x449996
mov esi, dword [esp + 0x14]
push eax
mov eax, esi
call fcn.004431c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44ca3a
push esi
mov byte [edi + 0x43], 1
call fcn.00443230
add esp, 4
cmp eax, 5
je 0x44c62a
mov byte [edi + 0x4b], 0
mov edx, dword [esi + 0x50]
mov dword [esp + 0x10], edx
jmp 0x449a57
mov dword [esp + 0x34], ecx
mov edx, dword [edi + 0x1b0]
sub edx, ebx
dec edx
mov dword [esp + 0x2c], edx
cmp eax, 2
jne 0x449a01
mov eax, dword [edi + 0x18]
shr eax, 1
and eax, 1
xor ebx, ebx
cmp dword [edi + 0x14], ebx
mov dword [esp + 0x24], eax
jle 0x449a05
xor eax, eax
cmp dword [esp + 0x24], eax
sete al
xor esi, esi
mov dword [esp + 0x40], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x40]
mov edx, dword [edi + 0x10]
mov eax, dword [esi + edx + 4]
push ecx
push 0x204
push eax
call fcn.00437f80
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
inc ebx
add esi, 0x10
cmp ebx, dword [edi + 0x14]
jl 0x4499d0
jmp 0x449a05
mov dword [esp + 0x24], ecx
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x449a3e
xor esi, esi
mov edi, edi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov eax, dword [edi + 0x10]
mov eax, dword [esi + eax + 4]
push ecx
push edx
call fcn.00438200
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
inc ebx
add esi, 0x10
cmp ebx, dword [edi + 0x14]
jl 0x449a10
cmp dword [esp + 0x24], 0
je 0x449a57
mov eax, edi
call fcn.00445300
mov eax, edi
call fcn.0045c610
or dword [edi + 0x18], 2
mov esi, dword [esp + 0x20]
cmp dword [edi + 0x1a8], esi
je 0x449ace
jmp 0x449a70
cmp dword [edi + 0x1c8], 0
mov eax, dword [edi + 0x1a8]
mov ecx, dword [eax + 0x18]
mov dword [edi + 0x1a8], ecx
je 0x449a91
mov ecx, edi
call fcn.00423c80
jmp 0x449ac0
cmp eax, dword [edi + 0x120]
jb 0x449ab7
cmp eax, dword [edi + 0x124]
jae 0x449ab7
mov edx, dword [edi + 0x11c]
mov dword [eax], edx
dec dword [edi + 0x108]
mov dword [edi + 0x11c], eax
jmp 0x449ac0
push eax
call fcn.00423c10
add esp, 4
dec dword [edi + 0x1b0]
cmp dword [edi + 0x1a8], esi
jne 0x449a70
mov ebx, dword [esp + 0x30]
cmp ebx, 1
jne 0x449afc
mov eax, dword [esi + 0x18]
mov dword [edi + 0x1a8], eax
mov eax, esi
mov ecx, edi
call fcn.00423cc0
cmp dword [esp + 0x34], 0
jne 0x448a18
dec dword [edi + 0x1b0]
jmp 0x449b30
cmp dword [esp + 0x34], 0
mov ecx, dword [esi + 8]
mov dword [edi + 0x1b8], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 0x1bc], edx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1c0], eax
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x1c4], ecx
je 0x449b30
cmp ebx, 2
jne 0x448a18
mov edx, dword [esp + 0x2c]
push edx
push ebx
push edi
call fcn.0047e590
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x449b6b
test dword [edi + 0x18], 0x2000000
jne 0x44c761
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x10]
shl ecx, 4
mov ebx, dword [ecx + edx + 4]
test ebx, ebx
je 0x449c63
push eax
push ebx
call fcn.004371e0
mov ecx, eax
add esp, 8
mov dword [esp + 0x10], ecx
cmp cl, 5
je 0x44c76b
test ecx, ecx
jne 0x44c7a5
mov esi, dword [esp + 0x14]
cmp dword [ebp + 8], eax
je 0x449c3d
test byte [esi + 0x60], 0x10
je 0x449c3d
cmp byte [edi + 0x43], al
je 0x449bca
cmp dword [edi + 0x9c], 1
jle 0x449c3d
cmp dword [esi + 0x70], 0
jne 0x449be7
inc dword [edi + 0x1b4]
mov eax, dword [edi + 0x1b4]
mov ecx, dword [edi + 0x1b0]
add ecx, eax
mov dword [esi + 0x70], ecx
mov edx, dword [esi + 0x70]
dec edx
push edx
push 0
push edi
call fcn.0047e590
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x449c0d
mov eax, dword [esi + 0x70]
mov ecx, ebx
call fcn.004381a0
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x1b8]
mov dword [esi + 0xa0], eax
mov ecx, dword [edi + 0x1bc]
mov dword [esi + 0xa4], ecx
mov edx, dword [edi + 0x1c0]
mov dword [esi + 0xa8], edx
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0xac], eax
lea ecx, [esp + 0xb4]
push ecx
push 1
mov eax, ebx
call fcn.0043cf30
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x10]
add esp, 8
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x449c74
mov esi, dword [esp + 0x14]
mov dword [esp + 0xb4], 0
xor eax, eax
cmp byte [ebp + 3], 0
je 0x449c93
mov edx, dword [esp + 0xb4]
cmp edx, dword [ebp + 0xc]
jne 0x44c401
cmp eax, dword [ebp + 0x10]
jne 0x44c401
cmp dword [esp + 0x10], 0
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
lea eax, [esp + 0x128]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
call fcn.0043cf30
mov edx, dword [esp + 0x1c]
add esp, 8
mov eax, ebp
call fcn.00447c40
mov ecx, eax
mov eax, dword [esp + 0x128]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov esi, dword [ebp + 4]
mov edx, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
mov eax, dword [ebp + 8]
shl esi, 4
add esi, dword [edi + 0x10]
push edx
push eax
mov eax, dword [esi + 4]
call fcn.0043cf90
mov edx, eax
mov eax, dword [ebp + 8]
add esp, 8
mov dword [esp + 0x10], edx
cmp eax, 1
jne 0x449d29
mov ecx, dword [esi + 0xc]
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 2
jmp 0x449d37
cmp eax, 2
jne 0x449d37
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebp + 4], 1
jne 0x449d4c
mov eax, edi
call fcn.00445300
mov eax, dword [esp + 0x14]
and dword [eax + 0x58], 0xfffffffe
test edx, edx
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov esi, dword [edx + 0x38]
mov esi, dword [esi + eax*4]
test esi, esi
je 0x449d7f
mov eax, dword [esi + 0xc]
cmp eax, dword [ebp + 8]
je 0x449e69
jmp 0x449d7f
mov edx, dword [esp + 0x14]
test byte [edx + 0x58], 1
jne 0x44c78f
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, esi
shl eax, 4
add eax, dword [ebx + 0x10]
xor edi, edi
mov ebx, dword [eax + 4]
mov dword [esp + 0x20], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], ebx
cmp cl, 0x37
jne 0x449dcf
movzx ebx, byte [ebp + 3]
mov ecx, dword [eax + 0xc]
mov al, byte [ecx + 0x4c]
and ebx, 8
or ebx, 4
cmp al, byte [edx + 0x5c]
jae 0x449dd1
mov byte [edx + 0x5c], al
jmp 0x449dd1
xor ebx, ebx
test byte [ebp + 3], 0x10
je 0x449df4
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
call fcn.0043fc40
mov ecx, dword [esi]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x449e0e
mov eax, dword [ebp + 0x10]
movzx edi, word [eax + 8]
movzx edx, word [eax + 6]
mov dword [esp + 0x20], eax
add edi, edx
jmp 0x449e15
cmp al, 0xf2
jne 0x449e15
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push 0
push esi
push edi
mov edi, dword [esp + 0x20]
push eax
call fcn.004479b0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44c885
mov ecx, dword [esi + 0x14]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
or dword [esi + 8], 4
push ecx
mov ecx, dword [esp + 0x50]
push edi
push ebx
mov byte [esi + 2], 1
mov dword [esi + 0xc], eax
call fcn.00438350
add esp, 0xc
mov dword [esi + 0x1c], edi
cmp byte [ebp + 1], 0xfa
mov dword [esp + 0x10], eax
setne dl
mov byte [esi + 4], dl
mov al, byte [ebp + 3]
mov ecx, dword [esi + 0x14]
and al, 3
cmp dword [esp + 0x10], 0
mov byte [ecx + 0x43], al
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
push edx
push eax
call fcn.004479b0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44c885
or dword [esi + 8], 1
mov edx, dword [esp + 0x18]
mov byte [esi + 2], 1
movzx ecx, byte [ebp + 3]
mov eax, dword [edx]
push 0x41e
or ecx, 5
push ecx
lea edi, [esi + 0x18]
push 0
push eax
mov ecx, edi
call fcn.004361f0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov ecx, dword [edi]
push 1
push ecx
call fcn.004371e0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x449f47
movzx edx, byte [ebp + 3]
or edx, 2
push edx
lea eax, [esp + 0x130]
push eax
mov eax, dword [edi]
call fcn.0043ca20
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x449f41
mov ecx, dword [esi + 0x14]
mov eax, dword [esp + 0x12c]
push ecx
mov ecx, dword [edi]
push ebx
push 4
mov dword [esi + 0x1c], ebx
call fcn.00438350
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 4], 0
jmp 0x449f66
mov edx, dword [esi + 0x14]
mov ecx, dword [edi]
push edx
push 0
push 4
mov eax, 1
call fcn.00438350
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 4], 1
cmp dword [esp + 0x10], 0
jne 0x44c7a5
xor eax, eax
cmp byte [ebp + 3], 8
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.004479b0
add esp, 0x10
test eax, eax
je 0x44c885
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x1c], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.0044e120
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edi
mov eax, ecx
or eax, edx
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x14]
push 3
push 0xffffffffffffffff
push ecx
push edx
call fcn.004479b0
add esp, 0x10
test eax, eax
je 0x44c885
mov byte [eax + 2], 1
mov ecx, dword [ebp + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], 1
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
push esi
call fcn.00442440
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x38]
add esp, 4
mov dword [edx + ecx*4], 0
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
mov edx, dword [edx + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 4], 0
mov ebx, eax
mov dword [esp + 0x24], 0
mov byte [esi + 2], 0
je 0x44a14d
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
and dl, 0xe
cmp dl, 2
jne 0x44a0bb
push 0
mov eax, edi
call fcn.00447a80
add esp, 4
mov ecx, edi
call fcn.0043fb10
mov dword [esp + 0xe0], eax
movzx eax, word [edi + 8]
mov dword [esp + 0xe4], edx
test al, 4
jne 0x44a109
test al, 8
je 0x44c3d6
fild qword [esp + 0xe0]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x44a0fa
fstp st(0)
test bl, 1
jne 0x44a109
dec ebx
jmp 0x44a109
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x44a109
test bl, 1
je 0x44a109
inc ebx
mov ecx, dword [esp + 0xe4]
mov edi, dword [esp + 0xe0]
lea eax, [esp + 0x54]
push eax
mov eax, dword [esi + 0x14]
push 0
push ecx
push edi
push 0
call fcn.00438d30
mov edx, dword [esp + 0xf8]
add esp, 0x14
mov dword [esp + 0x10], eax
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edx
test eax, eax
jne 0x44c7a5
xor edi, edi
jmp 0x44a1f0
mov eax, dword [esi + 0x14]
test byte [eax + 0x43], 2
je 0x44a15e
mov dword [esp + 0x24], 1
mov ecx, dword [esi + 0x1c]
mov dx, word [ebp + 0x10]
lea eax, [ebx - 1]
test al, 1
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x148], ecx
sete cl
mov word [esp + 0x150], dx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea eax, [eax + edx*8]
mov dword [esp + 0x14c], eax
lea ecx, [ecx + ecx - 1]
mov byte [esp + 0x152], cl
mov ecx, 0x4000
test word [eax + 8], cx
je 0x44a1ab
call fcn.0043f720
lea edx, [esp + 0x54]
push edx
xor edi, edi
push edi
push edi
lea eax, [esp + 0x154]
push edi
mov byte [esp + 0x166], 0
push eax
mov eax, dword [esi + 0x14]
call fcn.00438d30
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x44c7a5
cmp dword [esp + 0x24], edi
je 0x44a1f0
cmp byte [esp + 0x156], 0
je 0x44a263
cmp ebx, 0x41
mov byte [esi + 3], 0
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x54]
jl 0x44a225
cmp eax, edi
jl 0x44a211
jne 0x44a20b
cmp ebx, 0x42
je 0x44a211
mov dword [esp + 0x54], edi
jmp 0x44a26f
lea ecx, [esp + 0x54]
mov dword [esp + 0x54], edi
mov edx, dword [esi + 0x14]
push ecx
push edx
call fcn.00439280
jmp 0x44a254
cmp eax, edi
jg 0x44a242
jne 0x44a230
cmp ebx, 0x3f
je 0x44a242
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [esp + 0x54], ecx
jmp 0x44a263
lea edx, [esp + 0x54]
mov dword [esp + 0x54], edi
mov eax, dword [esi + 0x14]
push edx
push eax
call fcn.00439400
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, edi
jne 0x44c7a5
cmp dword [esp + 0x54], edi
jne 0x44c3d6
xor edi, edi
cmp dword [esp + 0x24], edi
je case.0x447d55.62
add ebp, 0x14
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
mov ecx, dword [ebp + 4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
xor edi, edi
cmp dword [ebp + 0x10], edi
lea eax, [edx + ecx*8]
mov dword [esp + 0x20], eax
mov dword [esp + 0xdc], edi
jle 0x44a30b
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x160], ecx
mov cx, word [ebp + 0x10]
xor edx, edx
xor esi, esi
mov word [esp + 0x168], cx
mov dword [esp + 0x164], eax
cmp dx, cx
jae 0x44a302
mov eax, dword [esp + 0x164]
add eax, edi
mov edx, 0x4000
test word [eax + 8], dx
je 0x44a2f7
call fcn.0043f720
mov cx, word [esp + 0x168]
movzx eax, cx
inc esi
add edi, 0x28
cmp esi, eax
jl 0x44a2d6
lea esi, [esp + 0x160]
jmp 0x44a35e
mov esi, dword [ebx + 0x1c]
push 0xb7
lea edi, [esp + 0xe0]
lea edx, [esp + 0x25c]
call fcn.00444100
mov esi, eax
add esp, 4
test esi, esi
je 0x44c885
mov edi, dword [esp + 0x20]
mov ecx, 0x4000
test word [edi + 8], cx
je 0x44a349
mov eax, edi
call fcn.0043f720
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov ecx, dword [ebx + 0x1c]
push esi
push edx
push eax
push ecx
call fcn.00444170
add esp, 0x10
mov byte [esi + 0xa], 0
xor edi, edi
cmp byte [ebp], 0x43
jne 0x44a392
xor edx, edx
xor ecx, ecx
cmp dx, word [esi + 8]
jae 0x44a392
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x44a38d
movzx edx, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x44a37a
jmp 0x44a392
mov edi, 1
lea eax, [esp + 0x13c]
push eax
mov eax, dword [ebx + 0x14]
push 0
push 0
push 0
push esi
call fcn.00438d30
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov eax, dword [esp + 0xf0]
add esp, 0x14
mov dword [esp + 0x10], esi
call fcn.00423cc0
test esi, esi
jne 0x44c7a5
mov ecx, dword [esp + 0x13c]
xor eax, eax
test ecx, ecx
mov dword [ebx + 0x20], ecx
sete al
mov cl, 1
sub cl, al
mov byte [ebx + 2], cl
mov byte [ebx + 3], 0
mov dword [ebx + 0x40], esi
cmp byte [ebp], 0x45
jne 0x44a3ff
test eax, eax
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
test edi, edi
jne 0x44c3d6
test eax, eax
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
mov edi, dword [edx + ecx*8]
mov ebx, dword [edx + ecx*8 + 4]
lea edx, [esp + 0xf8]
push edx
push 0
push ebx
push edi
push 0
mov dword [esp + 0x10c], 0
call fcn.00438d30
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10c]
add esp, 0x14
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x40], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x44a498
cmp dword [ebp + 8], 0
jne 0x44c3d6
mov eax, 0x132c8
call fcn.0048f520
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
mov eax, ebp
mov edx, esi
call fcn.00447c40
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x38]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
xor edi, edi
xor ebx, ebx
mov eax, ebp
mov edx, esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x98], edi
call fcn.00447c40
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x38]
mov esi, dword [edx + ecx*4]
test byte [esi + 8], 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
jne 0x44a58e
mov eax, dword [esi + 0x14]
lea edi, [esp + 0x98]
call fcn.00438ce0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp dword [esp + 0x98], eax
je 0x44a54b
lea ebx, [eax + 1]
xor edi, edi
jmp 0x44a586
mov edi, dword [esi + 0x14]
mov eax, edi
call fcn.004384b0
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
cmp edi, 0x7fffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x10], 0
jl 0x44a580
jg 0x44a57a
cmp ebx, 0xffffffff
jb 0x44a580
or dword [esi + 8], 2
jmp 0x44a58e
add ebx, 1
adc edi, 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x44a61c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je 0x44a5c4
mov eax, dword [ecx + 4]
test eax, eax
je 0x44a5b9
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x44a5b0
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x44a5ce
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x1c]
lea esi, [edx + ecx*8]
call fcn.0043fc40
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x44a5e9
cmp ecx, 0x7fffffff
je 0x44a69a
mov edx, dword [esp + 0x20]
test byte [edx + 8], 2
jne 0x44a69a
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x44a613
jl 0x44a607
cmp ebx, eax
jae 0x44a613
mov ebx, eax
mov edi, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esi], ebx
mov dword [esi + 4], edi
mov esi, dword [esp + 0x20]
test byte [esi + 8], 2
je 0x44a6a7
mov dword [esp + 0x20], 0
mov edi, edi
lea eax, [esp + 0x68]
push eax
push 8
call fcn.00425b30
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0xa0]
push ecx
and edi, 0x3fffffff
add ebx, 1
adc edi, 0
push 0
push edi
push ebx
push 0
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
call fcn.00438d30
add esp, 0x1c
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp dword [esp + 0x98], eax
jne 0x44a6a7
mov eax, dword [esp + 0x20]
inc eax
cmp eax, 0x64
mov dword [esp + 0x20], eax
jl 0x44a630
mov dword [esp + 0x10], 0xd
jmp 0x44c7a5
mov eax, dword [esp + 0x34]
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov dword [eax], ebx
mov dword [eax + 4], edi
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edx, [eax + edx*8]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 0x38]
mov esi, dword [edi + esi*4]
cmp cl, 0x4b
jne 0x44a6f5
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
mov edi, dword [eax + ecx*8]
mov ebx, dword [eax + ecx*8 + 4]
jmp 0x44a701
mov eax, dword [ebp + 0xc]
cdq
mov ebx, edx
mov edx, dword [esp + 0x14]
mov edi, eax
test byte [ebp + 3], 1
je 0x44a70a
inc dword [edx + 0x64]
test byte [ebp + 3], 2
je 0x44a722
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], ebx
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], ebx
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + 8]
test al, 1
je 0x44a736
xor edx, edx
mov dword [ecx + 0x10], edx
mov dword [ecx + 0xc], edx
mov dl, byte [ebp + 3]
test dl, 0x10
je 0x44a743
mov ecx, dword [esi + 0x20]
jmp 0x44a745
xor ecx, ecx
test eax, 0x4000
je 0x44a754
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
jmp 0x44a756
xor eax, eax
push ecx
movzx ecx, dl
shr ecx, 3
and ecx, 1
push ecx
push eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push edx
push eax
mov eax, dword [esi + 0x14]
push ebx
push edi
push 0
call fcn.0043c270
add esp, 0x20
mov dword [esp + 0x10], eax
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
test eax, eax
jne 0x44c7a5
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0xd8]
test ecx, ecx
je case.0x447d55.62
mov eax, dword [ebp + 0x10]
test eax, eax
je case.0x447d55.62
movsx edx, byte [esi + 1]
push ebx
push edi
push eax
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd4]
shl edx, 4
mov edx, dword [edx + esi]
push edx
mov dl, byte [ebp + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
add ebp, 0x14
jmp 0x447d40
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
cmp dword [esi + 0xd8], 0
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x38]
mov ebx, dword [edx + ecx*4]
je 0x44a819
cmp dword [ebp + 0x10], 0
je 0x44a819
cmp byte [ebx + 4], 0
mov byte [esp + 0x2b], 1
jne 0x44a81e
mov byte [esp + 0x2b], 0
cmp byte [ebp + 3], 0
je 0x44a83e
cmp byte [esp + 0x2b], 0
je 0x44a83e
mov esi, dword [ebx + 0x14]
lea edi, [ebx + 0x30]
call fcn.004384f0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov al, byte [ebp + 3]
mov ecx, dword [ebx + 0x14]
call fcn.0043c4a0
mov dword [esp + 0x10], eax
mov dword [ebx + 0x40], 0
test eax, eax
jne 0x44c7a5
cmp byte [esp + 0x2b], al
je 0x44a890
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x10]
push eax
movsx eax, byte [ebx + 1]
push ecx
mov ecx, dword [esi + 0x10]
push edx
shl eax, 4
mov edx, dword [eax + ecx]
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0xd8]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x447d55.62
inc dword [edi + 0x64]
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x64]
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x58], eax
mov dword [ecx + 0x54], eax
mov dword [edx + 0x64], 0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + edx*8]
mov edx, dword [ebp + 0x10]
lea esi, [esp + 0xf0]
push esi
push edx
push ecx
mov dword [esp + 0xfc], 0
call fcn.00450f80
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp dword [esp + 0xf0], eax
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx*8]
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
call fcn.00450ee0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x38]
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x40], 0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea ebx, [edx + ecx*8]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov edi, dword [eax + 0x14]
cmp byte [eax + 4], 0
mov dword [esp + 0x20], eax
mov eax, edi
jne 0x44a9ad
call fcn.004384b0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x5c]
mov ecx, dword [edi + 0x14]
mov esi, dword [edi + 0x10]
cdq
cmp ecx, edx
jg 0x4487c1
jl 0x44a9c2
cmp esi, eax
jmp 0x44a9bc
call fcn.004384b0
mov esi, dword [edi + 0x1c]
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x5c]
ja 0x4487c1
mov ecx, esi
cmp esi, 0x20
ja 0x44a9ce
mov ecx, 0x20
cmp dword [ebx + 0x18], ecx
jge 0x44aa16
xor eax, eax
call fcn.0043f570
test eax, eax
jne 0x44c885
mov ax, word [ebx + 8]
mov edx, dword [esp + 0x20]
mov ecx, 0x3e00
and ax, cx
or ax, 0x10
mov word [ebx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0xc], esi
cmp byte [edx + 4], 0
jne 0x44aa23
push 0
push eax
push esi
xor eax, eax
call fcn.00438680
add esp, 0xc
jmp 0x44aa30
mov edx, dword [ebx + 0x14]
and word [ebx + 8], 0xd
mov dword [ebx + 0x10], edx
jmp 0x44a9e2
push eax
push esi
push 0
push edi
call fcn.00438980
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov byte [ebx + 0xa], 1
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
mov eax, ebp
mov edx, esi
call fcn.00447c40
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x38]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov ebx, eax
je 0x44aa77
mov eax, 1
mov word [ebx + 8], ax
add ebp, 0x14
jmp 0x447d40
cmp byte [esi + 3], 0
je 0x44aaa5
mov ecx, dword [esi + 0x30]
mov dword [esp + 0xc8], ecx
mov edx, dword [esi + 0x34]
mov dword [esp + 0xcc], edx
mov dword [ebx], ecx
mov edx, dword [esp + 0xcc]
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x447d40
cmp byte [esi], 2
jne 0x44aaf5
mov esi, dword [esi + 0x14]
mov edi, dword [esi]
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
lea ecx, [esp + 0xc8]
push ecx
push esi
call edx
mov esi, eax
mov eax, dword [esp + 0x1c]
push eax
mov dword [esp + 0x1c], esi
call fcn.00445390
add esp, 0xc
test esi, esi
jne 0x44c7a5
mov ecx, dword [esp + 0xc8]
mov dword [ebx], ecx
mov edx, dword [esp + 0xcc]
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, esi
call fcn.00443cb0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp byte [esi + 2], al
je 0x44ab1e
mov ecx, 1
mov word [ebx + 8], cx
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esi + 0x14]
mov eax, esi
call fcn.004384b0
mov edx, dword [esi + 0x10]
mov dword [esp + 0xc8], edx
mov eax, dword [esi + 0x14]
mov dword [esp + 0xcc], eax
mov ecx, edx
mov dword [ebx], ecx
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x10], 0
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x40], 0
jne case.0x447d55.62
mov esi, dword [eax + 0x14]
call fcn.00434ba0
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 0x14]
xor ebx, ebx
lea edi, [esp + 0xd4]
mov dword [esp + 0xd4], ebx
call fcn.00438ce0
mov ecx, dword [esp + 0xd4]
mov byte [esi + 2], cl
mov byte [esi + 3], bl
mov dword [esi + 0x40], ebx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esi + 0x20], edx
cmp eax, ebx
jne 0x44c7a5
cmp dword [ebp + 8], ebx
jle case.0x447d55.62
test ecx, ecx
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
inc dword [eax + 0x7c]
jmp 0x44abf8
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + 0x38]
mov ebx, dword [edx + ecx*4]
cmp byte [ebx], 1
mov dword [esp + 0x88], 1
jne 0x44ac21
lea edi, [esp + 0x88]
mov ecx, ebx
call fcn.00450e20
jmp 0x44ac55
mov esi, dword [ebx + 0x14]
call fcn.00438a60
xor edi, edi
cmp eax, edi
jne 0x44ac4e
cmp byte [esi + 0x42], 0
jne 0x44ac42
mov dword [esp + 0x88], 1
jmp 0x44ac4e
mov dword [esp + 0x88], edi
call fcn.00438b90
mov byte [ebx + 3], 0
mov dword [ebx + 0x40], edi
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov eax, dword [esp + 0x88]
mov byte [ebx + 2], al
test eax, eax
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
mov edx, dword [esp + 0x18]
push edx
lea ebx, [esp + 0x94]
mov eax, esi
mov dword [esp + 0x94], 0
call fcn.00450e70
add esp, 4
jmp 0x44acec
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x38]
cmp dword [ecx + eax*4], 0
je case.0x447d55.62
jmp 0x44acc5
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x90], ecx
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x90]
push edx
push eax
call ecx
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x44c7a5
cmp dword [esp + 0x90], eax
jne 0x44ad1c
mov byte [esi + 2], al
movzx edx, byte [ebp + 3]
inc dword [edi + edx*4 + 0x74]
lea eax, [edi + edx*4 + 0x74]
jmp case.0x447d55.13
mov byte [esi + 2], 1
jmp 0x44c138
test byte [ebp + 3], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov edi, dword [edx + eax*4]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x44ad48
inc dword [ecx + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x44ad66
mov eax, esi
call fcn.0043f720
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp byte [ebp], 0x6d
jne 0x44ad79
push esi
mov eax, edi
call fcn.0044f280
add esp, 4
jmp 0x44adb0
test byte [ebp + 3], 0x10
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
je 0x44ad8a
mov ecx, dword [edi + 0x20]
jmp 0x44ad8c
xor ecx, ecx
push ecx
mov ecx, dword [ebp + 0xc]
push ecx
push 0
push 0
cdq
push 0x52280c
push edx
push eax
mov eax, dword [edi + 0x14]
push esi
call fcn.0043c270
add esp, 0x20
mov dword [edi + 0x40], 0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov esi, dword [ecx + edx*4]
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x1c]
mov ax, word [ebp + 0xc]
mov word [esp + 0x210], ax
mov eax, dword [ebp + 8]
mov dword [esp + 0x208], edx
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
lea ecx, [esp + 0x140]
push ecx
push 0
push 0
lea edx, [esp + 0x214]
mov dword [esp + 0x218], eax
push 0
push edx
mov eax, edi
mov byte [esp + 0x226], 0
call fcn.00438d30
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
cmp dword [esp + 0x140], eax
jne 0x44ae50
mov al, 4
mov ecx, edi
call fcn.0043c4a0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov dword [esi + 0x40], 0
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx + eax*4]
mov eax, esi
call fcn.00443cb0
xor ebx, ebx
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x44c7a5
cmp byte [esi + 2], bl
jne 0x44af24
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc0]
push edx
push eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ebx
call fcn.004450b0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x44c7a5
cmp byte [ebp], 0x70
jne 0x44aef7
mov ecx, dword [ebp + 0xc]
mov edx, dword [edi + 0x38]
mov eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov byte [eax + 2], bl
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
mov byte [eax + 3], 1
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x38], esi
add ebp, 0x14
jmp 0x447d40
mov eax, ebp
mov edx, edi
call fcn.00447c40
mov edx, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [eax], edx
mov edx, 4
mov dword [eax + 4], ecx
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x1c]
cmp cl, 0x74
sbb cl, cl
mov dword [esp + 0x218], edx
mov dx, word [ebp + 0x10]
mov byte [esp + 0x222], cl
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x220], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + edx*8]
lea ecx, [esp + 0x218]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x18]
push ecx
push edx
lea ebx, [esp + 0x80]
mov dword [esp + 0x80], 0
call fcn.00445200
mov ecx, dword [esp + 0x80]
add esp, 8
test byte [ebp], 1
mov dword [esp + 0x10], eax
jne 0x44afbd
neg ecx
jmp 0x44afbe
inc ecx
mov dword [esp + 0x78], ecx
test eax, eax
jne 0x44c7a5
test ecx, ecx
jg 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
mov eax, ebp
mov edx, esi
call fcn.00447c40
mov edi, eax
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xa8]
inc ecx
cmp dword [eax + 0x9c], ecx
jg 0x44c799
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0xd0]
push edx
mov edx, ebx
shl edx, 4
mov eax, dword [edx + eax + 4]
push ecx
mov dword [esp + 0xd8], 0
call fcn.0043cee0
mov esi, dword [esp + 0xd8]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [esp + 0x10], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x44c7a5
test esi, esi
je case.0x447d55.62
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov eax, ebx
call fcn.0045ebf0
inc bl
mov byte [esp + 0x53], bl
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
neg eax
sbb eax, eax
lea ecx, [esp + 0xf4]
and eax, ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 8]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov dword [esp + 0xfc], 0
mov eax, dword [eax + edx + 4]
call fcn.0043cc20
add esp, 8
cmp dword [ebp + 0xc], 0
mov esi, eax
mov dword [esp + 0x10], esi
je 0x44b0eb
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xf4]
add dword [ecx + 0x64], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x44b0eb
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
test esi, esi
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
cmp byte [eax], 1
jne 0x44b125
mov ecx, dword [esp + 0x18]
mov ebx, dword [eax + 0x14]
push ecx
call fcn.0044e5d0
add esp, 4
add ebp, 0x14
jmp 0x447d40
mov eax, dword [eax + 0x14]
mov edx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
push edx
call fcn.0043cc20
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebp], 0x7a
mov eax, dword [eax + 4]
setne cl
lea edx, [esp + 0xfc]
mov dword [esp + 0xfc], 0
inc ecx
push ecx
push edx
call fcn.0043ca20
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov eax, dword [esp + 0xfc]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x44b1c2
mov ecx, str.sqlite_master
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add edx, 0x2c
mov dword [esp + 0x174], edx
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x180], eax
shl eax, 4
mov dword [esp + 0x178], edi
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.004258f0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44c454
push 0
lea eax, [esp + 0x174]
push eax
push fcn.0046f3d0
push esi
push edi
mov byte [edi + 0x95], 1
mov dword [esp + 0x190], 0
call fcn.0046bd60
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x44b24a
mov ecx, dword [esp + 0x17c]
mov dword [esp + 0x10], ecx
mov ebx, ecx
mov eax, esi
mov ecx, edi
call fcn.00423cc0
mov byte [edi + 0x95], 0
test ebx, ebx
je case.0x447d55.62
mov eax, edi
call fcn.0045c610
cmp ebx, 7
je 0x44c885
jmp 0x44c7a5
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
call fcn.0045aae0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x18]
push edx
call fcn.0045c990
add esp, 4
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 4]
push ecx
call fcn.0045c3e0
add esp, 8
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
push edx
push eax
mov eax, dword [ebp + 4]
call fcn.0047a5e0
add esp, 8
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0x144]
push eax
mov eax, dword [esi]
push eax
push ecx
movzx ecx, byte [ebp + 3]
push edx
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
call fcn.0043db40
mov ebx, dword [esp + 0x154]
mov dword [esp + 0x30], eax
mov eax, ebx
cdq
add esp, 0x10
sub dword [esi], eax
mov eax, edi
sbb dword [esi + 4], edx
call fcn.0043fda0
test ebx, ebx
je 0x44b36c
mov eax, dword [esp + 0x20]
test eax, eax
je 0x44c885
push fcn.00423c10
push 1
push eax
or eax, 0xffffffff
mov ecx, edi
call fcn.004400d0
add esp, 0xc
movzx ecx, byte [esp + 0x3c]
mov eax, edi
call fcn.0043f550
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea esi, [ecx + edx*8]
mov bl, 0x20
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
test byte [esi + 8], bl
jne 0x44b3ab
call fcn.0043fea0
test byte [esi + 8], bl
je 0x44c885
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov esi, dword [esi]
push ecx
push edx
call fcn.0042cd80
add esp, 8
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea edi, [ebx + eax*8]
je 0x44b410
mov eax, dword [edi]
lea esi, [esp + 0x190]
call fcn.0042d090
test eax, eax
je 0x44b410
mov ecx, dword [esp + 0x194]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x190]
push ecx
lea eax, [eax + eax*4]
push edx
lea eax, [ebx + eax*8]
call fcn.0043fe00
add esp, 8
jmp 0x44c138
mov eax, edi
call fcn.0043fda0
jmp case.0x447d55.13
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x44b44b
call fcn.0043fea0
test byte [esi + 8], 0x20
je 0x44c885
test ebx, ebx
je 0x44b471
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov eax, dword [esi]
push ecx
push edx
push ebx
call fcn.0042d0e0
add esp, 0xc
test eax, eax
jne 0x44c3d6
test ebx, ebx
jl case.0x447d55.62
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov esi, dword [esi]
push eax
push ecx
call fcn.0042cd80
add esp, 8
add ebp, 0x14
jmp 0x447d40
cmp byte [ebp + 3], 0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edx, [eax + edx*8]
mov dword [esp + 0x20], edx
je 0x44b4c5
mov eax, dword [esi + 0xb8]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x44b4c5
cmp dword [eax + 0x1c], ecx
je case.0x447d55.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x44b4b5
mov ecx, dword [esi + 0xc0]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax + 0x84]
jge 0x44c80c
test byte [edx + 8], 0x40
jne 0x44b5c9
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
mov dword [esp + 0x24], eax
test ecx, ecx
jne 0x44b4fa
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0xc]
lea ecx, [eax + eax*4 + 0xa]
lea eax, [edx + ecx*2]
mov ecx, dword [ebx + 0x10]
lea eax, [ecx + eax*4]
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
call fcn.00423ef0
mov edi, eax
add esp, 8
test edi, edi
je 0x44c885
mov eax, dword [esp + 0x20]
call fcn.0043fa90
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [eax], edi
sub ebp, dword [esp + 0x38]
mov edx, 0x40
mov word [eax + 8], dx
mov dword [edi + 0x40], ecx
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x44], eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov edx, dword [esi + 8]
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x38], eax
mov edx, dword [esi + 0x38]
mov dword [edi + 0x18], edx
mov eax, dword [esi + 0x24]
mov dword [edi + 0x2c], eax
mov edx, dword [esi + 4]
mov dword [edi + 8], edx
mov eax, dword [esi + 0x20]
mov dword [edi + 0x34], eax
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x1c], edx
mov eax, dword [esi + 0xd0]
mov dword [edi + 0x14], eax
mov edx, dword [esi + 0xcc]
lea eax, [ecx + ecx*4 + 0xa]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
mov dword [edi + 0x3c], edx
cmp eax, ecx
je 0x44b5cb
mov edx, dword [esp + 0x18]
mov ebp, 0x80
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x44b5b4
jmp 0x44b5cb
mov edi, dword [edx]
inc dword [esi + 0xc0]
mov ecx, dword [esi + 0xb8]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov dword [edi + 0x24], eax
mov dword [edi + 4], ecx
mov dword [edi + 0x20], edx
mov ecx, dword [esi + 0x64]
mov dword [edi + 0x48], ecx
mov edx, dword [esi]
mov eax, dword [edx + 0x54]
mov dword [edi + 0x4c], eax
mov ecx, dword [esi + 0xd4]
mov dword [edi + 0x28], ecx
xor edx, edx
mov dword [esi + 0xd4], edx
mov dword [esi + 0x64], edx
mov dword [esi + 0xb8], edi
lea ecx, [edi + 0x50]
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esi + 0x38], eax
mov ebp, dword [ebx]
mov dword [esi + 4], ebp
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x24]
lea eax, [eax + ecx*4]
mov dword [esi + 0xd0], eax
mov ebx, dword [ebx + 0x10]
push ebx
push edx
mov dword [esp + 0x40], ebp
push eax
mov dword [esi + 0xcc], ebx
add ebp, 0xffffffec
call fcn.004e57c0
add esp, 0xc
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x14]
mov eax, ebp
mov edx, esi
call fcn.00447c40
mov edx, dword [esi + 0xb8]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebp + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.0043ffa0
add esp, 0xc
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebp + 8]
cdq
je 0x44b6d5
add dword [ecx + 0x1c0], eax
adc dword [ecx + 0x1c4], edx
add ebp, 0x14
jmp 0x447d40
cmp dword [ebp + 4], 0
je 0x44b6ef
add dword [ecx + 0x1b8], eax
adc dword [ecx + 0x1bc], edx
add ebp, 0x14
jmp 0x447d40
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x98], eax
adc dword [ecx + 0x9c], edx
add ebp, 0x14
jmp 0x447d40
cmp dword [ebp + 4], 0
je 0x44b725
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x447d55.62
jmp 0x44b73f
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x98]
or edx, dword [eax + 0x9c]
jne case.0x447d55.62
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xb8]
test ecx, ecx
je 0x44b787
mov eax, dword [ecx + 4]
test eax, eax
je 0x44b779
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x44b770
mov eax, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x44b794
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edi, [eax + edx*8]
mov esi, edi
call fcn.0043fc40
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.0043fc40
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x447d55.62
jl 0x44b7c9
mov edx, dword [edi]
cmp edx, eax
jae case.0x447d55.62
mov dword [edi], eax
mov dword [edi + 4], esi
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
test esi, esi
jl case.0x447d55.62
jg 0x44b7fc
test edi, edi
jbe case.0x447d55.62
mov eax, dword [ebp + 0xc]
cdq
sub edi, eax
sbb esi, edx
mov dword [ecx], edi
mov dword [ecx + 4], esi
jmp 0x44c3d6
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
mov edx, dword [esp + 0x14]
lea edi, [ecx + eax*8]
mov eax, ebp
call fcn.00447c40
mov ecx, dword [esi]
mov esi, dword [esi + 4]
test esi, esi
jg 0x44b850
jl 0x44b83e
test ecx, ecx
ja 0x44b850
or ecx, 0xffffffff
or esi, ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
add ebp, 0x14
jmp 0x447d40
mov edx, dword [edi]
mov edi, dword [edi + 4]
test edi, edi
jl 0x44b85f
jg 0x44b863
test edx, edx
ja 0x44b863
xor edx, edx
xor edi, edi
add ecx, edx
adc esi, edi
mov dword [eax], ecx
mov dword [eax + 4], esi
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov esi, dword [edx + ecx*8]
mov edi, dword [edx + ecx*8 + 4]
lea ecx, [edx + ecx*8]
mov eax, esi
or eax, edi
je case.0x447d55.62
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
sbb edi, edx
mov dword [ecx], esi
mov dword [ecx + 4], edi
jmp 0x44c3d6
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
add dword [edx + ecx*8], 0xffffffff
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
adc dword [eax + 4], 0xffffffff
or ecx, dword [eax + 4]
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax + 4]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, ecx
or eax, edx
je 0x44c3d6
add ebp, 0x14
jmp 0x447d40
movzx ebx, byte [ebp + 3]
mov eax, dword [esp + 0x18]
lea ecx, [ebx*4 + 0x1c]
push 0
push ecx
call fcn.00423fa0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x44c885
mov dword [ecx + 8], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x38]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
mov byte [ebp + 1], 0xec
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x90
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
cmp dword [edi + 8], esi
je 0x44b99a
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], esi
js 0x44b99a
lea edx, [edi + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x44b985
inc dword [esi + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x250], edx
mov dword [esp + 0x248], 0
mov ecx, 1
mov word [esp + 0x238], cx
mov ecx, dword [edi + 4]
lea eax, [esp + 0x230]
mov dword [edi], eax
movzx eax, byte [edi + 0x1a]
lea edx, [edi + 0x1c]
push edx
push eax
mov byte [edi + 0x19], 0
mov byte [edi + 0x18], 0
mov ecx, dword [ecx + 0xc]
push edi
call ecx
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x44ba32
cmp dword [edi + 0x14], 0
je 0x44ba1b
lea edx, [esp + 0x230]
push edx
call fcn.00445830
mov esi, dword [esp + 0x18]
add esp, 4
push eax
push 0x52f658
call fcn.00440a50
mov eax, dword [edi + 0x14]
add esp, 8
mov dword [esp + 0x10], eax
lea eax, [esp + 0x230]
call fcn.0043fa90
cmp dword [esp + 0x10], 0
jne 0x44c7a5
cmp byte [edi + 0x18], 0
je case.0x447d55.62
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x447d55.62
lea ecx, [eax + eax*4]
push 0
push 1
lea eax, [ebx + ecx*8]
call fcn.0043fe00
add esp, 8
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.0043f8c0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c823
movzx ecx, byte [esp + 0x3c]
mov eax, esi
call fcn.0043f550
mov ecx, esi
call fcn.0043ff50
test eax, eax
jne 0x4487c1
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x18]
or eax, 0xffffffff
lea ecx, [esp + 0x114]
push ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], eax
mov eax, dword [ebp + 4]
push edx
xor edi, edi
push eax
lea ecx, [esp + 0x11c]
mov dword [esp + 0x118], edi
call fcn.0048e1b0
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x44bb04
cmp eax, 5
jne 0x44c7a5
mov dword [esp + 0x10], edi
mov dword [esp + 0x10c], 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
xor esi, esi
lea edi, [edx + ecx*8]
mov eax, dword [esp + esi*4 + 0x10c]
cdq
push edx
push eax
mov eax, edi
call fcn.0043fe00
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x44bb13
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov edi, dword [ebp + 0xc]
mov esi, eax
mov eax, dword [ebp + 4]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
movzx ecx, byte [ebx + 5]
mov dword [esp + 0x30], ecx
cmp edi, 0xffffffff
jne 0x44bb71
mov edi, ecx
cmp byte [ebx + 0x11], 3
jae 0x44bb8d
mov edx, dword [ebx + 0x44]
cmp dword [edx], 0
je 0x44bb91
cmp dword [ebx + 0x54], 0
jl 0x44bb91
jg 0x44bb8d
cmp dword [ebx + 0x50], 0
jbe 0x44bb91
mov edi, dword [esp + 0x30]
cmp byte [ebx + 0x10], 0
mov eax, 0x52280c
jne 0x44bba2
mov eax, dword [ebx + 0xb0]
cmp edi, 5
jne 0x44bbc4
call fcn.00426540
test eax, eax
je 0x44bbbb
mov eax, ebx
call fcn.00431cf0
test eax, eax
jne 0x44bbc4
mov edi, dword [esp + 0x30]
jmp 0x44bc3f
mov eax, dword [esp + 0x30]
cmp edi, eax
je 0x44bc3f
cmp eax, 5
je 0x44bbda
cmp edi, 5
jne 0x44bc3f
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x43], 0
je 0x44c843
cmp dword [ecx + 0x9c], 1
jg 0x44c843
cmp eax, 5
jne 0x44bc0d
mov eax, ebx
call fcn.00431e60
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44bc46
mov eax, edi
jmp 0x44bc17
cmp eax, 4
jne 0x44bc1e
mov eax, 2
mov ecx, ebx
call fcn.00431b40
cmp dword [esp + 0x10], 0
jne 0x44bc46
xor eax, eax
cmp edi, 5
sete al
inc eax
push eax
mov eax, dword [esp + 0x24]
call fcn.0043e1a0
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x44bc4a
mov edi, dword [esp + 0x30]
mov eax, edi
mov ecx, ebx
call fcn.00431b40
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x44bc65
xor eax, eax
jmp 0x44bc6c
mov eax, dword [eax*4 + 0x5295e8]
mov dword [esi + 0x10], eax
call fcn.00426540
movzx ecx, byte [esp + 0x3c]
mov dword [esi + 0xc], eax
mov eax, esi
mov byte [esi + 0xa], 1
call fcn.0043f550
cmp dword [esp + 0x10], 0
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add edx, 0x2c
push edx
call fcn.0047cf10
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
call fcn.00437ae0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je case.0x447d55.62
cmp eax, 0x65
jne 0x44c7a5
mov dword [esp + 0x10], 0
jmp 0x44c3d6
cmp dword [ebp + 4], 0
jne 0x44bd15
mov eax, dword [esp + 0x18]
call fcn.00445300
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
or dword [eax + 0x58], 1
add ebp, 0x14
jmp 0x447d40
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x44bd3d
mov eax, dword [esp + 0x18]
test dword [eax + 0x18], 0x4000
jne case.0x447d55.62
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.0043e0c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je case.0x447d55.62
cmp al, 6
jne 0x44c7a5
mov ecx, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
push ecx
push str.database_table_is_locked:__s
call fcn.00440a50
add esp, 8
jmp 0x44c7a5
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
call fcn.0047e4e0
mov esi, eax
mov dword [esp + 0x10], esi
test edi, edi
je 0x44bdae
mov eax, dword [esp + 0x14]
mov edi, dword [edi + 8]
push eax
call fcn.00445390
add esp, 4
test esi, esi
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
lea eax, [esp + 0x198]
mov dword [esp + 0x1b8], esi
call fcn.00440010
mov dword [esp + 0x10], eax
lea eax, [esp + 0x198]
push eax
call fcn.00445830
add esp, 4
test eax, eax
je 0x44be5c
mov ecx, dword [esp + 0x14]
add ecx, 0x2c
push ecx
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.0047e070
add esp, 8
mov dword [esp + 0x10], eax
lea eax, [esp + 0x198]
call fcn.0043fa90
cmp dword [esp + 0x10], 0
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov esi, dword [esp + 0x18]
inc dword [esi + 0xa8]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
mov ecx, esi
call fcn.0047e330
dec dword [esi + 0xa8]
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x8c], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x44c79d
mov eax, dword [esi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x44c79d
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x8c]
push ecx
push esi
call edx
mov ebx, eax
mov eax, dword [esp + 0x1c]
push eax
mov edi, esi
mov dword [esp + 0x1c], ebx
call fcn.00445390
add esp, 0xc
test ebx, ebx
jne 0x44c7a5
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
mov edx, dword [ebp + 4]
push ebx
push edx
call fcn.004479b0
add esp, 0x10
test eax, eax
je 0x44c871
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + edx*8]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x38]
mov ecx, dword [esi + ecx*4]
mov esi, dword [ecx + 0x14]
mov ebx, dword [esi]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x40], edi
mov edi, dword [eax + 0xc]
xor eax, eax
test ecx, ecx
jle 0x44bf8b
add edx, 0x50
lea esp, [esp]
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x44bf80
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x40]
push edi
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [ecx + 0x20]
push eax
push esi
call edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
add esp, 0x14
push eax
mov edi, ebx
call fcn.00445390
add esp, 4
cmp dword [esp + 0x10], 0
jne 0x44c7a5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x28]
push esi
call edx
mov ecx, dword [esp + 0x50]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x44c3d6
add ebp, 0x14
jmp 0x447d40
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
cmp byte [ecx + 2], 0
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
je 0x44c015
mov eax, esi
call fcn.0043fda0
add ebp, 0x14
jmp 0x447d40
mov edx, dword [ecx + 0x14]
mov edi, dword [edx]
mov edx, dword [edi]
xor eax, eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1e8], esi
mov ax, word [esi + 8]
mov ebx, 0x3e00
and ax, bx
or ax, 1
mov word [esi + 8], ax
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0x14]
mov edx, dword [edx + 0x2c]
push eax
lea eax, [esp + 0x1ec]
push eax
push ecx
call edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
add esp, 0xc
push eax
call fcn.00445390
mov eax, dword [esp + 0x200]
add esp, 4
test eax, eax
je 0x44c0a9
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x3c]
mov eax, esi
call fcn.0043f550
mov ecx, esi
call fcn.0043ff50
test eax, eax
jne 0x4487c1
cmp dword [esp + 0x10], eax
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
jne case.0x447d55.62
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
mov ebx, dword [edi]
mov ecx, dword [ebx + 0x24]
push eax
call ecx
mov edx, dword [esp + 0x18]
add esp, 4
push edx
mov dword [esp + 0x14], eax
call fcn.00445390
add esp, 4
cmp dword [esp + 0x10], 0
jne 0x44c7a5
mov eax, dword [esi + 0x14]
mov ecx, dword [ebx + 0x28]
push eax
call ecx
add esp, 4
test eax, eax
jne 0x44c138
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x38]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xf8]
test edx, edx
jne 0x44c8d0
mov eax, ecx
mov esi, dword [eax + 0x130]
test esi, esi
je case.0x447d55.62
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x74], ecx
jb case.0x447d55.62
mov edi, dword [esp + 0x74]
mov ebx, eax
mov ecx, dword [ebx + 0x138]
mov eax, edi
div ecx
sub ecx, edx
mov edx, dword [ebx + 0x134]
add ecx, edi
push edx
mov dword [esp + 0x98], ecx
call esi
add esp, 4
test eax, eax
jne 0x44c544
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov ecx, 1
mov eax, esi
call fcn.0043f550
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
mov ecx, dword [esi + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x4c]
push ecx
push edi
call edx
mov esi, dword [esp + 0x1c]
mov ebx, eax
push esi
mov dword [esp + 0x1c], ebx
call fcn.00445390
and dword [esi + 0x58], 0xfffffffe
add esp, 0xc
test ebx, ebx
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x44c79d
mov eax, dword [edi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x44c79d
cmp dword [eax + 0x34], 0
mov ecx, dword [ebp + 8]
je case.0x447d55.62
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0x4a]
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0xc]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x2b], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
xor eax, eax
test ecx, ecx
jle 0x44c25b
mov edi, edi
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x44c250
mov al, byte [ebp + 3]
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x158]
push edx
mov byte [ebx + 0x4a], al
mov eax, dword [esp + 0x24]
push esi
push ecx
mov ecx, dword [eax + 0x34]
push edi
call ecx
mov dl, byte [esp + 0x3b]
mov esi, dword [esp + 0x24]
push esi
mov dword [esp + 0x24], eax
mov byte [ebx + 0x4a], dl
call fcn.00445390
mov edx, dword [esp + 0x24]
add esp, 0x14
test edx, edx
jne 0x44c2ba
cmp dword [ebp + 4], edx
je 0x44c2ba
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dl, 0x13
jne 0x44c2f5
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x44c2f5
mov al, byte [ebp + 3]
cmp al, 4
jne 0x44c2df
mov dword [esp + 0x10], 0
add ebp, 0x14
jmp 0x447d40
cmp al, 5
jne 0x44c2ed
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x44c2f8
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x44c2f8
inc dword [esi + 0x64]
test edx, edx
jne 0x44c7a5
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebp, 0x14
jmp 0x447d40
mov edx, dword [esp + 0x14]
mov eax, ebp
call fcn.00447c40
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov ecx, dword [ebp + 0xc]
xor ebx, ebx
test ecx, ecx
je 0x44c36e
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x2c]
cmp ebx, ecx
jae 0x44c36e
mov ebx, ecx
call fcn.00436d00
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x447d40
mov edi, dword [esp + 0x18]
cmp dword [edi + 0xb4], 0
je 0x44c3d0
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x58], 2
jne 0x44c3d0
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x44c3a9
mov eax, dword [ecx + 0xb0]
test eax, eax
je 0x44c3d0
push eax
call fcn.004475e0
mov ecx, dword [edi + 0xb4]
mov esi, eax
mov eax, dword [edi + 0xb8]
add esp, 4
push esi
push eax
call ecx
add esp, 8
mov eax, esi
mov ecx, edi
call fcn.00423cc0
cmp dword [ebp + 8], 0
je case.0x447d55.62
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x38]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
add ebp, 0x14
jmp 0x447d40
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x44c69b
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x44c69b
mov eax, dword [esi + 0x2c]
mov ecx, edi
call fcn.00423cc0
mov ebx, str.database_schema_has_changed
mov eax, edi
call fcn.004241c0
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x10]
mov edx, eax
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
mov ecx, dword [esp + 0xb4]
cmp dword [edx], ecx
je 0x44c443
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.0045c5e0
mov esi, dword [esp + 0x14]
or dword [esi + 0x58], 1
mov dword [esp + 0x10], 0x11
jmp 0x44c7a5
mov dword [esp + 0x10], 7
mov ebx, dword [esp + 0x10]
jmp 0x44b262
mov edx, dword [ebp + 4]
mov dword [esi + 0x50], edx
mov al, byte [ebp + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
test edx, edx
je 0x44c4e1
mov al, byte [ebp + 3]
test al, al
je 0x44c4a5
movzx ecx, al
mov ecx, dword [ecx*4 + 0x528dac]
test ecx, ecx
je 0x44c4a7
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x44c4a7
push eax
push ecx
push str._s_constraint_failed:__s
call fcn.00440a50
add esp, 0xc
jmp 0x44c4c4
xor ecx, ecx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x44c4b6
push eax
push 0x52f658
jmp 0x44c4bc
push ecx
push str._s_constraint_failed
call fcn.00440a50
add esp, 8
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0xb0]
mov ecx, dword [ebp + 4]
push edx
push eax
push edi
push str.abort_at__d_in___s_:__s
push ecx
call fcn.00425af0
add esp, 0x14
push esi
call fcn.00443230
mov edi, dword [esp + 0x1c]
mov ecx, 5
add esp, 4
cmp eax, ecx
jne 0x44c503
mov dword [esp + 0x10], ecx
mov dword [esi + 0x50], ecx
jmp 0x44ca3a
mov eax, dword [esi + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x10], eax
jmp 0x44ca3a
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x130]
test eax, eax
je 0x44c551
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x94]
jb 0x44c551
mov ecx, dword [edi + 0x134]
push ecx
call eax
add esp, 4
test eax, eax
je 0x44c551
mov dword [esp + 0x10], 9
jmp 0x44c7a5
mov esi, dword [esp + 0x14]
push 0
mov eax, esi
call fcn.004431c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44c7a5
push 1
push esi
call fcn.004430a0
mov edx, dword [esi + 0x48]
mov ecx, dword [esp + 0x24]
add edx, 2
or edx, 1
mov dword [esi + 0x48], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
add esp, 8
mov dword [esi + 0x14], ebx
cmp dword [ebp + 8], 0
mov dword [esp + 0x20], 0
jle 0x44c5d4
mov edx, 0x1000
test word [ebx + 8], dx
je 0x44c5bc
mov eax, ebx
call fcn.0043f6b0
test eax, eax
jne 0x44c885
mov eax, ebx
call fcn.0043f7c0
mov eax, dword [esp + 0x20]
inc eax
add ebx, 0x28
cmp eax, dword [ebp + 8]
mov dword [esp + 0x20], eax
jl 0x44c5a2
cmp byte [edi + 0x45], 0
jne 0x44c885
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esi + 0x4c], ecx
mov dword [esp + 0x10], 0x64
jmp 0x44ca3a
cmp dword [edi + 0x50], 0
jne 0x44c617
lea eax, [esp + 0x1c0]
call fcn.0043fa90
mov eax, 0x12cd3
call fcn.0048f520
mov dword [esp + 0x10], eax
jmp 0x44c7a5
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov byte [edi + 0x43], 0
mov dword [esp + 0x10], 5
mov dword [esi + 0x50], 5
jmp 0x44ca3a
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + 0x43]
mov ebx, dword [ebp + 4]
mov eax, dword [ebp + 8]
cmp ebx, ecx
je 0x44c731
test eax, eax
je 0x44c689
push 0x204
mov edi, esi
call fcn.0048d700
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x44c6d1
test ebx, ebx
je 0x44c6b4
cmp dword [esi + 0xa0], 0
jle 0x44c6b4
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, dword [esp + 0x18]
call fcn.00440a50
add esp, 4
mov dword [esp + 0x10], 5
jmp 0x44c7a5
mov eax, dword [esp + 0x14]
push 1
call fcn.004431c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x44ca32
mov byte [esi + 0x43], bl
mov edi, dword [esp + 0x14]
push edi
call fcn.00443230
mov ecx, 5
add esp, 4
cmp eax, ecx
jne 0x44c714
sub ebp, dword [esp + 0x38]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, 1
sub dl, bl
mov dword [edi + 0x4c], eax
mov byte [esi + 0x43], dl
mov dword [esp + 0x10], ecx
mov dword [edi + 0x50], ecx
mov esi, edi
jmp 0x44ca36
call fcn.0048cc30
mov eax, dword [edi + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x10], eax
mov esi, edi
jmp 0x44ca36
test ebx, ebx
jne 0x44c73c
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x44c74a
test eax, eax
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x44c74a
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [esp + 0x14]
push eax
call fcn.00440a50
add esp, 4
mov dword [esp + 0x10], 1
jmp 0x44c7a5
mov dword [esp + 0x10], 8
jmp 0x44c7a5
sub ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], ecx
jmp 0x44ca3a
mov dword [esp + 0x10], 0x204
jmp 0x44c7a5
mov byte [esi + 0x56], 2
mov dword [esp + 0x10], 6
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x45], 0
je 0x44c7b7
mov dword [esp + 0x10], 7
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x2c], 0
mov ebx, dword [esp + 0x10]
jne 0x44c94c
cmp ebx, 0xc0a
je 0x44c94c
mov ecx, str.unknown_error
cmp ebx, 0x204
je 0x44c939
mov eax, ebx
and eax, 0xff
cmp eax, 0x1a
ja 0x44c93e
mov eax, dword [eax*4 + 0x52bbb8]
test eax, eax
je 0x44c93e
mov ecx, eax
jmp 0x44c93e
push str.too_many_levels_of_trigger_recursion
mov dword [esp + 0x14], 1
call fcn.00440a50
add esp, 4
jmp 0x44c7a5
push esi
call fcn.00445830
mov esi, dword [esp + 0x18]
add esp, 4
push eax
push 0x52f658
call fcn.00440a50
add esp, 8
jmp 0x44c7a5
mov dword [esp + 0x10], 1
mov eax, str.into
cmp edi, 5
je 0x44c85a
mov eax, str.out_of
mov esi, dword [esp + 0x14]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.00440a50
add esp, 8
jmp 0x44c7a5
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x45], 0
jne 0x44c8b2
cmp byte [eax + 0x46], 0
jne 0x44c8b2
cmp dword [eax + 0xa4], 0
mov byte [eax + 0x45], 1
jle 0x44c8ac
mov dword [eax + 0xf8], 1
inc dword [eax + 0x100]
mov esi, dword [esp + 0x14]
push str.out_of_memory
call fcn.00440a50
add esp, 4
mov dword [esp + 0x10], 7
jmp 0x44c7a5
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
xor eax, eax
cmp byte [edx + 0x45], al
mov ecx, str.unknown_error
sete al
lea eax, [eax + eax + 7]
mov dword [esp + 0x10], eax
mov dword [esi + 0x50], eax
cmp eax, 0x204
je 0x44c921
and eax, 0xff
cmp eax, 0x1a
ja 0x44c926
mov eax, dword [eax*4 + 0x52bbb8]
test eax, eax
je 0x44c926
mov ecx, eax
push ecx
push 0x52f658
call fcn.00440a50
add esp, 8
jmp 0x44c7a5
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x52f658
call fcn.00440a50
add esp, 8
jmp 0x44c7a5
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x52f658
call fcn.00440a50
add esp, 8
mov dword [esi + 0x50], ebx
cmp ebx, 0xc0a
je 0x44c982
mov eax, ebx
and eax, 0xff
cmp eax, 0xe
je 0x44c968
cmp eax, 0xa
jne 0x44c982
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x44c97d
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x44c97f
xor eax, eax
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x2c]
sub ebp, dword [esp + 0x38]
mov ecx, dword [esi + 0xb0]
push eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
push ecx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.00425af0
add esp, 0x14
push esi
call fcn.00443230
add esp, 4
cmp ebx, 0xc0a
jne 0x44c9eb
cmp byte [edi + 0x45], 0
jne 0x44c9eb
cmp byte [edi + 0x46], 0
jne 0x44c9eb
cmp dword [edi + 0xa4], 0
mov byte [edi + 0x45], 1
jle 0x44c9e5
mov dword [edi + 0xf8], 1
inc dword [edi + 0x100]
mov al, byte [esp + 0x53]
mov dword [esp + 0x10], 1
test al, al
jbe 0x44ca32
movzx esi, al
dec esi
mov edx, edi
mov eax, dword [edx + 0x10]
mov ecx, esi
shl ecx, 4
mov ecx, dword [ecx + eax + 0xc]
push ecx
call fcn.004624b0
add esp, 4
cmp esi, 1
je 0x44ca32
mov edx, edi
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 0x1c]
push ecx
call fcn.004624b0
mov esi, dword [esp + 0x18]
add esp, 4
jmp 0x44ca3a
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x74]
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
add dword [esi + 0x84], ecx
cmp dword [esi + 0x6c], 0
je 0x44ca61
push esi
call fcn.00441ba0
add esp, 4
mov ecx, dword [esp + 0x314]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004df2ac
add esp, 0x30c
ret