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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x268
mov eax, dword [0x72400c]
xor eax, esp
mov dword [esp + 0x264], eax
mov eax, ecx
mov dword [esp + 0x18], 0
push esi
push edi
mov dword [esp + 0x14], eax
mov edi, dword [eax]
mov esi, dword [eax + 0x58]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x10], esi
mov cl, byte [edi + 0x42]
mov byte [esp + 0x60], cl
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x24], ecx
mov ecx, eax
mov dword [esp + 0x18], edi
mov byte [esp + 0x6f], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x1c], 0
call fcn.0046ce40
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x28], 7
je 0x475794
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x68], 0
cmp dword [edi + 0xf8], 0
mov dword [edi + 0x184], 0
jne 0x479f42
cmp dword [edi + 0x130], 0
je 0x473907
mov eax, dword [edi + 0x138]
xor edx, edx
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 0xb0]
div dword [esp + 0x70]
sub dword [esp + 0x70], edx
jmp 0x47390f
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [ecx + 0x24]
xor edx, edx
mov dword [esp + 0xec], 0x3e00
mov dword [esp + 0xf8], 0x17
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, dword [0x72783c]
mov al, byte [esi]
inc edx
mov dword [esp + 0x1c], edx
movzx edx, al
mov dword [esp + 0x10], esi
mov byte [esp + 0x2f], al
mov dword [esp + 0x28], edx
cmp edx, 0xa4
ja case.0x473957.74
jmp dword [edx*4 + 0x47a0b0]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov edi, dword [esp + 0x24]
sub ecx, dword [esp + 0x5c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
add edi, 0xffffffec
lea eax, [eax + eax*4]
lea edi, [edi + eax*4]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*8 + 4], edx
mov edx, 4
mov word [eax + ecx*8 + 8], dx
cmp dword [esi + 8], 0
mov ecx, dword [esp + 0x14]
jne 0x47482a
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
add esi, 0xffffffec
jmp 0x4739e0
mov edx, dword [esp + 0x10]
mov ecx, 4
mov edi, dword [esp + 0x24]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x5c]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov edi, dword [esp + 0x18]
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x47483f
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x5c]
imul ecx
mov eax, dword [esp + 0x14]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 0x10]
cmp dword [edx + 4], 0
jne 0x479a72
mov ecx, dword [eax + 0xc4]
test ecx, ecx
je 0x479a72
mov esi, dword [esp + 0x14]
mov eax, dword [ecx + 4]
dec dword [esi + 0xcc]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x2c]
add dword [edi + 0x5c], eax
mov dword [edi + 0x58], eax
call fcn.0046d8c0
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 4
jne 0x473b4c
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, esi
lea eax, [eax + eax*4]
mov esi, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x1c]
lea esi, [esi + eax*4]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x473bb5
call fcn.00473800
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x10]
add esi, 0x14
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, 4
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x473c09
mov ecx, edx
call fcn.00473800
mov edx, eax
jmp 0x473c12
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
add esi, 0x14
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x473c5f
call fcn.00473800
mov ecx, eax
jmp 0x473c68
mov eax, 4
mov word [ecx + 8], ax
mov esi, dword [esp + 0x10]
mov eax, 8
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov word [ecx + 8], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x473cbe
mov ecx, esi
call fcn.00473800
mov esi, eax
jmp 0x473cc7
mov eax, 4
mov word [esi + 8], ax
mov byte [edi], 0x3a
mov edi, dword [edi + 0x10]
mov ecx, edi
call fcn.00451490
cmp byte [esp + 0x60], 1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
je 0x473d40
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.0046b0b0
movzx edx, byte [esp + 0x6c]
add esp, 0xc
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.0046a4f0
test eax, eax
jne 0x47578c
mov edi, dword [esp + 0x10]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edi + 1], 0xf9
jne 0x473d2e
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
call fcn.0044e760
mov byte [edi + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 4], eax
jmp 0x473d44
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x18]
cmp eax, dword [edi + 0x60]
jg 0x479d0c
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x473d80
call fcn.00473800
mov edx, dword [esp + 0x10]
mov ecx, eax
jmp 0x473d89
mov eax, 4
mov word [ecx + 8], ax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x60]
mov byte [ecx + 0xa], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x473bcb
mov edi, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
mov edi, dword [esp + 0x18]
jne 0x473bcb
mov eax, dword [esp + 0x24]
cmp dword [eax + esi*8 + 4], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jne 0x473dec
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x14]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x473e22
mov ecx, esi
call fcn.00473800
mov esi, eax
jmp 0x473e2b
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
sub edi, dword [eax + 8]
mov eax, 1
cmp dword [ecx + 4], 0
mov ecx, 0x101
mov dword [esi + 0xc], 0
cmovne eax, ecx
movzx eax, ax
mov word [esi + 8], ax
add esi, 0xc
mov dword [esp + 0x40], eax
test edi, edi
jle 0x473e81
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.0046ae50
mov eax, dword [esp + 0x40]
dec edi
mov word [esi - 4], ax
mov dword [esi], 0
test edi, edi
jg 0x473e63
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov esi, 0xff61
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x24]
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x473efb
mov ecx, esi
call fcn.00473800
mov esi, eax
jmp 0x473f04
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.0046b0b0
mov al, byte [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
lea edx, [edx - 5]
mov eax, dword [eax + 0x74]
lea edx, [eax + edx*8]
movzx eax, word [edx + 8]
test al, 0x12
je 0x473f75
mov esi, dword [edx + 0xc]
test eax, 0x4000
je 0x473f62
add esi, dword [edx]
mov eax, dword [edx + 0x20]
xor ecx, ecx
cmp esi, dword [eax + 0x60]
setg cl
test ecx, ecx
jne 0x479d0c
mov ecx, dword [esp + 0x24]
push 0x800
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046aff0
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
nop dword [eax + eax]
mov eax, 0x2460
test word [esi + 8], ax
jne 0x473fe1
cmp dword [esi + 0x18], 0
je 0x473fec
mov ecx, esi
call fcn.0046a9c0
mov ecx, dword [esp + 0x28]
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x474032
mov ecx, esi
call fcn.0046a6a0
test eax, eax
jne 0x47578c
mov ecx, dword [esp + 0x28]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x473fd0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop word [eax + eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.0046aff0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x4740ab
mov ecx, esi
call fcn.0046a6a0
test eax, eax
jne 0x47578c
mov ecx, dword [esp + 0x50]
mov eax, ecx
dec ecx
mov dword [esp + 0x50], ecx
test eax, eax
je 0x473e81
add esi, 0x28
add edi, 0x28
jmp 0x474080
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
push 0x1000
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
jmp 0x473f7e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
push dword [ecx + eax*8 + 4]
push dword [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046aeb0
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x47416e
mov ecx, esi
call fcn.0046ae50
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
test edx, 0x4000
je 0x474183
call fcn.0046a720
test eax, eax
jne 0x47578c
mov eax, 0x4000
test word [edi + 8], ax
je 0x47419d
mov ecx, edi
call fcn.0046a720
test eax, eax
jne 0x47578c
mov eax, dword [esp + 0x28]
test byte [eax + 8], 0x12
jne 0x4741bf
mov dl, byte [esp + 0x60]
mov ecx, eax
push 0
call fcn.0046a7d0
add esp, 4
test eax, eax
jne 0x47578c
test byte [edi + 8], 0x12
jne 0x4741dd
mov dl, byte [esp + 0x60]
mov ecx, edi
push 0
call fcn.0046a7d0
add esp, 4
test eax, eax
jne 0x47578c
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [esp + 0x3c], eax
mov ecx, edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
cdq
cmp ecx, edx
jg 0x479d08
mov edx, dword [esp + 0x3c]
jl 0x47420c
cmp edx, eax
ja 0x479d08
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 2
push eax
call fcn.0046a510
add esp, 4
test eax, eax
jne 0x47578c
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x474252
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.004e80a0
add esp, 0xc
mov eax, dword [esp + 0x28]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0x10]
push eax
call fcn.004e80a0
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x60]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov byte [esi + 0xa], al
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x38], edx
and eax, 0xc
je 0x4742d0
mov dword [esp + 0x3c], eax
jmp 0x4742ed
test cl, 0x12
je 0x4742e5
mov ecx, edx
call fcn.004737b0
movzx eax, ax
mov dword [esp + 0x3c], eax
jmp 0x4742ed
mov dword [esp + 0x3c], 0
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x50], edx
and eax, 0xc
je 0x47430c
mov dword [esp + 0x28], eax
jmp 0x47432d
test cl, 0x12
je 0x474325
mov ecx, edx
call fcn.004737b0
mov edx, dword [esp + 0x50]
movzx eax, ax
mov dword [esp + 0x28], eax
jmp 0x47432d
mov dword [esp + 0x28], 0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov ax, word [edx + 8]
or ax, word [esi + 8]
movzx ecx, ax
mov al, byte [esp + 0x28]
and al, byte [esp + 0x3c]
test al, 4
je 0x474480
mov eax, esi
mov byte [esp + 0x2f], 1
mov esi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x78], esi
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x7c], edx
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x474385
jmp dword [eax*4 + 0x47a344]
push ecx
push edi
lea ecx, [esp + 0x80]
call fcn.00452790
add esp, 8
test eax, eax
jne 0x474490
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
jmp 0x47444b
test edi, edi
jne 0x4743db
cmp ecx, 0x80000000
jne 0x4743db
test edx, edx
jg 0x474490
jl 0x4743d0
test esi, esi
jae 0x474490
add esi, 0
adc edx, 0x80000000
jmp 0x474443
neg edi
adc ecx, 0
neg ecx
jmp case.0x474385.88
push ecx
push edi
lea ecx, [esp + 0x80]
call fcn.00452830
jmp 0x47439a
mov eax, edi
or eax, ecx
je 0x4745af
mov eax, edi
and eax, ecx
cmp eax, 0xffffffff
jne 0x474413
test esi, esi
jne 0x474413
cmp edx, 0x80000000
je 0x474490
push ecx
push edi
push edx
push esi
call fcn.00508b70
jmp 0x474441
mov eax, edi
or eax, ecx
je 0x4745af
mov eax, edi
and eax, ecx
cmp eax, 0xffffffff
jne 0x474438
mov edi, 1
xor ecx, ecx
push ecx
push edi
push edx
push esi
call fcn.00508c50
mov esi, eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov ax, word [ecx + 8]
mov dword [ecx + 4], edx
mov edx, 0x3e00
and ax, dx
mov dword [ecx], esi
mov esi, dword [esp + 0x10]
or ax, 4
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x14]
jmp 0x473935
test cl, 1
jne 0x4745af
mov byte [esp + 0x2f], 0
jmp 0x474494
mov esi, dword [esp + 0x38]
mov ecx, esi
call fcn.0046ab80
mov ecx, dword [esp + 0x50]
movsd qword [esp + 0x30], xmm0
call fcn.0046ab80
mov eax, dword [esp + 0x10]
movaps xmm1, xmm0
movsd qword [esp + 0x40], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x4744c2
jmp dword [eax*4 + 0x47a354]
addsd xmm1, qword [esp + 0x30]
jmp 0x47454f
subsd xmm1, qword [esp + 0x30]
jmp 0x47454f
mulsd xmm1, qword [esp + 0x30]
jmp 0x47454f
movsd xmm0, qword [esp + 0x30]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4745af
divsd xmm1, xmm0
jmp 0x47454f
movsd xmm0, qword [esp + 0x30]
call fcn.005093ff
movsd xmm0, qword [esp + 0x40]
mov esi, eax
mov edi, edx
call fcn.005093ff
mov ecx, eax
mov dword [esp + 0x7c], edx
mov eax, esi
mov dword [esp + 0x78], ecx
or eax, edi
je 0x4745af
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x47453c
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.00508c50
mov ecx, eax
call fcn.00509550
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.00451450
test eax, eax
jne 0x4745af
mov ecx, dword [esp + 0x48]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x28]
or al, byte [esp + 0x3c]
test al, 8
jne 0x473e81
cmp byte [esp + 0x2f], 0
jne 0x473e81
call fcn.0046abb0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, dword [esp + 0x48]
call fcn.0046ae50
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
test eax, eax
je 0x47483f
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.0046aeb0
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x40], ecx
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [esp + 0x4c], esi
test al, 1
je 0x47465d
mov ecx, esi
call fcn.0046ae50
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, edx
call fcn.0046ab00
mov ecx, dword [esp + 0x40]
mov edi, eax
mov esi, edx
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], esi
call fcn.0046ab00
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov al, byte [eax]
mov byte [esp + 0x2f], al
cmp al, 0x54
jne 0x47469c
and edi, ecx
and esi, edx
jmp 0x474736
cmp al, 0x55
jne 0x4746a9
or edi, ecx
or esi, edx
jmp 0x474736
mov eax, ecx
or eax, edx
je 0x474736
test edx, edx
jg 0x4746dc
jl 0x4746bd
test ecx, ecx
jae 0x4746dc
mov al, 0xad
sub al, byte [esp + 0x2f]
cmp edx, 0xffffffff
jl 0x4746eb
jg 0x4746cf
cmp ecx, 0xffffffc0
jbe 0x4746eb
neg ecx
mov dword [esp + 0x50], ecx
adc edx, 0
neg edx
jmp 0x4746e0
mov al, byte [esp + 0x2f]
test edx, edx
jl 0x474713
jg 0x4746eb
cmp ecx, 0x40
jb 0x474713
test esi, esi
jg 0x474700
jl 0x4746f5
test edi, edi
jae 0x474700
cmp al, 0x56
je 0x474700
or edi, 0xffffffff
or esi, edi
jmp 0x474736
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
jmp 0x474736
movq xmm1, qword [esp + 0x100]
movd xmm0, ecx
cmp al, 0x56
jne 0x47476b
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x10]
or ax, 4
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov dword [ecx], edi
mov edi, dword [esp + 0x18]
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x14]
jmp 0x473935
psrlq xmm1, xmm0
movq qword [esp + 0x30], xmm1
test esi, esi
jg 0x47472e
jl 0x47477f
test edi, edi
jae 0x47472e
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x50]
or edx, 0xffffffff
call fcn.00508b30
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
or edi, eax
or esi, edx
jmp 0x474736
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046ac10
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x474833
test al, 8
jne 0x474809
test al, 2
je 0x474814
mov edx, 1
mov ecx, esi
call fcn.00473610
jmp 0x474810
mov ecx, esi
call fcn.0046abb0
mov ecx, dword [esp + 0x14]
movzx eax, word [esi + 8]
test al, 4
jne 0x474833
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
je 0x479b37
mov edi, dword [esp + 0x10]
jmp 0x47399d
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x473bcb
call fcn.0046ac80
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4748ad
mov ecx, esi
call fcn.0046a720
mov dword [esp + 0x20], eax
jmp 0x4748b5
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x60]
mov dl, byte [eax + 8]
call fcn.0046ad80
mov eax, dword [esp + 0x24]
add esp, 4
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x28], edi
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov ecx, edx
or ecx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], edx
test cl, 1
je 0x4749c0
movzx eax, word [eax + 2]
test al, al
jns 0x474955
mov al, dl
and al, byte [esp + 0x58]
test al, 1
je 0x47494b
test edx, 0x100
jne 0x47494b
xor edx, edx
jmp 0x474ad2
mov edx, 1
jmp 0x474ad2
test al, 0x20
je 0x4749a0
mov eax, dword [esp + 0x10]
mov esi, 0x3e00
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x8c], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
mov esi, dword [esp + 0x10]
or ax, 1
add esi, 0x14
mov word [edx + ecx*8 + 8], ax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, dword [esp + 0x14]
test al, 0x10
jne 0x47482a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x474a55
test cl, 2
je 0x474a00
mov al, byte [esp + 0x58]
and al, 0xe
cmp al, 2
jne 0x4749ed
xor edx, edx
mov ecx, edi
call fcn.00473610
movzx eax, word [esi + 8]
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x38]
and al, 0xe
cmp al, 2
jne 0x474a00
xor edx, edx
mov ecx, esi
call fcn.00473610
mov al, byte [edi + 8]
and al, byte [esi + 8]
test al, 4
je 0x474abd
mov edx, dword [esp + 0x28]
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [edx]
mov edx, dword [edx + 4]
cmp edi, edx
jl 0x474a3e
jg 0x474a26
cmp ecx, eax
jbe 0x474a34
mov edi, dword [esp + 0x28]
mov edx, 1
jmp 0x474ad2
cmp edi, edx
jg 0x474a4a
jl 0x474a3e
cmp ecx, eax
jae 0x474a4a
mov edi, dword [esp + 0x28]
or edx, 0xffffffff
jmp 0x474ad2
mov edi, dword [esp + 0x28]
xor edx, edx
jmp 0x474ad2
cmp al, 0x42
jne 0x474abd
mov al, byte [esp + 0x58]
test al, 2
jne 0x474a8b
test al, 0xc
je 0x474a8b
mov dl, byte [esp + 0x60]
mov ecx, edi
push 1
call fcn.0046a7d0
mov ax, word [edi + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x5c]
add esp, 4
and ax, cx
xor word [esp + 0x58], ax
mov al, byte [esp + 0x38]
test al, 2
jne 0x474abd
test al, 0xc
je 0x474abd
mov dl, byte [esp + 0x60]
mov ecx, esi
push 1
call fcn.0046a7d0
mov ax, word [esi + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x3c]
add esp, 4
and ax, cx
xor word [esp + 0x38], ax
mov eax, dword [esp + 0x10]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0046f680
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffffb3
cmp eax, 4
ja case.default.0x474ae1
jmp dword [eax*4 + 0x47a364]
xor ecx, ecx
test edx, edx
sete cl
jmp 0x474b12
mov ecx, edx
jmp 0x474b12
mov ecx, edx
jmp 0x474b0f
xor ecx, ecx
test edx, edx
setle cl
jmp 0x474b12
xor ecx, ecx
test edx, edx
setg cl
jmp 0x474b12
mov ecx, edx
not ecx
shr ecx, 0x1f
movzx eax, word [esp + 0x58]
mov word [edi + 8], ax
movzx eax, word [esp + 0x38]
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, 0x20
je 0x474ba1
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x8c], edx
xor edx, edx
test ecx, ecx
mov eax, dword [eax + 8]
setne dl
lea esi, [eax + eax*4]
movzx eax, word [edi + 2]
test al, 8
je 0x474b64
xor eax, eax
cmp byte [edi], 0x4e
sete al
cmp eax, edx
je 0x473e81
mov ecx, dword [esp + 0x24]
mov edi, 0x3e00
mov ax, word [ecx + esi*8 + 8]
and ax, di
mov dword [ecx + esi*8], edx
mov edi, dword [esp + 0x18]
or ax, 4
mov edx, dword [esp + 0x1c]
mov word [ecx + esi*8 + 8], ax
mov dword [ecx + esi*8 + 4], 0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
jmp 0x473935
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x47482a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
cmp dword [esp + 0x8c], 0
jne 0x47482a
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x474be9
xor eax, eax
jmp 0x474bef
mov eax, dword [edx - 4]
add eax, 4
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov esi, dword [esi + 4]
mov dword [esp + 0x4c], esi
mov esi, dword [edi + 8]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], edx
test ecx, ecx
jle 0x473bcb
lea edi, [edx + 0x14]
test eax, eax
je 0x474c31
mov ecx, dword [eax + esi*4]
jmp 0x474c33
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x24]
push dword [edi]
movzx eax, byte [eax + esi]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x50]
add eax, ecx
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046f680
mov edx, eax
add esp, 4
mov dword [esp + 0x8c], edx
test edx, edx
jne 0x474c9f
mov eax, dword [esp + 0x50]
inc esi
mov edx, dword [esp + 0x3c]
add edi, 4
cmp esi, dword [esp + 0x28]
jl 0x474c28
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
cmp dword [esp + 0x48], 0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
je case.0x473957.74
neg edx
add esi, 0x14
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x5c]
test edx, edx
jns 0x474cf6
mov eax, dword [eax + 4]
add esi, 0xffffffec
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x1c]
jne 0x474d10
mov eax, dword [eax + 8]
add esi, 0xffffffec
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
add esi, 0x14
jmp 0x473935
mov eax, dword [eax + 0xc]
add esi, 0xffffffec
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x474d43
mov esi, 2
jmp 0x474d55
call fcn.0046ab00
or eax, edx
je 0x474d53
mov esi, 1
jmp 0x474d55
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x474d74
mov eax, 2
jmp 0x474d86
call fcn.0046ab00
or eax, edx
je 0x474d84
mov eax, 1
jmp 0x474d86
xor eax, eax
mov ecx, dword [esp + 0x10]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x47
jne 0x474d9b
mov al, byte [esi + eax + 0x68235c]
jmp 0x474da2
mov al, byte [esi + eax + 0x67f5c4]
movzx edx, al
mov esi, 0x3e00
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
je 0x473ea8
mov eax, dword [esp + 0x24]
mov dword [eax + ecx*8], edx
mov edx, eax
mov ax, word [edx + ecx*8 + 8]
and ax, si
mov dword [edx + ecx*8 + 4], 0
or ax, 4
jmp 0x473eb8
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046ae50
test byte [edi + 8], 1
jne 0x473e81
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.0046ab00
or eax, edx
jne 0x474e3e
mov edi, dword [esp + 0x18]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
mov eax, 1
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edi, dword [esp + 0x18]
xorps xmm0, xmm0
mov edx, dword [esp + 0x1c]
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046ae50
test byte [edi + 8], 1
jne 0x473e81
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.0046ab00
mov edi, dword [esp + 0x18]
not edx
mov ecx, dword [esp + 0x14]
not eax
mov dword [esi + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [esi], eax
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edi, dword [ecx + 0xc4]
test edi, edi
je 0x474f37
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x18]
sub ecx, dword [eax + 0x58]
mov eax, 0x66666667
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x473995
bts edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x58]
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [ecx + 0x58]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x47399d
mov eax, dword [ecx + 0x58]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x474f8c
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
jmp 0x474fb1
call fcn.0046ab80
mov esi, dword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [esi], 0x16
jne 0x474fb1
xor ecx, eax
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x47482a
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x47482a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x47482a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x473bcb
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046ae50
jmp 0x473995
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [edx + 8]
mov dword [esp + 0x64], esi
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x28], edi
cmp byte [edi], 0
jne 0x475097
cmp byte [edi + 3], 0
je 0x4750fc
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4750f3
mov eax, dword [eax + esi*4 + 4]
test eax, eax
jle 0x4750f3
mov edi, dword [edi + 0x24]
dec eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x20], 0
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, dword [edi + 0x48]
lea eax, [eax + eax*4]
mov dword [esp + 0x58], edx
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0x1c]
mov dword [esp + 0x38], ecx
cmp eax, dword [esi + 0x20]
je 0x4751e1
cmp byte [edi + 2], 0
je 0x47511e
cmp byte [edi], 3
jne 0x479342
mov eax, dword [edi + 0x28]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edi + 0x54], esi
mov dword [edi + 0x50], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edi + 0x4c], eax
jmp 0x475172
mov ecx, edi
call fcn.0046ec90
jmp 0x47510c
mov eax, dword [edi + 0x28]
cmp byte [eax + 0x42], 1
je 0x475097
mov ecx, edi
call fcn.0046ed00
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov edx, dword [esp + 0x10]
jmp 0x47509f
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00463830
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x50], eax
movsx eax, byte [esi + 0x44]
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + eax*4 + 0x74]
mov edx, dword [eax + 0x3c]
movzx eax, word [esi + 0x20]
sub edx, ecx
cmp eax, edx
mov dword [edi + 0x4c], ecx
cmovb edx, eax
mov eax, dword [edi + 0x50]
mov dword [esp + 0x50], edx
cmp eax, edx
ja 0x47515a
mov dword [edi + 0x54], eax
jmp 0x47516a
mov esi, dword [esp + 0x18]
cmp eax, dword [esi + 0x60]
ja 0x479d04
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x4c]
mov eax, dword [eax + 0x20]
mov dword [edi + 0x1c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x475196
movzx ecx, al
mov eax, 1
mov dword [esp + 0xc0], ecx
jmp 0x4751b0
lea edx, [esp + 0xc0]
call fcn.00452610
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x58]
movzx eax, al
movzx eax, al
mov dword [edi + 0x30], eax
xor eax, eax
mov word [edi + 0x3a], ax
mov dword [edx], ecx
cmp esi, ecx
jae 0x475274
mov dword [edi + 0x4c], eax
mov dword [edi + 0x54], eax
cmp ecx, 0x18003
ja 0x479b41
cmp ecx, dword [edi + 0x50]
ja 0x479b41
movzx eax, word [edi + 0x3a]
mov ecx, dword [esp + 0x64]
cmp eax, ecx
jg 0x475452
mov eax, dword [edi + 0x30]
cmp eax, dword [edx]
jae 0x475401
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x68], eax
test eax, eax
jne 0x4752b5
xorps xmm0, xmm0
mov dword [esp + 0x20], eax
movaps xmmword [esp + 0x190], xmm0
movaps xmmword [esp + 0x1a0], xmm0
movq qword [esp + 0x1b0], xmm0
mov esi, dword [edi + 0x28]
mov edx, dword [edx]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x68], eax
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x74]
mov ecx, dword [eax + 0x3c]
sub ecx, dword [esp + 0x68]
movzx eax, word [esi + 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp edx, ecx
ja 0x475285
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1a0], eax
mov eax, 0x1010
mov word [esp + 0x198], ax
mov dword [esp + 0x19c], edx
jmp 0x4752b1
test ecx, ecx
je 0x4751e1
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x68], eax
jmp 0x4752b5
lea eax, [esp + 0x190]
mov ecx, esi
push eax
push edx
xor edx, edx
call fcn.0046b2d0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x58]
movzx eax, word [edi + 0x3a]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov edi, dword [edx + eax*4]
xor edx, edx
mov esi, dword [ecx + 0x30]
add esi, dword [esp + 0x68]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x58]
mov edx, dword [edx]
add edx, dword [esp + 0x68]
add eax, 0x16
mov dword [esp + 0x40], edx
lea eax, [ecx + eax*4]
mov dword [esp + 0x4c], eax
nop dword [eax]
movzx ecx, byte [esi]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x94], ecx
cmp ecx, 0x80
jae 0x47531e
movzx eax, cl
movzx eax, byte [eax + 0x6801f8]
cdq
add edi, eax
adc dword [esp + 0x3c], edx
mov edx, 1
jmp 0x475346
lea edx, [esp + 0x94]
mov ecx, esi
call fcn.00452610
mov ecx, dword [esp + 0x94]
movzx edx, al
mov dword [esp + 0x48], ecx
call fcn.0046eeb0
add edi, eax
adc dword [esp + 0x3c], 0
mov eax, dword [esp + 0x50]
add esi, edx
mov edx, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x50], eax
mov dword [edx], ecx
add edx, 4
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x58]
mov dword [edx + eax*4], edi
mov edx, dword [esp + 0x40]
cmp eax, dword [esp + 0x64]
jg 0x475379
cmp esi, edx
jb 0x4752f0
jmp 0x47537d
cmp esi, edx
jb 0x4753bb
cmp esi, edx
ja 0x475392
mov edx, dword [esp + 0x28]
cmp edi, dword [edx + 0x50]
jne 0x475392
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4753bf
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x4c], 0
jne 0x4753a8
lea ecx, [esp + 0x190]
call fcn.0046aa50
mov ecx, 0x13e56
call fcn.004c34e0
mov edi, dword [esp + 0x18]
jmp 0x478f9f
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x50]
test edx, edx
ja 0x475392
jb 0x4753da
cmp edi, dword [esp + 0x40]
ja 0x475392
mov edi, dword [esp + 0x28]
sub esi, dword [esp + 0x68]
cmp dword [edi + 0x4c], 0
mov word [edi + 0x3a], ax
mov dword [edi + 0x30], esi
jne 0x47540e
lea ecx, [esp + 0x190]
call fcn.0046aa50
mov ecx, dword [esp + 0x48]
jmp 0x47540e
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x94], ecx
movzx eax, word [edi + 0x3a]
cmp eax, dword [esp + 0x64]
jg 0x475461
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
cmp byte [eax + 1], 0xf5
jne 0x479342
mov edx, dword [eax + 0x10]
push 0x800
call fcn.0046aff0
mov esi, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, dword [edi + ecx*4 + 0x58]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x94], ecx
mov esi, dword [esp + 0x38]
mov eax, 0x2460
test word [esi + 8], ax
je 0x47547b
mov ecx, esi
call fcn.0046ae50
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
mov eax, dword [edi + 0x54]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [esp + 0x38]
jb 0x475555
mov eax, dword [esp + 0x64]
mov edi, dword [edi + 0x4c]
add edi, dword [edx + eax*4]
cmp ecx, 0xc
jae 0x4754c8
mov edx, ecx
mov ecx, edi
push esi
call fcn.0046efd0
mov esi, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov al, byte [esp + 0x60]
lea esi, [ecx - 0xc]
mov ecx, dword [esp + 0x38]
shr esi, 1
mov dword [ecx + 0xc], esi
lea edx, [esi + 2]
mov byte [ecx + 0xa], al
cmp dword [ecx + 0x18], edx
jge 0x475504
mov eax, 1
push 0
mov word [ecx + 8], ax
call fcn.0046a510
add esp, 4
test eax, eax
jne 0x47578c
mov ecx, dword [esp + 0x38]
jmp 0x47550a
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call fcn.004e80a0
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
and edx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov ax, word [edx*2 + 0x681ee4]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov word [ecx + 8], ax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov al, byte [esp + 0x60]
mov byte [esi + 0xa], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x475576
cmp ecx, 0xc
jb 0x475572
test cl, 1
je 0x475581
test al, al
js 0x475581
call fcn.0046eeb0
mov edx, eax
test edx, edx
jne 0x4755a9
mov edx, ecx
mov ecx, 0x729dfc
push esi
call fcn.0046efd0
mov esi, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov esi, dword [edi + 0x28]
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], 0
movsx eax, byte [esi + 0x44]
mov edi, dword [esi + 0x18]
mov dword [esp + 0x4c], edi
mov eax, dword [esi + eax*4 + 0x74]
mov ecx, dword [eax + 0x3c]
movzx eax, word [esi + 0x20]
sub ecx, edi
mov esi, dword [esp + 0x64]
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [esp + 0x58]
mov edi, dword [eax + esi*4]
mov esi, dword [esp + 0x40]
lea eax, [edx + edi]
cmp eax, ecx
ja 0x475606
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
add eax, edi
mov dword [esi + 0x10], eax
mov eax, 0x1010
mov word [esi + 8], ax
mov dword [esi + 0xc], edx
jmp 0x475627
push dword [esp + 0x38]
mov ecx, esi
push edx
mov edx, edi
call fcn.0046b2d0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x10]
push esi
call fcn.0046efd0
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
nop
push dword [esp + 0x60]
mov dl, al
mov ecx, edi
call fcn.004736a0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x475670
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edi, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x38], eax
movlpd qword [esp + 0x30], xmm0
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
movlpd qword [esp + 0x50], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + 0x8f]
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x40], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x68], eax
test esi, esi
je 0x475731
mov al, byte [esi]
mov edi, ecx
nop word [eax + eax]
push dword [esp + 0x60]
mov dl, al
mov ecx, edi
call fcn.004736a0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x475710
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x64], eax
lea eax, [esp + 0xa0]
mov ecx, edi
push eax
call fcn.0046ed50
mov esi, eax
add esp, 4
mov eax, 0x4000
mov dword [edi + 0x1c], esi
test word [edi + 8], ax
je 0x4757e9
mov ecx, dword [esp + 0x3c]
or ecx, dword [esp + 0x48]
je 0x4757d5
mov ecx, edi
call fcn.0046a720
test eax, eax
je 0x4757e9
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [edi + 0x45], 0
jne 0x4757bd
cmp byte [edi + 0x46], 0
jne 0x4757bd
cmp dword [edi + 0xa8], 0
mov byte [edi + 0x45], 1
jle 0x4757b7
mov dword [edi + 0xf8], 1
inc dword [edi + 0x100]
push str.out_of_memory
push ecx
call fcn.0046b8f0
add esp, 8
mov eax, 7
jmp 0x478f9f
mov ecx, dword [edi]
mov eax, ecx
cdq
add dword [esp + 0x64], eax
adc dword [esp + 0x58], edx
sub dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x3c]
mov edx, 1
add eax, dword [esp + 0xa0]
mov dword [esp + 0x3c], eax
adc dword [esp + 0x48], 0
cmp esi, 0x7f
jbe 0x475820
shr esi, 7
xor ecx, ecx
mov eax, esi
or eax, ecx
je 0x475820
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x475812
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x38], eax
cmp edi, dword [esp + 0x28]
je 0x47583c
mov edx, dword [esp + 0x40]
sub edi, 0x28
jmp 0x475755
cmp eax, 0x7e
jle 0x4758a9
cdq
mov edi, 1
mov esi, eax
mov dword [esp + 0x40], edi
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x475872
nop word [eax + eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x475860
mov dword [esp + 0x40], edi
mov eax, dword [esp + 0x38]
add eax, edi
mov edi, 1
mov dword [esp + 0x38], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x47589f
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x475891
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x40], edi
jge 0x4758ae
inc eax
mov dword [esp + 0x38], eax
cdq
mov dword [esp + 0x30], eax
mov edi, edx
add eax, dword [esp + 0x3c]
mov ecx, edi
mov esi, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
adc ecx, dword [esp + 0x48]
add esi, dword [esp + 0x64]
mov eax, dword [eax + 0x60]
adc ecx, dword [esp + 0x58]
cdq
cmp ecx, edx
jg 0x479d08
jl 0x4758e7
cmp esi, eax
ja 0x479d08
mov esi, dword [esp + 0x68]
mov ecx, esi
mov edx, dword [esp + 0x40]
call fcn.0046a680
test eax, eax
jne 0x47578c
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x50], ecx
cmp eax, 0x80
jae 0x475919
mov byte [ecx], al
mov eax, 1
jmp 0x47592a
push edi
push dword [esp + 0x34]
call fcn.00452430
mov ecx, dword [esp + 0x58]
add esp, 8
mov esi, dword [esp + 0x28]
movzx edi, al
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x30], edx
cmp edx, 0x80
jae 0x47594a
mov byte [edi + ecx], dl
mov eax, 1
jmp 0x47595f
push 0
push edx
add ecx, edi
call fcn.00452430
mov edx, dword [esp + 0x38]
add esp, 8
mov ecx, dword [esp + 0x50]
movzx eax, al
add edi, eax
lea eax, [edx - 1]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x38]
add edi, ecx
cmp eax, 6
ja 0x475995
movzx edx, byte [edx + 0x6801f8]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov esi, edx
dec edx
mov byte [edx + edi], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x475984
jmp 0x4759b6
cmp edx, 0xc
jb 0x4759b4
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4759b6
mov eax, dword [esp + 0x28]
push esi
push dword [eax + 0x10]
push edi
call fcn.004e80a0
add esp, 0xc
jmp 0x4759b6
xor esi, esi
add dword [esp + 0x38], esi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
add esi, 0x28
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], esi
cmp esi, dword [esp + 0x4c]
jbe 0x475931
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x58]
je 0x4739ea
mov eax, 0x4010
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov word [edx + 8], ax
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x108]
xorps xmm0, xmm0
movlpd qword [esp + 0x108], xmm0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
call fcn.00468560
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x475aa3
call fcn.00473800
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x108]
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x10c]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov esi, dword [esp + 0x10]
mov eax, 4
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov word [ecx + 8], ax
mov eax, dword [esp + 0x108]
mov dword [ecx], eax
mov eax, dword [esp + 0x10c]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
test eax, eax
mov edi, dword [edx + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
jne 0x475bc2
cmp dword [eax + 0xa4], 0
jg 0x479b54
mov ecx, edi
call fcn.00451490
mov esi, eax
xor edx, edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], esi
mov ecx, dword [eax + 0x1b4]
add ecx, dword [eax + 0x1b0]
push ecx
mov ecx, eax
call fcn.004b0bd0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0x21]
push 0
push eax
call fcn.0044ea10
mov esi, eax
add esp, 8
test esi, esi
je 0x473e81
mov ecx, dword [esp + 0x30]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.004e80a0
mov edi, dword [esp + 0x24]
add esp, 0xc
cmp byte [edi + 0x43], 0
je 0x475b75
mov byte [edi + 0x43], 0
mov byte [edi + 0x4b], 1
jmp 0x475b7b
inc dword [edi + 0x1b0]
mov eax, dword [edi + 0x1a8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1b8]
mov dword [edi + 0x1a8], esi
mov dword [esi + 8], eax
mov eax, dword [edi + 0x1bc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x1c0]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov esi, dword [eax + 0x1a8]
xor ecx, ecx
mov dword [esp + 0x48], ecx
test esi, esi
je 0x475bea
mov ecx, dword [esi]
mov edx, edi
call fcn.004517f0
test eax, eax
je 0x475c0a
inc dword [esp + 0x48]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x475bd2
push edi
push str.no_such_savepoint:__s
push dword [esp + 0x1c]
call fcn.0046b8f0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov eax, 1
jmp 0x478f9f
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp dword [edi + 0xa4], 0
jle 0x475c24
cmp edx, 1
je 0x479b70
cmp dword [esi + 0x18], 0
jne 0x475c7c
cmp byte [edi + 0x4b], 0
je 0x475c7c
mov dword [esp + 0x50], 1
cmp edx, 1
jne 0x475c84
mov ecx, dword [esp + 0x14]
call fcn.0046e410
mov dword [esp + 0x20], eax
test eax, eax
jne 0x47a079
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x43], 1
call fcn.0046e470
cmp eax, 5
je 0x479b7a
mov eax, dword [esp + 0x14]
mov byte [edi + 0x4b], 0
mov eax, dword [eax + 0x28]
mov dword [esp + 0x20], eax
jmp 0x475d7d
mov dword [esp + 0x50], 0
mov eax, dword [edi + 0x1b0]
sub eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x48], eax
cmp edx, 2
jne 0x475d0c
mov ecx, dword [edi + 0x18]
shr ecx, 0x17
and ecx, 1
mov dword [esp + 0x40], 0
cmp dword [edi + 0x14], 0
mov dword [esp + 0x4c], ecx
jle 0x475d14
mov eax, ecx
xor eax, 1
xor edi, edi
mov dword [esp + 0x30], eax
push eax
mov eax, dword [esp + 0x1c]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.00463360
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x40]
add edi, 0x10
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x30]
jl 0x475cc2
mov eax, dword [esp + 0x48]
mov edi, ecx
mov edx, dword [esp + 0x28]
jmp 0x475d14
mov dword [esp + 0x4c], 0
cmp dword [edi + 0x14], 0
mov dword [esp + 0x40], 0
jle 0x475d63
xor edi, edi
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.00463570
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x40]
add edi, 0x10
mov ecx, dword [esp + 0x18]
inc eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x48]
jl 0x475d24
mov edi, ecx
cmp dword [esp + 0x4c], 0
je 0x475d7d
mov ecx, edi
call fcn.00470580
call fcn.0048b9a0
or dword [edi + 0x18], 0x800000
cmp dword [edi + 0x1a8], esi
je 0x475df0
nop word [eax + eax]
cmp dword [edi + 0x1c8], 0
mov ecx, dword [edi + 0x1a8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1a8], eax
je 0x475db3
mov edx, ecx
mov ecx, edi
call fcn.0044e6e0
jmp 0x475de2
cmp ecx, dword [edi + 0x120]
jb 0x475dd9
cmp ecx, dword [edi + 0x124]
jae 0x475dd9
mov eax, dword [edi + 0x11c]
mov dword [ecx], eax
dec dword [edi + 0x108]
mov dword [edi + 0x11c], ecx
jmp 0x475de2
push ecx
call fcn.0044e670
add esp, 4
dec dword [edi + 0x1b0]
cmp dword [edi + 0x1a8], esi
jne 0x475d90
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
cmp edi, 1
jne 0x475e51
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1a8], eax
mov esi, ecx
call fcn.0044e760
cmp dword [esp + 0x50], 0
jne 0x475e81
dec dword [esi + 0x1b0]
mov ecx, dword [esp + 0x48]
mov edx, edi
mov edi, dword [esp + 0x18]
push ecx
mov ecx, edi
call fcn.004b0bd0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
cmp dword [esp + 0x50], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1b8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1bc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1c0], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1c4], eax
je 0x475e1c
cmp edi, 2
je 0x475e1c
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 8]
test edx, edx
je 0x475ebd
test dword [edi + 0x18], 0x80000
jne 0x479baf
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x476006
mov ecx, esi
call fcn.00462580
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479bb9
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
je 0x475fd3
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x94], 0x40
je 0x475fd3
cmp byte [edi + 0x43], 0
je 0x475f16
cmp dword [edi + 0xa0], 1
jle 0x475fd3
cmp dword [ecx + 0x30], 0
jne 0x475f31
mov eax, dword [edi + 0x1b0]
inc dword [edi + 0x1b4]
add eax, dword [edi + 0x1b4]
mov dword [ecx + 0x30], eax
mov eax, dword [ecx + 0x30]
xor edx, edx
dec eax
mov ecx, edi
push eax
call fcn.004b0bd0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x475fab
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x30], eax
je 0x475f72
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x475f72
mov ecx, esi
call fcn.0045f980
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x68]
jle 0x475f8c
cmp byte [ecx + 6], 0
je 0x475f8c
mov edx, edi
call fcn.0045c900
mov dword [esp + 0x20], eax
jmp 0x475f94
mov dword [esp + 0x20], 0
cmp byte [esi + 9], 0
je 0x475fa7
add dword [esi + 0xc], 0xffffffff
jne 0x475fa7
mov ecx, esi
call fcn.0045f940
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [edi + 0x1b8]
mov dword [ecx + 0x48], eax
mov eax, dword [edi + 0x1bc]
mov dword [ecx + 0x4c], eax
mov eax, dword [edi + 0x1c0]
mov dword [ecx + 0x50], eax
mov eax, dword [edi + 0x1c4]
mov dword [ecx + 0x54], eax
lea eax, [esp + 0xc4]
mov edx, 1
push eax
mov ecx, esi
call fcn.00468480
mov eax, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0xc4]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x476011
xor esi, esi
xor eax, eax
mov dword [esp + 0xc4], esi
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], 0
je 0x47602e
cmp esi, dword [ecx + 0xc]
jne 0x479bed
cmp eax, dword [ecx + 0x10]
jne 0x479bed
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xf0]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468480
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x4760b8
call fcn.00473800
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0xf0]
add esi, 0x14
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov esi, dword [esp + 0x10]
mov eax, 4
mov word [ecx + 8], ax
add esi, 0x14
mov eax, dword [esp + 0xf0]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 4]
push dword [eax + 0xc]
mov edx, dword [eax + 8]
shl esi, 4
add esi, dword [edi + 0x10]
mov ecx, dword [esi + 4]
call fcn.004684e0
mov dword [esp + 0x24], eax
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x476125
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 0x800000
jmp 0x476137
cmp eax, 2
jne 0x476137
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
mov al, byte [eax + 0xc]
mov byte [ecx + 0x4c], al
mov esi, dword [esp + 0x10]
cmp dword [esi + 4], 1
jne 0x476155
mov ecx, edi
call fcn.00470580
mov ecx, dword [esp + 0x14]
and dword [ecx + 0x94], 0xfffffffe
jmp 0x476159
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x476192
mov eax, dword [esi + 0x34]
cmp eax, dword [edx + 8]
je 0x476329
mov al, byte [esp + 0x2f]
mov ecx, dword [esp + 0x14]
jmp 0x4761a0
mov edx, dword [esp + 0x10]
test byte [ecx + 0x94], 1
jne 0x479c40
mov ecx, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov esi, dword [ecx + 0xc]
mov ecx, esi
shl ecx, 4
add ecx, dword [edi + 0x10]
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], esi
mov edi, dword [ecx + 4]
cmp al, 0x69
jne 0x47620e
mov eax, dword [esp + 0x10]
movzx edx, word [eax + 2]
mov eax, dword [ecx + 0xc]
and edx, 8
mov ecx, dword [esp + 0x14]
or edx, 4
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x28]
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x8f]
jae 0x476216
mov byte [ecx + 0x8f], al
jmp 0x476216
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x47623b
mov ecx, dword [esp + 0x24]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046ac10
mov eax, dword [esi]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x10]
mov al, byte [edx + 1]
cmp al, 0xf7
jne 0x476259
mov eax, dword [edx + 0x10]
mov dword [esp + 0x50], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x476266
cmp al, 0xfd
jne 0x476262
mov ecx, dword [edx + 0x10]
jmp 0x476266
mov ecx, dword [esp + 0x4c]
mov edx, dword [edx + 4]
push 0
push esi
push ecx
mov ecx, dword [esp + 0x20]
call fcn.004734d0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x47578c
mov eax, dword [esp + 0x28]
or dword [esi + 8], 4
mov ecx, dword [esi + 0x28]
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
mov dword [esp + 0x30], ecx
cmp eax, 1
jge 0x4762c6
push 0x716dec
push 0xf94f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00450a20
add esp, 0x14
mov dword [esp + 0x20], 0xb
jmp 0x476310
cmp byte [edi + 9], 0
je 0x4762e4
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4762e4
mov ecx, edi
call fcn.0045f980
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
push ecx
push dword [esp + 0x54]
mov edx, eax
mov ecx, edi
push dword [esp + 0x48]
call fcn.00463630
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [edi + 9], 0
je 0x476310
add dword [edi + 0xc], 0xffffffff
jne 0x476310
mov ecx, edi
call fcn.0045f940
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 0x43], cl
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov eax, dword [eax + 0x70]
mov edx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
movsx eax, word [esi + 0x38]
push eax
call fcn.004734d0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x475790
or dword [edx + 8], 1
mov edi, dword [edx + 0x28]
mov byte [edx + 2], 1
mov ecx, dword [esi + 0x2c]
mov dword [edx + 0x2c], ecx
mov al, byte [esi + 4]
mov byte [edx + 4], al
mov eax, ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x30], eax
cmp byte [esi + 9], 0
je 0x4763c6
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4763c6
mov ecx, esi
call fcn.0045f980
mov eax, dword [esp + 0x30]
push edi
push eax
push 4
mov edx, 1
mov ecx, esi
call fcn.00463630
add esp, 0xc
mov ecx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x20], ecx
je 0x475640
add dword [esi + 0xc], 0xffffffff
jne 0x475640
mov ecx, esi
call fcn.0045f940
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
push 0
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.004734d0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x47578c
mov eax, dword [esp + 0x10]
lea esi, [edi + 0xc]
or dword [edi + 8], 1
xor edx, edx
mov byte [edi + 2], 1
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
mov eax, dword [esp + 0x20]
push esi
push eax
mov ecx, dword [eax]
call fcn.00461680
add esp, 0x10
test eax, eax
jne 0x479b4b
mov ecx, dword [esi]
lea edx, [eax + 1]
call fcn.00462580
test eax, eax
jne 0x479b4b
mov ecx, dword [esp + 0x10]
mov esi, dword [esi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x40], eax
mov dword [edi + 0x2c], eax
test eax, eax
je 0x476581
movzx eax, word [ecx + 2]
or eax, 2
cmp byte [esi + 9], 0
mov dword [esp + 0x30], eax
je 0x4764b7
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4764b7
mov ecx, esi
call fcn.0045f980
mov eax, dword [esp + 0x30]
push eax
lea edx, [esp + 0xcc]
mov ecx, esi
call fcn.00467d60
add esp, 4
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x4764e4
add dword [esi + 0xc], 0xffffffff
jne 0x4764e4
mov ecx, esi
call fcn.0045f940
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47657b
mov eax, dword [edi + 0x28]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc8]
cmp eax, 1
jge 0x476531
push 0x716dec
push 0xf94f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00450a20
add esp, 0x14
mov dword [esp + 0x20], 0xb
mov byte [edi + 4], 0
jmp 0x4765d1
cmp byte [esi + 9], 0
je 0x47654e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x47654e
mov ecx, esi
call fcn.0045f980
mov eax, dword [esp + 0xc8]
push dword [esp + 0x30]
mov edx, eax
mov ecx, esi
push dword [esp + 0x44]
push 4
call fcn.00463630
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x47657b
add dword [esi + 0xc], 0xffffffff
jne 0x47657b
mov ecx, esi
call fcn.0045f940
mov byte [edi + 4], 0
jmp 0x4765d1
cmp byte [esi + 9], 0
mov eax, dword [edi + 0x28]
mov dword [esp + 0x30], eax
je 0x4765a2
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4765a2
mov ecx, esi
call fcn.0045f980
mov eax, dword [esp + 0x30]
push eax
push 0
push 4
mov edx, 1
mov ecx, esi
call fcn.00463630
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x4765cd
add dword [esi + 0xc], 0xffffffff
jne 0x4765cd
mov ecx, esi
call fcn.0045f940
mov byte [edi + 4], 1
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [edi + 8]
and eax, 0xfffffffb
or ecx, eax
add esi, 0x14
mov dword [edi + 8], ecx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [esp + 0x10]
push 1
push 0xffffffffffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.004734d0
add esp, 0xc
test eax, eax
je 0x475790
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, edi
mov edx, dword [edx + 0xc]
call fcn.0047b760
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x14]
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x47482a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
push 3
push 0xffffffffffffffff
push dword [eax + 0xc]
mov edx, dword [eax + 4]
call fcn.004734d0
add esp, 0xc
test eax, eax
je 0x475790
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax + 4], 1
jmp 0x473935
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x476757
movzx eax, byte [ecx]
sub eax, 0
je 0x47673b
sub eax, 1
je 0x476730
sub eax, 1
jne 0x476757
mov edx, dword [ecx + 0x28]
push edx
mov eax, dword [edx]
mov ecx, dword [eax]
dec dword [eax + 4]
mov eax, dword [ecx + 0x1c]
call eax
add esp, 4
jmp 0x476757
mov edx, ecx
mov ecx, dword [esi]
call fcn.0047be60
jmp 0x476757
test byte [ecx + 8], 1
je 0x47674f
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x476757
call fcn.00461e10
jmp 0x476757
mov ecx, dword [ecx + 0x28]
call fcn.004636f0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x10]
add esi, 0x14
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x4768b8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x4767c6
xor edx, edx
mov ecx, edi
call fcn.00473610
mov ecx, edi
call fcn.0046ab00
movzx ecx, word [edi + 8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], edx
test cl, 4
jne 0x476820
test cl, 8
je 0x473995
mov ecx, eax
call fcn.00509550
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x47680d
mov ecx, dword [esp + 0x28]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x476820
comisd xmm1, xmm0
jbe 0x476820
mov eax, dword [esp + 0x28]
test al, 1
jne 0x476820
inc eax
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x74]
mov ecx, dword [esi + 0x28]
xor edx, edx
push eax
push 0
push dword [esp + 0x58]
push edi
call fcn.004640e0
mov dword [esp + 0x30], eax
add esp, 0x10
mov eax, dword [esp + 0x50]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x40], edi
test eax, eax
jne 0x479b4b
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x74]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp eax, 0x1a
jl 0x4769a3
test ecx, ecx
js 0x476964
jne 0x47688a
cmp eax, 0x1b
je 0x476964
mov dword [esp + 0x74], 0
mov ecx, dword [esp + 0x10]
test edi, edi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 0x14]
cmove eax, ecx
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x10], eax
add esi, 0x14
jmp 0x473935
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 0x43]
and al, 2
mov byte [esp + 0x2f], al
mov eax, 0
setne al
test dl, 1
mov dword [esp + 0x3c], eax
lea edx, [esp + 0x110]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x110], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x118], ax
sete al
mov byte [esp + 0x11e], 0
lea eax, [eax*2 - 1]
mov byte [esp + 0x11a], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x114], eax
lea eax, [esp + 0x74]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.004640e0
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
cmp byte [esp + 0x2f], al
je 0x476857
mov edi, dword [esp + 0x3c]
cmp byte [esp + 0x11e], al
jne 0x47685b
mov ecx, dword [esp + 0x74]
jmp 0x4769be
push 0
push dword [esi + 0x28]
mov dword [esp + 0x7c], 0
call fcn.00464700
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x476892
cmp eax, 0x65
jne 0x479b4b
mov dword [esp + 0x20], 0
mov dword [esp + 0x74], 1
jmp 0x473995
test ecx, ecx
jg 0x4769cb
jne 0x4769ae
cmp eax, 0x18
je 0x4769cb
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [esp + 0x74], ecx
test ecx, ecx
jne 0x473995
jmp 0x476892
push 0
push dword [esi + 0x28]
mov dword [esp + 0x7c], 0
call fcn.00464870
jmp 0x476976
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp dword [edx + 0x10], 0
mov eax, dword [eax + 0x70]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], edi
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jle 0x476a37
mov eax, dword [edi + 0x2c]
lea edi, [esp + 0x180]
mov dword [esp + 0x180], eax
mov ax, word [edx + 0x10]
mov word [esp + 0x188], ax
xor eax, eax
mov dword [esp + 0x184], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
jmp 0x476a81
mov eax, 0x4000
test word [esi + 8], ax
je 0x476a51
mov ecx, esi
call fcn.0046a720
test eax, eax
jne 0x47578c
mov ecx, dword [edi + 0x2c]
call fcn.0046f190
mov edi, eax
mov dword [esp + 0x4c], edi
test edi, edi
je 0x47578c
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [esp + 0x48]
mov ecx, dword [esi + 0x2c]
call fcn.0046f1e0
mov edx, dword [esp + 0x18]
add esp, 8
mov byte [edi + 0xa], 0
cmp byte [edx], 0x1c
mov dword [esp + 0x40], 0
jne 0x476ab9
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x476ab9
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x476ab1
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x476aa2
jmp 0x476ab9
mov dword [esp + 0x40], 1
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0xf4]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.004640e0
mov edi, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x476aed
mov edx, eax
mov ecx, edi
call fcn.0044e720
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov eax, dword [esp + 0xf4]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov al, 1
mov byte [esi + 3], 0
sete cl
mov dword [esi + 0x1c], 0
sub al, cl
mov byte [esi + 2], al
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x1e
jne 0x476b3d
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x47482a
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
cmp dword [esp + 0x40], 0
jne 0x473995
test ecx, ecx
mov ecx, dword [esp + 0x14]
je 0x47482a
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne case.0x473957.32
test al, 8
jne 0x476b8f
test al, 2
je 0x476b9a
mov edx, 1
mov ecx, esi
call fcn.00473610
jmp 0x476b96
mov ecx, esi
call fcn.0046abb0
mov ecx, dword [esp + 0x14]
test byte [esi + 8], 4
je 0x47482a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xcc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx + 0x28]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [esp + 0xcc]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.004640e0
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xcc]
mov dword [ecx + 0x40], esi
mov dword [ecx + 0x44], edi
mov word [ecx + 2], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], eax
test eax, eax
je 0x475e81
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], 0
jne 0x473999
mov ecx, 0x144af
call fcn.004c34e0
mov dword [esp + 0x20], eax
jmp 0x475e85
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x476c66
mov ecx, edx
call fcn.00473800
mov edx, eax
jmp 0x476c6f
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x10]
mov dword [edx], eax
mov eax, dword [ecx + 0x14]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add esi, 0x14
jmp 0x473935
mov edi, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov dword [esp + 0x98], 0
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x4c], edx
test word [edx + 8], ax
je 0x476cf7
mov ecx, edx
call fcn.00473800
mov dword [esp + 0x4c], eax
jmp 0x476d00
mov eax, 4
mov word [edx + 8], ax
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x70]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x28], edi
test byte [edi + 8], 2
jne 0x476dfe
mov esi, dword [edi + 0x28]
cmp byte [esi + 0x42], 1
jne 0x476d34
test byte [esi + 0x40], 8
je 0x476d34
mov dword [esp + 0x20], 0
jmp 0x476da9
mov ecx, esi
call fcn.00463e20
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
cmp byte [esi + 0x42], al
jne 0x476d79
mov edx, dword [esp + 0x14]
mov edi, 1
xor esi, esi
mov dword [esp + 0x98], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
jmp 0x476e0c
mov ecx, esi
mov dword [esp + 0x98], 0
call fcn.00464010
mov dword [esp + 0x20], eax
test eax, eax
jne 0x476d9d
or byte [esi + 0x40], 8
mov dword [esp + 0x20], eax
jmp 0x476da9
and byte [esi + 0x40], 0xf7
test eax, eax
jne 0x479b4b
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00463830
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
cmp esi, 0x7fffffff
jl 0x476de4
jg 0x476dd6
cmp edi, 0xffffffff
jb 0x476de4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
or dword [eax + 8], 2
jmp 0x476e0c
mov edx, dword [esp + 0x14]
add edi, 1
mov dword [esp + 0x80], edi
adc esi, 0
mov dword [esp + 0x84], esi
jmp 0x476e0c
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x476eaa
mov edx, dword [edx + 0xc4]
test edx, edx
je 0x476e44
mov eax, dword [edx + 4]
test eax, eax
je 0x476e39
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x476e30
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x476e4e
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x50], ecx
call fcn.0046ac10
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x476e71
cmp edx, 0x7fffffff
je 0x476f37
mov eax, dword [esp + 0x28]
test byte [eax + 8], 2
mov eax, dword [esp + 0x50]
jne 0x476f37
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x476ea5
jl 0x476e93
cmp edi, ecx
jae 0x476ea5
mov edi, ecx
mov esi, edx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x28]
test byte [eax + 8], 2
je 0x476f49
mov dword [esp + 0x40], 0
lea eax, [esp + 0x80]
push eax
push 8
call fcn.00450a60
mov esi, dword [esp + 0x8c]
lea eax, [esp + 0xa0]
mov edi, dword [esp + 0x88]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x34]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x90], edi
push esi
mov ecx, dword [eax + 0x28]
xor edx, edx
push edi
mov dword [esp + 0x9c], esi
call fcn.004640e0
add esp, 0x18
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
cmp dword [esp + 0x98], eax
jne 0x476f45
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
cmp eax, 0x64
jl 0x476ec0
mov edi, dword [esp + 0x18]
mov eax, 0xd
jmp 0x478f9f
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x4c]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x10]
mov dword [eax], edi
add esi, 0x14
mov edi, dword [esp + 0x18]
jmp 0x473935
cmp byte [esp + 0x2f], 0x74
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], 0
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
jne 0x476fb2
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
jmp 0x476fb5
cdq
mov esi, eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], esi
cmp byte [ecx + 1], 0xfa
jne 0x47700e
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xdc], 0
je 0x47700e
mov eax, dword [eax + 0x10]
movsx ecx, byte [edi + 1]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, eax
mov eax, 0x12
test byte [ecx + 2], 4
cmovne eax, dword [esp + 0xf8]
mov dword [esp + 0x40], eax
jmp 0x47701e
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
test byte [ecx + 2], 1
je 0x47702b
mov eax, dword [esp + 0x14]
inc dword [eax + 0x2c]
test byte [ecx + 2], 0x20
je 0x47703b
mov eax, dword [esp + 0x18]
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], edx
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
movzx eax, word [edx + esi*8 + 8]
mov dword [esp + 0x30], eax
test al, 1
je 0x477068
mov dword [esp + 0x148], 0
mov dword [esp + 0x154], 0
jmp 0x477082
mov eax, dword [edx + esi*8 + 0x10]
mov dword [esp + 0x148], eax
mov eax, dword [edx + esi*8 + 0xc]
mov dword [esp + 0x154], eax
mov eax, dword [esp + 0x30]
movzx ecx, word [ecx + 2]
test cl, 0x10
je 0x477090
mov edx, dword [edi + 0x20]
jmp 0x477092
xor edx, edx
test eax, 0x4000
je 0x4770a9
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*8]
mov dword [esp + 0x158], eax
jmp 0x4770b4
mov dword [esp + 0x158], 0
push edx
and ecx, 0xa
mov dword [esp + 0x13c], 0
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x140]
call fcn.004676d0
add esp, 8
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov eax, dword [edi + 0xdc]
test eax, eax
je 0x473bcb
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x473bcb
push dword [esp + 0x144]
mov edx, dword [esp + 0x50]
push dword [esp + 0x144]
push dword [edx]
push dword [esp + 0x5c]
push ecx
push dword [edi + 0xd8]
call eax
mov esi, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
jne 0x4771b1
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xdc], 0
je 0x4771b1
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov esi, dword [edx + 0x10]
mov dword [esp + 0x30], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x40], eax
je 0x4771bb
cmp byte [edi + 4], 0
je 0x4771bb
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.00463830
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x14]
mov esi, dword [esp + 0x30]
mov dword [edi + 0x44], eax
jmp 0x4771bb
mov dword [esp + 0x40], 0
xor esi, esi
mov dl, byte [edx + 2]
mov ecx, dword [edi + 0x28]
call fcn.00467a20
mov dword [esp + 0x20], eax
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
test eax, eax
jne 0x479b4b
test byte [esp + 0x4c], 1
mov ecx, dword [esp + 0x14]
je 0x4749ac
mov eax, dword [esp + 0x18]
inc dword [ecx + 0x2c]
mov eax, dword [eax + 0xdc]
test eax, eax
je 0x4749ac
test byte [esi + 0x24], 0x20
jne 0x4749ac
push dword [edi + 0x44]
push dword [edi + 0x40]
mov edi, dword [esp + 0x20]
push dword [esi]
push dword [esp + 0x4c]
push 9
push dword [edi + 0xd8]
call eax
mov esi, dword [esp + 0x28]
add esp, 0x18
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [ecx + 0x2c]
add dword [edi + 0x5c], eax
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x58], eax
mov dword [ecx + 0x2c], 0
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb0], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.0047db70
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0xb0], eax
jne 0x47482a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
call fcn.0047dad0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x1c], 0
jmp 0x473935
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x477351
mov ecx, esi
call fcn.00473800
mov esi, eax
jmp 0x47735a
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x28]
mov ecx, edi
call fcn.00463830
mov eax, dword [esp + 0x18]
mov edx, dword [edi + 0x1c]
cmp edx, dword [eax + 0x60]
ja 0x479d00
mov eax, dword [edi + 0x18]
mov dword [esp + 0x40], eax
movsx eax, byte [edi + 0x44]
mov dword [esp + 0x20], 0
mov eax, dword [edi + eax*4 + 0x74]
mov ecx, dword [eax + 0x3c]
sub ecx, dword [esp + 0x40]
movzx eax, word [edi + 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp edx, ecx
ja 0x4773c1
mov eax, dword [esp + 0x40]
mov dword [esi + 0x10], eax
mov eax, 0x1010
mov word [esi + 8], ax
mov dword [esi + 0xc], edx
jmp 0x4773db
push esi
push edx
xor edx, edx
mov ecx, edi
call fcn.0046b2d0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], 0
jne 0x473e81
mov eax, 0x1000
test word [esi + 8], ax
je 0x473e81
mov ecx, esi
call fcn.0046a6a0
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x475794
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x5c]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x477449
mov ecx, edi
call fcn.00473800
mov edi, eax
jmp 0x477452
mov eax, 4
mov word [edi + 8], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x70]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x477486
mov esi, dword [esp + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov word [edi + 8], ax
mov edi, dword [esp + 0x18]
jmp 0x473935
cmp byte [esi + 3], 0
je 0x47749e
mov ecx, dword [esi + 0x40]
mov dword [esp + 0xa8], ecx
mov eax, dword [esi + 0x44]
jmp 0x477563
cmp byte [esi], 2
jne 0x477501
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xa8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.004706a0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov dword [edi], ecx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [esi + 0x28]
cmp byte [eax + 0x42], 1
je 0x47751f
mov ecx, esi
call fcn.0046ed00
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
jmp 0x477525
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp byte [esi + 2], 0
je 0x47754c
mov esi, dword [esp + 0x10]
mov eax, 1
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov word [edi + 8], ax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00463830
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xa8], ecx
mov eax, dword [esi + 0x14]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov dword [esp + 0xac], eax
mov dword [edi], ecx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x473bcb
mov ecx, dword [ecx + 0x28]
call fcn.0045fe80
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov esi, dword [edi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], ecx
je 0x477606
cmp byte [esi + 0x42], 1
je 0x473e81
cmp byte [esi + 0x42], 1
jne 0x47761a
test byte [esi + 0x40], 8
je 0x47761a
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x477666
mov ecx, esi
call fcn.00463e20
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x47765e
cmp byte [esi + 0x42], al
jne 0x477635
lea ecx, [eax + 1]
jmp 0x477662
mov ecx, esi
mov dword [esp + 0x28], 0
call fcn.00464010
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
mov ecx, dword [esp + 0x28]
jne 0x477658
or byte [esi + 0x40], 8
jmp 0x477662
and byte [esi + 0x40], 0xf7
jmp 0x477662
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov byte [edi + 2], cl
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
test eax, eax
jne 0x479b4b
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], eax
jle 0x473e81
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x47399d
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00463e20
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
cmp byte [esi + 0x42], al
jne 0x4776e9
mov dword [esp + 0xa4], 1
mov dword [esp + 0x20], eax
jmp 0x473995
mov ecx, esi
mov dword [esp + 0xa4], 0
call fcn.00463f50
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
cmp dword [esp + 0xa4], eax
jne 0x473995
mov ecx, esi
call fcn.00464590
test edx, edx
jl 0x473bcb
jg 0x47772d
test eax, eax
jb 0x473bcb
push edx
push eax
call fcn.004529d0
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
cwde
cmp eax, dword [esi + 0xc]
jge case.0x473957.74
mov dword [esp + 0xa4], 1
mov edi, esi
jmp 0x47399d
inc dword [ecx + 0xa8]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x3c], eax
mov esi, dword [edi + 0x28]
cmp byte [edi], al
jne 0x4777da
cmp byte [esi + 0x38], 0
mov dword [esp + 0x20], 0
jne 0x4777ad
cmp dword [esi + 0x24], 0
lea edx, [esi + 0x24]
je 0x4777d4
xor eax, eax
lea ecx, [esi + 0x40]
mov dword [esp + 0x3c], eax
call fcn.0047c110
mov dword [esp + 0x20], eax
jmp 0x477815
mov ecx, esi
call fcn.0047c8d0
mov edx, eax
mov ecx, esi
call fcn.0047ba70
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x477815
mov ecx, esi
call fcn.0047d7d0
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x477815
mov ecx, esi
call fcn.00463e20
mov dword [esp + 0x20], eax
test eax, eax
jne 0x47780a
cmp byte [esi + 0x42], al
jne 0x4777f9
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x47780a
xor eax, eax
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.00463f50
mov dword [esp + 0x20], eax
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x3c]
mov byte [edi + 2], al
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x47482a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, edi
call fcn.0047da40
jmp 0x47789f
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
cmp dword [eax + ecx*4], 0
je 0x473bcb
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [esi + 0x28]
call eax
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x4778c9
mov ecx, dword [esp + 0x14]
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa0]
jmp case.0x473957.13
cmp eax, 0x65
jne 0x478f9f
xor ecx, ecx
mov byte [esi + 2], 1
mov dword [esp + 0x20], ecx
jmp 0x47834e
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x70]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x47790c
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x47792a
mov ecx, esi
call fcn.0046a720
test eax, eax
jne 0x479b4b
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0x7d
jne 0x47793a
mov edx, esi
mov ecx, edi
call fcn.0047c9f0
jmp 0x4779a3
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x218], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x210], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x224], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x228], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x477983
mov ecx, dword [edi + 0x20]
jmp 0x477985
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x214]
and eax, 0xa
push eax
call fcn.004676d0
add esp, 8
mov dword [edi + 0x1c], 0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [esp + 0x160], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x168], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x160]
mov byte [esp + 0x16a], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x164], eax
lea eax, [esp + 0xfc]
push eax
push 0
push 0
push 0
call fcn.004640e0
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
cmp dword [esp + 0xfc], eax
jne 0x477a56
mov dl, 4
mov ecx, edi
call fcn.00467a20
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479b4b
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax + 0x42], 1
je 0x477aaf
mov ecx, esi
call fcn.0046ed00
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov edx, dword [esp + 0x10]
jmp 0x477ab5
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp byte [esi + 2], 0
jne 0x477bb6
mov edx, dword [esi + 0x28]
lea eax, [esp + 0xd0]
xorps xmm0, xmm0
mov ecx, edi
push eax
movlpd qword [esp + 0xd4], xmm0
call fcn.00470340
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x80
jne 0x477b3d
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xd0]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0xd4]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x10]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x24], esi
mov esi, dword [esp + 0x10]
mov dword [ecx + 0x18], eax
add esi, 0x14
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea ecx, [eax + ecx*8]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x477b86
call fcn.00473800
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0xd0]
add esi, 0x14
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0xd4]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov esi, dword [esp + 0x10]
mov eax, 4
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov word [ecx + 8], ax
mov eax, dword [esp + 0xd0]
mov dword [ecx], eax
mov eax, dword [esp + 0xd4]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046ae50
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
cmp byte [esp + 0x2f], 0x28
mov dword [esp + 0x90], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x170], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x178], ax
sbb al, al
mov byte [esp + 0x17a], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x174], eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x174]
push eax
call fcn.00470480
mov dword [esp + 0x28], eax
add esp, 8
mov eax, dword [esp + 0x10]
test byte [eax], 1
mov eax, dword [esp + 0x90]
jne 0x477c66
neg eax
jmp 0x477c67
inc eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], eax
test ecx, ecx
jne 0x478f9b
mov ecx, dword [esp + 0x14]
test eax, eax
jg 0x47482a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x477cc0
mov ecx, edi
call fcn.00473800
mov edi, eax
jmp 0x477cc9
mov eax, 4
mov word [edi + 8], ax
mov edx, dword [esp + 0x18]
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [edx + 0xac]
inc eax
cmp dword [edx + 0xa0], eax
jg 0x479c4a
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb4], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], ecx
shl ecx, 4
mov dword [esp + 0x30], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], ecx
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x477d2a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x477d2a
mov ecx, esi
call fcn.0045f980
mov edx, dword [esp + 0x30]
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
call fcn.00468270
add esp, 4
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x477d57
add dword [esi + 0xc], 0xffffffff
jne 0x477d57
mov ecx, esi
call fcn.0045f940
mov esi, dword [esp + 0xb4]
mov eax, 4
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 4], edx
test eax, eax
jne 0x479b4b
test esi, esi
je 0x473e81
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x40]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x477db1
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x477dab
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x477da0
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x477dd1
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x477dcb
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x477dc0
mov al, byte [esp + 0x4c]
mov esi, dword [esp + 0x10]
add al, 1
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x6f], al
jmp 0x473935
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xb8]
xor ecx, ecx
mov dword [esp + 0xb8], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004681b0
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x20], eax
cmp dword [esi + 0xc], 0
je 0x477e65
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xb8]
add dword [ecx + 0x2c], eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
jle 0x477e61
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x18]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x477eb1
mov edx, dword [ecx + 0x28]
mov ecx, edi
call fcn.0047bcf0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, dword [ecx + 0x28]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.004681b0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x477f11
mov ecx, edi
call fcn.00473800
mov edx, dword [esp + 0x10]
mov edi, eax
jmp 0x477f1a
mov eax, 4
mov word [edi + 8], ax
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
shl eax, 4
mov dword [esp + 0xbc], 0
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [edx], 0x87
setne cl
mov esi, dword [eax + 4]
inc ecx
mov dword [esp + 0x30], ecx
cmp byte [esi + 9], 0
je 0x477f5c
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x477f5c
mov ecx, esi
call fcn.0045f980
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0xc0]
mov ecx, esi
call fcn.00467d60
add esp, 4
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x477f89
add dword [esi + 0xc], 0xffffffff
jne 0x477f89
mov ecx, esi
call fcn.0045f940
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
cdq
mov dword [edi + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [edi], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [esp + 0x10]
inc byte [edi + 0x4e]
push 0
push 0
push 0
push dword [eax + 0x10]
push edi
call fcn.0049c130
dec byte [edi + 0x4e]
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add eax, 0x6c
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], eax
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x134], ecx
add ecx, ecx
push str.sqlite_master
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00450780
mov esi, eax
add esp, 0x14
test esi, esi
je 0x479c61
push 0
lea eax, [esp + 0x12c]
mov byte [edi + 0x99], 1
push eax
push fcn.004a0420
push esi
push edi
mov dword [esp + 0x148], 0
call fcn.0049c130
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x134]
mov dword [esp + 0x20], eax
call fcn.0044e720
mov ecx, dword [esp + 0x20]
mov byte [edi + 0x99], 0
test ecx, ecx
jne 0x479c69
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.00489c90
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xe0]
push eax
lea ecx, [edi + 8]
call fcn.00452e90
add esp, 4
mov esi, dword [eax + 8]
test esi, esi
je 0x478150
push dword [esp + 0xe0]
mov edx, eax
lea ecx, [edi + 8]
call fcn.00452f50
mov edi, dword [esp + 0x1c]
add esp, 4
test esi, esi
je 0x478154
cmp dword [edi + 0x1c8], 0
jne 0x47812c
add dword [esi + 0x20], 0xffffffff
jne 0x478154
mov edx, esi
mov ecx, edi
call fcn.0048bb50
mov esi, dword [esp + 0x10]
or dword [edi + 0x18], 0x800000
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
or dword [edi + 0x18], 0x800000
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.0048b780
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004ac660
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
lea eax, [esp + 0xe4]
push eax
mov eax, dword [ecx + esi*8]
mov ecx, dword [esp + 0x1c]
inc eax
push eax
movzx eax, word [edx + 2]
push dword [edx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468fd0
add esp, 0xc
mov dword [esp + 0x40], eax
mov ecx, edi
call fcn.0046ae50
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x47824a
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x47578c
mov ecx, dword [esp + 0x24]
dec eax
cdq
push fcn.0044e670
push 1
sub dword [ecx + esi*8], eax
mov eax, ecx
push 0xffffffffffffffff
mov ecx, edi
sbb dword [eax + esi*8 + 4], edx
mov edx, dword [esp + 0x4c]
call fcn.0046b0b0
add esp, 0xc
mov al, byte [esp + 0x60]
mov ecx, edi
movzx edx, al
call fcn.0046a4f0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x47829f
mov ecx, esi
call fcn.0046aef0
test byte [esi + 8], 0x20
je 0x47578c
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00457cc0
mov esi, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x4783be
mov esi, dword [edi]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x478306
test al, 1
jne 0x478301
mov ecx, dword [esi + 8]
call fcn.00457db0
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x4783be
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x47832f
mov ecx, esi
call fcn.00457c30
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x28]
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0046aeb0
add esp, 8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
cmp dword [edi + 0xf8], 0
jne 0x479f3e
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x70]
jb 0x473dec
mov ecx, dword [edi + 0x130]
test ecx, ecx
je 0x473dec
mov eax, dword [edi + 0x138]
mov dword [esp + 0x70], eax
mov eax, edx
xor edx, edx
div dword [esp + 0x70]
mov eax, dword [esp + 0x70]
push dword [edi + 0x134]
sub eax, edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x74], eax
call ecx
add esp, 4
test eax, eax
jne 0x479d4a
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov ecx, edi
call fcn.0046ae50
jmp 0x479489
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], eax
jne 0x478408
mov ecx, esi
call fcn.0046aef0
test byte [esi + 8], 0x20
je 0x47578c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
test eax, eax
je 0x47842d
push dword [ecx + edi*8 + 4]
mov edx, eax
push dword [ecx + edi*8]
mov ecx, dword [esi]
call fcn.00457fd0
add esp, 8
test eax, eax
jne 0x473995
mov eax, dword [esp + 0x40]
test eax, eax
js 0x473e81
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00457cc0
mov esi, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
cmp word [eax + 2], 0
je 0x4784b4
mov eax, dword [edx + 0xc4]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x4784b0
nop dword [eax + eax]
cmp dword [eax + 0x1c], ecx
je 0x479a60
mov eax, dword [eax + 4]
test eax, eax
jne 0x4784a0
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 0xcc]
cmp eax, dword [edi + 0x88]
jge 0x479c82
test byte [ecx + 8], 0x40
jne 0x47868b
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x4784fc
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, edi
cdq
push edx
push eax
call fcn.0044e980
mov edi, eax
add esp, 8
mov dword [esp + 0x30], edi
test edi, edi
je 0x47578c
mov ecx, dword [esp + 0x28]
call fcn.0046aa50
mov eax, dword [esp + 0x28]
mov ecx, 0x40
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x5c]
mov word [eax + 8], cx
mov ecx, dword [esp + 0x3c]
mov dword [eax], edi
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x5c]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [edx + 0x70]
mov dword [edi + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [edx + 0x58]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x88]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x4785c2
mov esi, dword [esp + 0x18]
mov edi, 0x80
nop
mov word [eax + 8], di
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x4785b0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
inc dword [edx + 0xcc]
mov eax, dword [edx + 0xc4]
mov ecx, dword [esp + 0x18]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 0x24]
lea ecx, [edi + 0x50]
mov dword [edi + 0x24], eax
mov eax, dword [edx + 0x2c]
mov dword [edi + 0x44], eax
mov eax, dword [edx]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 0x58]
mov dword [edi + 0x48], eax
mov eax, dword [edx + 0xd8]
mov dword [edi + 0x28], eax
mov dword [edx + 0x5c], ecx
mov dword [edx + 0xd8], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xc4], edi
mov eax, dword [edi + 0x3c]
mov dword [edx + 0x18], eax
movzx eax, word [edi + 0x40]
mov dword [edx + 0x1c], eax
mov eax, dword [edx + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [edx + 0x70], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.004e7b30
mov edx, dword [esi]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
lea edi, [edx - 0x14]
mov dword [ecx + 0x58], edx
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov dword [ecx + 0x88], eax
jmp 0x473935
mov edi, dword [ecx]
jmp 0x4785c6
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4786bc
mov ecx, esi
call fcn.00473800
mov esi, eax
jmp 0x4786c5
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x14]
push 0x1000
mov edx, dword [eax + 0xc4]
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x14]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0046aff0
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
test dword [edi + 0x18], 0x40000
mov eax, dword [esp + 0x10]
mov esi, eax
je 0x47873a
mov eax, dword [eax + 8]
cdq
add dword [edi + 0x1c0], eax
adc dword [edi + 0x1c4], edx
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x47875c
add dword [edi + 0x1b8], eax
adc dword [edi + 0x1bc], edx
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 0
je 0x4787ac
mov eax, dword [edi + 0x1b8]
or eax, dword [edi + 0x1bc]
jne 0x47483f
mov eax, dword [edi + 0x1c0]
or eax, dword [edi + 0x1c4]
je 0x47482a
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x478784
mov edx, dword [ecx + 0xc4]
test edx, edx
je 0x4787e0
mov eax, dword [edx + 4]
test eax, eax
je 0x4787ce
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4787c5
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x4787f1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.0046ac10
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046ac10
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x473e81
jl 0x478828
cmp dword [edi], eax
jae 0x473e81
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
mov edi, dword [esp + 0x18]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov edi, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
test edi, edi
jl 0x473e81
jg 0x47886c
test ecx, ecx
je 0x473e81
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb edi, edx
mov edx, dword [esp + 0x24]
mov dword [edx + esi*8], ecx
mov dword [edx + esi*8 + 4], edi
jmp 0x473995
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4788ca
mov ecx, esi
call fcn.00473800
mov edx, dword [esp + 0x30]
mov esi, eax
jmp 0x4788d3
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], eax
test eax, eax
jl 0x47895c
jg 0x4788f6
test ecx, ecx
je 0x47895c
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
jl 0x47890b
jg 0x47891c
test eax, eax
jne 0x47891c
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push ecx
push eax
lea ecx, [esp + 0xe0]
call fcn.00452790
add esp, 8
test eax, eax
jne 0x47895c
mov eax, dword [esp + 0xd8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esi], eax
mov eax, dword [esp + 0xdc]
mov dword [esi + 4], eax
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov esi, dword [esp + 0x10]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, ecx
or eax, edx
je 0x473bcb
test edx, edx
jl 0x473995
jg 0x4789b2
test ecx, ecx
je 0x473995
mov eax, dword [esp + 0x24]
sub ecx, 1
sbb edx, 0
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
jmp 0x473995
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov edx, dword [esi + ecx*8 + 4]
mov eax, dword [esi + ecx*8]
cmp edx, 0x80000000
jl 0x4789f8
jg 0x4789eb
test eax, eax
je 0x4789f8
sub eax, 1
mov dword [esi + ecx*8], eax
sbb edx, 0
mov dword [esi + ecx*8 + 4], edx
mov eax, dword [esi + ecx*8]
or eax, dword [esi + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
jmp 0x478796
mov eax, dword [esp + 0x10]
mov ecx, edi
push 0
movzx eax, word [eax + 2]
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.0044ea10
mov esi, eax
add esp, 8
test esi, esi
je 0x475790
mov edi, dword [esp + 0x10]
mov eax, 0x66666667
mov dword [esi + 8], 0
mov ecx, dword [edi + 0x10]
mov dword [esi + 4], ecx
mov ecx, edi
sub ecx, dword [esp + 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1a], al
mov word [edi], 0xf095
mov dword [edi + 0x10], esi
jmp 0x478a79
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x40], edi
cmp dword [esi + 8], edi
je 0x478ace
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x478ace
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x478ab0
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
inc dword [edi + 0xc]
mov eax, 1
mov edi, dword [esp + 0x18]
mov word [esp + 0x240], ax
lea eax, [esp + 0x238]
mov dword [esp + 0x258], edi
mov dword [esp + 0x250], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x478b65
cmp dword [esi + 0x14], 0
je 0x478b4d
lea eax, [esp + 0x238]
push eax
call fcn.00470d00
add esp, 4
push eax
push 0x712fa0
push dword [esp + 0x1c]
call fcn.0046b8f0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x238]
call fcn.0046aa50
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
cmp byte [esi + 0x18], 0
je 0x473bcb
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x473bcb
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.0046aeb0
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0046a8b0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x479c9a
movzx edx, byte [esp + 0x60]
mov ecx, esi
call fcn.0046a4f0
movzx eax, word [esi + 8]
test al, 0x12
je 0x473bcb
mov edx, dword [esi + 0xc]
test eax, 0x4000
je 0x478bf3
add edx, dword [esi]
mov eax, dword [esi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x60]
setg cl
test ecx, ecx
jne 0x479d0c
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
lea eax, [esp + 0x268]
mov dword [esp + 0x260], 0
push eax
lea eax, [esp + 0x268]
mov dword [esp + 0x26c], 0xffffffff
push eax
mov eax, dword [esp + 0x18]
mov ecx, edi
mov dword [esp + 0x26c], 0xffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.004c2110
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x478c83
cmp eax, 5
jne 0x478f9f
mov dword [esp + 0x20], 0
mov dword [esp + 0x260], 1
mov eax, dword [esp + 0x10]
xor esi, esi
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x260]
mov ecx, edi
cdq
push edx
push eax
call fcn.0046aeb0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x478c96
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea esi, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x40], esi
test word [esi + 8], ax
je 0x478cfb
mov ecx, esi
call fcn.00473800
mov dword [esp + 0x40], eax
jmp 0x478d04
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx ecx, byte [edi + 5]
cmove edx, ecx
mov dword [esp + 0x48], ecx
cmp byte [edi + 0x11], 3
jb 0x478d38
xor eax, eax
jmp 0x478d57
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x478d52
cmp dword [edi + 0x54], 0
jl 0x478d52
jg 0x478d4e
cmp dword [edi + 0x50], 0
jbe 0x478d52
xor eax, eax
jmp 0x478d57
mov eax, 1
test eax, eax
mov esi, ecx
mov eax, 0x70fe7c
cmovne esi, edx
cmp byte [edi + 0x10], 0
jne 0x478d6f
mov eax, dword [edi + 0xb0]
cmp esi, 5
jne 0x478da4
mov ecx, eax
call fcn.00451490
test eax, eax
je 0x478df0
cmp byte [edi + 0xe], 0
mov eax, dword [edi + 0x40]
mov eax, dword [eax]
jne 0x478df0
cmp byte [edi + 4], 0
jne 0x478d9b
cmp dword [eax], 2
jl 0x478df0
cmp dword [eax + 0x34], 0
je 0x478df0
mov ecx, dword [esp + 0x48]
mov esi, 5
cmp esi, ecx
je 0x478e24
cmp ecx, 5
je 0x478db2
cmp esi, 5
jne 0x478e24
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x43], 0
je 0x479cae
cmp dword [eax + 0xa0], 1
jg 0x479cae
cmp ecx, 5
jne 0x478df8
mov edx, eax
mov ecx, edi
call fcn.0045cf90
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x478e24
mov edx, esi
mov ecx, edi
call fcn.0045cd00
jmp 0x478e0e
mov edx, dword [esp + 0x48]
mov esi, edx
jmp 0x478e28
cmp ecx, 4
jne 0x478e07
lea edx, [ecx - 2]
mov ecx, edi
call fcn.0045cd00
cmp dword [esp + 0x20], 0
jne 0x478e24
mov ecx, dword [esp + 0x30]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00469670
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x20], 0
mov ecx, edi
cmove edx, esi
call fcn.0045cd00
mov esi, dword [esp + 0x40]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x478e4d
xor ecx, ecx
jmp 0x478e54
mov ecx, dword [eax*4 + 0x67f9dc]
mov dword [esi + 0x10], ecx
call fcn.00451490
movzx edx, byte [esp + 0x60]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.0046a4f0
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
add ecx, 0x6c
mov edx, edi
push dword [eax + 4]
call fcn.004af370
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00462ea0
mov dword [esp + 0x20], eax
test eax, eax
je 0x473bcb
cmp eax, 0x65
jne 0x478f9f
mov dword [esp + 0x20], 0
jmp 0x473995
cmp dword [esi + 4], 0
jne 0x478f1b
mov ecx, edi
call fcn.00470580
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
or dword [ecx + 0x94], 1
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0xc]
mov byte [esp + 0xe8], al
test al, al
jne 0x478f4d
test dword [edi + 0x18], 0x400
jne 0x47483f
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x10]
push dword [esp + 0xe8]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00469540
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x473ebd
cmp al, 6
jne 0x478f9f
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [esp + 0x1c]
call fcn.0046b8f0
add esp, 0xc
mov eax, dword [esp + 0x20]
cmp byte [edi + 0x45], 0
mov ecx, 7
cmovne eax, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
cmp dword [ecx + 0x6c], 0
jne 0x479f93
cmp eax, 0xc0a
je 0x479f93
mov ecx, dword [esp + 0x20]
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x479f74
movzx ecx, cl
cmp ecx, 0x1b
jae 0x479f79
mov ecx, dword [ecx*4 + 0x682900]
test ecx, ecx
je 0x479f79
mov eax, ecx
jmp 0x479f79
mov eax, dword [esp + 0x10]
mov ecx, edi
mov esi, dword [eax + 0x10]
mov edx, esi
call fcn.004b0ab0
mov dword [esp + 0x20], eax
test esi, esi
je 0x479027
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x14]
call fcn.004706a0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x24]
movq qword [esp + 0x1e0], xmm0
movaps xmmword [esp + 0x1c0], xmm0
mov eax, dword [eax + 8]
movaps xmmword [esp + 0x1d0], xmm0
mov dword [esp + 0x1e0], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [esp + 0x1c0]
call fcn.0046b040
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c0]
push eax
call fcn.00470d00
add esp, 4
test eax, eax
je 0x4790b9
mov ecx, dword [esp + 0x14]
add ecx, 0x6c
push ecx
push eax
mov eax, dword [esp + 0x18]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.004b04f0
add esp, 8
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x1c0]
call fcn.0046aa50
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, edi
inc dword [edi + 0xac]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.004b0870
dec dword [edi + 0xac]
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov dword [esp + 0x9c], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x479cf6
mov edi, dword [esi]
test edi, edi
je 0x479cf2
lea eax, [esp + 0x9c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.004706a0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
push 2
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [esp + 0x18]
push 0
mov edx, dword [eax + 4]
call fcn.004734d0
add esp, 0xc
test eax, eax
je 0x479cde
mov ecx, dword [esp + 0x9c]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
add edi, 0x28
mov eax, dword [eax + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov esi, dword [edi + edx*8]
lea edi, [edi + edx*8]
movd xmm0, edi
mov dword [esp + 0x30], edi
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 0x28]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x60]
test esi, esi
jle 0x4792cb
cmp esi, 8
jb 0x4792ac
cmp dword [0x72783c], 2
jl 0x4792ac
movaps xmm2, xmmword [0x717b80]
mov eax, esi
and eax, 0x80000007
jns 0x479256
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x479261
mov edi, dword [esp + 0x30]
cmp ecx, esi
jge 0x4792cb
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
nop dword [eax]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4792c0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x50]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x58]
push dword [esp + 0x4c]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [esp + 0x3c]
add esp, 0x14
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
call fcn.004706a0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x40]
add esp, 4
mov byte [ecx + 2], 0
jmp 0x477828
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov edx, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
cmp byte [edx + 2], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x47935f
mov ecx, edi
call fcn.0046ae50
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [edx + 0x28]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x200], xmm0
mov dword [esp + 0x1f0], edi
mov ax, word [edi + 8]
and ax, word [esp + 0xec]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 0x10]
push dword [eax + 8]
lea eax, [esp + 0x1f4]
push eax
push dword [edx + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.004706a0
mov eax, dword [esp + 0x204]
test eax, eax
mov ecx, dword [esp + 0x20]
movzx edx, byte [esp + 0x60]
cmovne ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, edi
call fcn.0046a4f0
movzx eax, word [edi + 8]
test al, 0x12
je 0x479404
mov edx, dword [edi + 0xc]
test eax, 0x4000
je 0x4793f1
add edx, dword [edi]
mov eax, dword [edi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x60]
setg cl
test ecx, ecx
jne 0x479d08
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x473e81
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x18]
add esp, 4
mov edx, esi
mov dword [esp + 0x20], eax
call fcn.004706a0
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x479b4b
mov eax, dword [esp + 0x30]
push dword [edi + 0x28]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x47834a
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x5c]
add esi, 0xffffffec
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov dword [esp + 0x10], esi
jmp 0x478352
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x4794df
cmp byte [esi + 0xa], 1
je 0x4794df
mov dl, 1
mov ecx, esi
call fcn.00450df0
test eax, eax
jne 0x479b4b
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, edi
mov dword [esp + 0x20], eax
call fcn.004706a0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
and dword [ecx + 0x94], 0xfffffffe
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x40], edx
test edx, edx
je 0x479cf6
mov eax, dword [edx]
mov dword [esp + 0x30], eax
test eax, eax
je 0x479cf6
cmp dword [eax + 0x34], 0
mov esi, dword [esp + 0x10]
mov esi, dword [esi + 8]
je 0x47483f
mov al, byte [edi + 0x4a]
mov edi, dword [ecx + 0x60]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x47958b
nop dword [eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x479580
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov al, byte [eax + 2]
mov byte [ecx + 0x4a], al
lea eax, [esp + 0x120]
push eax
mov eax, dword [esp + 0x34]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov edi, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x2f]
mov byte [edi + 0x4a], al
call fcn.004706a0
cmp dword [esp + 0x20], 0
mov eax, dword [esp + 0x10]
jne 0x4795f5
cmp dword [eax + 4], 0
je 0x4795f5
mov eax, dword [esp + 0x120]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x124]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
cmp cl, 0x13
jne 0x479644
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x479644
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x47962e
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
add esi, 0x14
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
jmp 0x473935
cmp eax, 5
jne 0x479638
mov eax, 2
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x8e], al
jmp 0x47964b
mov ecx, dword [esp + 0x14]
inc dword [ecx + 0x2c]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x478f9f
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
test word [edx + 8], ax
je 0x479691
mov ecx, edx
call fcn.00473800
mov edx, eax
jmp 0x47969a
mov eax, 4
mov word [edx + 8], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
add esi, 0x14
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edx], eax
mov dword [edx + 4], 0
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x5c]
lea edx, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x40], edx
test word [edx + 8], ax
je 0x4796fd
mov ecx, edx
call fcn.00473800
mov dword [esp + 0x40], eax
jmp 0x479706
mov eax, 4
mov word [edx + 8], ax
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
xor edi, edi
mov ecx, dword [edx + 4]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x47972a
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x479740
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x479740
mov ecx, esi
call fcn.0045f980
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x47974f
mov dword [eax + 0xa4], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa4]
je 0x479768
add dword [esi + 0xc], 0xffffffff
jne 0x479768
mov ecx, esi
call fcn.0045f940
mov ecx, dword [esp + 0x40]
mov eax, edi
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add esi, 0x14
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
jmp 0x473935
mov eax, dword [esp + 0x10]
mov ecx, edi
push 0
movzx eax, word [eax + 2]
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.0044ea10
mov esi, eax
add esp, 8
test esi, esi
je 0x475790
mov edi, dword [esp + 0x10]
mov eax, 0x66666667
mov dword [esi], 0
mov ecx, dword [edi + 0x10]
mov dword [esi + 4], ecx
mov ecx, edi
sub ecx, dword [esp + 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1a], al
add byte [edi], 2
mov byte [edi + 1], 0xf0
mov dword [edi + 0x10], esi
jmp 0x4797fe
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x40], edi
cmp dword [esi], edi
je 0x479851
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x479851
mov edi, dword [esp + 0x10]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x479833
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov byte [esi + 0x19], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4798d8
cmp dword [esi + 0x14], 0
je 0x4798ac
push edi
call fcn.00470d00
add esp, 4
push eax
push 0x712fa0
push dword [esp + 0x1c]
call fcn.0046b8f0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push dword [eax + 4]
lea edx, [edx + 0xd8]
push dword [esi + 0x10]
call fcn.0046e930
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
jne 0x479b4b
test byte [edi + 8], 0x12
je 0x473e81
movzx edx, byte [esp + 0x60]
mov ecx, edi
call fcn.0046a4f0
movzx eax, word [edi + 8]
test al, 0x12
je 0x473e81
mov edx, dword [edi + 0xc]
test eax, 0x4000
je 0x479906
add edx, dword [edi]
mov eax, dword [edi + 0x20]
xor ecx, ecx
mov edi, dword [esp + 0x18]
cmp edx, dword [eax + 0x60]
setg cl
test ecx, ecx
jne 0x479d0c
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add esi, 0x14
mov edx, dword [esp + 0x1c]
jmp 0x473935
mov cl, byte [edi + 0x4c]
mov esi, dword [esp + 0x14]
test cl, 0x81
je 0x4799ed
test byte [esi + 0x94], 2
jne 0x4799ed
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x479967
mov eax, dword [esi + 0xbc]
test eax, eax
je 0x4799ed
test cl, cl
jns 0x479998
mov edi, dword [edi + 0xb8]
mov edx, eax
mov ecx, esi
call fcn.00473000
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
push dword [eax + 0xbc]
call edi
push esi
call fcn.0044e670
mov esi, dword [esp + 0x20]
add esp, 0xc
jmp 0x4799ed
cmp dword [edi + 0xa8], 1
push eax
jle 0x4799d9
push str.____s
push edi
call fcn.00450780
mov ecx, dword [edi + 0xb8]
add esp, 0xc
mov esi, eax
push esi
push dword [esp + 0x18]
push dword [edi + 0xbc]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, edi
call fcn.0044e760
mov esi, dword [esp + 0x14]
jmp 0x4799ed
mov eax, dword [edi + 0xb8]
push esi
push dword [edi + 0xbc]
push 1
call eax
add esp, 0x10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [0x725688]
jl 0x479a4a
mov edx, 1
cmp dword [esi + 0x88], edx
jle 0x479a2d
mov eax, 0x14
nop
mov ecx, dword [esi + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x479a21
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x88]
jl 0x479a10
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], 0
inc dword [edi + 4]
inc dword [ecx + 0xb8]
jmp 0x47399d
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc dword [edi + 4]
inc dword [ecx + 0xb8]
jmp 0x47399d
mov esi, dword [esp + 0x10]
mov ecx, edx
mov edx, dword [esp + 0x1c]
add esi, 0x14
jmp 0x473935
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x14]
mov dword [eax + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x8e], al
mov eax, edi
mov edi, dword [esp + 0x18]
mov dword [eax + 0x24], esi
test ecx, ecx
je 0x479b17
movzx eax, word [edx + 2]
test ax, ax
je 0x479ae1
push dword [eax*4 + 0x67f860]
push str._s_constraint_failed
push dword [esp + 0x1c]
call fcn.0046b8f0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x479af5
push eax
mov eax, dword [esp + 0x18]
push dword [eax + 0x6c]
push str._z:__s
push edi
call fcn.00450780
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [ecx + 0x6c], eax
jmp 0x479af5
push dword [edx + 0x10]
push 0x712fa0
push dword [esp + 0x1c]
call fcn.0046b8f0
add esp, 0xc
mov eax, dword [esp + 0x14]
push dword [eax + 0x6c]
push dword [eax + 0xbc]
mov eax, dword [esp + 0x18]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.00450a20
add esp, 0x14
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.0046e470
mov dword [esp + 0x20], eax
cmp eax, 5
jne 0x479ef3
mov dword [esi + 0x28], eax
jmp 0x47a07d
mov eax, 0x14
jmp 0x478f9f
mov ecx, 0x13e1b
call fcn.004c34e0
mov edi, dword [esp + 0x18]
jmp 0x478f9f
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
call fcn.0046b8f0
mov edi, dword [esp + 0x20]
add esp, 8
mov eax, 5
jmp 0x478f9f
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x479e71
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 5
mov byte [edi + 0x43], 0
mov dword [esp + 0x20], eax
mov dword [esi + 0x28], eax
jmp 0x47a07d
mov eax, 8
jmp 0x478f9f
cmp al, 5
jne 0x478f9f
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x28], eax
jmp 0x47a07d
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [eax + 0x6c]
call fcn.0044e760
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.0044ec70
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x6c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x479c2b
mov ecx, edi
call fcn.0048b960
mov eax, dword [esp + 0x14]
or dword [eax + 0x94], 1
mov eax, 0x11
jmp 0x478f9f
mov eax, 0x204
jmp 0x478f9f
mov edi, dword [esp + 0x14]
mov eax, 6
mov byte [edi + 0x8e], 2
mov edi, edx
jmp 0x478f9f
mov dword [esp + 0x20], 7
mov ecx, edi
call fcn.0048b9a0
mov eax, dword [esp + 0x20]
cmp eax, 7
je 0x475790
jmp 0x478f9f
push str.too_many_levels_of_trigger_recursion
push edx
call fcn.0046b8f0
add esp, 8
mov eax, 1
jmp 0x478f9f
push esi
call fcn.00470d00
add esp, 4
push eax
push 0x712fa0
jmp 0x478f8f
mov ecx, str.out_of
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x1c]
call fcn.0046b8f0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov eax, 1
jmp 0x478f9f
push dword [esp + 0x9c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x47578c
mov edi, dword [esp + 0x18]
mov eax, 6
jmp 0x478f9f
mov edi, eax
jmp 0x479d0c
mov edi, esi
jmp 0x479d0c
mov edi, dword [esp + 0x18]
push str.string_or_blob_too_big
push dword [esp + 0x18]
call fcn.0046b8f0
add esp, 8
mov eax, 0x12
jmp 0x478f9f
mov eax, dword [edi + 0x130]
test eax, eax
je 0x479d58
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x70]
jb 0x479d58
push dword [edi + 0x134]
call eax
add esp, 4
test eax, eax
je 0x479d54
mov eax, 9
jmp 0x478f9f
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0046e410
test eax, eax
jne 0x478f9f
mov ecx, dword [esp + 0x14]
lea edx, [eax + 1]
call fcn.0046e3f0
mov edx, dword [esp + 0x14]
xor edi, edi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + 0x20]
add eax, 2
or eax, 1
mov dword [edx + 0x20], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edx + 0x68], esi
cmp dword [ecx + 8], edi
jle 0x479dd2
nop
mov eax, 0x1000
test word [esi + 8], ax
je 0x479dba
mov ecx, esi
call fcn.0046a6a0
test eax, eax
jne 0x47578c
mov ecx, esi
call fcn.0046a7b0
mov eax, dword [esp + 0x10]
inc edi
add esi, 0x28
cmp edi, dword [eax + 8]
jl 0x479da0
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x45], 0
jne 0x475790
test byte [edi + 0x4c], 4
je 0x479dfc
mov eax, dword [edi + 0xb8]
push 0
push edx
push dword [edi + 0xbc]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 0x64
mov dword [esp + 0x20], eax
jmp 0x47a07d
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov esi, dword [eax + 8]
movzx eax, byte [edi + 0x43]
mov dword [esp + 0x40], ecx
cmp ecx, eax
je 0x479f0d
test esi, esi
je 0x479e5f
mov edx, 0x204
mov ecx, edi
call fcn.004c1530
mov esi, dword [esp + 0x14]
mov byte [edi + 0x43], 1
jmp 0x479eaa
test ecx, ecx
je 0x479e87
cmp dword [edi + 0xa4], 0
jle 0x479e87
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [esp + 0x18]
call fcn.0046b8f0
add esp, 8
mov eax, 5
jmp 0x478f9f
mov esi, dword [esp + 0x14]
mov edx, 1
mov ecx, esi
call fcn.0046e410
mov dword [esp + 0x20], eax
test eax, eax
jne 0x47a07d
mov eax, dword [esp + 0x40]
mov byte [edi + 0x43], al
mov ecx, esi
call fcn.0046e470
cmp eax, 5
jne 0x479eec
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x5c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov al, 1
sub al, byte [esp + 0x40]
mov byte [edi + 0x43], al
mov eax, 5
mov dword [esp + 0x20], eax
mov dword [esi + 0x28], eax
jmp 0x47a07d
mov ecx, edi
call fcn.004c0e10
cmp dword [esi + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x20], eax
jmp 0x47a07d
test ecx, ecx
jne 0x479f18
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x479f27
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
push dword [esp + 0x18]
call fcn.0046b8f0
add esp, 8
mov eax, 1
jmp 0x478f9f
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp byte [edi + 0x45], al
sete al
lea eax, [eax*2 + 7]
mov dword [ecx + 0x28], eax
mov ecx, str.unknown_error
mov dword [esp + 0x20], eax
mov eax, dword [eax*4 + 0x682900]
test eax, eax
cmovne ecx, eax
push ecx
push 0x712fa0
jmp 0x478f8f
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x712fa0
push dword [esp + 0x1c]
call fcn.0046b8f0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], eax
cmp eax, 0xc0a
je 0x479fc4
movzx eax, al
cmp eax, 0xe
je 0x479faa
cmp eax, 0xa
jne 0x479fc4
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x479fbf
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x479fc1
xor eax, eax
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x5c]
push dword [eax + 0x6c]
push dword [eax + 0xbc]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x30]
call fcn.00450a20
mov esi, dword [esp + 0x28]
add esp, 0x14
mov ecx, esi
call fcn.0046e470
cmp dword [esp + 0x20], 0xc0a
jne 0x47a03a
cmp byte [edi + 0x45], 0
jne 0x47a03a
cmp byte [edi + 0x46], 0
jne 0x47a03a
cmp dword [edi + 0xa8], 0
mov byte [edi + 0x45], 1
jle 0x47a034
mov dword [edi + 0xf8], 1
inc dword [edi + 0x100]
mov cl, byte [esp + 0x6f]
mov eax, 1
mov dword [esp + 0x20], eax
test cl, cl
je 0x47a07d
mov eax, dword [edi + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00491a20
add esp, 4
cmp esi, 1
je 0x47a075
mov eax, dword [edi + 0x10]
push dword [eax + 0x1c]
call fcn.00491a20
add esp, 4
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
add dword [esi + 0xb0], ecx
cmp dword [esi + 0x9c], 0
je 0x47a09b
mov ecx, esi
call fcn.0046ceb0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x26c]
pop edi
pop esi
xor ecx, esp
call fcn.004ce564
mov esp, ebp
pop ebp
ret