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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
mov eax, dword [0x5875a4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [eax]
mov ebx, dword [eax + 0x58]
push eax
mov dword [ebp - 0x14], eax
mov cl, byte [edi + 0x46]
mov byte [ebp - 0x58], cl
mov ecx, dword [eax + 0x5c]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x1c], edi
mov byte [ebp - 0x65], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], ecx
call fcn.0045a330
mov ecx, dword [ebp - 0x14]
add esp, 4
cmp dword [ecx + 0x28], 7
je 0x460393
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x68], 0
cmp dword [edi + 0x100], 0
mov dword [edi + 0x18c], 0
jne 0x460626
cmp dword [edi + 0x138], 0
je 0x45a4d4
mov esi, dword [edi + 0x140]
xor edx, edx
mov eax, dword [ecx + 0xb0]
div esi
sub esi, edx
mov dword [ebp - 0x80], esi
jmp 0x45a4db
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [ecx + 0x24]
xor edx, edx
lea eax, [eax + eax*4]
lea esi, [ebx + eax*4]
inc edx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], edx
mov dl, byte [esi]
movzx ebx, dl
cmp ebx, 0xa4
ja case.0x45a4fe.83
jmp dword [ebx*4 + 0x460788]
mov edx, dword [ebp - 0x18]
mov ecx, edx
mov ebx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0x28]
dec edi
lea edi, [edi + edi*4]
lea edi, [edx + edi*4]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x18], edi
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov edx, dword [ebp - 0x20]
mov eax, 0x80
add esi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [esi + 8], 0
mov ecx, dword [ebp - 0x14]
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x45a572
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x28]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x28]
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x20]
lea esi, [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je case.0x45a4fe.83
mov ebx, dword [ebp - 0x14]
mov ecx, esi
sub ecx, dword [ebp - 0x28]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x18]
cmp dword [edx + 4], 0
jne 0x460039
mov ecx, dword [ebx + 0xc4]
test ecx, ecx
je 0x460039
mov eax, dword [ecx + 4]
mov esi, ebx
push ecx
dec dword [esi + 0xcc]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x2c]
add dword [edi + 0x60], eax
mov dword [edi + 0x5c], eax
call fcn.00460fe0
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp dword [ecx + 8], 4
jne 0x45a6b6
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, ebx
lea eax, [eax + eax*4]
mov ebx, dword [ecx + 0x58]
mov edx, dword [ecx + 0x5c]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x20]
lea esi, [ebx + eax*4]
mov dword [ebp - 0x28], ebx
add esi, 0x14
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov esi, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0x18]
add esp, 8
add esi, 0x14
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov esi, dword [ebp - 0x18]
mov ecx, eax
mov edx, dword [ebp - 0x20]
mov eax, 8
add esp, 8
add esi, 0x14
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov edi, dword [ebx + 0x10]
mov esi, eax
push edi
mov byte [ebx], 0x45
call fcn.00455f10
mov dword [ebx + 4], eax
add esp, 0xc
mov bl, byte [ebp - 0x58]
cmp bl, 1
je 0x45a7e5
push 0
push 1
push 0xffffffffffffffff
push edi
push esi
call fcn.004625a0
mov dword [ebp - 0x24], eax
movzx eax, bl
push eax
push esi
call fcn.00459c20
add esp, 0x1c
test eax, eax
jne 0x46038a
mov edi, dword [ebp - 0x18]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edi + 1], 0xf9
jne 0x45a7d3
push dword [edi + 0x10]
push dword [ebp - 0x1c]
call fcn.0043ae20
add esp, 8
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 0x45a7e8
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x1c]
cmp eax, dword [edi + 0x64]
jg 0x4603f8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov ecx, eax
add esp, 8
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x58]
mov byte [ecx + 0xa], al
mov eax, ebx
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x45a6ef
lea esi, [eax + eax*4]
mov eax, ebx
mov ebx, dword [ebp - 0x2c]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x45a6ef
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
jne 0x45a85c
mov eax, 0xa10
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
add esi, 0x14
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov edi, dword [ebx + 0xc]
add esp, 8
cmp dword [ebx + 4], 0
mov ecx, 1
mov edx, dword [ebx + 8]
mov ebx, 0x101
cmovne ecx, ebx
mov dword [eax + 0xc], 0
sub edi, edx
movzx ebx, cx
mov word [eax + 8], bx
lea esi, [eax + 0xc]
test edi, edi
jle 0x45a8c0
lea esi, [esi + 0x28]
lea eax, [esi - 0xc]
push eax
call fcn.004624a0
dec edi
mov word [esi - 4], bx
add esp, 4
mov dword [esi], 0
test edi, edi
jg 0x45a8a2
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov edx, 0xff61
mov ebx, dword [ebp - 0x2c]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
mov edx, dword [ebp - 0x20]
or ax, 1
add esi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov esi, eax
mov eax, dword [ebp - 0x18]
push 0
push 0
push dword [eax + 4]
push dword [eax + 0x10]
push esi
call fcn.004625a0
mov al, byte [ebp - 0x58]
add esp, 0x1c
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x14]
lea ecx, [ecx - 5]
mov eax, dword [eax + 0x74]
lea esi, [eax + ecx*8]
push esi
call fcn.00462940
add esp, 4
test eax, eax
jne 0x4603f8
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
push 0x800
push esi
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00462820
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
push edi
push esi
call fcn.00462260
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x45a9d6
push esi
call fcn.00462200
add esp, 4
test eax, eax
jne 0x46038a
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x45a9b0
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push 0x1000
push edi
push esi
call fcn.00462820
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x45aa3b
push esi
call fcn.00462200
add esp, 4
test eax, eax
jne 0x46038a
mov eax, ebx
dec ebx
test eax, eax
je 0x45a8c0
add esi, 0x28
add edi, 0x28
jmp 0x45aa10
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
push 0x1000
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00462820
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00462460
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [ebx + 8]
mov al, byte [edi + 8]
or al, cl
test al, 1
je 0x45ab07
push esi
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
test ecx, 0x4000
je 0x45ab20
push ebx
call fcn.00461eb0
add esp, 4
test eax, eax
jne 0x46038a
mov eax, 0x4000
test word [edi + 8], ax
je 0x45ab3c
push edi
call fcn.00461eb0
add esp, 4
test eax, eax
jne 0x46038a
test byte [ebx + 8], 0x12
jne 0x45ab58
push 0
push dword [ebp - 0x58]
push ebx
call fcn.00462870
add esp, 0xc
test eax, eax
jne 0x46038a
test byte [edi + 8], 0x12
jne 0x45ab74
push 0
push dword [ebp - 0x58]
push edi
call fcn.00462870
add esp, 0xc
test eax, eax
jne 0x46038a
mov eax, dword [ebx + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0x3c], eax
mov ecx, edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x64]
cdq
cmp ecx, edx
jg 0x4603f5
mov ecx, dword [ebp - 0x3c]
jl 0x45ab9c
cmp ecx, eax
ja 0x4603f5
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.00462010
add esp, 0xc
test eax, eax
jne 0x46038a
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x45abe2
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00521b30
add esp, 0xc
push dword [ebx + 0xc]
mov eax, dword [edi + 0xc]
push dword [ebx + 0x10]
add eax, dword [esi + 0x10]
push eax
call fcn.00521b30
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
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 [ebp - 0x58]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0x48], eax
call fcn.004293c0
movzx eax, ax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0x34], eax
call fcn.004293c0
mov edx, dword [ebp - 0x48]
add esp, 8
movzx eax, ax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x30], ebx
mov ax, word [esi + 8]
or ax, word [edx + 8]
movzx ecx, ax
mov al, byte [ebp - 0x5c]
and al, byte [ebp - 0x3c]
test al, 4
je 0x45aecb
mov eax, edx
mov byte [ebp - 0x35], 1
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov eax, esi
mov dword [ebp - 0x4c], ecx
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], edi
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x45acc0
jmp dword [eax*4 + 0x460a1c]
push ebx
push ecx
lea eax, [ebp - 0x7c]
push eax
call fcn.00432eb0
add esp, 0xc
test eax, eax
jne 0x45ad5d
mov edi, dword [ebp - 0x78]
mov esi, dword [ebp - 0x7c]
jmp 0x45ae9b
test ecx, ecx
jne 0x45ad0c
cmp ebx, 0x80000000
jne 0x45ad0c
test edi, edi
jg 0x45ad5d
jl 0x45acfe
test esi, esi
jae 0x45ad5d
add esi, 0
adc edi, 0x80000000
jmp 0x45ae95
neg ecx
adc ebx, 0
neg ebx
jmp case.0x45acc0.88
test ebx, ebx
jl 0x45ada6
jg 0x45ad23
test ecx, ecx
je 0x45ad94
push ebx
push ecx
push SysReAllocString
push 0xffffffffffffffff
call fcn.004db850
cmp edi, edx
jg 0x45ad5d
jl 0x45ad3b
cmp esi, eax
ja 0x45ad5d
push ebx
push dword [ebp - 0x4c]
push SysReAllocStringLen
push 0
call fcn.004db850
cmp edi, edx
jl 0x45ad5d
jg 0x45ae32
cmp esi, eax
jae 0x45ae32
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
push edx
call fcn.00462f80
fstp qword [ebp - 0x44]
push esi
call fcn.00462f80
mov eax, dword [ebp - 0x18]
add esp, 8
fstp qword [ebp - 0x54]
movzx eax, byte [eax]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x45ad8d
jmp dword [eax*4 + 0x460a2c]
test ebx, ebx
jg 0x45ae35
jl 0x45ada6
test ecx, ecx
jae 0x45ae35
test edi, edi
jl 0x45ade3
jg 0x45adb0
test esi, esi
je 0x45add9
push edi
push esi
push SysReAllocStringLen
push 0
call fcn.004db850
cmp ebx, edx
jl 0x45ad5d
mov ecx, dword [ebp - 0x4c]
jg 0x45ae35
cmp ecx, eax
jb 0x45ad5d
push ebx
push ecx
push edi
push esi
call fcn.004db9e0
jmp 0x45ae91
test edi, edi
jg 0x45ae35
jl 0x45ade3
test esi, esi
jae 0x45ae35
test ecx, ecx
jne 0x45adf3
cmp ebx, 0x80000000
je 0x45ad5d
test esi, esi
jne 0x45ae03
cmp edi, 0x80000000
je 0x45ad5d
push ebx
push ecx
push SysReAllocStringLen
push 1
call fcn.004db850
mov ecx, esi
neg ecx
mov dword [ebp - 0x40], ecx
mov ecx, edi
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x45ad5d
jl 0x45ae32
cmp dword [ebp - 0x40], eax
ja 0x45ad5d
mov ecx, dword [ebp - 0x4c]
push ebx
push ecx
push edi
push esi
call fcn.004db9e0
jmp 0x45ae91
mov eax, ecx
or eax, ebx
je 0x45afd3
mov eax, ecx
and eax, ebx
cmp eax, 0xffffffff
jne 0x45ae63
test esi, esi
jne 0x45ae63
cmp edi, 0x80000000
je 0x45ad5d
push ebx
push ecx
push edi
push esi
call fcn.004db850
jmp 0x45ae91
mov eax, ecx
or eax, ebx
je 0x45afd3
mov eax, ecx
and eax, ebx
cmp eax, 0xffffffff
jne 0x45ae88
mov ecx, 1
xor ebx, ebx
push ebx
push ecx
push edi
push esi
call fcn.004dba20
mov esi, eax
mov edi, edx
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x7c], esi
mov ecx, dword [ebp - 0x30]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], esi
mov esi, dword [ebp - 0x18]
or ax, 4
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [ecx + 4], edi
mov edi, dword [ebp - 0x1c]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
test cl, 1
jne 0x45afd3
mov byte [ebp - 0x35], 0
jmp 0x45ad66
movsd xmm1, qword [ebp - 0x54]
addsd xmm1, qword [ebp - 0x44]
jmp 0x45af72
movsd xmm1, qword [ebp - 0x54]
subsd xmm1, qword [ebp - 0x44]
jmp 0x45af72
movsd xmm1, qword [ebp - 0x54]
mulsd xmm1, qword [ebp - 0x44]
jmp 0x45af72
movsd xmm0, qword [ebp - 0x44]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x45afd3
movsd xmm1, qword [ebp - 0x54]
divsd xmm1, xmm0
jmp 0x45af72
movsd xmm0, qword [ebp - 0x44]
call fcn.004dbeef
movsd xmm0, qword [ebp - 0x54]
mov esi, eax
mov edi, edx
call fcn.004dbeef
mov ecx, eax
mov dword [ebp - 0x78], edx
mov eax, esi
mov dword [ebp - 0x7c], ecx
or eax, edi
je 0x45afd3
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x45af5f
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.004dba20
mov ecx, eax
call fcn.004dc040
movaps xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.00448850
add esp, 8
test eax, eax
jne 0x45afd3
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
movsd qword [ebx], xmm1
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0x5c]
or al, byte [ebp - 0x3c]
test al, 8
jne 0x45a8c0
cmp byte [ebp - 0x35], 0
jne 0x45a8c0
push ebx
call fcn.00461540
mov esi, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov eax, dword [esi + 4]
test eax, eax
je case.0x45a4fe.83
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.00462460
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov al, byte [ecx + 8]
or al, byte [ebx + 8]
mov dword [ebp - 0x40], edx
test al, 1
je 0x45b06a
push edx
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
push ecx
call fcn.004614f0
mov edi, eax
mov esi, edx
push ebx
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0xf4], esi
call fcn.004614f0
mov ebx, eax
add esp, 8
mov eax, dword [ebp - 0x18]
mov cl, byte [eax]
cmp cl, 0x54
jne 0x45b09b
and edi, ebx
and esi, edx
jmp 0x45b0fe
cmp cl, 0x55
jne 0x45b0a6
or edi, ebx
or esi, edx
jmp 0x45b0fe
mov eax, ebx
or eax, edx
je 0x45b0fe
test edx, edx
jg 0x45b0da
jl 0x45b0b6
test ebx, ebx
jae 0x45b0cf
mov al, 0xad
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x45b0da
jg 0x45b0c8
cmp ebx, 0xffffffc0
jbe 0x45b0da
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x45b12e
jg 0x45b0da
cmp ebx, 0x40
jb 0x45b12e
test esi, esi
jg 0x45b0f0
jl 0x45b0e4
test edi, edi
jae 0x45b0f0
cmp cl, 0x56
je 0x45b0f0
or edi, 0xffffffff
or esi, edi
jmp 0x45b0fe
xorps xmm0, xmm0
movlpd qword [ebp - 0x54], xmm0
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x40]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], esi
mov esi, dword [ebp - 0x18]
or ax, 4
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [ecx], edi
mov edi, dword [ebp - 0x1c]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
movq xmm1, qword [ebp - 0xf8]
movd xmm0, ebx
cmp cl, 0x56
jne 0x45b14a
psllq xmm1, xmm0
movq qword [ebp - 0x54], xmm1
jmp 0x45b0f8
psrlq xmm1, xmm0
movq qword [ebp - 0x54], xmm1
test esi, esi
jg 0x45b0f8
jl 0x45b15d
test edi, edi
jae 0x45b0f8
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.004dbae0
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x50]
or edi, eax
or esi, edx
jmp 0x45b0fe
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00462190
mov eax, dword [ebp - 0x18]
add esp, 4
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x45b202
test al, 8
jne 0x45b1d9
test al, 2
je 0x45b1e5
push 1
push esi
call fcn.00413730
add esp, 8
jmp 0x45b1e2
push esi
call fcn.00461540
add esp, 4
mov ecx, dword [ebp - 0x14]
movzx eax, word [esi + 8]
test al, 4
jne 0x45b202
mov eax, dword [ebp - 0x18]
cmp dword [eax + 8], 0
je 0x4600ee
mov edi, dword [ebp - 0x18]
jmp 0x45a53f
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 4
lea eax, [edx + eax*8]
je case.0x45a4fe.83
push eax
call fcn.004623c0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x45b272
push esi
call fcn.00461eb0
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x45b279
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x58]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.00461d50
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4602bc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [ebx + eax*8 + 8]
lea esi, [ebx + eax*8]
movzx eax, word [edi + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
test cl, 1
je 0x45b371
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
test al, al
jns 0x45b314
mov al, dl
and al, byte [ebp - 0x34]
test al, 1
je 0x45b3df
test edx, 0x100
jne 0x45b3df
mov eax, dword [ebp - 0x18]
xor ecx, ecx
movzx eax, byte [eax]
mov al, byte [eax + 0x54a2b0]
jmp 0x45b3f0
test al, 0x20
je 0x45b355
mov eax, dword [ebp - 0x18]
mov edx, 0x3e00
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x8c], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
mov edx, dword [ebp - 0x20]
or ax, 1
add esi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov ecx, dword [ebp - 0x14]
test al, 0x10
jne 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x45b495
test cl, 2
je 0x45b3b5
mov al, byte [ebp - 0x34]
and al, 0xe
cmp al, 2
jne 0x45b3a1
push 0
push edi
call fcn.00413730
movzx eax, word [esi + 8]
add esp, 8
mov dword [ebp - 0x30], eax
mov al, byte [ebp - 0x30]
and al, 0xe
cmp al, 2
jne 0x45b3b5
push 0
push esi
call fcn.00413730
add esp, 8
mov al, byte [esi + 8]
and al, byte [edi + 8]
test al, 4
je 0x45b4f3
mov ebx, dword [esi + 4]
mov edx, dword [edi + 4]
mov ecx, dword [esi]
mov eax, dword [edi]
cmp ebx, edx
jl 0x45b481
jg 0x45b3df
cmp ecx, eax
jbe 0x45b46f
mov ecx, 1
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
mov al, byte [eax + 0x54a2b8]
movzx edx, al
movzx eax, word [ebp - 0x34]
mov word [edi + 8], ax
movzx eax, word [ebp - 0x30]
mov word [esi + 8], ax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
test al, 0x20
je 0x45b52b
mov dword [ebp - 0x8c], ecx
test al, 8
je 0x45b42f
mov edi, dword [ebp - 0x18]
xor eax, eax
cmp byte [edi], 0x35
sete al
cmp eax, edx
je 0x45a8c0
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
mov eax, 0x3e00
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
or cx, 4
cdq
mov word [ebx + esi*8 + 8], cx
mov ecx, dword [ebp - 0x14]
mov dword [ebx + esi*8 + 4], edx
mov edx, dword [ebp - 0x20]
mov dword [ebx + esi*8], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
cmp ebx, edx
jg 0x45b301
jl 0x45b481
cmp ecx, eax
jae 0x45b301
mov ebx, dword [ebp - 0x18]
or ecx, 0xffffffff
movzx eax, byte [ebx]
mov al, byte [eax + 0x54a2a8]
jmp 0x45b3f0
cmp al, 0x42
jne 0x45b4f3
mov al, byte [ebp - 0x34]
test al, 2
jne 0x45b4c6
test al, 0xc
je 0x45b4c6
push 1
push dword [ebp - 0x58]
push edi
call fcn.00462870
mov ax, word [edi + 8]
mov ecx, 0x3e00
xor ax, word [ebp - 0x34]
add esp, 0xc
and ax, cx
xor word [ebp - 0x34], ax
mov al, byte [ebp - 0x30]
test al, 2
jne 0x45b4f3
test al, 0xc
je 0x45b4f3
push 1
push dword [ebp - 0x58]
push esi
call fcn.00462870
mov ax, word [esi + 8]
mov ecx, 0x3e00
xor ax, word [ebp - 0x30]
add esp, 0xc
and ax, cx
xor word [ebp - 0x30], ax
push dword [ebx + 0x10]
push edi
push esi
call fcn.0044a350
add esp, 0xc
mov ecx, eax
test ecx, ecx
jns 0x45b514
movzx eax, byte [ebx]
mov al, byte [eax + 0x54a2a8]
jmp 0x45b3f0
jne 0x45b3e4
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax]
mov al, byte [eax + 0x54a2b0]
jmp 0x45b3f0
mov ecx, dword [ebp - 0x14]
test edx, edx
jne 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
cmp dword [ebp - 0x8c], 0
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
test byte [edx + 2], 1
jne 0x45b56c
xor ebx, ebx
jmp 0x45b572
mov ebx, dword [edx - 4]
add ebx, 4
mov esi, dword [ebp - 0x18]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [ebp - 0x70], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x50], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x40], ecx
test eax, eax
jle 0x45a6ef
lea edi, [edx + 0x14]
nop word [eax + eax]
test ebx, ebx
je 0x45b5a9
mov ecx, dword [ebx + esi*4]
jmp 0x45b5ab
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0x2c]
push dword [edi]
mov al, byte [esi + eax]
mov byte [ebp - 0x35], al
mov eax, dword [ebp - 0x40]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0x50]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.0044a350
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x8c], edx
test edx, edx
jne 0x45b605
mov edx, dword [ebp - 0x5c]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x70]
jl 0x45b5a0
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
cmp byte [ebp - 0x35], 0
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
je case.0x45a4fe.83
neg edx
add esi, 0x14
mov dword [ebp - 0x8c], edx
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x18]
test ebx, ebx
jns 0x45b652
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x28]
lea esi, [eax - 1]
lea esi, [esi + esi*4]
lea esi, [edx + esi*4]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
jne 0x45b66e
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x28]
lea esi, [eax - 1]
lea esi, [esi + esi*4]
lea esi, [edx + esi*4]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x28]
lea esi, [eax - 1]
lea esi, [esi + esi*4]
lea esi, [edx + esi*4]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
lea eax, [esi + eax*8]
je 0x45b6a5
mov esi, 2
jmp 0x45b6bb
push eax
call fcn.004614f0
add esp, 4
or eax, edx
je 0x45b6b9
mov esi, 1
jmp 0x45b6bb
xor esi, esi
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x45b6d5
mov eax, 2
jmp 0x45b6eb
push eax
call fcn.004614f0
add esp, 4
or eax, edx
je 0x45b6e9
mov eax, 1
jmp 0x45b6eb
xor eax, eax
cmp byte [ebx], 0x2c
lea eax, [eax + esi*2]
jne 0x45b6fc
mov al, byte [esi + eax + 0x54a2f4]
jmp 0x45b703
mov al, byte [esi + eax + 0x54a300]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x18]
movzx edx, al
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x45b73e
mov ax, word [ebx + ecx*8 + 8]
mov edx, 0x3e00
and ax, dx
mov edx, dword [ebp - 0x20]
or ax, 1
add esi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov eax, edx
cdq
mov dword [ebx + ecx*8], eax
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0x3e00
and ax, dx
mov edx, dword [ebp - 0x20]
or ax, 4
add esi, 0x14
mov word [ebx + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.004624a0
add esp, 4
test byte [edi + 8], 1
jne 0x45a8c0
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004614f0
add esp, 4
or eax, edx
jne 0x45b7cd
mov edi, dword [ebp - 0x1c]
xor ecx, ecx
mov edx, dword [ebp - 0x20]
mov eax, 1
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edi, dword [ebp - 0x1c]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x20]
movlpd qword [ebp - 0x44], xmm0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.004624a0
add esp, 4
test byte [edi + 8], 1
jne 0x45a8c0
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004614f0
mov edi, dword [ebp - 0x1c]
not edx
mov ecx, dword [ebp - 0x14]
not eax
mov dword [esi + 4], edx
add esp, 4
mov edx, dword [ebp - 0x20]
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edi, dword [ecx + 0xc4]
test edi, edi
je 0x45b8b6
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
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 0x45a539
bts edx, ecx
mov ecx, dword [ebp - 0x14]
mov byte [esi + edi], dl
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
mov eax, dword [ecx + 0x58]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov eax, dword [ecx + 0x58]
mov edi, dword [ebp - 0x18]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x45a53f
mov eax, dword [ecx + 0x58]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x45b8fa
mov ecx, dword [esi + 0xc]
jmp 0x45b927
push eax
call fcn.00462f80
fstp qword [ebp - 0x44]
movsd xmm0, qword [ebp - 0x44]
add esp, 4
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
xor ecx, ecx
test ah, 0x44
mov eax, 1
cmovp ecx, eax
cmp byte [esi], 0x16
jne 0x45b927
xor ecx, eax
test ecx, ecx
mov ecx, dword [ebp - 0x14]
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 1
je 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x45a6f2
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004624a0
add esp, 4
jmp 0x45a539
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov edx, dword [edx + 8]
mov dword [ebp - 0x48], edx
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0x4c], edi
cmp byte [edi + 3], 0
je 0x45ba48
mov eax, dword [edi + 0x18]
test eax, eax
je 0x45ba40
mov eax, dword [eax + edx*4 + 4]
test eax, eax
jle 0x45ba40
mov edi, dword [edi + 0x24]
dec eax
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x14]
mov esi, dword [edi + 0x48]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x34], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x30], ecx
cmp eax, dword [edx + 0x20]
je 0x45baf6
cmp byte [edi + 2], 0
je 0x45ba66
cmp byte [edi], 3
jne 0x45afd6
mov eax, dword [edi + 0x20]
lea ebx, [edi + 0x54]
mov edx, dword [ebp - 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [ebx], eax
mov dword [edi + 0x50], eax
mov eax, dword [edx + ecx*8 + 0x10]
mov dword [edi + 0x4c], eax
jmp 0x45ba97
push edi
call fcn.00424b70
jmp 0x45ba56
mov eax, dword [edi + 0x28]
cmp byte [eax], 1
je 0x45b9e5
push edi
call fcn.00424be0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
jmp 0x45b9ec
mov esi, dword [edi + 0x28]
push esi
call fcn.00423e10
mov eax, dword [esi + 0x24]
lea ebx, [edi + 0x54]
push ebx
push esi
mov dword [edi + 0x50], eax
call fcn.00437900
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x50]
cmp eax, dword [edx + 0x64]
ja 0x4603f1
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x4c]
mov cl, byte [eax]
cmp cl, 0x80
jae 0x45bab3
movzx eax, cl
mov dword [esi], eax
mov al, 1
jmp 0x45babd
push esi
push eax
call fcn.004461c0
add esp, 8
movzx eax, al
mov dword [edi + 0x30], eax
xor eax, eax
mov word [edi + 0x3a], ax
mov eax, dword [ebx]
cmp eax, dword [esi]
jae 0x45bb89
mov dword [edi + 0x4c], 0
mov dword [ebx], 0
mov eax, dword [esi]
cmp eax, 0x18003
ja 0x45bcb9
cmp eax, dword [edi + 0x50]
ja 0x45bcb9
movzx eax, word [edi + 0x3a]
mov edx, dword [ebp - 0x48]
cmp eax, edx
jg 0x45bd13
mov eax, dword [edi + 0x30]
cmp eax, dword [esi]
jae 0x45bce7
mov ebx, dword [edi + 0x4c]
mov dword [ebp - 0x3c], ebx
test ebx, ebx
jne 0x45bb5c
xorps xmm0, xmm0
lea eax, [ebp - 0x244]
push eax
movups xmmword [ebp - 0x244], xmm0
movups xmmword [ebp - 0x234], xmm0
movq qword [ebp - 0x224], xmm0
push dword [esi]
push ebx
push dword [edi + 0x28]
call fcn.00461fa0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov ebx, dword [ebp - 0x234]
mov dword [ebp - 0x3c], ebx
movzx eax, word [edi + 0x3a]
xor ecx, ecx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x64], ecx
mov edi, dword [esi + eax*4]
mov esi, dword [edx + 0x30]
add esi, ebx
mov ebx, dword [ebp - 0x34]
mov ebx, dword [ebx]
add ebx, dword [ebp - 0x3c]
add eax, 0x16
mov dword [ebp - 0x5c], ebx
lea eax, [edx + eax*4]
mov dword [ebp - 0x50], eax
jmp 0x45bb93
mov ebx, dword [edi + 0x4c]
jmp 0x45bb59
mov ecx, dword [ebp - 0x64]
movzx ebx, byte [esi]
mov dword [ebp - 0x94], ebx
cmp ebx, 0x80
jae 0x45bbbd
movzx eax, byte [ebx + 0x54a228]
cdq
add edi, eax
adc ecx, edx
mov dword [ebp - 0x64], ecx
mov ecx, 1
mov edx, dword [ebp - 0x64]
jmp 0x45bbe7
lea eax, [ebp - 0x94]
push eax
push esi
call fcn.004461c0
mov ebx, dword [ebp - 0x94]
push ebx
movzx ecx, al
call fcn.00463a60
mov edx, dword [ebp - 0x64]
add esp, 0xc
add edi, eax
adc edx, 0
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x70]
add esi, ecx
mov ecx, dword [ebp - 0x50]
inc eax
mov dword [ebp - 0x70], eax
mov dword [ecx], ebx
add ecx, 4
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ecx + eax*4], edi
mov ecx, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x48]
jg 0x45bc0f
cmp esi, ecx
jb 0x45bb90
jmp 0x45bc13
cmp esi, ecx
jb 0x45bc25
cmp esi, ecx
mov ecx, dword [ebp - 0x4c]
ja 0x45bc33
cmp edi, dword [ecx + 0x50]
jne 0x45bc33
test edx, edx
jne 0x45bc33
jmp 0x45bc28
mov ecx, dword [ebp - 0x4c]
test edx, edx
jb 0x45bc40
ja 0x45bc33
cmp edi, dword [ecx + 0x50]
jbe 0x45bc40
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
jne 0x45bca4
mov esi, dword [ebp - 0x5c]
xor eax, eax
mov edi, dword [ebp - 0x4c]
sub esi, dword [ebp - 0x3c]
cmp dword [edi + 0x4c], 0
mov word [edi + 0x3a], ax
mov dword [edi + 0x30], esi
jne 0x45bc62
lea eax, [ebp - 0x244]
push eax
call fcn.00462430
add esp, 4
mov edx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x34]
movzx eax, word [edi + 0x3a]
cmp eax, edx
jg 0x45bd1d
mov eax, dword [ebp - 0x18]
cmp byte [eax + 1], 0xf5
jne 0x45bcf4
push 0x800
push dword [eax + 0x10]
push dword [ebp - 0x30]
call fcn.00462820
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
cmp dword [ecx + 0x4c], 0
jne 0x45bcb9
lea eax, [ebp - 0x244]
push eax
call fcn.00462430
add esp, 4
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x4600f8
mov ecx, dword [ebp - 0x14]
lea edi, [eax - 1]
mov edx, dword [ebp - 0x20]
lea edi, [edi + edi*4]
lea edi, [ebx + edi*4]
mov dword [ebp - 0x18], edi
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
jmp 0x45a4e6
xor ebx, ebx
mov dword [ebp - 0x94], ebx
jmp 0x45bc68
push dword [ebp - 0x30]
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [edi + edx*4 + 0x58]
mov dword [ebp - 0x94], ebx
mov ecx, dword [ebp - 0x30]
mov eax, 0x2460
test word [ecx + 8], ax
je 0x45bd3a
push ecx
call fcn.004624a0
mov ecx, dword [ebp - 0x30]
add esp, 4
mov edx, dword [ebp - 0x48]
mov eax, dword [edi + 0x54]
cmp eax, dword [esi + edx*4 + 4]
jb 0x45bdf1
mov edi, dword [edi + 0x4c]
add edi, dword [esi + edx*4]
cmp ebx, 0xc
jae 0x45bd71
push ecx
push ebx
push edi
call fcn.004638c0
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov al, byte [ebp - 0x58]
lea esi, [ebx - 0xc]
shr esi, 1
mov byte [ecx + 0xa], al
mov dword [ecx + 0xc], esi
lea eax, [esi + 2]
cmp dword [ecx + 0x18], eax
jge 0x45bda9
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.00462010
add esp, 0xc
test eax, eax
jne 0x46038a
mov ecx, dword [ebp - 0x30]
jmp 0x45bdaf
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call fcn.00521b30
mov ecx, dword [ebp - 0x30]
and ebx, 1
mov edi, dword [ebp - 0x1c]
add esp, 0xc
mov edx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov ax, word [ebx*2 + 0x54a30c]
mov esi, dword [ebp - 0x18]
mov word [ecx + 8], ax
add esi, 0x14
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov al, byte [ebp - 0x58]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x45be10
cmp ebx, 0xc
jb 0x45be0c
test bl, 1
je 0x45be1d
test al, al
js 0x45be1d
push ebx
call fcn.00463a60
add esp, 4
test eax, eax
jne 0x45be40
push ecx
push ebx
push 0x589380
call fcn.004638c0
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
push ecx
push eax
push dword [esi + edx*4]
push dword [edi + 0x28]
call fcn.00461fa0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov esi, dword [ebp - 0x30]
push esi
push ebx
push dword [esi + 0x10]
call fcn.004638c0
mov eax, 0xefff
add esp, 0xc
and word [esi + 8], ax
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
mov bl, byte [esi]
lea edi, [ecx + eax*8]
nop dword [eax]
push dword [ebp - 0x58]
push ebx
push edi
call fcn.004136c0
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x45bea0
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
xor eax, eax
mov ebx, dword [ebp - 0x2c]
xorps xmm0, xmm0
mov dword [ebp - 0x48], eax
movlpd qword [ebp - 0x74], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [ebp - 0x60], xmm0
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x4c], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x8f]
mov byte [ebp - 0x35], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x40], eax
test esi, esi
je 0x45bf3e
mov bl, byte [esi]
mov edi, ecx
push dword [ebp - 0x58]
push ebx
push edi
call fcn.004136c0
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x45bf24
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], eax
nop dword [eax]
movzx eax, word [ebx + 8]
test al, 1
je 0x45bf71
xor esi, esi
xor edi, edi
jmp 0x45c089
test al, 4
je 0x45c064
mov esi, dword [ebx + 4]
mov edx, dword [ebx]
test esi, esi
jg 0x45bf92
jl 0x45bf88
test edx, edx
jae 0x45bf92
mov ecx, edx
mov eax, esi
not ecx
not eax
jmp 0x45bf96
mov ecx, edx
mov eax, esi
test eax, eax
ja 0x45c036
jb 0x45bfa5
cmp ecx, 0x7f
ja 0x45bfdc
mov eax, edx
xor edi, edi
and eax, 1
cmp eax, edx
jne 0x45bfca
cmp edi, esi
jne 0x45bfca
cmp byte [ebp - 0x35], 4
jb 0x45bfca
mov edx, dword [ebp - 0x30]
lea edi, [ecx + 8]
mov ecx, dword [ebp - 0x34]
xor esi, esi
jmp 0x45c089
mov edx, dword [ebp - 0x30]
mov esi, 1
mov ecx, dword [ebp - 0x34]
mov edi, esi
jmp 0x45c089
test eax, eax
ja 0x45c036
jb 0x45bfea
cmp ecx, 0x7fff
ja 0x45bffc
mov edx, dword [ebp - 0x30]
mov esi, 2
mov ecx, dword [ebp - 0x34]
mov edi, esi
jmp 0x45c089
test eax, eax
ja 0x45c036
jb 0x45c00a
cmp ecx, 0x7fffff
ja 0x45c019
mov edx, dword [ebp - 0x30]
mov esi, 3
mov ecx, dword [ebp - 0x34]
mov edi, esi
jmp 0x45c089
test eax, eax
ja 0x45c036
jb 0x45c027
cmp ecx, 0x7fffffff
ja 0x45c036
mov edx, dword [ebp - 0x30]
mov esi, 4
mov ecx, dword [ebp - 0x34]
mov edi, esi
jmp 0x45c089
cmp eax, 0x7fff
ja 0x45c054
jb 0x45c044
cmp ecx, 0xffffffff
ja 0x45c054
mov edx, dword [ebp - 0x30]
mov esi, 6
mov ecx, dword [ebp - 0x34]
lea edi, [esi - 1]
jmp 0x45c089
mov edx, dword [ebp - 0x30]
mov esi, 8
mov ecx, dword [ebp - 0x34]
lea edi, [esi - 2]
jmp 0x45c089
test al, 8
je 0x45c072
mov esi, 8
lea edi, [esi - 1]
jmp 0x45c089
mov esi, dword [ebx + 0xc]
test eax, 0x4000
je 0x45c07e
add esi, dword [ebx]
shr eax, 1
lea edi, [esi + 6]
and eax, 1
lea edi, [eax + edi*2]
movzx eax, word [ebx + 8]
mov dword [ebx + 0x1c], edi
test eax, 0x4000
je 0x45c0be
mov eax, ecx
or eax, edx
je 0x45c0b0
push ebx
call fcn.00461eb0
add esp, 4
test eax, eax
jne 0x46038a
jmp 0x45c0bb
mov eax, dword [ebx]
cdq
add dword [ebp - 0x3c], eax
adc dword [ebp - 0x64], edx
sub esi, dword [ebx]
mov edx, dword [ebp - 0x30]
add dword [ebp - 0x34], esi
adc edx, 0
mov dword [ebp - 0x30], edx
cmp edi, 0x7f
ja 0x45c0d3
mov eax, 1
jmp 0x45c0e1
push 0
push edi
call fcn.00459760
mov edx, dword [ebp - 0x30]
add esp, 8
mov edi, dword [ebp - 0x48]
add edi, eax
mov dword [ebp - 0x48], edi
cmp ebx, dword [ebp - 0x4c]
je 0x45c0f9
mov ecx, dword [ebp - 0x34]
sub ebx, 0x28
jmp 0x45bf60
cmp edi, 0x7e
jle 0x45c120
mov eax, edi
cdq
push edx
push eax
call fcn.00459760
mov esi, eax
add edi, esi
mov eax, edi
mov dword [ebp - 0x48], edi
cdq
push edx
push eax
call fcn.00459760
add esp, 0x10
cmp esi, eax
jge 0x45c124
inc edi
mov dword [ebp - 0x48], edi
mov eax, edi
cdq
mov ebx, eax
mov edi, edx
add eax, dword [ebp - 0x34]
mov ecx, edi
mov esi, eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x1c]
adc ecx, dword [ebp - 0x30]
add esi, dword [ebp - 0x3c]
mov eax, dword [eax + 0x64]
adc ecx, dword [ebp - 0x64]
cdq
cmp ecx, edx
jg 0x4603f5
jl 0x45c157
cmp esi, eax
ja 0x4603f5
push dword [ebp - 0x70]
mov esi, dword [ebp - 0x40]
push esi
call fcn.00461e10
add esp, 8
test eax, eax
jne 0x46038a
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x5c], eax
cmp ecx, 0x80
jae 0x45c18a
mov edi, eax
mov eax, 1
mov byte [edi], cl
jmp 0x45c198
push edi
mov edi, dword [ebp - 0x5c]
push ebx
push edi
call fcn.0044fe20
add esp, 0xc
mov edx, dword [ebp - 0x4c]
movzx esi, al
nop
mov ebx, dword [edx + 0x1c]
cmp ebx, 0x80
jae 0x45c1b5
mov byte [esi + edi], bl
mov eax, 1
jmp 0x45c1c7
push 0
lea eax, [esi + edi]
push ebx
push eax
call fcn.0044fe20
mov edx, dword [ebp - 0x4c]
add esp, 0xc
add edi, dword [ebp - 0x48]
movzx eax, al
add esi, eax
lea eax, [ebx - 1]
mov dword [ebp - 0x30], esi
cmp eax, 6
ja 0x45c1fc
mov ecx, dword [edx]
mov eax, dword [edx + 4]
movzx edx, byte [ebx + 0x54a228]
mov esi, edx
dec edx
mov byte [edx + edi], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x45c1e8
mov edx, dword [ebp - 0x4c]
jmp 0x45c21c
cmp ebx, 0xc
jb 0x45c21a
mov esi, dword [edx + 0xc]
test esi, esi
je 0x45c21c
push esi
push dword [edx + 0x10]
push edi
call fcn.00521b30
mov edx, dword [ebp - 0x4c]
add esp, 0xc
jmp 0x45c21c
xor esi, esi
add dword [ebp - 0x48], esi
add edx, 0x28
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], edx
cmp edx, dword [ebp - 0x50]
jbe 0x45c1a0
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x64]
je 0x45a6f2
mov eax, 0x4010
mov dword [edx], ecx
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov word [edx + 8], ax
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
xorps xmm0, xmm0
mov eax, dword [ebp - 0x14]
movlpd qword [ebp - 0x44], xmm0
movlpd qword [ebp - 0x54], xmm0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
push esi
call fcn.004276c0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x24], ebx
cmp ebx, 0x10
jne 0x45c2bf
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
movlpd qword [ebp - 0x44], xmm0
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
jmp 0x45c381
test ebx, ebx
jne 0x45c36d
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x45c2df
cmp byte [edi + 2], cl
jne 0x45c311
movzx eax, word [edi + 0x16]
cdq
add dword [ebp - 0x5c], eax
adc ebx, edx
test cl, cl
je 0x45c311
nop dword [eax]
cmp byte [esi + 0x44], 0
push esi
je 0x45c35d
call fcn.00427570
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x16]
jae 0x45c2f0
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x16]
cmp ecx, eax
jne 0x45c32a
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x45c344
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x18]
movzx ecx, cx
and ecx, eax
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax]
bswap eax
push eax
push esi
call fcn.00427430
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x45c2d0
jmp 0x45c370
call fcn.004276c0
mov esi, dword [ebp - 0x5c]
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x45c376
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x1c]
test eax, eax
jne 0x4602b9
push dword [ebp - 0x18]
push dword [ebp - 0x14]
call fcn.00429c90
mov ecx, dword [ebp - 0x14]
add esp, 8
mov edx, dword [ebp - 0x20]
mov dword [eax], esi
mov esi, dword [ebp - 0x18]
mov dword [eax + 4], ebx
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x45c47c
mov esi, dword [ebp - 0x1c]
cmp dword [esi + 0xa8], eax
jg 0x460110
push edi
call fcn.00455f10
mov ecx, dword [esi + 0x1bc]
mov ebx, eax
add ecx, dword [esi + 0x1b8]
push ecx
push 0
push esi
call fcn.00464ca0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x460123
lea eax, [ebx + 0x21]
push 0
push eax
push esi
call fcn.0043aed0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x45a8c0
lea ecx, [ebx + 1]
push ecx
lea edx, [esi + 0x20]
push edi
push edx
mov dword [esi], edx
call fcn.00521b30
mov edi, dword [ebp - 0x1c]
add esp, 0xc
cmp byte [edi + 0x47], 0
je 0x45c432
mov byte [edi + 0x47], 0
mov byte [edi + 0x4f], 1
jmp 0x45c438
inc dword [edi + 0x1b8]
mov eax, dword [edi + 0x1b0]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c0]
mov dword [edi + 0x1b0], esi
mov dword [esi + 8], eax
mov eax, dword [edi + 0x1c4]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x1c8]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x1cc]
mov dword [esi + 0x14], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
mov esi, dword [eax + 0x1b0]
test esi, esi
je 0x45c4aa
nop dword [eax + eax]
push edi
push dword [esi]
call fcn.00455ea0
add esp, 8
test eax, eax
je 0x45c4c6
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x45c490
mov ecx, dword [ebp - 0x14]
push edi
push str.no_such_savepoint:__s
push ecx
call fcn.0045a3b0
mov eax, 1
add esp, 0xc
mov edi, dword [ebp - 0x1c]
jmp 0x4602b9
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x4c]
cmp dword [edi + 0xa8], 0
jle 0x45c4de
cmp ecx, 1
je 0x46012a
cmp dword [esi + 0x18], 0
jne 0x45c537
cmp byte [edi + 0x4f], 0
je 0x45c537
mov dword [ebp - 0x5c], 1
cmp ecx, 1
jne 0x45c53e
push ecx
push dword [ebp - 0x14]
call fcn.00459e20
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x46074f
push dword [ebp - 0x14]
mov byte [edi + 0x47], 1
call fcn.004611f0
add esp, 4
cmp eax, 5
je 0x460141
mov eax, dword [ebp - 0x14]
mov byte [edi + 0x4f], 0
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x24], eax
jmp 0x45c604
mov dword [ebp - 0x5c], 0
mov eax, dword [edi + 0x1b8]
sub eax, ebx
dec eax
mov dword [ebp - 0x3c], eax
cmp ecx, 2
jne 0x45c634
mov ecx, dword [edi + 0x18]
xor ebx, ebx
and ecx, 1
mov dword [ebp - 0x40], ecx
cmp dword [edi + 0x14], ebx
jle 0x45c5a8
mov eax, ecx
xor eax, 1
xor edi, edi
mov dword [ebp - 0x50], eax
nop dword [eax]
push eax
mov eax, dword [ebp - 0x1c]
push 0x204
mov eax, dword [eax + 0x10]
push dword [eax + edi + 4]
call fcn.00438030
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov eax, dword [ebp - 0x1c]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x50]
jl 0x45c570
mov eax, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x4c]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x45c5e8
xor edi, edi
push eax
mov eax, dword [ebp - 0x1c]
push ecx
mov eax, dword [eax + 0x10]
push dword [eax + edi + 4]
call fcn.00437b20
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov eax, dword [ebp - 0x1c]
inc ebx
mov ecx, dword [ebp - 0x4c]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x3c]
jl 0x45c5b4
mov edi, dword [ebp - 0x1c]
cmp dword [ebp - 0x40], 0
je 0x45c601
push edi
call fcn.0043ca30
push edi
call fcn.004507c0
add esp, 8
or dword [edi + 0x18], 1
mov ebx, dword [ebp - 0x3c]
cmp dword [edi + 0x1b0], esi
je 0x45c677
nop dword [eax]
cmp dword [edi + 0x1d0], 0
mov ecx, dword [edi + 0x1b0]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1b0], eax
je 0x45c640
push ecx
push edi
call fcn.00427160
add esp, 8
jmp 0x45c669
mov dword [ebp - 0x40], 0
jmp 0x45c5ab
cmp ecx, dword [edi + 0x128]
jb 0x45c660
cmp ecx, dword [edi + 0x12c]
jae 0x45c660
mov eax, dword [edi + 0x124]
mov dword [ecx], eax
mov dword [edi + 0x124], ecx
jmp 0x45c669
push ecx
call fcn.00405c40
add esp, 4
dec dword [edi + 0x1b8]
cmp dword [edi + 0x1b0], esi
jne 0x45c610
mov edi, dword [ebp - 0x4c]
cmp edi, 1
jne 0x45c6cd
mov edx, dword [ebp - 0x1c]
mov eax, dword [esi + 0x18]
push esi
mov esi, edx
push esi
mov dword [edx + 0x1b0], eax
call fcn.0043ae20
add esp, 8
cmp dword [ebp - 0x5c], 0
jne 0x45c6ff
dec dword [esi + 0x1b8]
push ebx
push edi
mov edi, dword [ebp - 0x1c]
push edi
call fcn.00464ca0
mov ecx, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602bc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi + 8]
mov dword [ecx + 0x1c0], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1c4], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x1c8], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x1cc], eax
je 0x45c6a3
cmp edi, 2
je 0x45c6a3
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4602bc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 8]
test edx, edx
je 0x45c735
test dword [edi + 0x1c], 0x100000
jne 0x460172
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x45c86d
push edx
push esi
call fcn.00435440
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x46017c
mov eax, dword [ebp - 0x18]
cmp dword [eax + 8], 0
je 0x45c841
mov ebx, dword [ebp - 0x14]
test byte [ebx + 0x94], 0x40
je 0x45c841
cmp byte [edi + 0x47], 0
je 0x45c791
cmp dword [edi + 0xa4], 1
jle 0x45c841
cmp dword [ebx + 0x30], 0
jne 0x45c7ac
mov eax, dword [edi + 0x1b8]
inc dword [edi + 0x1bc]
add eax, dword [edi + 0x1bc]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x30]
dec eax
push eax
push 0
push edi
call fcn.00464ca0
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c81d
mov edi, dword [ebx + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x45c7df
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x45c7df
push esi
call fcn.004167a0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x60]
jle 0x45c7fb
cmp byte [eax + 6], 0
je 0x45c7fb
push edi
push eax
call fcn.0042a610
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x45c802
mov dword [ebp - 0x24], 0
cmp byte [esi + 9], 0
je 0x45c817
add dword [esi + 0xc], 0xffffffff
jne 0x45c817
push esi
call fcn.0046b6e0
add esp, 4
mov edi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x14]
mov eax, dword [edi + 0x1c0]
mov dword [ebx + 0x48], eax
mov eax, dword [edi + 0x1c4]
mov dword [ebx + 0x4c], eax
mov eax, dword [edi + 0x1c8]
mov dword [ebx + 0x50], eax
mov eax, dword [edi + 0x1cc]
mov dword [ebx + 0x54], eax
lea eax, [ebp - 0xc4]
push eax
push 1
push esi
call fcn.00436390
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov edi, dword [ebp - 0xc4]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x45c877
xor edi, edi
xor eax, eax
mov dword [ebp - 0xc4], edi
mov esi, dword [ebp - 0x18]
cmp word [esi + 2], 0
je 0x45c893
cmp edi, dword [esi + 0xc]
jne 0x4601ac
cmp eax, dword [esi + 0x10]
jne 0x4601ac
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4602bc
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0xe8]
push eax
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00436390
push dword [ebp - 0x18]
push dword [ebp - 0x14]
call fcn.00429c90
mov ecx, eax
add esp, 0x14
mov eax, dword [ebp - 0xe8]
jmp 0x45a6e9
mov edx, dword [ebp - 0x18]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
shl esi, 4
add esi, dword [edi + 0x10]
push dword [edx + 8]
push dword [esi + 4]
call fcn.00438170
mov edx, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x45c921
mov ecx, dword [esi + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 1
jmp 0x45c92f
cmp eax, 2
jne 0x45c92f
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 1
jne 0x45c94d
push edi
call fcn.0043ca30
mov ecx, dword [ebp - 0x14]
add esp, 4
and dword [ecx + 0x94], 0xfffffffe
jmp 0x45c950
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x4602b9
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x45c988
mov eax, dword [esi + 0x34]
cmp eax, dword [ebx + 8]
je 0x45ca84
mov ecx, dword [ebp - 0x14]
test byte [ecx + 0x94], 1
jne 0x460219
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x5c], 0
mov ecx, dword [eax + 0xc]
mov eax, ecx
shl eax, 4
add eax, dword [edi + 0x10]
cmp dl, 0x69
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x40], ecx
mov esi, dword [eax + 4]
mov dword [ebp - 0x70], esi
jne 0x45c9f0
mov eax, dword [eax + 0xc]
movzx edi, word [edx + 2]
mov esi, dword [ebp - 0x14]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x8f]
jae 0x45c9f2
mov byte [esi + 0x8f], al
jmp 0x45c9f2
mov ebx, dword [ebp - 0x18]
jmp 0x45c98b
xor edi, edi
test byte [edx + 2], 0x10
je 0x45ca12
mov ecx, dword [ebp - 0x2c]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00462190
mov ebx, dword [esi]
add esp, 4
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 1]
cmp al, 0xf7
jne 0x45ca25
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x5c], eax
movzx eax, word [eax + 8]
jmp 0x45ca31
cmp al, 0xfd
jne 0x45ca2e
mov eax, dword [edx + 0x10]
jmp 0x45ca31
mov eax, dword [ebp - 0x50]
push 0
push ecx
push eax
push dword [edx + 4]
push dword [ebp - 0x14]
call fcn.004126e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x46038a
push dword [esi + 0x28]
or dword [esi + 8], 4
push dword [ebp - 0x5c]
mov byte [esi + 2], 1
push edi
push ebx
push dword [ebp - 0x70]
mov dword [esi + 0x34], ebx
call fcn.00435e60
mov edi, dword [ebp - 0x1c]
add esp, 0x14
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x18]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x18]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
jmp 0x45b28d
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov eax, dword [ebx + 0x70]
mov esi, dword [eax + ecx*4]
movsx eax, word [esi + 0x38]
push eax
push dword [edx + 4]
push ebx
call fcn.004126e0
mov edx, eax
add esp, 0x14
test edx, edx
je 0x46065b
push dword [edx + 0x28]
or dword [edx + 8], 1
mov byte [edx + 2], 1
mov ecx, dword [esi + 0x2c]
push ecx
mov dword [edx + 0x2c], ecx
mov al, byte [esi + 4]
push 4
mov byte [edx + 4], al
push 1
push dword [esi + 0xc]
call fcn.00435e60
mov esi, dword [ebp - 0x18]
mov ecx, eax
mov edx, dword [ebp - 0x20]
add esp, 0x14
mov dword [ebp - 0x24], ecx
add esi, 0x14
mov ecx, ebx
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
push 0
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push ecx
call fcn.004126e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x46038d
or dword [esi + 8], 1
lea edi, [esi + 0xc]
mov byte [esi + 2], 1
movzx eax, word [ebx + 2]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0x1c]
push edi
push eax
push 0
push dword [eax]
call fcn.004371e0
add esp, 0x18
test eax, eax
jne 0x45c4be
push 1
push dword [edi]
call fcn.00435440
add esp, 8
test eax, eax
jne 0x45c4be
mov ebx, dword [ebx + 0x10]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x45cbb3
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
or eax, 2
push eax
lea eax, [ebp - 0xec]
push eax
push dword [edi]
call fcn.00435e10
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45cbad
push dword [esi + 0x28]
push ebx
push 4
push dword [ebp - 0xec]
push dword [edi]
call fcn.00435e60
add esp, 0x14
mov dword [ebp - 0x24], eax
mov byte [esi + 4], 0
jmp 0x45cbcd
push dword [esi + 0x28]
push 0
push 4
push 1
push dword [edi]
call fcn.00435e60
add esp, 0x14
mov dword [ebp - 0x24], eax
mov byte [esi + 4], 1
mov edi, dword [ebp - 0x1c]
test eax, eax
jne 0x4602b9
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov edx, dword [ebp - 0x20]
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push 1
push 0xffffffffffffffff
push dword [edx + 8]
push dword [edx + 4]
push ecx
call fcn.004126e0
add esp, 0x14
test eax, eax
je 0x46038d
mov edx, dword [ebp - 0x18]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
push dword [edx + 0xc]
push edi
call fcn.00463bd0
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
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 [ebp - 0x14]
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
je 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push 3
push 0xffffffffffffffff
push dword [edx + 0xc]
push dword [edx + 4]
push ecx
call fcn.004126e0
add esp, 0x14
test eax, eax
je 0x46038d
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x586774
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 0x70]
push dword [eax + ecx*4]
push ebx
call fcn.00461060
mov eax, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x70]
mov dword [eax + ecx*4], 0
mov ecx, ebx
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x3c], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x2c]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x45ce17
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x45cd46
push 0
push edi
call fcn.00413730
add esp, 8
push edi
call fcn.004614f0
movzx ecx, word [edi + 8]
add esp, 4
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x5c], edx
test cl, 4
jne 0x45cd91
test cl, 8
je 0x45a539
mov ecx, eax
call fcn.004dc040
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x45cd85
test bl, 1
lea eax, [ebx - 1]
cmove eax, ebx
mov ebx, eax
jmp 0x45cd91
comisd xmm1, xmm0
jbe 0x45cd91
test bl, 1
jne 0x45cd91
inc ebx
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x6c]
push eax
push 0
push dword [ebp - 0x5c]
push edi
push 0
push dword [esi + 0x28]
call fcn.00436ca0
mov dword [ebp - 0x24], eax
add esp, 0x18
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x40], edi
test eax, eax
jne 0x45c4be
mov edi, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x6c]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp ebx, 0x1a
jl 0x45ceef
test eax, eax
js 0x45ceae
jne 0x45cdef
cmp ebx, 0x1b
je 0x45ceae
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0x18]
test edi, edi
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 0x14]
cmove eax, ecx
mov ecx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 0x18], eax
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [esi + 0x28]
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x35], al
mov eax, 0
setne al
test bl, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x10c], eax
mov ax, word [edx + 0x10]
mov word [ebp - 0x104], ax
sete al
mov byte [ebp - 0xfe], 0
lea eax, [eax*2 - 1]
mov byte [ebp - 0x102], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x6c]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x10c]
push eax
push dword [esi + 0x28]
call fcn.00436ca0
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602b9
cmp byte [ebp - 0x35], al
je 0x45cdc2
mov edi, dword [ebp - 0x3c]
cmp byte [ebp - 0xfe], al
jne 0x45cdc5
mov ecx, dword [ebp - 0x6c]
jmp 0x45cf08
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x6c], 0
call fcn.00437180
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x45cdf6
mov ecx, dword [ebp - 0x14]
cmp eax, 0x65
jne 0x46066a
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x6c], 1
jmp 0x45a53f
test eax, eax
jg 0x45cf15
jne 0x45cefa
cmp ebx, 0x18
je 0x45cf15
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], 1
setne cl
mov dword [ebp - 0x6c], ecx
test ecx, ecx
jne 0x45a539
jmp 0x45cdf6
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x6c], 0
call fcn.00437940
jmp 0x45cebf
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp dword [edx + 0x10], 0
mov eax, dword [eax + 0x70]
mov ecx, dword [edx + 4]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jle 0x45cf6d
mov eax, dword [ebx + 0x2c]
lea edi, [ebp - 0x1a4]
mov dword [ebp - 0x1a4], eax
mov ax, word [edx + 0x10]
mov dword [ebp - 0x1a0], esi
xor esi, esi
mov word [ebp - 0x19c], ax
jmp 0x45cfb8
mov eax, 0x4000
test word [esi + 8], ax
je 0x45cf89
push esi
call fcn.00461eb0
add esp, 4
test eax, eax
jne 0x46038d
push dword [ebx + 0x2c]
call fcn.00459b80
mov edi, eax
add esp, 4
mov dword [ebp - 0x40], edi
test edi, edi
je 0x46038a
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [ebx + 0x2c]
call fcn.004636e0
mov edx, dword [ebp - 0x18]
add esp, 0x10
mov esi, edi
mov byte [edi + 0xa], 0
cmp byte [edx], 0x1c
mov dword [ebp - 0x40], 0
jne 0x45cfee
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
je 0x45cfee
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x45cfe7
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x45cfd8
jmp 0x45cfee
mov dword [ebp - 0x40], 1
lea eax, [ebp - 0xf0]
push eax
push 0
push 0
push 0
push edi
push dword [ebx + 0x28]
call fcn.00436ca0
mov edi, dword [ebp - 0x1c]
add esp, 0x18
mov dword [ebp - 0x24], eax
test esi, esi
je 0x45d01e
push esi
push edi
call fcn.0043ae80
mov eax, dword [ebp - 0x24]
add esp, 8
test eax, eax
jne 0x4602b9
mov eax, dword [ebp - 0xf0]
xor ecx, ecx
mov esi, dword [ebp - 0x18]
test eax, eax
mov dword [ebx + 0x20], eax
mov al, 1
sete cl
mov byte [ebx + 3], 0
sub al, cl
mov dword [ebx + 0x1c], 0
mov byte [ebx + 2], al
cmp byte [esi], 0x1e
jne 0x45d066
test ecx, ecx
mov ecx, dword [ebp - 0x14]
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
cmp dword [ebp - 0x40], 0
jne 0x45a539
test ecx, ecx
mov ecx, dword [ebp - 0x14]
je 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne case.0x45a4fe.32
test al, 8
jne 0x45d0b2
test al, 2
je 0x45d0be
push 1
push esi
call fcn.00413730
add esp, 8
jmp 0x45d0bb
push esi
call fcn.00461540
add esp, 4
mov ecx, dword [ebp - 0x14]
test byte [esi + 8], 4
je 0x45a53f
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc8], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [ebp - 0xc8]
push eax
push 0
push edi
push esi
push 0
push dword [ebx + 0x28]
call fcn.00436ca0
mov dword [ebp - 0x24], eax
add esp, 0x18
mov eax, dword [ebp - 0xc8]
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], edi
mov word [ebx + 2], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], eax
test eax, eax
je 0x45f246
mov edi, dword [ebp - 0x18]
cmp dword [edi + 8], 0
jne 0x45a53c
push 0x14586
call fcn.00439ab0
mov edi, dword [ebp - 0x1c]
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov edx, dword [ebx + 4]
add esp, 8
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x70]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov edx, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add esi, 0x14
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
xorps xmm0, xmm0
push ebx
push ecx
movlpd qword [ebp - 0x88], xmm0
mov dword [ebp - 0x98], 0
call fcn.00429c90
mov edx, dword [ebx + 4]
add esp, 8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x70]
mov ebx, dword [ecx + edx*4]
mov dword [ebp - 0x3c], ebx
test byte [ebx + 8], 2
jne 0x45d259
lea eax, [ebp - 0x98]
push eax
push dword [ebx + 0x28]
call fcn.00436c20
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602b9
cmp dword [ebp - 0x98], eax
je 0x45d215
mov edi, 1
xor esi, esi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
jmp 0x45d265
push dword [ebx + 0x28]
call fcn.00436710
mov esi, edx
add esp, 4
mov dword [ebp - 0x84], esi
mov edi, eax
mov dword [ebp - 0x88], edi
cmp esi, 0x7fffffff
jl 0x45d245
jg 0x45d23f
cmp edi, 0xffffffff
jb 0x45d245
or dword [ebx + 8], 2
jmp 0x45d265
add edi, 1
mov dword [ebp - 0x88], edi
adc esi, 0
mov dword [ebp - 0x84], esi
jmp 0x45d265
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x45d2f8
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xc4]
test edx, edx
je 0x45d29b
mov eax, dword [edx + 4]
test eax, eax
je 0x45d290
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x45d287
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x45d2a4
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x2c]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00462190
mov eax, dword [ebx]
add esp, 4
mov ecx, dword [ebx + 4]
cmp eax, 0xffffffff
jne 0x45d2c3
cmp ecx, 0x7fffffff
je 0x45d36a
mov edx, dword [ebp - 0x3c]
test byte [edx + 8], 2
jne 0x45d36a
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x45d2f0
jl 0x45d2e0
cmp edi, eax
jae 0x45d2f0
mov edi, eax
mov esi, ecx
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
mov ebx, dword [ebp - 0x3c]
test byte [ebx + 8], 2
je 0x45d37a
xor ebx, ebx
lea eax, [ebp - 0x88]
push eax
push 8
call fcn.00405dd0
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0x98]
mov edi, dword [ebp - 0x88]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x3c]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x88], edi
push esi
push edi
push 0
push dword [eax + 0x28]
mov dword [ebp - 0x84], esi
call fcn.00436ca0
add esp, 0x20
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
cmp dword [ebp - 0x98], eax
jne 0x45d377
inc ebx
cmp ebx, 0x64
jl 0x45d304
mov edi, dword [ebp - 0x1c]
mov eax, 0xd
jmp 0x4602b9
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov byte [ebx + 3], 0
mov dword [ebx + 0x1c], 0
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x18]
mov dword [eax], edi
add esi, 0x14
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x5c], 0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x70], esi
cmp dl, 0x74
jne 0x45d3da
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov ebx, dword [ecx + eax*8 + 4]
jmp 0x45d3df
cdq
mov edi, eax
mov ebx, edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1c4], edi
cmp byte [eax + 1], 0xfa
mov dword [ebp - 0x50], edi
jne 0x45d434
cmp dword [edx + 0xe0], 0
je 0x45d434
movsx ecx, byte [esi + 1]
mov eax, dword [edx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x64], ecx
mov ecx, dword [eax + 0x10]
test byte [eax + 2], 4
mov eax, 0x12
mov dword [ebp - 0x3c], ecx
mov ecx, 0x17
cmovne eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x18]
jmp 0x45d442
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x64], 0
test byte [eax + 2], 1
je 0x45d44e
mov ecx, dword [ebp - 0x14]
inc dword [ecx + 0x2c]
test byte [eax + 2], 0x20
je 0x45d45a
mov dword [edx + 0x20], edi
mov dword [edx + 0x24], ebx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + ecx*8 + 0x10]
mov dword [ebp - 0x1bc], eax
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 2]
test cl, 0x10
je 0x45d485
mov edx, dword [esi + 0x20]
jmp 0x45d487
xor edx, edx
mov esi, dword [ebp - 0x2c]
mov edi, 0x4000
mov eax, dword [ebp - 0x40]
test word [esi + eax*8 + 8], di
mov esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0x50]
je 0x45d4b0
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + eax*8]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x1ac], eax
jmp 0x45d4ba
mov dword [ebp - 0x1ac], 0
push edx
and ecx, 0xa
mov dword [ebp - 0x1cc], 0
push ecx
lea eax, [ebp - 0x1cc]
push eax
push dword [esi + 0x28]
call fcn.004363f0
add esp, 0x10
mov dword [ebp - 0x24], eax
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x45c4be
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xe0]
test eax, eax
je 0x45a8c0
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
je 0x45a8c0
mov edx, dword [ebp - 0x3c]
push ebx
push edi
push dword [edx]
push dword [ebp - 0x64]
push ecx
mov edi, dword [ebp - 0x1c]
push dword [edi + 0xdc]
call eax
mov esi, dword [ebp - 0x18]
add esp, 0x18
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
jne 0x45d58c
cmp dword [edi + 0xe0], 0
je 0x45d58c
movsx ecx, byte [esi + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x45d590
cmp byte [esi + 4], 0
je 0x45d590
push dword [esi + 0x28]
call fcn.00436710
mov dword [esi + 0x44], edx
add esp, 4
mov edx, dword [ebp - 0x18]
mov dword [esi + 0x40], eax
jmp 0x45d590
xor ebx, ebx
xor edi, edi
movzx eax, byte [edx + 2]
push eax
push dword [esi + 0x28]
call fcn.00435f70
mov ecx, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
test eax, eax
jne 0x46066a
test byte [ebp - 0x40], 1
je 0x45b360
mov eax, dword [ebp - 0x1c]
inc dword [ecx + 0x2c]
mov eax, dword [eax + 0xe0]
test eax, eax
je 0x45b360
test byte [edi + 0x24], 0x20
jne 0x45b360
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
jmp 0x45d518
mov eax, dword [ecx + 0x2c]
add dword [edi + 0x60], eax
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov dword [edi + 0x5c], eax
mov dword [ecx + 0x2c], 0
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
lea eax, [eax + eax*4]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x45d655
push ebx
call fcn.00459b80
add esp, 4
mov dword [ebp - 0x40], eax
mov dword [edi + 0x20], eax
test eax, eax
je 0x45d748
mov word [eax + 8], si
lea eax, [ebp - 0xfc]
push eax
push edi
call fcn.0046f860
mov edi, dword [ebp - 0x40]
push edi
push eax
push dword [ebp - 0xfc]
push ebx
call fcn.004636e0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x45d68f
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x45d6c9
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x45d682
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x2c]
push 0
push edi
push dword [ebx + eax*8 + 0x10]
push dword [ebx + eax*8 + 0xc]
call fcn.00462ff0
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov dword [ebp - 0x24], 0
jmp 0x45a539
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
cmp byte [eax + 0x38], 0
je 0x45d72b
cmp byte [eax + 0x39], 0
je 0x45d70a
mov eax, dword [eax + 0x10]
mov ebx, dword [eax + 0x20]
lea edi, [eax + 0x14]
jmp 0x45d731
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
mov eax, dword [eax + 4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 0x20]
lea eax, [eax + ecx*8]
lea edi, [eax + 0x14]
jmp 0x45d731
mov edi, dword [eax + 0x24]
lea ebx, [edi + 8]
mov edi, dword [edi]
cmp dword [esi + 0x18], edi
jge 0x45d755
push 0
push edi
push esi
call fcn.00462010
add esp, 0xc
test eax, eax
je 0x45d760
mov edi, dword [ebp - 0x1c]
mov eax, 7
jmp 0x4602b9
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
mov ecx, 0x3e00
push edi
and ax, cx
mov dword [esi + 0xc], edi
push ebx
push dword [esi + 0x10]
or ax, 0x10
mov word [esi + 8], ax
call fcn.00521b30
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], 0
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], 0
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
push edi
push ecx
call fcn.00429c90
mov edx, dword [edi + 4]
mov esi, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x70]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
push edi
call fcn.00423e10
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov eax, dword [edi + 0x24]
cmp eax, dword [edx + 0x64]
ja 0x4603f1
push esi
push eax
push 0
push edi
call fcn.00461fa0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov edi, dword [ebp - 0x18]
cmp dword [edi + 0xc], eax
jne 0x45a8c0
mov eax, 0x1000
test word [esi + 8], ax
je 0x45a8c0
push esi
call fcn.00462200
mov edi, dword [ebp - 0x1c]
add esp, 4
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x460390
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov ecx, dword [ebp - 0x18]
mov edi, eax
mov eax, dword [ebp - 0x14]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x70]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x45d880
mov esi, dword [ebp - 0x18]
mov eax, 1
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
cmp byte [esi + 3], 0
je 0x45d8b7
mov ecx, dword [esi + 0x40]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0xa4], ecx
mov eax, dword [esi + 0x44]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0xa0], eax
add esi, 0x14
mov dword [edi], ecx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
cmp byte [esi], 2
jne 0x45d90f
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0xa4]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
call fcn.00464a70
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
jne 0x45c4be
mov ecx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [edi], ecx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
push esi
call fcn.0045a130
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
cmp byte [esi + 2], al
je 0x45d945
mov esi, dword [ebp - 0x18]
mov eax, 1
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov word [edi + 8], ax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
push dword [esi + 0x28]
call fcn.00436710
mov esi, dword [ebp - 0x18]
mov ecx, eax
mov dword [ebp - 0xa0], edx
add esp, 4
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [ebp - 0xa4], ecx
mov dword [edi], ecx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne 0x45a6f2
push dword [eax + 0x28]
call fcn.004356c0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 4]
mov dword [ebp - 0xcc], 0
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp dl, 0x7d
jne 0x45d9e4
mov dword [esi + 0x20], 0xffffffff
cmp byte [eax], 1
je 0x45a6ef
lea ecx, [ebp - 0xcc]
push ecx
push eax
call fcn.00436c20
mov dword [ebp - 0x24], eax
add esp, 8
mov ecx, dword [ebp - 0x24]
test ecx, ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x14]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
jne 0x460662
mov esi, dword [ebp - 0x18]
cmp dword [esi + 8], 0
jle case.0x45a4fe.83
test eax, eax
jne 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
lea eax, [ebp - 0xd0]
push eax
push esi
mov dword [ebp - 0x40], esi
call fcn.004362e0
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602b9
cmp dword [ebp - 0xd0], eax
jne 0x45a539
cmp byte [esi], 1
jne 0x45a6ef
mov eax, dword [esi + 0x74]
cmp byte [eax + 8], 0
je 0x45a6ef
movzx eax, word [eax + 0x16]
xor bl, bl
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x40]
movsx ecx, byte [eax + 0x44]
mov dword [ebp - 0x50], ecx
test ecx, ecx
jle 0x45dac9
xor ecx, ecx
mov eax, dword [eax + ecx*4 + 0x78]
push edi
push esi
movzx eax, word [eax + 0x16]
cdq
push edx
push eax
call fcn.004db9e0
inc bl
mov esi, eax
mov eax, dword [ebp - 0x40]
mov edi, edx
movzx ecx, bl
cmp ecx, dword [ebp - 0x50]
jl 0x45daa6
test edi, edi
jl 0x45a8c0
jg 0x45dadb
test esi, esi
jb 0x45a8c0
push edi
push esi
call fcn.00449da0
mov edi, dword [ebp - 0x18]
add esp, 8
mov ecx, dword [ebp - 0x14]
cwde
cmp eax, dword [edi + 0xc]
jge 0x45b360
mov dword [ebp - 0xd0], 1
jmp 0x45a53f
inc dword [ecx + 0xa8]
mov edx, dword [ebp - 0x18]
mov ebx, 1
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x90], ebx
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
cmp byte [edi], bl
jne 0x45db87
mov esi, dword [edi + 0x28]
mov dword [ebp - 0x24], 0
cmp byte [esi + 0x38], 0
jne 0x45db5d
cmp dword [esi + 0x24], 0
lea eax, [esi + 0x24]
je 0x45db55
push eax
lea eax, [esi + 0x40]
xor ebx, ebx
push eax
mov dword [ebp - 0x90], ebx
call fcn.0046fae0
jmp 0x45dba7
mov dword [ebp - 0x90], ebx
jmp 0x45dbad
push esi
call fcn.0046f0e0
push eax
push esi
call fcn.0046f200
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45dbad
push esi
call fcn.0046f8c0
add esp, 4
xor ebx, ebx
mov dword [ebp - 0x90], ebx
jmp 0x45dbaa
lea eax, [ebp - 0x90]
push eax
push dword [edi + 0x28]
call fcn.004362e0
mov ebx, dword [ebp - 0x90]
mov byte [edi + 3], 0
mov dword [edi + 0x1c], 0
add esp, 8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x45c4be
mov ecx, dword [ebp - 0x14]
mov byte [edi + 2], bl
test ebx, ebx
jne 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x28]
cmp byte [esi + 0x38], 0
je 0x45dc54
cmp byte [esi + 0x39], 0
je 0x45dc1e
push dword [esi + 0x10]
call fcn.0046e3f0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45dcc0
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x45dc85
mov eax, 0x65
jmp 0x45dcbd
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0
push eax
push dword [esi + 0x14]
call fcn.0046de80
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45dcc0
cmp dword [ebp - 0xa8], eax
je 0x45dcc0
mov eax, 0x65
jmp 0x45dcbd
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x45dc76
push ecx
push dword [ebp - 0x1c]
call fcn.0046f800
add esp, 8
xor ecx, ecx
mov eax, 0x65
cmp dword [esi + 0x24], ecx
cmovne eax, ecx
jmp 0x45dcbd
mov eax, dword [ebp - 0x24]
jmp 0x45dcc0
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x70]
cmp dword [eax + ecx*4], 0
je 0x45a6f2
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x18]
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [edi + 0x28]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov dword [edi + 0x1c], 0
test eax, eax
jne 0x45dce4
mov ecx, dword [ebp - 0x14]
mov byte [edi + 2], al
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa0]
jmp 0x45fb83
mov ebx, dword [ebp - 0x28]
cmp eax, 0x65
jne 0x460105
xor ecx, ecx
mov byte [edi + 2], 1
mov dword [ebp - 0x24], ecx
jmp 0x45e781
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [edx + 4]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x70]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x45dd25
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x45dd44
push esi
call fcn.00461eb0
add esp, 4
test eax, eax
jne 0x45c4be
mov ecx, dword [ebp - 0x18]
cmp byte [ecx], 0x7e
jne 0x45dd5e
push esi
push edi
call fcn.00464180
mov edi, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x284], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x28c], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x280], edx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x278], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x274], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x45dd9e
mov ecx, dword [edi + 0x20]
jmp 0x45dda0
xor ecx, ecx
push ecx
and eax, 0xa
push eax
lea eax, [ebp - 0x28c]
push eax
push dword [edi + 0x28]
call fcn.004363f0
mov dword [edi + 0x1c], 0
add esp, 0x10
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x15c], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x154], ax
mov eax, dword [edx + 8]
mov byte [ebp - 0x152], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x15c]
push eax
push edi
call fcn.00436ca0
add esp, 0x18
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
cmp dword [ebp - 0xdc], eax
jne 0x45de4e
push 4
push edi
call fcn.00435f70
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45c4be
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov ebx, dword [eax + ecx*4]
push ebx
mov dword [ebp - 0x40], ebx
call fcn.0045a130
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602b9
cmp byte [ebx + 2], al
jne 0x45e05c
mov edi, dword [ebx + 0x28]
push edi
call fcn.00423e10
mov ebx, dword [edi + 0x20]
xor eax, eax
movzx ecx, word [edi + 0x28]
add esp, 4
mov esi, dword [edi + 0x24]
mov word [ebp - 0x144], ax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x12c], eax
mov eax, dword [edi + 0x74]
mov dword [ebp - 0x134], 0
mov eax, dword [eax + 0x3c]
sub eax, ebx
cmp ecx, eax
jle 0x45dee6
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
cmp esi, ecx
ja 0x45df04
mov eax, 0x1010
mov dword [ebp - 0x13c], ebx
mov word [ebp - 0x144], ax
mov dword [ebp - 0x140], esi
jmp 0x45df2b
lea eax, [ebp - 0x14c]
push eax
push esi
push 0
push edi
call fcn.0046d990
add esp, 0x10
test eax, eax
jne 0x45c4be
mov ebx, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x140]
mov al, byte [ebx]
cmp al, 0x80
jae 0x45df3c
movzx edi, al
mov dword [ebp - 0xac], edi
jmp 0x45df52
lea eax, [ebp - 0xac]
push eax
push ebx
call fcn.004461c0
mov edi, dword [ebp - 0xac]
add esp, 8
cmp edi, 3
jb 0x460223
cmp edi, esi
jg 0x460223
lea eax, [ebx - 1]
add eax, edi
mov cl, byte [eax]
cmp cl, 0x80
jae 0x45df7a
movzx ecx, cl
mov dword [ebp - 0xb0], ecx
jmp 0x45df90
lea ecx, [ebp - 0xb0]
push ecx
push eax
call fcn.004461c0
mov ecx, dword [ebp - 0xb0]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x460223
cmp ecx, 7
je 0x460223
movzx edx, byte [ecx + 0x54a228]
lea eax, [edx + edi]
cmp esi, eax
jb 0x460223
lea eax, [ebp - 0x2b4]
sub esi, edx
push eax
push ecx
add esi, ebx
push esi
call fcn.004638c0
lea eax, [ebp - 0x14c]
push eax
call fcn.00462430
mov edi, dword [ebp - 0x18]
add esp, 0x10
mov dword [ebp - 0x24], 0
cmp byte [edi], 0x81
jne 0x45e02b
mov ecx, dword [edi + 0xc]
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x2b4]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x2b0]
mov dword [ecx + 0x44], eax
mov word [ecx + 2], 0x100
mov eax, dword [edi + 0x10]
mov edi, dword [ebp - 0x1c]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
push edi
push dword [ebp - 0x14]
call fcn.00429c90
mov ecx, dword [ebp - 0x2b4]
add esp, 8
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2b0]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
cmp dl, 0x28
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x2c]
mov dword [ebp - 0x16c], eax
mov ax, word [edi + 0x10]
mov word [ebp - 0x164], ax
sbb al, al
mov byte [ebp - 0x162], al
xor esi, esi
mov eax, dword [edi + 0xc]
mov edi, dword [ecx + 0x28]
push edi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x168], eax
call fcn.00423e10
mov edx, dword [edi + 0x24]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x45e16e
jb 0x45e0f6
cmp ecx, 0x7ffffffe
ja 0x45e16e
xor eax, eax
mov dword [ebp - 0x204], esi
mov word [ebp - 0x214], ax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1fc], eax
lea eax, [ebp - 0x21c]
push eax
push edx
push 0
push edi
call fcn.00461fa0
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45e196
push eax
lea eax, [ebp - 0x16c]
push eax
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
call fcn.00462ff0
add esp, 0x10
mov esi, eax
test dword [ebp - 0x214], 0x2460
jne 0x45e15b
cmp dword [ebp - 0x204], 0
je 0x45e16a
lea eax, [ebp - 0x21c]
push eax
call fcn.0046d870
add esp, 4
xor eax, eax
jmp 0x45e193
push 0x551524
push 0x12b85
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
xor esi, esi
call fcn.00411010
add esp, 0x14
mov eax, 0xb
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x18]
test byte [edi], 1
jne 0x45e1a2
neg esi
jmp 0x45e1a3
inc esi
test eax, eax
jne 0x45c4be
mov ecx, dword [ebp - 0x14]
test esi, esi
jg 0x45a53f
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov edx, dword [ebp - 0x1c]
mov edi, eax
mov eax, 1
add esp, 8
mov word [edi + 8], ax
mov ecx, dword [edx + 0xb0]
inc ecx
cmp dword [edx + 0xa4], ecx
jg 0x46026f
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov ebx, ecx
mov dword [ebp - 0x40], eax
add ebx, ebx
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0xb4], 0
mov esi, dword [eax + ebx*8 + 4]
cmp byte [esi + 9], 0
je 0x45e22e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x45e22e
push esi
call fcn.004167a0
add esp, 4
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0x40]
push esi
call fcn.00415ec0
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp byte [esi + 9], 0
je 0x45e259
add dword [esi + 0xc], 0xffffffff
jne 0x45e259
push esi
call fcn.0046b6e0
add esp, 4
mov esi, dword [ebp - 0xb4]
mov eax, 4
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 4], edx
test eax, eax
jne 0x45c4be
test esi, esi
je 0x45a8c0
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + ebx*8 + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x45e2b1
nop word [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x45e2ab
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x45e2a0
mov eax, dword [edi + ebx*8 + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x45e2d1
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x45e2cb
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x45e2c0
mov al, byte [ebp - 0x50]
mov esi, dword [ebp - 0x18]
inc al
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x65], al
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0xb8]
xor ecx, ecx
mov dword [ebp - 0xb8], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edx + 8]
push eax
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [edx + 4]
push dword [eax + ecx*8 + 4]
call fcn.004356e0
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp dword [esi + 0xc], 0
je 0x45e350
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb8]
add dword [ecx + 0x2c], eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
jle 0x45e34d
mov ebx, dword [ebp - 0x2c]
lea ecx, [ecx + ecx*4]
cdq
add dword [ebx + ecx*8], eax
adc dword [ebx + ecx*8 + 4], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4602bc
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x45e397
push dword [eax + 0x28]
push edi
call fcn.00463d80
mov esi, dword [ebp - 0x18]
add esp, 8
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov eax, dword [eax + 0x28]
push 0
push dword [eax + 0x3c]
push dword [eax + 8]
call fcn.004356e0
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x45b290
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov esi, eax
mov dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
lea eax, [ebp - 0xbc]
add ecx, dword [edi + 0x10]
push eax
push dword [ecx + 4]
call fcn.00435e10
mov ecx, dword [ebp - 0x14]
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4602bc
mov eax, dword [ebp - 0xbc]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x20]
mov dword [esi], eax
mov esi, dword [ebp - 0x18]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
inc byte [edi + 0x52]
push 0
push 0
push 0
push dword [edx + 0x10]
push edi
call fcn.004038b0
add esp, 0x14
mov dword [ebp - 0x24], eax
dec byte [edi + 0x52]
jmp 0x45b290
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
add eax, 0x6c
mov dword [ebp - 0x124], edi
mov dword [ebp - 0x120], eax
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x11c], 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.00449f10
mov esi, eax
add esp, 0x14
test esi, esi
je 0x460282
push 0
lea eax, [ebp - 0x124]
mov byte [edi + 0x9d], 1
push eax
push fcn.00447080
push esi
push edi
mov dword [ebp - 0x118], 0
call fcn.004038b0
test eax, eax
push esi
cmove eax, dword [ebp - 0x118]
push edi
mov dword [ebp - 0x24], eax
call fcn.0043ae80
mov ecx, dword [ebp - 0x24]
add esp, 0x1c
mov byte [edi + 0x9d], 0
test ecx, ecx
jne 0x460289
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push dword [edx + 4]
push edi
call fcn.00433b20
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov edx, dword [ebp - 0x18]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.004463c0
add esp, 0xc
test eax, eax
je 0x45e52c
cmp dword [edi + 0x1d0], 0
jne 0x45e522
add dword [eax + 0x20], 0xffffffff
jne 0x45e52c
push eax
push edi
call fcn.0041c4e0
add esp, 8
mov esi, dword [ebp - 0x18]
or dword [edi + 0x18], 1
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.004463c0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x45e52c
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x45e596
mov eax, dword [edx + 0x14]
push edx
push edi
mov dword [esi + 8], eax
call fcn.004221b0
mov esi, dword [ebp - 0x18]
add esp, 8
or dword [edi + 0x18], 1
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
test ecx, ecx
je 0x45e5d2
nop word [eax + eax]
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x45e5cc
mov ecx, eax
test ecx, ecx
jne 0x45e5a0
push edx
push edi
call fcn.004221b0
mov esi, dword [ebp - 0x18]
add esp, 8
or dword [edi + 0x18], 1
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
push edx
push edi
call fcn.004221b0
mov esi, dword [ebp - 0x18]
add esp, 8
or dword [edi + 0x18], 1
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push dword [edx + 0x10]
push dword [edx + 4]
push edi
call fcn.00456730
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
movzx ecx, word [edx + 2]
push eax
mov eax, dword [ebp - 0x1c]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.00436730
push edi
mov ebx, eax
call fcn.004624a0
mov eax, dword [ebp - 0xe0]
add esp, 0x18
test eax, eax
je 0x45e690
test ebx, ebx
je 0x46038a
mov ecx, dword [ebp - 0x2c]
dec eax
push fcn.00405c40
push 1
cdq
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
push ebx
push edi
call fcn.004625a0
add esp, 0x14
movzx eax, byte [ebp - 0x58]
push eax
push edi
call fcn.00459c20
mov esi, dword [ebp - 0x18]
add esp, 8
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x45e6e1
push esi
call fcn.004624d0
add esp, 4
test byte [esi + 8], 0x20
je 0x46038a
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi]
call fcn.00451120
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x45e7e9
mov esi, dword [edi]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x45e741
test al, 1
jne 0x45e73c
push dword [esi + 8]
call fcn.00430870
add esp, 4
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x45e7e9
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x45e764
push esi
call fcn.00451090
add esp, 4
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00462460
add esp, 0xc
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp dword [edi + 0x100], 0
jne 0x460623
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x80]
jb 0x45a85c
mov ecx, dword [edi + 0x138]
test ecx, ecx
je 0x45a85c
mov eax, dword [edi + 0x140]
mov dword [ebp - 0x80], eax
mov eax, edx
xor edx, edx
div dword [ebp - 0x80]
mov eax, dword [ebp - 0x80]
push dword [edi + 0x13c]
sub eax, edx
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x80], eax
call ecx
mov ecx, dword [ebp - 0x14]
add esp, 4
test eax, eax
je case.0x45a4fe.83
mov eax, 9
jmp 0x4602bf
push edi
call fcn.004624a0
add esp, 4
jmp 0x45fb83
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x45e82c
push esi
call fcn.004624d0
add esp, 4
test byte [esi + 8], 0x20
je 0x46038a
mov ecx, dword [ebp - 0x2c]
test ebx, ebx
je 0x45e84c
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi]
call fcn.004511c0
add esp, 0x10
test eax, eax
jne 0x45a539
test ebx, ebx
js 0x45a8c0
mov ebx, dword [ebp - 0x2c]
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi]
call fcn.00451120
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x3c], esi
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ebp - 0x18]
cmp word [eax + 2], 0
je 0x45e8c3
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xc4]
test eax, eax
je 0x45e8c0
nop dword [eax]
cmp dword [eax + 0x1c], ecx
je 0x45a6ef
mov eax, dword [eax + 4]
test eax, eax
jne 0x45e8b0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xcc]
cmp eax, dword [edi + 0x8c]
jge 0x4602a6
test byte [ebx + 8], 0x40
jne 0x45e9c3
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x45e90a
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push edi
call fcn.0043afb0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46038a
push ebx
call fcn.00462430
mov ecx, dword [ebp - 0x3c]
mov eax, 0x40
mov edx, dword [ebp - 0x18]
add esp, 4
sub edx, dword [ebp - 0x28]
mov word [ebx + 8], ax
mov dword [ebx], edi
mov ebx, dword [ebp - 0x14]
mov dword [edi], ebx
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov eax, dword [ebx + 0x5c]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x70]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x58]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x88]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x45e9c7
mov edx, dword [ebp - 0x1c]
mov ebx, 0x80
nop word [eax + eax]
mov word [eax + 8], bx
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x45e9b0
mov ecx, dword [ebp - 0x14]
jmp 0x45e9c9
mov edi, dword [ebx]
jmp 0x45e9cc
mov ecx, ebx
mov esi, dword [ebp - 0x3c]
inc dword [ecx + 0xcc]
lea ebx, [edi + 0x50]
mov eax, dword [ecx + 0xc4]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 4], eax
mov dword [ebp - 0x2c], ebx
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x24], eax
mov eax, dword [edx + 0x2c]
mov dword [edi + 0x44], eax
mov eax, dword [edx]
mov eax, dword [eax + 0x5c]
mov dword [edi + 0x48], eax
mov eax, dword [edx + 0xd8]
mov dword [edi + 0x28], eax
mov dword [edx + 0xd8], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xc4], edi
mov dword [edx + 0x5c], ebx
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, [ebx + 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.00520ff0
mov ebx, dword [esi]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ebx
lea edi, [ebx - 0x14]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x1c]
mov dword [ecx + 0x58], ebx
mov eax, dword [esi + 4]
mov esi, dword [ebp - 0x18]
mov dword [ecx + 0x88], eax
add esi, 0x14
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov esi, eax
mov eax, dword [ebp - 0x14]
push 0x1000
mov eax, dword [eax + 0xc4]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x18]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.00462820
mov esi, dword [ebp - 0x18]
add esp, 0x14
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
test dword [edi + 0x1c], 0x80000
mov edx, dword [ebp - 0x18]
mov esi, edx
mov eax, dword [edx + 8]
je 0x45eb05
cdq
add dword [edi + 0x1c8], eax
adc dword [edi + 0x1cc], edx
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
cmp dword [edx + 4], 0
cdq
je 0x45eb23
add dword [edi + 0x1c0], eax
adc dword [edi + 0x1c4], edx
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
cmp dword [esi + 4], 0
je 0x45eb69
mov eax, dword [edi + 0x1c0]
or eax, dword [edi + 0x1c4]
jne case.0x45a4fe.83
mov eax, dword [edi + 0x1c8]
or eax, dword [edi + 0x1cc]
je 0x45b1fa
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x45eb46
mov edx, dword [ecx + 0xc4]
test edx, edx
je 0x45eb9f
mov eax, dword [edx + 4]
test eax, eax
je 0x45eb8b
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x45eb82
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x45ebae
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00462190
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.00462190
mov ecx, dword [esi + 4]
add esp, 8
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x45a8c0
jl 0x45ebe1
cmp dword [edi], eax
jae 0x45a8c0
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x14]
mov dword [edi], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edi + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x45a8c0
jg 0x45ec1f
test ecx, ecx
je 0x45a8c0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x45a539
mov edx, dword [ebp - 0x18]
push edx
push ecx
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.00429c90
mov edx, dword [ebp - 0x2c]
add esp, 8
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jl 0x45ecca
jg 0x45ec71
test eax, eax
je 0x45ecca
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x45ec82
jg 0x45ec90
test eax, eax
jne 0x45ec90
xorps xmm0, xmm0
movlpd qword [ebp - 0x44], xmm0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
push ecx
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00432eb0
add esp, 0xc
test eax, eax
jne 0x45ecca
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov dword [edi], eax
mov eax, dword [ebp - 0xd4]
mov dword [edi + 4], eax
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [ebp - 0x1c]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x45a6ef
test edx, edx
jl 0x45a539
jg 0x45ed1a
test ecx, ecx
je 0x45a539
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
jmp 0x45a535
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov edx, dword [ebx + ecx*8 + 4]
mov eax, dword [ebx + ecx*8]
cmp edx, 0x80000000
jl 0x45ed56
jg 0x45ed49
test eax, eax
je 0x45ed56
sub eax, 1
mov dword [ebx + ecx*8], eax
sbb edx, 0
mov dword [ebx + ecx*8 + 4], edx
mov eax, dword [ebx + ecx*8]
or eax, dword [ebx + ecx*8 + 4]
mov ecx, dword [ebp - 0x14]
je 0x45b1fa
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
push edi
call fcn.0043aed0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46038d
mov edi, dword [ebp - 0x18]
mov eax, 0x66666667
mov dword [esi + 8], 0
mov ecx, dword [edi + 0x10]
mov dword [esi + 4], ecx
mov ecx, edi
sub ecx, dword [ebp - 0x28]
imul ecx
mov byte [esi + 0x1a], bl
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xc], eax
mov word [edi], 0xf095
mov dword [edi + 0x10], esi
jmp 0x45edd7
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x40], edi
cmp dword [esi + 8], edi
je 0x45ee1c
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x45ee1c
mov edi, dword [ebp - 0x18]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x45ee03
mov edi, dword [ebp - 0x40]
inc dword [edi + 0xc]
mov eax, 1
mov edi, dword [ebp - 0x1c]
mov word [ebp - 0x1ec], ax
lea eax, [ebp - 0x1f4]
mov dword [ebp - 0x1d4], edi
mov dword [ebp - 0x1dc], 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 0x45eedf
cmp dword [esi + 0x14], 0
je 0x45eec5
mov eax, dword [ebp - 0x1ec]
and eax, 0x202
cmp eax, 0x202
jne 0x45ee90
cmp byte [ebp - 0x1ea], 1
jne 0x45ee90
mov eax, dword [ebp - 0x1e4]
jmp 0x45eeae
test byte [ebp - 0x1ec], 1
je 0x45ee9d
xor eax, eax
jmp 0x45eeae
lea eax, [ebp - 0x1f4]
push 1
push eax
call fcn.0046c940
add esp, 8
push eax
push 0x54cb4c
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1f4]
push eax
call fcn.00462430
mov eax, dword [ebp - 0x24]
add esp, 4
test eax, eax
jne 0x4602b9
cmp byte [esi + 0x18], 0
je 0x45a6ef
mov eax, dword [ebp - 0x18]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x45a6ef
push 0
push 1
jmp 0x45aa9c
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [edx + 4]
push dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00461f10
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x460319
movzx eax, byte [ebp - 0x58]
push eax
push esi
call fcn.00459c20
push esi
call fcn.00462940
add esp, 0xc
test eax, eax
jne 0x4603f8
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov dword [ebp - 8], 0xffffffff
push dword [edx + 4]
mov dword [ebp - 0xc], 0xffffffff
push edi
call fcn.00438380
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
je 0x45efa0
cmp eax, 5
jne 0x4602b9
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x18]
xor esi, esi
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
push edx
push eax
push edi
call fcn.00462460
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x45efb1
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
push ebx
push ecx
call fcn.00429c90
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [edi + 0x10]
add edx, edx
mov esi, dword [ebx + 0xc]
cmp esi, 0xffffffff
mov dword [ebp - 0x50], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x40], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ebx, byte [edi + 5]
mov ecx, ebx
cmovne ecx, esi
cmp byte [edi + 0x10], 3
jb 0x45f01b
xor eax, eax
jmp 0x45f03a
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x45f035
cmp dword [edi + 0x4c], 0
jl 0x45f035
jg 0x45f031
cmp dword [edi + 0x48], 0
jbe 0x45f035
xor eax, eax
jmp 0x45f03a
mov eax, 1
test eax, eax
mov esi, ebx
mov eax, 0x54895d
cmovne esi, ecx
cmp byte [edi + 0xf], 0
jne 0x45f052
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x45f078
push eax
call fcn.00455f10
add esp, 4
test eax, eax
je 0x45f071
push edi
call fcn.0044c280
add esp, 4
test eax, eax
jne 0x45f078
mov eax, ebx
jmp 0x45f1fa
mov eax, esi
cmp esi, ebx
je 0x45f1fa
cmp ebx, 5
je 0x45f090
cmp esi, 5
jne 0x45f1fa
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x47], 0
je 0x460335
cmp dword [eax + 0xa4], 1
jg 0x460335
cmp ebx, 5
jne 0x45f1c7
cmp dword [edi + 0xd4], 0
mov dword [ebp - 0x24], 0
jne 0x45f15f
mov al, byte [edi + 0x11]
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0x24], 0
cmp al, 1
jb 0x45f0e3
cmp al, bl
jne 0x45f113
cmp byte [edi + 0xd], 0
je 0x45f0f2
mov dword [ebp - 0x24], 0
jmp 0x45f109
mov eax, dword [edi + 0x3c]
push 1
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1c]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f113
cmp byte [edi + 0x11], 5
je 0x45f113
mov byte [edi + 0x11], 1
cmp dword [ebp - 0x24], 0
jne 0x45f1bb
mov eax, dword [edi]
lea ecx, [ebp - 0xc0]
push ecx
push 0
push dword [edi + 0xd8]
push eax
mov eax, dword [eax + 0x20]
call eax
add esp, 0x10
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f1bb
cmp dword [ebp - 0xc0], eax
je 0x45f156
push edi
call fcn.0042a740
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f1bb
cmp dword [edi + 0xd4], 0
je 0x45f1bb
push edi
call fcn.0042a410
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f1bb
push dword [edi + 0xcc]
movzx eax, byte [edi + 0xb]
push dword [edi + 0x98]
push eax
push dword [ebp - 0x1c]
push dword [edi + 0xd4]
call fcn.004652c0
push edi
mov dword [ebp - 0x24], eax
mov dword [edi + 0xd4], 0
call fcn.0042a490
add esp, 0x18
cmp dword [ebp - 0x24], 0
je 0x45f1bb
cmp byte [edi + 4], 0
jne 0x45f1bb
push 1
push edi
call fcn.0042af00
add esp, 8
mov ecx, dword [ebp - 0x24]
mov eax, esi
test ecx, ecx
jne 0x45f1ff
push esi
jmp 0x45f1ce
cmp ebx, 4
jne 0x45f1d7
push 2
push edi
call fcn.0044bc50
add esp, 8
mov ecx, dword [ebp - 0x24]
mov eax, esi
test ecx, ecx
jne 0x45f1ff
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0x40]
call fcn.00437fb0
mov dword [ebp - 0x24], eax
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0x24]
test ecx, ecx
cmove ebx, eax
push ebx
push edi
call fcn.0044bc50
mov ebx, dword [ebp - 0x50]
add esp, 8
mov ecx, 0xa02
mov word [ebx + 8], cx
cmp eax, 6
jne 0x45f221
xor eax, eax
jmp 0x45f228
mov eax, dword [eax*4 + 0x54a36c]
push eax
mov dword [ebx + 0x10], eax
call fcn.00455f10
mov dword [ebx + 0xc], eax
movzx eax, byte [ebp - 0x58]
push eax
push ebx
mov byte [ebx + 0xa], 1
call fcn.00459c20
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
jmp 0x45b290
mov edx, dword [ebp - 0x18]
lea eax, [ecx + 0x6c]
push dword [edx + 4]
push edi
push eax
call fcn.00451810
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x45b290
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
cmp byte [edi + 9], 0
mov ebx, dword [edi + 4]
je 0x45f296
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x45f296
push edi
call fcn.004167a0
add esp, 4
cmp byte [ebx + 0x11], 0
je 0x45f34d
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0x40], ecx
mov eax, dword [eax + 0x38]
mov esi, dword [eax + 0x24]
bswap esi
push esi
push ecx
push ebx
call fcn.0041ff40
add esp, 0xc
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], eax
jae 0x45f2eb
push 0x551524
push 0xf7ba
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00411010
add esp, 0x14
mov dword [ebp - 0x24], 0xb
jmp 0x45f354
test esi, esi
je 0x45f34d
mov eax, dword [ebx + 8]
test eax, eax
je 0x45f30c
push 0
push 0
push eax
call fcn.00430c00
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x45f354
push ebx
call fcn.00425690
push 0
push dword [ebp - 0x40]
push dword [ebp - 0x50]
push ebx
call fcn.004250b0
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x45f354
mov eax, dword [ebx + 0xc]
push dword [eax + 0x48]
call fcn.0044c2b0
mov ecx, dword [ebx + 0x2c]
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
jmp 0x45f354
mov dword [ebp - 0x24], 0x65
cmp byte [edi + 9], 0
je 0x45f369
add dword [edi + 0xc], 0xffffffff
jne 0x45f369
push edi
call fcn.0046b6e0
add esp, 4
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x45a8c0
mov ecx, dword [ebp - 0x14]
cmp eax, 0x65
jne 0x46066a
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x24], 0
jmp 0x45a53f
cmp dword [esi + 4], 0
jne 0x45f3a9
push edi
call fcn.0043ca30
mov edx, dword [ebp - 0x20]
add esp, 4
add esi, 0x14
jmp 0x45a4e6
or dword [ecx + 0x94], 1
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov ebx, dword [ebp - 0x18]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x45f3d2
test dword [edi + 0x1c], 0x400
jne 0x45b20e
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
xor eax, eax
mov dword [ebp - 0x24], eax
cmp byte [esi + 9], al
je 0x45f495
inc dword [esi + 0xc]
inc bl
mov byte [ebp - 0xe4], bl
cmp byte [esi + 0xa], al
jne 0x45f40e
push esi
call fcn.004167a0
add esp, 4
push dword [ebp - 0xe4]
push edi
push esi
call fcn.0042e530
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f47d
mov eax, dword [esi + 4]
mov dword [ebp - 0x40], eax
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x45f442
cmp dword [ecx + 4], edi
jne 0x45f43b
cmp dword [ecx], esi
je 0x45f46b
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x45f432
push 0
push 0x10
call fcn.00449f50
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x45f4b1
mov edx, dword [ebp - 0x40]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [edx + 0x48]
mov dword [ecx + 0xc], eax
mov dword [edx + 0x48], ecx
cmp bl, byte [ecx + 8]
jbe 0x45f473
mov byte [ecx + 8], bl
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x24]
cmp byte [esi + 9], 0
je 0x45f495
add dword [esi + 0xc], 0xffffffff
jne 0x45f495
push esi
call fcn.0046b6e0
mov eax, dword [ebp - 0x24]
add esp, 4
test eax, eax
jne 0x460353
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov dword [ebp - 0x24], 7
mov eax, 7
jmp 0x45f47d
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], 0
mov esi, dword [edx + 0x10]
mov edx, dword [edi + 0x144]
test edx, edx
jle 0x45f4eb
cmp dword [edi + 0x15c], 0
jne 0x45f4eb
mov dword [ebp - 0x24], 6
jmp 0x45f59b
test esi, esi
jne 0x45f505
mov esi, dword [ebp - 0x18]
xor ecx, ecx
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x45f598
mov ebx, dword [ebp - 0x1c]
xor ecx, ecx
test edx, edx
jle 0x45f533
mov eax, dword [ebx + 0x15c]
cmp dword [eax], esi
je 0x45f5b6
inc ecx
add eax, 4
cmp ecx, edx
jl 0x45f523
push ebx
call fcn.00424b00
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f598
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f598
mov ecx, dword [ebx + 0x144]
mov eax, dword [ebx + 0x15c]
mov edx, dword [ebx + 0x1bc]
add edx, dword [ebx + 0x1b8]
mov dword [eax + ecx*4], esi
inc dword [ebx + 0x144]
inc dword [esi + 0xc]
test edx, edx
je 0x45f598
cmp dword [edi + 0x50], 0
je 0x45f598
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [edi + 0x50]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x1c]
test esi, esi
je 0x45b28d
push dword [esi + 8]
push dword [ebp - 0x14]
call fcn.00464a70
add esp, 8
jmp 0x45b28d
mov dword [ebp - 0x24], 0
mov edi, ebx
jmp 0x45f59b
mov edx, dword [ebp - 0x18]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x2c]
movq qword [ebp - 0x174], xmm0
movups xmmword [ebp - 0x194], xmm0
mov eax, dword [edx + 8]
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x174], edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00461e40
mov dword [ebp - 0x24], eax
add esp, 8
mov eax, dword [ebp - 0x18c]
and eax, 0x202
cmp eax, 0x202
jne 0x45f625
cmp byte [ebp - 0x18a], 1
jne 0x45f625
mov edx, dword [ebp - 0x184]
jmp 0x45f645
test byte [ebp - 0x18c], 1
jne 0x45f758
lea eax, [ebp - 0x194]
push 1
push eax
call fcn.0046c940
add esp, 8
mov edx, eax
test edx, edx
je 0x45f758
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x14]
add esi, 0x6c
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push edx
push edi
call fcn.00441c50
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x3c]
mov edi, dword [ecx]
mov ecx, dword [ebp - 0x1c]
add ecx, 0x148
push edi
push ecx
call fcn.004201b0
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45f73d
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x45f73d
cmp dword [eax + 0x14], 0
je 0x45f73d
mov edi, dword [ebp - 0x1c]
push esi
push edx
push ecx
push ebx
push edi
call fcn.0046fe90
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f758
mov eax, dword [ebx + 0x40]
test eax, eax
je 0x45f758
nop dword [eax]
cmp dword [eax], edi
je 0x45f6ef
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x45f6d0
lea eax, [ebp - 0x194]
push eax
call fcn.00462430
add esp, 4
jmp 0x45b28d
push edi
call fcn.00424b00
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f758
mov edx, dword [ebx + 0x40]
test edx, edx
je 0x45f711
cmp dword [edx], edi
je 0x45f711
mov edx, dword [edx + 0x18]
test edx, edx
jne 0x45f706
mov ecx, dword [edi + 0x144]
mov eax, dword [edi + 0x15c]
mov dword [eax + ecx*4], edx
lea eax, [ebp - 0x194]
inc dword [edi + 0x144]
inc dword [edx + 0xc]
push eax
call fcn.00462430
add esp, 4
jmp 0x45b28d
push edi
mov edi, dword [ebp - 0x1c]
push str.no_such_module:__s
push edi
call fcn.00449f10
add esp, 0xc
mov dword [esi], eax
mov dword [ebp - 0x24], 1
lea eax, [ebp - 0x194]
push eax
call fcn.00462430
add esp, 4
jmp 0x45b28d
mov edx, dword [ebp - 0x18]
inc dword [edi + 0xb0]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x24], 0
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push edi
call fcn.00441c50
mov edi, eax
add esp, 0xc
test edi, edi
je 0x45f827
mov ecx, dword [edi + 0x40]
test ecx, ecx
je 0x45f800
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x45f811
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x45f7a4
push edi
push dword [ebp - 0x1c]
call fcn.004703a0
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
add esp, 0xc
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x45f829
mov dword [esi + 8], eax
mov dword [edi + 0x40], eax
add dword [esi + 0xc], 0xffffffff
mov edi, dword [esi]
jne 0x45f829
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x45f7f6
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
push esi
push edi
call fcn.0043ae20
add esp, 8
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
dec dword [edi + 0xb0]
jmp 0x45b290
mov edi, dword [ebp - 0x1c]
mov eax, 6
mov dword [ebp - 0x24], eax
dec dword [edi + 0xb0]
jmp 0x45b290
xor eax, eax
mov edi, dword [ebp - 0x1c]
dec dword [edi + 0xb0]
jmp 0x45b290
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x9c], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4603da
mov edi, dword [esi]
test edi, edi
je 0x4603d7
lea eax, [ebp - 0x9c]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
call fcn.00464a70
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
jne 0x45c4be
mov eax, dword [ebp - 0x9c]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [ebp - 0x18]
push dword [eax + 4]
push dword [ebp - 0x14]
call fcn.004126e0
add esp, 0x14
test eax, eax
je 0x46037c
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
add ebx, 0x28
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov edi, dword [ebp - 0x14]
lea edx, [eax + eax*4]
mov esi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
mov eax, dword [edi + 0x70]
mov edi, dword [edi + 0x60]
movd xmm0, ebx
mov dword [ebp - 0x40], ebx
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x64], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x70], eax
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax + edx*8]
mov dword [ebp - 0x50], edx
test esi, esi
jle 0x45fa0d
cmp esi, 0x10
jb 0x45f9f5
cmp dword [0x58c34c], 2
jl 0x45f9f5
movaps xmm2, xmmword [0x5516b0]
mov eax, esi
and eax, 0x8000000f
jns 0x45f94b
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x5516c0]
lea edx, [edi + 0x20]
mov ebx, esi
sub ebx, eax
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [ecx + 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, eax
lea eax, [ecx + 0xc]
pshufd xmm0, xmm0, 0
add ecx, 0x10
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebx
jl 0x45f960
mov ebx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x50]
cmp ecx, esi
jge 0x45fa0d
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x45fa02
mov eax, dword [ebp - 0x18]
push edi
mov edi, dword [ebp - 0x5c]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x70]
mov eax, dword [edi + 0x20]
push edx
push esi
call eax
push dword [ebp - 0x3c]
mov dword [ebp - 0x24], eax
push dword [ebp - 0x14]
call fcn.00464a70
mov eax, dword [ebp - 0x24]
add esp, 0x1c
test eax, eax
jne 0x45c4be
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x64]
add esp, 4
mov byte [ecx + 2], 0
jmp 0x45d6ad
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 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 [ebp - 0x2c]
cmp byte [edx + 2], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x45fa91
push edi
call fcn.004624a0
mov esi, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov eax, dword [edx + 0x28]
xorps xmm0, xmm0
mov ebx, 0x3e00
mov esi, dword [eax]
mov ecx, dword [esi]
movups xmmword [ebp - 0x264], xmm0
mov dword [ebp - 0x264], edi
movups xmmword [ebp - 0x254], xmm0
mov ax, word [edi + 8]
and ax, bx
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0x18]
push dword [eax + 8]
lea eax, [ebp - 0x264]
push eax
push dword [edx + 0x28]
mov eax, dword [ecx + 0x2c]
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
call fcn.00464a70
mov eax, dword [ebp - 0x250]
test eax, eax
mov ecx, dword [ebp - 0x24]
cmovne ecx, eax
movzx eax, byte [ebp - 0x58]
push eax
push edi
mov dword [ebp - 0x24], ecx
call fcn.00459c20
push edi
call fcn.00462940
mov edi, dword [ebp - 0x1c]
add esp, 0x20
test eax, eax
jne 0x4603f8
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x4602bc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x70]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x45a8c0
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
call fcn.00464a70
mov eax, dword [ebp - 0x24]
add esp, 0xc
test eax, eax
jne 0x45c4be
push dword [edi + 0x28]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x45e77e
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x28]
mov esi, dword [edx + 8]
dec esi
lea esi, [esi + esi*4]
lea esi, [ebx + esi*4]
mov dword [ebp - 0x18], esi
jmp 0x45e787
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x2c]
push 1
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.00459c20
add esp, 8
test eax, eax
jne 0x45c4be
mov eax, dword [esi]
push dword [edi + 0x10]
push esi
mov eax, dword [eax + 0x4c]
call eax
push esi
push dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
call fcn.00464a70
mov ecx, dword [ebp - 0x14]
add esp, 0x10
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
and dword [ecx + 0x94], 0xfffffffe
test eax, eax
jne 0x4602bc
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4603e4
mov ebx, dword [edi]
test ebx, ebx
je 0x4603e4
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x45b360
mov eax, dword [ebp - 0x1c]
mov esi, dword [ecx + 0x60]
mov ecx, dword [ebp - 0x2c]
mov al, byte [eax + 0x4e]
mov byte [ebp - 0x35], al
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x45fc5b
nop
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x45fc50
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov al, byte [eax + 2]
mov byte [ecx + 0x4e], al
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0x35]
push edi
push dword [ebp - 0x14]
mov byte [ecx + 0x4e], al
call fcn.00464a70
mov eax, dword [ebp - 0x24]
add esp, 0x18
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
test eax, eax
jne 0x45fcb5
cmp dword [ecx + 4], eax
je 0x45fcb5
mov eax, dword [ebp - 0x114]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x24]
cmp al, 0x13
jne 0x45fcfa
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x45fcfa
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x45fce1
mov esi, dword [ebp - 0x18]
xor ecx, ecx
mov edx, dword [ebp - 0x20]
add esi, 0x14
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x14]
jmp 0x45a4e6
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 0x8e], al
jmp 0x45fd00
mov ecx, dword [ebp - 0x14]
inc dword [ecx + 0x2c]
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x4602b9
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
add esi, 0x14
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov ecx, dword [ebp - 0x18]
add esp, 8
mov esi, dword [ebp - 0x18]
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
add esi, 0x14
mov ecx, dword [ecx + edx*8 + 4]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 4], 0
jmp 0x45a4e6
push dword [ebp - 0x18]
push ecx
call fcn.00429c90
mov ecx, dword [edi + 0x10]
mov ebx, eax
mov eax, dword [ebp - 0x18]
add esp, 8
xor edi, edi
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x45fd85
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x45fd9d
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x45fd9d
push esi
call fcn.004167a0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x45fdac
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x45fdc7
add dword [esi + 0xc], 0xffffffff
jne 0x45fdc7
push esi
call fcn.0046b6e0
add esp, 4
mov esi, dword [ebp - 0x18]
mov eax, edi
mov edi, dword [ebp - 0x1c]
add esi, 0x14
mov ecx, dword [ebp - 0x14]
cdq
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x20]
mov dword [ebx], eax
jmp 0x45a4e6
mov edx, dword [ebp - 0x18]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x1c]
push eax
push edi
call fcn.0043aed0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x46038d
mov edi, dword [ebp - 0x18]
mov eax, 0x66666667
mov dword [esi], 0
mov ecx, dword [edi + 0x10]
mov dword [esi + 4], ecx
mov ecx, edi
sub ecx, dword [ebp - 0x28]
imul ecx
mov byte [esi + 0x1a], bl
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0xc], eax
add byte [edi], 2
mov byte [edi + 1], 0xf0
mov dword [edi + 0x10], esi
jmp 0x45fe47
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp - 0x2c]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x40], edi
cmp dword [esi], edi
je 0x45fe8a
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x45fe8a
mov edi, dword [ebp - 0x18]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x45fe71
mov edi, dword [ebp - 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 0x45ff08
cmp dword [esi + 0x14], 0
je 0x45fee0
push edi
call fcn.0040ad70
push eax
push 0x54cb4c
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0x14]
push dword [esi + 0x10]
add eax, 0xd8
push eax
push dword [ebp - 0x1c]
call fcn.0045a1f0
mov eax, dword [ebp - 0x24]
add esp, 0x10
test eax, eax
jne 0x45c4be
test byte [edi + 8], 0x12
je 0x45a8c0
movzx eax, byte [ebp - 0x58]
push eax
push edi
call fcn.00459c20
push edi
call fcn.00462940
mov edi, dword [ebp - 0x1c]
add esp, 0xc
test eax, eax
jne 0x4603f8
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add esi, 0x14
mov edx, dword [ebp - 0x20]
jmp 0x45a4e6
mov cl, byte [edi + 0x50]
mov ebx, dword [ebp - 0x14]
test cl, 0x81
je 0x45ffe4
test byte [ebx + 0x94], 2
jne 0x45ffe4
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x45ff72
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x45ffe4
push eax
test cl, cl
jns 0x45ff9c
mov edi, dword [edi + 0xbc]
push ebx
call fcn.00460a40
mov esi, eax
mov eax, dword [ebp - 0x1c]
push esi
push dword [eax + 0xc0]
call edi
push esi
call fcn.00405c40
add esp, 0x14
jmp 0x45ffe4
cmp dword [edi + 0xac], 1
jle 0x45ffd0
push str.____s
push edi
call fcn.00449f10
mov ecx, dword [edi + 0xbc]
mov esi, eax
push esi
push ebx
push dword [edi + 0xc0]
push 1
call ecx
push esi
push edi
call fcn.0043ae20
add esp, 0x24
jmp 0x45ffe4
mov eax, dword [edi + 0xbc]
push ebx
push dword [edi + 0xc0]
push 1
call eax
add esp, 0x10
mov edi, dword [ebp - 0x18]
mov eax, dword [edi + 4]
cmp eax, dword [0x58676c]
jl 0x460028
mov edx, 1
cmp dword [ebx + 0x88], edx
jle 0x460021
mov eax, 0x14
mov ecx, dword [ebx + 0x58]
cmp byte [eax + ecx], 0x14
jne 0x460015
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x88]
jl 0x460004
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0x14]
inc dword [edi + 4]
inc dword [ecx + 0xb8]
jmp 0x45a53f
mov ecx, dword [edx + 4]
mov dword [ebx + 0x28], ecx
mov al, byte [edx + 8]
mov byte [ebx + 0x8e], al
mov dword [ebx + 0x24], esi
test ecx, ecx
je 0x4600bc
movzx eax, word [edx + 2]
test ax, ax
je 0x46008e
push dword [eax*4 + 0x54a2c8]
push str._s_constraint_failed
push ebx
call fcn.0045a3b0
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x46009f
push eax
push dword [ebx + 0x6c]
push str._z:__s
push edi
call fcn.00449f10
add esp, 0x10
mov dword [ebx + 0x6c], eax
jmp 0x46009f
push dword [edx + 0x10]
push 0x54cb4c
push ebx
call fcn.0045a3b0
add esp, 0xc
push dword [ebx + 0x6c]
mov eax, dword [ebp - 0x18]
push dword [ebx + 0xbc]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.00411010
add esp, 0x14
push ebx
call fcn.004611f0
add esp, 4
mov dword [ebp - 0x24], eax
cmp eax, 5
jne 0x4600d5
mov dword [ebx + 0x28], eax
jmp 0x460756
cmp dword [ebx + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x460756
mov eax, 0x14
jmp 0x4602b9
push 0x13f84
call fcn.00439ab0
add esp, 4
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
jmp 0x4602bf
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
call fcn.0045a3b0
add esp, 8
mov eax, 5
mov edi, esi
jmp 0x4602b9
push str.cannot_release_savepoint___SQL_statements_in_progress
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, 5
jmp 0x4602b6
mov ecx, dword [ebp - 0x18]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
mov eax, 5
mov byte [edi + 0x47], 0
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x28], eax
jmp 0x460756
mov eax, 8
jmp 0x4602b9
cmp al, 5
jne 0x4602b9
mov ecx, dword [ebp - 0x18]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x14]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x28], eax
jmp 0x460756
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x1c]
push dword [eax + 0x6c]
push ebx
call fcn.0043ae20
push 0
push 0x1c
push ebx
call fcn.0043aed0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4601de
push 0x1c
push str.database_schema_has_changed
push esi
call fcn.00521b30
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x6c], esi
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], edi
mov edi, ebx
je 0x460205
push edx
push edi
call fcn.00450830
add esp, 8
mov eax, dword [ebp - 0x14]
or dword [eax + 0x94], 1
mov eax, 0x11
jmp 0x4602b9
mov eax, 0x204
jmp 0x4602b9
test dword [ebp - 0x144], 0x2460
jne 0x460238
cmp dword [ebp - 0x134], 0
je 0x460247
lea eax, [ebp - 0x14c]
push eax
call fcn.0046d870
add esp, 4
push 0x551524
push 0x12b64
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00411010
mov edi, dword [ebp - 0x1c]
add esp, 0x14
mov eax, 0xb
jmp 0x4602b9
mov ecx, dword [ebp - 0x14]
mov eax, 6
mov edi, edx
mov byte [ecx + 0x8e], 2
jmp 0x4602bc
mov dword [ebp - 0x24], 7
push edi
call fcn.004507c0
mov eax, dword [ebp - 0x24]
add esp, 4
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
cmp eax, 7
je 0x460393
jmp 0x4602bf
push str.too_many_levels_of_trigger_recursion
push ecx
call fcn.0045a3b0
mov eax, 1
add esp, 8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
cmp byte [edi + 0x49], 0
mov edx, 7
cmovne eax, edx
cmp dword [ecx + 0x6c], 0
mov dword [ebp - 0x24], eax
jne 0x46068e
cmp eax, 0xc0a
je 0x46068e
mov ecx, dword [ebp - 0x24]
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x460672
movzx ecx, cl
cmp ecx, 0x1b
jae 0x460677
mov ecx, dword [ecx*4 + 0x54c488]
test ecx, ecx
je 0x460677
mov eax, ecx
jmp 0x460677
push esi
call fcn.0040ad70
push eax
push 0x54cb4c
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, dword [ebp - 0x24]
add esp, 0x10
jmp 0x4602b9
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp - 0x14]
jmp 0x45c4b1
cmp al, 6
jne 0x45c4be
mov eax, dword [ebp - 0x18]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov edi, dword [ebp - 0x1c]
jmp 0x4602b9
push dword [ebp - 0x9c]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
cmp byte [edi + 0x49], 0
jne 0x4603bc
cmp byte [edi + 0x4a], 0
jne 0x4603bc
cmp dword [edi + 0xac], 0
mov byte [edi + 0x49], 1
jle 0x4603b6
mov dword [edi + 0x100], 1
inc dword [edi + 0x108]
push str.out_of_memory
push ecx
call fcn.0045a3b0
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, 7
jmp 0x4602bf
mov edi, dword [ebp - 0x1c]
mov eax, 6
jmp 0x4602b9
mov edi, dword [ebp - 0x1c]
mov eax, 6
jmp 0x4602b9
mov edi, edx
jmp 0x4603f8
mov edi, dword [ebp - 0x1c]
push str.string_or_blob_too_big
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, 0x12
jmp 0x4602b6
mov eax, dword [edi + 0x138]
test eax, eax
je 0x46043d
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp - 0x80]
jb 0x46043d
push dword [edi + 0x13c]
call eax
mov ecx, dword [ebp - 0x14]
add esp, 4
test eax, eax
je 0x46043d
mov eax, 9
jmp 0x4602bc
cmp dword [ecx + 0x44], 0
jl 0x460463
jg 0x46044b
cmp dword [ecx + 0x40], 0
jbe 0x460463
mov dword [ecx + 0x28], 0x313
mov byte [ecx + 0x8e], 2
push str.FOREIGN_KEY_constraint_failed
jmp 0x4602ab
push 1
push ecx
call fcn.0045a080
mov ecx, dword [ebp - 0x14]
xor edi, edi
mov ebx, dword [ebp - 0x18]
add esp, 8
mov edx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0x20]
add eax, 2
or eax, 1
mov dword [ecx + 0x20], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [ecx + 0x68], esi
cmp dword [ebx + 8], edi
jle 0x4604d1
nop word [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x4604bc
push esi
call fcn.00462200
add esp, 4
test eax, eax
jne 0x46038a
push esi
call fcn.004622b0
inc edi
add esp, 4
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x4604a0
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
cmp byte [edi + 0x49], 0
jne 0x460390
test byte [edi + 0x50], 4
je 0x4604fa
mov eax, dword [edi + 0xbc]
push 0
push ecx
push dword [edi + 0xc0]
push 4
call eax
add esp, 0x10
sub ebx, dword [ebp - 0x28]
mov eax, 0x66666667
imul ebx
mov ebx, dword [ebp - 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ebx + 0x24], eax
mov eax, 0x64
mov dword [ebp - 0x24], eax
jmp 0x460756
mov edx, dword [ebp - 0x18]
movzx eax, byte [edi + 0x47]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x4605f9
test ecx, ecx
je 0x460552
push 0x204
push edi
call fcn.00450f50
mov esi, dword [ebp - 0x14]
add esp, 8
mov byte [edi + 0x47], 1
jmp 0x460592
test ebx, ebx
je 0x460576
cmp dword [edi + 0xa8], 0
jle 0x460576
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, 5
jmp 0x4602b6
mov esi, dword [ebp - 0x14]
push 1
push esi
call fcn.00459e20
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x460754
mov byte [edi + 0x47], bl
push esi
call fcn.004611f0
add esp, 4
cmp eax, 5
jne 0x4605d4
mov ecx, dword [ebp - 0x18]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x28]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov al, 1
sub al, bl
mov ebx, dword [ebp - 0x14]
mov byte [edi + 0x47], al
mov eax, 5
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x28], eax
jmp 0x460756
push edi
call fcn.00438850
mov ebx, dword [ebp - 0x14]
add esp, 4
mov eax, 0x65
mov ecx, 1
cmp dword [ebx + 0x28], 0
cmovne eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x460756
test ebx, ebx
jne 0x46060b
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push dword [ebp - 0x14]
jmp 0x4602ac
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
push dword [ebp - 0x14]
jmp 0x4602ac
mov ecx, dword [ebp - 0x14]
xor eax, eax
cmp byte [edi + 0x49], al
sete al
lea eax, [eax*2 + 7]
push eax
mov dword [ebp - 0x24], eax
mov dword [ecx + 0x28], eax
call fcn.0043c860
push eax
push 0x54cb4c
push ecx
call fcn.0045a3b0
mov eax, dword [ebp - 0x24]
add esp, 0x10
mov ecx, dword [ebp - 0x14]
jmp 0x4602bf
mov ecx, ebx
jmp 0x460390
mov eax, dword [ebp - 0x24]
jmp 0x4602bc
mov edi, dword [ebp - 0x1c]
jmp 0x4602bc
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x54cb4c
push dword [ebp - 0x14]
call fcn.0045a3b0
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x28], eax
cmp eax, 0xc0a
je 0x4606bf
movzx eax, al
cmp eax, 0xe
je 0x4606a5
cmp eax, 0xa
jne 0x4606bf
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4606ba
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x4606bc
xor eax, eax
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
sub ecx, ebx
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 [ebp - 0x24]
call fcn.00411010
mov ebx, dword [ebp - 0x14]
push ebx
call fcn.004611f0
add esp, 0x18
cmp dword [ebp - 0x24], 0xc0a
jne 0x46072d
cmp byte [edi + 0x49], 0
jne 0x46072d
cmp byte [edi + 0x4a], 0
jne 0x46072d
cmp dword [edi + 0xac], 0
mov byte [edi + 0x49], 1
jle 0x460727
mov dword [edi + 0x100], 1
inc dword [edi + 0x108]
mov cl, byte [ebp - 0x65]
mov eax, 1
mov dword [ebp - 0x24], eax
test cl, cl
je 0x460756
movzx eax, cl
dec eax
push eax
push edi
call fcn.00450830
mov eax, dword [ebp - 0x24]
add esp, 8
jmp 0x460756
mov ebx, dword [ebp - 0x14]
jmp 0x460756
mov ebx, esi
mov ecx, dword [ebp - 0x20]
add dword [ebx + 0xb0], ecx
cmp dword [ebx + 0x9c], 0
je 0x460774
push ebx
call fcn.0046d7b0
mov eax, dword [ebp - 0x24]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004db63a
mov esp, ebp
pop ebp
ret