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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x4e2040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xorps xmm0, xmm0
xor ecx, ecx
mov dword [ebp - 0x13c], edi
mov dword [ebp - 0x144], ecx
mov byte [ebp - 0x169], cl
mov eax, dword [edi + 0x68]
mov ebx, eax
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x134], eax
mov eax, dword [edi]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x168], ecx
mov ecx, edi
movlpd qword [ebp - 0x40], xmm0
mov al, byte [eax + 0x54]
mov byte [ebp - 0x15c], al
mov dword [ebp - 0x140], esi
call fcn.00459d16
mov edx, dword [ebp - 0x138]
xor eax, eax
cmp dword [edx + 0x174], eax
je 0x45e446
mov ecx, dword [edx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov edx, dword [ebp - 0x138]
xor eax, eax
mov dword [ebp - 0x170], ecx
mov dword [ebp - 0x17c], eax
jmp 0x45e458
or dword [ebp - 0x17c], 0xffffffff
or eax, 0xffffffff
mov dword [ebp - 0x170], eax
xor eax, eax
cmp dword [edi + 0x24], 7
mov dword [ebp - 0x188], 0x14
je 0x464027
mov dword [edi + 0x24], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x78], eax
mov dword [edx + 0x1c8], eax
cmp dword [edx + 0x128], eax
jne 0x46400e
imul ebx, dword [edi + 0x20], 0x14
mov eax, dword [ebp - 0x134]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
add ebx, eax
add ecx, 1
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x180], ecx
push 0
pop ecx
adc edx, ecx
mov cl, byte [ebx]
mov dword [ebp - 0x184], edx
movzx edx, cl
mov byte [ebp - 0x151], cl
mov dword [ebp - 0x150], edx
cmp edx, 0xb5
ja case.0x45e4d3.89
jmp dword [edx*4 + 0x464200]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
mov word [ecx + esi + 0x10], ax
mov eax, ebx
sub eax, dword [ebp - 0x134]
cdq
idiv dword [ebp - 0x188]
cdq
mov dword [ecx + esi], eax
mov dword [ecx + esi + 4], edx
jmp case.0x45e4d3.9
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
test byte [eax + esi + 0x10], cl
je 0x45e7a5
imul ebx, dword [eax + esi], 0x14
mov eax, dword [ebp - 0x134]
add ebx, eax
jmp case.0x45e4d3.89
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
dec eax
cdq
push 4
mov dword [ecx + esi], eax
pop eax
mov word [ecx + esi + 0x10], ax
xor eax, eax
mov dword [ecx + esi + 4], edx
cmp dword [ebx + 8], eax
jne 0x463b2f
jmp 0x45e7a5
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x134]
lea ebx, [edx - 0x14]
imul eax, dword [ecx + esi], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
xor eax, eax
mov word [ecx + esi + 0x10], ax
jmp 0x45e7a5
imul esi, dword [ebx + 4], 0x28
sub ebx, eax
push 4
pop ecx
mov eax, ebx
cdq
push 0x14
pop ebx
idiv ebx
add esi, dword [ebp - 0x140]
cdq
mov word [esi + 0x10], cx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
mov dword [esi], eax
mov eax, dword [ebp - 0x134]
mov dword [esi + 4], edx
add ebx, eax
mov esi, dword [ebp - 0x140]
jmp case.0x45e4d3.89
imul eax, dword [ebx + 0xc], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 0x10], cl
je 0x45e7a5
mov esi, dword [edi + 0xd0]
test esi, esi
je 0x463b4e
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x463b4e
push dword [edi + 0x2c]
mov eax, dword [esi + 4]
push dword [edi + 0x28]
mov ecx, dword [ebp - 0x138]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
call fcn.0045c4d6
pop ecx
pop ecx
mov ecx, esi
call fcn.0045a56b
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x45e60f
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x140], esi
imul ebx, eax, 0x14
jmp 0x45e517
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x45e7a5
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x45e7a5
mov edx, ebx
mov ecx, edi
call fcn.0045e304
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x45e7a5
mov edx, ebx
mov ecx, edi
call fcn.0045e304
cmp dword [ebx + 0x10], 0
mov esi, eax
jne 0x45e694
xor ecx, ecx
mov eax, ecx
jmp 0x45e6a4
push dword [ebx + 0x10]
call fcn.004b5c60
pop ecx
and eax, 0x3fffffff
xor ecx, ecx
xor edx, edx
mov dword [ebx + 4], eax
inc edx
cmp byte [ebp - 0x15c], dl
je 0x45e723
push ecx
push edx
mov edx, dword [ebx + 0x10]
mov ecx, esi
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00458804
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x144], edi
test edi, edi
jne 0x463d4f
movzx edx, byte [ebp - 0x15c]
mov ecx, esi
call fcn.00457dea
test eax, eax
jne 0x45fd5a
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ebx + 1], 0xfa
jne 0x45e70d
push dword [ebx + 0x10]
push dword [ebp - 0x138]
call fcn.0043ef99
pop ecx
pop ecx
mov edi, dword [ebp - 0x13c]
mov byte [ebx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x138]
cmp eax, dword [ecx + 0x78]
jg 0x463d55
mov byte [ebx], 0x49
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov esi, eax
mov eax, 0x2202
mov word [esi + 0x10], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x15c]
mov dword [esi + 8], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0x12], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x463964
mov edi, dword [ebp - 0x140]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [ebp - 0x13c]
jne 0x463964
mov eax, dword [ebp - 0x140]
cmp dword [ecx + eax + 4], edx
jne 0x463964
mov eax, 0x2210
mov word [esi + 0x10], ax
mov esi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x134]
mov edx, dword [ebp - 0x184]
push 0x14
pop ecx
add ebx, ecx
mov ecx, dword [ebp - 0x180]
jmp 0x45e49c
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edi, dword [ebx + 0xc]
xor ecx, ecx
mov edx, dword [ebx + 8]
inc ecx
cmp dword [ebx + 4], 0
mov esi, 0x101
cmovne ecx, esi
and dword [eax + 0xc], 0
movzx ecx, cx
lea esi, [eax + 0x10]
sub edi, edx
mov dword [ebp - 0x14c], ecx
mov word [esi], cx
test edi, edi
jle 0x463964
xor edx, edx
mov eax, 0x9000
lea esi, [esi + 0x28]
test word [esi], ax
je 0x45e820
lea ecx, [esi - 0x10]
call fcn.0045815d
mov ecx, dword [ebp - 0x14c]
xor edx, edx
mov eax, 0x9000
dec edi
mov word [esi], cx
mov dword [esi - 4], edx
test edi, edi
jg 0x45e803
mov edi, dword [ebp - 0x13c]
jmp 0x45e79f
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xffc1
mov ax, word [ecx + esi + 0x10]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x45e566
mov edx, ebx
mov ecx, edi
call fcn.0045e304
cmp dword [ebx + 0x10], 0
mov esi, eax
mov ecx, esi
jne 0x45e87e
mov edx, dword [ebx + 4]
call fcn.004585ab
mov ecx, esi
call fcn.00457fa7
test eax, eax
jne 0x45fd60
jmp 0x45e893
xor eax, eax
push eax
push eax
mov eax, dword [ebx + 4]
cdq
push edx
mov edx, dword [ebx + 0x10]
push eax
call fcn.00458804
add esp, 0x10
mov dl, byte [ebp - 0x15c]
mov byte [esi + 0x12], dl
jmp 0x45e79f
imul ecx, dword [ebx + 4], 0x28
mov edi, dword [edi + 0x64]
add ecx, 0xffffffd8
add edi, ecx
mov ecx, edi
call fcn.004586e0
test eax, eax
jne 0x463d4f
imul esi, dword [ebx + 8], 0x28
mov eax, 0x9000
add esi, dword [ebp - 0x140]
test word [esi + 0x10], ax
je 0x45e8d8
mov ecx, esi
call fcn.0045858f
push 0x14
pop eax
push eax
push edi
push esi
call fcn.004b1c10
mov ax, word [esi + 0x10]
mov ecx, 0xafff
and ax, cx
add esp, 0xc
mov ecx, 0x2040
or ax, cx
mov word [esi + 0x10], ax
jmp 0x45e82b
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x140]
mov edx, edi
mov ecx, esi
call fcn.004587dd
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x45e93c
mov ecx, esi
call fcn.00457f61
test eax, eax
jne 0x45fd5a
add edi, 0x28
add esi, 0x28
sub dword [ebp - 0x1c], 1
jne 0x45e919
jmp 0x45e82b
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x140]
mov eax, 0x4000
mov edx, edi
push eax
mov ecx, esi
call fcn.00458724
mov eax, 0x4000
pop ecx
test word [esi + 0x10], ax
je 0x45e98d
mov ecx, esi
call fcn.00457f61
test eax, eax
jne 0x45fd5a
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x45e9ab
push 2
pop ecx
test byte [ebx + 2], cl
je 0x45e9ab
mov ecx, 0xf7ff
and eax, ecx
mov word [esi + 0x10], ax
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
dec ecx
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x463964
add esi, 0x28
add edi, 0x28
jmp 0x45e963
imul edx, dword [ebx + 4], 0x28
mov eax, 0x4000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, esi
add ecx, esi
call fcn.00458724
pop ecx
jmp 0x45e7a5
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x9000
imul eax, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [eax + esi]
test word [ecx + 0x10], di
mov eax, dword [eax + esi + 4]
mov edi, dword [ebp - 0x13c]
je 0x45ea0d
push eax
push edx
call fcn.004585d9
pop ecx
jmp 0x45e9db
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
mov word [ecx + 0x10], ax
jmp 0x45e7a5
xor edx, edx
mov ecx, edi
call fcn.0045acfc
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x45e7a5
mov edx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x134]
cmp byte [edx + 0x57], 0
je 0x46403e
push 7
jmp 0x464066
imul ecx, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
add ecx, esi
imul esi, dword [ebx + 8], 0x28
add edi, dword [ebp - 0x140]
mov dword [ebp - 0x148], ecx
movzx edx, word [ecx + 0x10]
add esi, dword [ebp - 0x140]
mov dword [ebp - 0x164], edx
mov al, byte [esi + 0x10]
or al, dl
test al, 1
je 0x45ea93
mov ecx, edi
call fcn.0045858f
jmp 0x45e82b
test dl, 0x12
jne 0x45eacc
mov dl, byte [ebp - 0x15c]
xor eax, eax
push eax
call fcn.00457ff4
pop ecx
test eax, eax
jne 0x45fd5a
mov eax, dword [ebp - 0x148]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x164], ecx
jmp 0x45eafa
bt edx, 0xa
jae 0x45eafa
call fcn.00457fa7
test eax, eax
jne 0x45fd5a
mov eax, dword [ebp - 0x148]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x164], eax
movzx eax, word [esi + 0x10]
mov dword [ebp - 0xdc], eax
test al, 0x12
jne 0x45eb1b
mov dl, byte [ebp - 0x15c]
xor eax, eax
push eax
mov ecx, esi
call fcn.00457ff4
pop ecx
jmp 0x45eb28
bt eax, 0xa
jae 0x45eb45
mov ecx, esi
call fcn.00457fa7
test eax, eax
jne 0x45fd5a
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x148]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [ebp - 0x14c], eax
cdq
mov ecx, eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x160], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x1c], edx
jg 0x463d4f
jl 0x45eb82
cmp ecx, eax
ja 0x463d4f
mov edx, dword [ebp - 0x14c]
xor eax, eax
cmp edi, esi
mov ecx, edi
sete al
add edx, 2
push eax
call fcn.00457e03
pop ecx
test eax, eax
jne 0x45fd5a
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
push 2
pop ecx
or ax, cx
mov word [edi + 0x10], ax
cmp edi, esi
je 0x45ebd8
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call fcn.004b1c10
mov eax, dword [ebp - 0xdc]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x148]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 8]
push eax
call fcn.004b1c10
mov eax, dword [ebp - 0x148]
add esp, 0xc
mov ecx, dword [ebp - 0x164]
mov dl, byte [ebp - 0x15c]
mov word [eax + 0x10], cx
xor eax, eax
mov ecx, dword [ebp - 0x160]
inc eax
cmp dl, al
jbe 0x45ec1f
mov eax, dword [ebp - 0x1c]
and ecx, 0xfffffffe
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0
mov eax, dword [edi + 8]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x10], ax
mov dword [edi + 0xc], ecx
mov byte [edi + 0x12], dl
jmp 0x45e82b
imul eax, dword [ebx + 4], 0x28
add eax, esi
mov dword [ebp - 0x150], eax
movzx edx, word [eax + 0x10]
imul eax, dword [ebx + 8], 0x28
add eax, esi
mov dword [ebp - 0x148], eax
movzx ecx, word [eax + 0x10]
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0xdc], eax
mov al, cl
and al, dl
test al, 4
jne 0x45ecb3
xor eax, eax
or cl, dl
inc eax
test al, cl
jne 0x45eef1
mov esi, dword [ebp - 0x150]
mov ecx, esi
call fcn.0045e2dc
mov edi, dword [ebp - 0x148]
mov ecx, edi
movzx ebx, ax
call fcn.0045e2dc
push 4
and al, bl
mov ebx, dword [ebp - 0x158]
pop ecx
test cl, al
je 0x45ee2b
mov eax, dword [ebp - 0x150]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x148]
mov ecx, dword [eax + 4]
mov edi, dword [eax]
movzx eax, byte [ebx]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ecx
sub eax, 0x6a
je 0x45ed6e
sub eax, 1
je 0x45ed58
sub eax, 1
je 0x45ed4c
sub eax, 1
mov eax, edx
je 0x45ed1e
or eax, esi
je 0x45eee2
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x45ed0a
xor eax, eax
mov esi, eax
lea edx, [eax + 1]
push esi
push edx
push ecx
push edi
call fcn.004be920
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
jmp 0x45edb2
or eax, esi
je 0x45eee2
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x45ed41
xor eax, eax
cmp edi, eax
jne 0x45ed41
cmp ecx, 0x80000000
je 0x45ee1f
push esi
push edx
push ecx
push edi
call fcn.004be870
jmp 0x45ed13
push esi
push edx
lea ecx, [ebp - 0x38]
call fcn.00442cdd
jmp 0x45ed62
push esi
push edx
lea ecx, [ebp - 0x38]
call fcn.00442c8f
pop ecx
pop ecx
test eax, eax
jne 0x45ee1f
jmp 0x45edb2
xor eax, eax
cmp esi, eax
jl 0x45ede1
jg 0x45ed7a
cmp edx, eax
jb 0x45ede1
cmp ecx, eax
jl 0x45eda8
jg 0x45ed84
cmp edi, eax
jbe 0x45eda8
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, edi
sbb eax, dword [ebp - 0x158]
cmp eax, esi
jg 0x45eda2
jl 0x45ee1f
cmp ecx, edx
jb 0x45ee1f
mov ecx, dword [ebp - 0x158]
add edi, edx
mov dword [ebp - 0x38], edi
adc ecx, esi
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
push 4
mov dword [edx + 4], ecx
mov ecx, 0xf244
mov dword [edx], eax
mov ax, word [edx + 0x10]
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x45e82b
cmp ecx, eax
jg 0x45eda8
jl 0x45edeb
cmp edi, eax
jae 0x45eda8
xor eax, eax
mov ecx, 0x80000000
inc eax
sub eax, edi
mov dword [ebp - 0x14c], eax
mov eax, edx
sbb ecx, dword [ebp - 0x158]
add eax, 1
mov dword [ebp - 0x1c], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jl 0x45eda2
jg 0x45ee1f
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x1c]
jbe 0x45eda2
mov edi, dword [ebp - 0x148]
mov esi, dword [ebp - 0x150]
mov ecx, esi
call fcn.0045828e
mov ecx, edi
movsd qword [ebp - 0x18], xmm0
call fcn.0045828e
movzx eax, byte [ebx]
sub eax, 0x6a
je 0x45eecf
sub eax, 1
je 0x45eec8
sub eax, 1
je 0x45eec1
sub eax, 1
je 0x45eea8
mov ecx, esi
call fcn.00458228
mov ecx, dword [ebp - 0x148]
mov esi, eax
mov edi, edx
call fcn.00458228
mov ecx, esi
mov dword [ebp - 0x14c], eax
or ecx, edi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
je 0x45eee2
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x45ee91
xor eax, eax
mov edi, eax
lea esi, [eax + 1]
push edi
push esi
push edx
push dword [ebp - 0x14c]
call fcn.004be920
mov ecx, eax
call fcn.004bec90
jmp 0x45eed4
movsd xmm1, qword [ebp - 0x18]
ucomisd xmm1, qword [0x4d8388]
lahf
test ah, 0x44
jnp 0x45eee2
divsd xmm0, xmm1
jmp 0x45eed4
mulsd xmm0, qword [ebp - 0x18]
jmp 0x45eed4
subsd xmm0, qword [ebp - 0x18]
jmp 0x45eed4
addsd xmm0, qword [ebp - 0x18]
movsd qword [ebp - 0x18], xmm0
call fcn.0044198f
test eax, eax
je 0x45ef17
mov edi, dword [ebp - 0x13c]
xor eax, eax
mov esi, dword [ebp - 0x140]
inc eax
mov edx, dword [ebp - 0xdc]
mov ecx, 0x9000
test word [edx + 0x10], cx
je 0x45ef0e
mov ecx, edx
call fcn.0045815d
jmp 0x45e7a5
mov word [edx + 0x10], ax
jmp 0x45e7a5
mov edx, dword [ebp - 0xdc]
mov ecx, 0xf248
movsd xmm0, qword [ebp - 0x18]
push 8
movsd qword [edx], xmm0
jmp 0x45edca
mov eax, dword [ebx + 4]
test eax, eax
je 0x45e7a5
imul eax, eax, 0x28
mov ecx, 0x9000
add eax, esi
test word [eax + 0x10], cx
je 0x45ef58
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x45ea05
xor edx, edx
push 4
mov dword [eax], edx
mov dword [eax + 4], edx
pop ecx
mov word [eax + 0x10], cx
jmp 0x45e7a5
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
imul esi, dword [ebx + 4], 0x28
inc edx
mov eax, dword [ebp - 0x140]
imul edi, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edi, eax
mov al, byte [ecx + 0x10]
or al, byte [esi + 0x10]
mov dword [ebp - 0xdc], edi
test dl, al
je 0x45efb6
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x45efad
mov ecx, edi
call fcn.0045815d
jmp 0x45e82b
mov word [edi + 0x10], dx
jmp 0x45e82b
call fcn.00458228
mov ecx, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
call fcn.00458228
mov cl, byte [ebx]
mov esi, eax
mov byte [ebp - 0x151], cl
cmp cl, 0x66
jne 0x45efe2
and dword [ebp - 0x30], esi
and dword [ebp - 0x2c], edx
jmp 0x45f0f4
cmp cl, 0x67
jne 0x45eff2
or dword [ebp - 0x30], esi
or dword [ebp - 0x2c], edx
jmp 0x45f0f4
mov eax, esi
or eax, edx
je 0x45f0f4
xor eax, eax
cmp edx, eax
jg 0x45f034
jl 0x45f008
cmp esi, eax
jae 0x45f029
mov al, 0xd1
sub al, cl
mov byte [ebp - 0x151], al
mov cl, al
cmp edx, 0xffffffff
jl 0x45f034
jg 0x45f020
cmp esi, 0xffffffc0
jbe 0x45f034
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x45f067
jg 0x45f034
cmp esi, 0x40
jb 0x45f067
xor edx, edx
cmp dword [ebp - 0x2c], edx
jg 0x45f04e
jl 0x45f042
cmp dword [ebp - 0x30], edx
jae 0x45f04e
cmp cl, 0x68
je 0x45f04e
or eax, 0xffffffff
or ecx, eax
jmp 0x45f05c
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
jmp 0x45f0f4
push 8
pop eax
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004b1c10
mov eax, dword [ebp - 0x50]
add esp, 0xc
cmp byte [ebp - 0x151], 0x68
mov ecx, esi
mov edx, dword [ebp - 0x4c]
jne 0x45f099
call fcn.004be9e0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jmp 0x45f0e0
call fcn.004bea00
mov edi, eax
mov eax, edx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x50], edi
cmp dword [ebp - 0x2c], eax
jg 0x45f0da
jl 0x45f0bc
cmp dword [ebp - 0x30], eax
jae 0x45f0da
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004be9e0
or eax, edi
or edx, dword [ebp - 0x14c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edi, dword [ebp - 0xdc]
push 8
pop eax
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004b1c10
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [edi], eax
mov ax, word [edi + 0x10]
mov dword [edi + 4], ecx
mov ecx, 0xf244
and ax, cx
push 4
pop ecx
or ax, cx
mov word [edi + 0x10], ax
jmp 0x45e82b
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x140]
mov ecx, esi
call fcn.00458345
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x45e79f
imul esi, dword [ebx + 4], 0x28
push 4
pop edx
add esi, dword [ebp - 0x140]
movzx eax, word [esi + 0x10]
mov ecx, eax
test dl, al
jne 0x45f188
push dword [ebp - 0x15c]
mov dl, 0x43
mov ecx, esi
call fcn.0045e1c7
movzx eax, word [esi + 0x10]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x45f188
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x463b2f
push 0x14
pop eax
mov ecx, eax
mov dword [ebp - 0x144], ecx
jmp 0x45ea37
mov eax, 0xf244
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x45e79f
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
test byte [ecx + 0x10], 0x24
je case.0x45e4d3.89
call fcn.0045836a
jmp 0x45e7a5
imul esi, dword [ebx + 4], 0x28
mov eax, 0x400
add esi, dword [ebp - 0x140]
test word [esi + 0x10], ax
je 0x45f1e3
mov ecx, esi
call fcn.00457fa7
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
push dword [ebp - 0x15c]
mov dl, byte [ebx + 8]
mov ecx, esi
call fcn.004584be
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
jmp 0x45e79f
imul edi, dword [ebx + 4], 0x28
add edi, esi
imul esi, dword [ebx + 0xc], 0x28
movzx eax, word [edi + 0x10]
add esi, dword [ebp - 0x140]
mov dword [ebp - 0x148], eax
movzx ecx, word [esi + 0x10]
mov eax, ecx
mov dword [ebp - 0x150], ecx
and eax, dword [ebp - 0x148]
test al, 4
je 0x45f299
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x45f26f
jg 0x45f249
cmp ecx, dword [edi]
jbe 0x45f264
cmp byte [edx + 0x4cd4e0], 0
jne 0x463b2f
xor eax, eax
inc eax
mov dword [ebp - 0x168], eax
jmp 0x45e82b
cmp eax, dword [edi + 4]
jg 0x45f288
jl 0x45f26f
cmp ecx, dword [edi]
jae 0x45f288
cmp byte [edx + 0x4cd4d4], 0
jne 0x463b2f
or dword [ebp - 0x168], 0xffffffff
jmp 0x45e82b
cmp byte [edx + 0x4cd4da], 0
jne 0x463b2f
xor eax, eax
jmp 0x45f259
mov edx, ecx
or edx, dword [ebp - 0x148]
test dl, 1
je 0x45f2f9
movzx edx, word [ebx + 2]
test dl, dl
jns 0x45f2ef
xor edx, edx
inc edx
test dl, al
je 0x45f2dd
test ecx, 0x100
jne 0x45f2dd
xor eax, eax
mov edx, eax
mov dword [ebp - 0x168], edx
movzx eax, byte [ebx]
test edx, edx
jne 0x45f417
mov al, byte [eax + 0x4cd4da]
jmp 0x45f41d
mov eax, ecx
not eax
and eax, edx
lea edx, [eax*2 - 1]
jmp 0x45f3fe
push 0x10
pop eax
test al, dl
jmp 0x45f250
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x45f34c
push 2
pop eax
test al, dl
je 0x45f3e9
mov al, byte [ebp - 0x148]
push 2
and al, 0x2e
pop edx
cmp al, dl
jne 0x45f32f
xor edx, edx
mov ecx, edi
call fcn.0045e118
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x150], ecx
mov al, cl
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x45f3e9
xor edx, edx
mov ecx, esi
call fcn.0045e118
jmp 0x45f3e9
cmp al, 0x42
jne 0x45f3e9
mov eax, dword [ebp - 0x148]
push 2
pop edx
test dl, al
jne 0x45f3ae
test al, 0x2c
je 0x45f3ae
mov dl, byte [ebp - 0x15c]
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.00457ff4
movzx eax, word [edi + 0x10]
pop ecx
mov ecx, eax
xor ecx, dword [ebp - 0x148]
and ecx, 0xdbf
xor ecx, eax
movzx eax, cx
mov dword [ebp - 0x148], eax
cmp edi, esi
jne 0x45f3a8
push 2
pop ecx
or eax, ecx
movzx ecx, ax
mov dword [ebp - 0x150], ecx
jmp 0x45f3ae
mov ecx, dword [ebp - 0x150]
push 2
pop eax
test al, cl
jne 0x45f3e9
test cl, 0x2c
je 0x45f3e9
mov dl, byte [ebp - 0x15c]
xor eax, eax
inc eax
mov ecx, esi
push eax
call fcn.00457ff4
movzx eax, word [esi + 0x10]
pop ecx
mov ecx, eax
xor ecx, dword [ebp - 0x150]
and ecx, 0xdbf
xor ecx, eax
movzx edx, cx
mov dword [ebp - 0x150], edx
push dword [ebx + 0x10]
mov edx, edi
mov ecx, esi
call fcn.0045b92a
pop ecx
mov ecx, dword [ebp - 0x150]
mov edx, eax
mov dword [ebp - 0x168], edx
test edx, edx
jns 0x45f2c7
movzx eax, byte [ebx]
mov al, byte [eax + 0x4cd4d4]
jmp 0x45f41d
mov al, byte [eax + 0x4cd4e0]
mov word [esi + 0x10], cx
mov ecx, dword [ebp - 0x148]
mov word [edi + 0x10], cx
test al, al
jne 0x463b2f
jmp 0x45e82b
cmp dword [ebp - 0x168], 0
je 0x463b2f
jmp case.0x45e4d3.89
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x45f458
xor eax, eax
mov edi, eax
jmp 0x45f460
mov edi, dword [ebx - 4]
push 4
pop eax
add edi, eax
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x164], edx
mov edx, dword [ebx + 8]
mov dword [ebp - 0x14c], edx
xor edx, edx
mov dword [ebp - 0x174], ecx
mov esi, edx
mov dword [ebp - 0x1c], eax
test ecx, ecx
jle 0x45e82b
lea edx, [eax + 0x14]
mov dword [ebp - 0xdc], edx
test edi, edi
je 0x45f49f
mov ecx, dword [edi + esi*4]
jmp 0x45f4a1
mov ecx, esi
mov eax, dword [eax + 0x10]
xor edx, edx
inc edx
movzx eax, byte [eax + esi]
and eax, edx
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x14c]
add eax, ecx
push dword [edx]
imul eax, eax, 0x28
add eax, dword [ebp - 0x140]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x164]
mov edx, dword [ebp - 0x160]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x140]
mov ecx, eax
mov dword [ebp - 0x148], eax
call fcn.0045b92a
mov edx, eax
mov dword [ebp - 0x168], edx
pop ecx
test edx, edx
jne 0x45f521
push 4
pop eax
add dword [ebp - 0xdc], eax
inc esi
mov eax, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x174]
jl 0x45f496
jmp 0x45e82b
mov eax, dword [ebp - 0x1c]
push 2
pop ecx
mov eax, dword [eax + 0x10]
test byte [esi + eax], cl
je 0x45f550
mov eax, dword [ebp - 0x148]
xor ecx, ecx
inc ecx
test byte [eax + 0x10], cl
jne 0x45f548
mov eax, dword [ebp - 0x160]
test byte [eax + 0x10], cl
je 0x45f550
neg edx
mov dword [ebp - 0x168], edx
cmp dword [ebp - 0x150], 0
mov esi, dword [ebp - 0x140]
je 0x45f567
neg edx
mov dword [ebp - 0x168], edx
mov edi, dword [ebp - 0x13c]
jmp 0x45e7a5
mov edx, dword [ebp - 0x168]
test edx, edx
jns 0x45f582
imul ebx, dword [ebx + 4], 0x14
jmp 0x45f58e
jne 0x45f58a
imul ebx, dword [ebx + 8], 0x14
jmp 0x45f58e
imul ebx, dword [ebx + 0xc], 0x14
add ebx, eax
add ebx, 0xffffffec
jmp case.0x45e4d3.89
imul ecx, dword [ebx + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, esi
call fcn.004582b5
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
mov edi, dword [ebp - 0x140]
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.004582b5
imul ecx, esi, 3
cmp byte [ebx], 0x2c
jne 0x45f5d1
mov al, byte [ecx + eax + 0x4cb794]
jmp 0x45f5d8
mov al, byte [ecx + eax + 0x4d017c]
imul esi, dword [ebx + 0xc], 0x28
push 2
pop edx
add esi, edi
movzx ecx, word [esi + 0x10]
cmp al, dl
jne 0x45f5f5
mov eax, 0xf241
and ecx, eax
xor eax, eax
inc eax
jmp 0x45f608
movzx eax, al
cdq
mov dword [esi], eax
mov eax, 0xf244
push 4
and ecx, eax
mov dword [esi + 4], edx
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x45e82b
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.004582b5
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x9000
xor eax, dword [ebx + 0x10]
cdq
add ecx, esi
test word [ecx + 0x10], di
mov edi, dword [ebp - 0x13c]
je 0x45f643
push edx
push eax
jmp 0x45ea05
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x45ea12
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
inc edx
add ecx, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x140]
test byte [ecx + 0x10], dl
jne 0x45f69d
xor edx, edx
call fcn.004582b5
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x45f68e
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.004585d9
pop ecx
pop ecx
jmp 0x45e79f
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x45e79b
mov ecx, 0x9000
test word [esi + 0x10], cx
je 0x45f6b4
mov ecx, esi
call fcn.0045815d
jmp 0x45e79f
mov word [esi + 0x10], dx
jmp 0x45e59e
imul edi, dword [ebx + 4], 0x28
mov eax, 0x9000
add edi, esi
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x140]
test word [esi + 0x10], ax
je 0x45f6e4
mov ecx, esi
call fcn.0045815d
xor edx, edx
inc edx
jmp 0x45f6eb
xor edx, edx
inc edx
mov word [esi + 0x10], dx
test byte [edi + 0x10], dl
jne 0x463964
push 4
pop eax
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.00458228
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x45e82b
mov edi, dword [edi + 0xd0]
mov ecx, dword [ebp - 0x13c]
test edi, edi
je 0x45f757
mov eax, ebx
mov edi, dword [edi + 0x18]
sub eax, dword [ecx + 0x68]
push 0x14
cdq
pop ecx
idiv ecx
xor edx, edx
mov ecx, eax
inc edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl edx, cl
movzx eax, byte [esi + edi]
test eax, edx
jne 0x463b2f
bts eax, ecx
mov byte [esi + edi], al
mov esi, dword [ebp - 0x140]
jmp 0x45f766
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x463b2f
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x45f567
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, esi
call fcn.004582b5
test eax, eax
jmp 0x45e541
xor edx, edx
xor eax, eax
cmp dword [ebx + 0xc], eax
sete dl
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
call fcn.004582b5
test eax, eax
je 0x463b2f
jmp 0x45e7a5
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 0x10], cl
jmp 0x45e541
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x45f800
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x45f7fb
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x45f7f2
xor ecx, ecx
inc ecx
push 4
test cl, al
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x45f81a
movzx eax, byte [eax + 0x4d0168]
jmp 0x45f81d
mov ecx, dword [ebx + 0x10]
jmp 0x45f813
imul eax, dword [ebx + 0xc], 0x28
movzx eax, word [eax + esi + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x4d0260]
xor eax, eax
dec ecx
inc eax
shl ax, cl
movzx eax, ax
test word [ebx + 2], ax
jmp 0x45e541
imul eax, dword [ebx + 4], 0x28
xor edx, edx
inc edx
test byte [eax + esi + 0x10], dl
jne 0x45f851
imul eax, dword [ebx + 0xc], 0x28
test byte [eax + esi + 0x10], dl
jne 0x45f851
imul ecx, dword [ebx + 8], 0x28
xor eax, eax
push eax
push eax
add ecx, esi
call fcn.004585fb
jmp 0x45ea0a
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x9000
add eax, esi
test word [eax + 0x10], cx
je 0x45f869
mov ecx, eax
jmp 0x45ef04
mov word [eax + 0x10], dx
jmp 0x45e7a5
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
inc ecx
test byte [eax + esi + 0x10], cl
jmp 0x45f7a6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x45e7a5
cmp byte [eax + 2], 0
je 0x45e7a5
imul ecx, dword [ebx + 0xc], 0x28
add ecx, esi
call fcn.0045858f
jmp 0x463b2f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x150], ecx
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x148], edx
cmp eax, dword [edi + 0x1c]
je 0x45f930
cmp byte [esi + 2], 0
jne 0x45f999
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x45f90c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x45f95e
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x45f95e
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x150], ecx
mov edi, dword [ebp - 0x13c]
jmp 0x45f8c2
cmp byte [edi], 0
je 0x45f975
mov ecx, esi
call fcn.0045b2fe
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov ecx, dword [ebp - 0x150]
jmp 0x45f904
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x45fb3c
mov ecx, esi
call fcn.0045b2fe
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov ecx, dword [ebp - 0x150]
jmp 0x45f8c2
mov ecx, esi
call fcn.0045b2be
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov ecx, edi
call fcn.0045124d
lea edx, [esi + 0x54]
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.004516cb
mov edx, dword [ebp - 0x148]
mov ecx, eax
mov edi, dword [ebp - 0x13c]
jmp 0x45f9c2
cmp byte [esi], 3
jne 0x45fb26
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x45fb26
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x140]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1c]
lea edi, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [edx], eax
mov dword [ebp - 0xdc], edi
cmp eax, 0x80
jae 0x45f9e5
xor eax, eax
inc eax
jmp 0x45f9f6
mov ecx, dword [esi + 0x4c]
call fcn.00442a48
mov edx, dword [ebp - 0x148]
movzx eax, al
mov dword [edi], eax
xor eax, eax
lea edi, [esi + 0x3e]
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x45fb1e
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x45fc49
cmp eax, dword [esi + 0x50]
ja 0x45fc49
mov ecx, dword [ebp - 0x150]
movzx eax, word [edi]
cmp eax, ecx
ja 0x45fcad
lea ecx, [esi + 0x34]
mov eax, dword [ecx]
mov dword [ebp - 0xdc], ecx
cmp eax, dword [edx]
jae 0x45fc67
mov edx, dword [esi + 0x4c]
mov dword [ebp - 0x160], edx
test edx, edx
jne 0x45faa8
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.004b21c0
mov ecx, dword [esi + 0x2c]
lea eax, [ebp - 0x130]
add esp, 0xc
push eax
mov eax, dword [ebp - 0x148]
mov edx, dword [eax]
call fcn.00458a81
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x160], edx
movzx ebx, word [edi]
mov eax, dword [ebp - 0x148]
mov edi, dword [ecx]
add edi, edx
mov eax, dword [eax + ebx*4]
mov dword [ebp - 0x164], eax
xor eax, eax
mov ecx, dword [ebp - 0x164]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x148]
mov eax, dword [eax]
add eax, edx
lea edx, [esi + 0x58]
mov esi, dword [ebp - 0x174]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0xdc], edx
movzx eax, byte [edi]
mov dword [ebp - 0xe0], eax
mov dword [edx], eax
mov eax, dword [ebp - 0xe0]
cmp eax, 0x80
jae 0x45fb44
movzx eax, al
inc edi
movzx eax, byte [eax + 0x4cceb8]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0xdc]
jmp 0x45fb8c
mov edx, dword [esi + 0x4c]
jmp 0x45fa9c
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x140]
add ecx, esi
call fcn.0045858f
jmp 0x45e7a5
lea edi, [esi + 0x3e]
jmp 0x45fa2f
lea edx, [ebp - 0xe0]
mov ecx, edi
call fcn.00442a48
mov edx, dword [ebp - 0xdc]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0xe0]
mov dword [edx], eax
mov eax, dword [ebp - 0xe0]
cmp eax, 0x80
jb 0x45fb78
add eax, 0xfffffff4
shr eax, 1
jmp 0x45fb7f
movzx eax, byte [eax + 0x4cceb8]
mov ecx, dword [ebp - 0x164]
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [ebp - 0x164], ecx
mov eax, dword [ebp - 0x148]
inc ebx
mov dword [ebp - 0xdc], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [ebp - 0x150]
ja 0x45fbbb
cmp edi, dword [ebp - 0x14c]
jb 0x45faee
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0xdc], ebx
mov ebx, dword [ebp - 0x158]
mov dword [ebp - 0x174], esi
mov esi, dword [ebp - 0x1c]
cmp edi, edx
jb 0x45fc18
ja 0x45fc29
cmp ecx, dword [esi + 0x50]
jne 0x45fc29
xor ecx, ecx
cmp dword [ebp - 0x174], ecx
jne 0x45fc29
mov eax, dword [ebp - 0xdc]
sub edi, dword [ebp - 0x160]
mov word [esi + 0x3e], ax
xor eax, eax
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], eax
jne 0x45fc10
lea ecx, [ebp - 0x130]
call fcn.004581b7
mov ecx, dword [ebp - 0xe0]
jmp 0x45fc71
mov eax, dword [ebp - 0x174]
test eax, eax
jb 0x45fbeb
ja 0x45fc29
cmp ecx, dword [esi + 0x50]
jbe 0x45fbeb
mov ecx, dword [ebp - 0x148]
xor eax, eax
cmp dword [ecx], eax
jne 0x45fc39
mov edi, edx
jmp 0x45fbf1
cmp dword [esi + 0x4c], eax
jne 0x45fc49
lea ecx, [ebp - 0x130]
call fcn.004581b7
mov esi, dword [ebp - 0x134]
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x463c1f
imul ebx, eax, 0x14
add esi, 0xffffffec
add ebx, esi
jmp 0x45e82b
xor eax, eax
mov ecx, eax
mov dword [ebp - 0xe0], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [ebp - 0x150]
ja 0x45fcb7
imul ecx, dword [ebx + 0xc], 0x28
mov esi, dword [ebp - 0x140]
add ecx, esi
cmp byte [ebx + 1], 0xf6
jne 0x45fca3
mov edx, dword [ebx + 0x10]
mov eax, 0x2000
push eax
call fcn.00458724
pop ecx
jmp 0x45f567
call fcn.0045858f
jmp 0x45f567
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0xe0], ecx
imul edi, dword [ebx + 0xc], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x140]
test word [edi + 0x10], ax
je 0x45fcd9
mov ecx, edi
call fcn.0045858f
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x150]
mov edx, dword [ebp - 0x148]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [ebp - 0x1c]
jb 0x45fdbe
mov eax, dword [esi + 0x4c]
mov esi, dword [ebp - 0x150]
add eax, dword [edx + esi*4]
mov dword [ebp - 0x14c], eax
cmp ecx, 0xc
jae 0x45fd1c
mov edx, ecx
mov ecx, eax
push edi
call fcn.0045b45e
pop ecx
jmp 0x45e82b
mov al, byte [ebp - 0x15c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x45fd7f
mov eax, dword [ebp - 0x138]
cmp esi, dword [eax + 0x78]
jg 0x463d4f
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 0x10], ax
xor eax, eax
push eax
call fcn.00457e03
pop ecx
test eax, eax
je 0x45fd85
mov edi, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
call fcn.0043f47b
push str.out_of_memory
push edi
call fcn.0045903c
pop ecx
pop ecx
push 7
jmp 0x463d64
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [ebp - 0x14c]
push dword [edi + 8]
call fcn.004b1c10
mov eax, dword [edi + 8]
xor edx, edx
xor ecx, ecx
add esp, 0xc
inc ecx
mov byte [esi + eax], dl
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], dl
mov eax, dword [ebp - 0xe0]
and eax, ecx
mov ax, word [eax*2 + 0x4cc31c]
jmp 0x45f111
mov al, byte [ebp - 0x15c]
mov byte [edi + 0x12], al
movzx eax, word [ebx + 2]
mov edx, dword [ebp - 0xe0]
test al, 0xc0
je 0x45fde5
cmp edx, 0xc
jb 0x45fde1
xor ecx, ecx
inc ecx
test cl, dl
je 0x45fdf6
test al, al
js 0x45fdf6
mov ecx, edx
call fcn.0045b34c
test eax, eax
jne 0x45fe00
mov edx, dword [ebp - 0xe0]
mov ecx, 0x4cc8a8
jmp 0x45fd10
mov ecx, dword [ebp - 0x138]
cmp eax, dword [ecx + 0x78]
jg 0x463d4f
mov ecx, dword [ebp - 0x150]
push edi
push eax
mov eax, dword [ebp - 0x148]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.004589f5
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edi + 8]
push edi
call fcn.0045b45e
pop ecx
mov ecx, 0xbfff
and word [edi + 0x10], cx
jmp 0x45e82b
imul edi, dword [ebx + 4], 0x28
xor edx, edx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x14c], eax
mov ecx, dword [eax + 4]
add edi, esi
mov esi, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x148], esi
cmp dx, word [eax + 0x22]
jge 0x45e82b
add ecx, 8
mov dword [ebp - 0x1c], ecx
movzx eax, word [ecx + 6]
test al, 0x60
je 0x45fea2
test al, 0x20
jne 0x45ff74
xor eax, eax
cmp dword [ebx + 0xc], eax
jne 0x45ff71
mov dl, byte [ecx]
mov ecx, edi
push dword [ebp - 0x15c]
call fcn.0045e1c7
xor eax, eax
pop ecx
movzx ecx, word [edi + 0x10]
inc eax
mov dword [ebp - 0x160], ecx
movzx edx, cx
test al, cl
jne 0x45ff6e
mov esi, dword [ebp - 0x1c]
mov esi, dword [esi - 4]
shr esi, 4
and esi, 0xf
lea eax, [esi - 1]
sub eax, 1
je 0x45ff5d
sub eax, 1
je 0x45ff59
sub eax, 1
je 0x45ff59
sub eax, 1
je 0x45fef6
sub eax, 1
jne 0x45ff68
push 2
jmp 0x45ff5f
push 4
pop eax
test al, cl
je 0x45ff54
mov edx, dword [edi]
xor eax, eax
add edx, eax
mov eax, dword [edi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x45ff26
jb 0x45ff19
cmp edx, 0xffffffff
ja 0x45ff26
push 0x10
pop eax
or ecx, 0x20
mov esi, eax
movzx eax, cx
jmp 0x45ff47
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.004bec90
push 0x10
pop eax
mov esi, eax
movsd qword [edi], xmm0
mov eax, dword [ebp - 0x160]
push 8
pop ecx
or eax, ecx
movzx eax, ax
mov edx, edi
and eax, 0xfffb
mov word [esi + edx], ax
jmp 0x45ff68
test cl, 0x28
jmp 0x45ff62
push 4
jmp 0x45ff5f
push 0x10
pop eax
test al, cl
je 0x463c42
mov esi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x1c]
add edi, 0x28
push 0x10
pop eax
add ecx, eax
inc esi
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x148], esi
mov dword [ebp - 0x1c], ecx
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x45fe87
jmp 0x45e82b
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
add esi, dword [ebp - 0x140]
mov al, byte [edi]
push dword [ebp - 0x15c]
mov dl, al
mov ecx, esi
call fcn.0045e1c7
cmp byte [edi], 0x45
pop ecx
jne 0x46001c
movzx ecx, word [esi + 0x10]
push 4
pop eax
mov dword [ebp - 0x14c], ecx
test al, cl
je 0x46001c
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x45fffa
jb 0x45ffeb
cmp edx, 0xffffffff
ja 0x45fffa
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x46001c
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004bec90
mov eax, dword [ebp - 0x14c]
push 8
and eax, 0xfffb
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 0x10], ax
inc edi
mov al, byte [edi]
test al, al
je 0x463964
add esi, 0x28
jmp 0x45ffa9
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov edi, dword [ebx + 0x10]
mov esi, eax
imul eax, dword [ebx + 8], 0x28
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov dword [ebp - 0x148], esi
add ecx, dword [ebp - 0x140]
movlpd qword [ebp - 0x178], xmm0
add eax, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x160], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x140]
mov dword [ebp - 0x164], eax
test edi, edi
je 0x4600bc
push 4
lea esi, [ecx + 0x10]
pop ebx
push dword [ebp - 0x15c]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.0045e1c7
cmp byte [edi], 0x45
pop ecx
jne 0x4600a7
movzx eax, word [esi]
test bl, al
je 0x4600a7
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x46007f
mov ebx, dword [ebp - 0x158]
mov esi, dword [ebp - 0x148]
mov edx, dword [ebp - 0x174]
mov edi, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x14]
add edi, 0xfffffff4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xdc], edx
mov edx, dword [ebp - 0x178]
mov dword [ebp - 0x158], ecx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x174], edx
movzx edx, word [edi - 0xc]
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x14], edx
test dl, 1
je 0x460124
inc esi
mov eax, 0x400
mov dword [ebp - 0x148], esi
and edx, eax
movzx esi, dx
neg esi
sbb esi, esi
and esi, 0xa
mov edx, dword [ebp - 0x148]
jmp 0x460350
test dl, 0x24
je 0x46028f
mov eax, dword [edi - 0x18]
xor ecx, ecx
mov esi, dword [edi - 0x1c]
cmp eax, ecx
jg 0x460147
jl 0x46013f
cmp esi, ecx
jae 0x460147
mov ecx, esi
not eax
not ecx
jmp 0x460149
mov ecx, esi
inc dword [ebp - 0x148]
test eax, eax
ja 0x46020e
jb 0x46015e
cmp ecx, 0x7f
ja 0x4601a0
xor edx, edx
mov eax, esi
inc edx
and eax, edx
cmp eax, esi
jne 0x460184
xor eax, eax
cmp eax, dword [edi - 0x18]
jne 0x460184
mov eax, dword [ebp - 0x13c]
cmp byte [eax + 0x93], 4
jb 0x460184
lea esi, [ecx + 8]
jmp 0x460195
add dword [ebp - 0x150], edx
mov esi, edx
push 0
pop ecx
adc dword [ebp - 0x158], ecx
mov ecx, dword [ebp - 0x158]
jmp 0x460119
test eax, eax
ja 0x46020e
jb 0x4601ae
cmp ecx, 0x7fff
ja 0x4601cf
push 2
mov ecx, dword [ebp - 0x158]
pop edx
add dword [ebp - 0x150], edx
mov esi, edx
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x158], ecx
jmp 0x460119
test eax, eax
ja 0x46020e
jb 0x4601dd
cmp ecx, 0x7fffff
ja 0x4601fc
add dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x158]
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x158], ecx
push 3
jmp 0x460289
test eax, eax
ja 0x46020e
jb 0x46020a
cmp ecx, 0x7fffffff
ja 0x46020e
push 4
jmp 0x4601b0
cmp eax, 0x7fff
ja 0x46023e
jb 0x46021c
cmp ecx, 0xffffffff
ja 0x46023e
add dword [ebp - 0x150], 6
mov ecx, dword [ebp - 0x158]
push 0
pop eax
adc ecx, eax
push 5
pop eax
mov dword [ebp - 0x158], ecx
mov esi, eax
jmp 0x460119
mov ecx, dword [ebp - 0x158]
push 8
pop eax
add dword [ebp - 0x150], eax
push 0
pop eax
adc ecx, eax
mov dword [ebp - 0x158], ecx
test dl, 0x20
je 0x460287
mov edx, dword [edi - 0x18]
mov ecx, esi
call fcn.004bec90
mov eax, dword [ebp - 0x14]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edi - 0x1c], xmm0
or eax, ecx
mov ecx, dword [ebp - 0x158]
mov word [edi - 0xc], ax
push 7
jmp 0x460289
push 6
pop esi
jmp 0x460119
test dl, 8
je 0x4602b7
mov edx, dword [ebp - 0x148]
inc edx
add eax, 8
push 0
mov dword [ebp - 0x150], eax
pop eax
adc ecx, eax
push 7
mov dword [ebp - 0x158], ecx
pop esi
jmp 0x46034a
mov ecx, dword [edi - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
mov dword [ebp - 0x14], ecx
bt edx, 0xa
lea esi, [ecx + 6]
lea esi, [eax + esi*2]
jae 0x46030b
mov edx, dword [edi - 0x1c]
mov eax, dword [ebp - 0x150]
or eax, dword [ebp - 0x158]
lea esi, [esi + edx*2]
je 0x4602fc
lea ecx, [edi - 0x1c]
call fcn.00457fa7
test eax, eax
jne 0x45fd5a
mov ecx, dword [ebp - 0x14]
add ecx, dword [edi - 0x1c]
jmp 0x46030b
mov eax, edx
cdq
add dword [ebp - 0x174], eax
adc dword [ebp - 0xdc], edx
add dword [ebp - 0x150], ecx
push 0
pop eax
adc dword [ebp - 0x158], eax
mov edx, eax
xor ecx, ecx
lea edi, [ecx + 1]
mov ecx, esi
shr ecx, 7
jmp 0x460330
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x460328
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x158]
add edx, edi
mov edi, dword [ebp - 0x14c]
mov dword [ebp - 0x148], edx
mov eax, edi
mov dword [eax], esi
lea eax, [edi - 0x1c]
cmp eax, dword [ebp - 0x1c]
je 0x460370
mov eax, dword [ebp - 0x150]
sub edi, 0x28
mov esi, dword [ebp - 0x148]
jmp 0x4600ef
cmp edx, 0x7e
jle 0x4603a4
mov eax, edx
cdq
push edx
push eax
call fcn.00442aae
mov esi, eax
mov eax, dword [ebp - 0x148]
add eax, esi
mov dword [ebp - 0x148], eax
cdq
push edx
push eax
call fcn.00442aae
mov edx, dword [ebp - 0x148]
add esp, 0x10
cmp esi, eax
jge 0x4603ab
inc edx
mov dword [ebp - 0x148], edx
mov eax, edx
cdq
mov edi, eax
mov ecx, edx
add edi, dword [ebp - 0x150]
mov eax, dword [ebp - 0x164]
mov esi, edi
adc ecx, dword [ebp - 0x158]
add esi, dword [ebp - 0x174]
mov eax, dword [eax + 0x18]
adc ecx, dword [ebp - 0xdc]
cdq
cmp ecx, edx
jg 0x4603ee
jl 0x4603e0
cmp esi, eax
ja 0x4603ee
mov ecx, dword [ebp - 0x164]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x460425
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x463d4f
jl 0x46040a
cmp esi, eax
ja 0x463d4f
mov ecx, dword [ebp - 0x164]
mov edx, edi
call fcn.00457eff
test eax, eax
jne 0x45fd5a
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x174]
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [ebp - 0xdc]
mov dword [ecx + 0xc], edi
je 0x46044a
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x148]
mov esi, dword [ecx + 8]
lea ecx, [esi + eax]
mov dword [ebp - 0x148], ecx
cmp eax, 0x80
jge 0x460468
mov byte [esi], al
inc esi
jmp 0x46047c
cdq
mov ecx, esi
push edx
push eax
call fcn.0044286f
pop ecx
pop ecx
mov ecx, dword [ebp - 0x148]
add esi, eax
mov edi, dword [ebp - 0x1c]
add edi, 0xc
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x14c], edi
mov dword [ebp - 0x14], eax
cmp eax, 7
ja 0x460524
mov byte [esi], al
inc esi
test eax, eax
je 0x46057d
lea edx, [edi - 0xc]
cmp eax, 7
jne 0x4604c9
push 8
pop eax
push eax
push edx
lea eax, [ebp - 0x70]
push eax
call fcn.004b1c10
mov eax, dword [ebp - 0x70]
add esp, 0xc
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x1c], eax
jmp 0x4604da
mov eax, dword [edx]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + 0x4cceb8]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edx
sub edx, 1
mov byte [edx + ecx], al
je 0x46051f
mov edi, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x6c]
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], eax
mov byte [edx + edi], cl
jne 0x4604f8
mov edi, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
add ecx, dword [ebp - 0x14]
jmp 0x46054e
cmp eax, 0x80
jae 0x460556
mov byte [esi], al
inc esi
cmp eax, 0xe
jb 0x46057d
cmp dword [edi], 0
jle 0x46057d
push dword [edi]
push dword [edi - 4]
push ecx
call fcn.004b1c10
mov ecx, dword [ebp - 0x148]
add esp, 0xc
add ecx, dword [edi]
mov dword [ebp - 0x148], ecx
jmp 0x46057d
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.0044286f
pop ecx
add esi, eax
cmp dword [edi], 0
pop ecx
je 0x460577
push dword [edi]
push dword [edi - 4]
push dword [ebp - 0x148]
jmp 0x46053e
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x160]
add eax, 0xffffffe4
cmp edi, eax
je 0x463964
add edi, 0x28
jmp 0x460482
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x4605b8
mov ecx, edx
call fcn.00451ee4
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x4605e0
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x80]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x80], xmm0
call fcn.004564d2
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x46267f
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x150], eax
test eax, eax
jne 0x4606df
mov eax, dword [ebp - 0x138]
xor ecx, ecx
cmp dword [eax + 0xc4], ecx
jg 0x463c8e
mov ecx, edi
call fcn.004419e6
mov esi, eax
xor edx, edx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x14], esi
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.00493fae
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
push ecx
mov ecx, dword [ebp - 0x138]
lea eax, [esi + 0x21]
push eax
call fcn.0043f1a0
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x460a0b
mov ecx, dword [ebp - 0x14]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call fcn.004b1c10
mov edx, dword [ebp - 0x138]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x4606a1
xor eax, eax
mov byte [edx + 0x55], al
inc eax
mov byte [edx + 0x5d], al
jmp 0x4606a7
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x460a0b
xor eax, eax
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x138]
mov esi, dword [eax + 0x1ec]
jmp 0x46070b
mov ecx, dword [esi]
mov edx, edi
call fcn.00441c65
test eax, eax
je 0x46072e
inc dword [ebp - 0x148]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x4606f5
push edi
mov edi, dword [ebp - 0x13c]
push str.no_such_savepoint:__s
push edi
call fcn.0045903c
add esp, 0xc
xor eax, eax
lea ecx, [eax + 1]
jmp 0x45f17d
mov edi, dword [ebp - 0x138]
xor ecx, ecx
mov edx, dword [ebp - 0x150]
xor eax, eax
inc ecx
cmp dword [edi + 0xc4], eax
jle 0x46074f
cmp edx, ecx
je 0x463ca8
cmp dword [esi + 0x18], eax
jne 0x4607cb
cmp byte [edi + 0x5d], al
je 0x4607cb
mov dword [ebp - 0x174], ecx
cmp edx, ecx
jne 0x4607dd
mov edi, dword [ebp - 0x13c]
mov edx, ecx
mov ecx, edi
call fcn.0045acfc
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x46413f
mov eax, dword [ebp - 0x138]
inc ecx
mov byte [eax + 0x55], cl
mov ecx, edi
call fcn.0045ad6a
push 5
pop ecx
cmp eax, ecx
je 0x463caf
mov ecx, dword [edi + 0x24]
xor edx, edx
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x4607b8
mov byte [eax + 0x55], dl
jmp 0x4607bb
mov byte [eax + 0x5d], dl
xor eax, eax
lea edi, [eax + 1]
mov dword [ebp - 0x174], edi
jmp 0x46092e
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x148], eax
mov eax, dword [edi + 0x1f8]
sub eax, dword [ebp - 0x148]
push 2
dec eax
pop ecx
mov dword [ebp - 0x148], eax
cmp edx, ecx
jne 0x460870
mov eax, dword [edi + 0x18]
xor ecx, ecx
inc ecx
and eax, ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14c], ecx
cmp dword [edi + 0x14], ecx
jle 0x46087d
xor edx, edx
mov edi, ecx
inc edx
xor eax, edx
mov dword [ebp - 0x14], eax
push eax
mov eax, dword [ebp - 0x138]
mov edx, 0x204
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.00450f10
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x14c]
push 0x10
pop edx
add edi, edx
inc eax
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x14c], eax
cmp eax, dword [edx + 0x14]
mov eax, dword [ebp - 0x14]
jl 0x460819
mov edx, dword [ebp - 0x150]
mov edi, dword [ebp - 0x138]
jmp 0x460883
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x144]
jmp 0x460889
mov ecx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x148]
and dword [ebp - 0x14c], 0
cmp dword [edi + 0x14], 0
jle 0x4608ed
xor ecx, ecx
mov edi, ecx
push eax
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0045105a
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x14c]
push 0x10
pop edx
add edi, edx
inc eax
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x14c], eax
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x148]
jl 0x46089a
mov edi, dword [ebp - 0x138]
cmp dword [ebp - 0x1c], 0
je 0x460928
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x460915
xor edx, edx
inc edx
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4608fd
mov ecx, edi
call fcn.004745f2
mov ecx, dword [ebp - 0x144]
xor eax, eax
inc eax
or dword [edi + 0x18], eax
mov edi, dword [ebp - 0x174]
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax + 0x1ec]
cmp ecx, esi
je 0x460970
mov edi, eax
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1ec], eax
call fcn.0043eeff
dec dword [edi + 0x1f8]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x460948
mov edi, dword [ebp - 0x174]
xor eax, eax
inc eax
cmp dword [ebp - 0x150], eax
jne 0x4609ab
mov ecx, dword [ebp - 0x138]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.0043eeff
test edi, edi
jne 0x460a0b
mov ecx, dword [ebp - 0x138]
mov eax, ecx
mov edx, dword [ebp - 0x150]
dec dword [ecx + 0x1f8]
jmp 0x4609ec
mov edx, dword [ebp - 0x138]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov eax, edx
mov dword [eax + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, edx
mov dword [esi + 0x208], eax
mov eax, edx
mov edx, dword [ebp - 0x150]
mov dword [eax + 0x20c], ecx
test edi, edi
je 0x4609ec
push 2
pop ecx
cmp edx, ecx
jne 0x460a0b
mov ecx, dword [ebp - 0x148]
push ecx
mov ecx, eax
call fcn.00493fae
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov edi, dword [ebp - 0x13c]
cmp byte [edi + 0x95], 3
jne 0x45e79f
mov dword [ebp - 0x144], 0x65
jmp 0x46413f
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebx + 8], eax
je 0x460a57
mov eax, dword [ebp - 0x138]
mov esi, 0x100000
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
and ecx, 2
mov eax, edx
and eax, esi
or eax, ecx
jne 0x463cdc
mov eax, dword [ebp - 0x138]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [eax + 0x10]
mov edi, dword [esi + 4]
test edi, edi
je 0x460b40
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.00450398
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d05
mov ecx, dword [ebp - 0x13c]
test byte [ecx + 0x98], 0x20
je 0x460b4e
cmp dword [ebx + 8], eax
je 0x460b4e
mov edx, dword [ebp - 0x138]
cmp byte [edx + 0x55], al
je 0x460ac4
inc eax
cmp dword [edx + 0xc0], eax
jle 0x460b4e
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x460ae0
mov eax, dword [edx + 0x1f8]
inc dword [edx + 0x1fc]
add eax, dword [edx + 0x1fc]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x138]
dec eax
push eax
xor edx, edx
call fcn.00493fae
mov dword [ebp - 0x144], eax
pop ecx
test eax, eax
jne 0x460b10
mov eax, dword [ebp - 0x13c]
mov ecx, edi
mov edx, dword [eax + 0x30]
call fcn.0045103a
mov dword [ebp - 0x144], eax
mov edi, dword [ebp - 0x138]
mov edx, dword [ebp - 0x13c]
mov eax, dword [edi + 0x200]
mov ecx, dword [edi + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi + 0x208]
mov ecx, dword [edi + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463d44
xor eax, eax
cmp word [ebx + 2], ax
je 0x45e82b
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebx + 0xc]
jne 0x460b71
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x45e82b
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x138]
push dword [edi + 0x7c]
push esi
call fcn.0043ef99
pop ecx
pop ecx
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.0043f379
mov dword [edi + 0x7c], eax
mov eax, esi
mov edx, dword [ebx + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x1c]
je 0x460bb5
mov ecx, esi
call fcn.0047458e
mov eax, dword [edi + 0x98]
xor edx, edx
inc edx
and eax, 0xffffffed
push 0x11
or eax, edx
mov edx, esi
pop ecx
mov dword [ebp - 0x144], ecx
mov dword [edi + 0x98], eax
jmp 0x45ea3d
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0xc4]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00456455
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, eax
mov eax, dword [ebp - 0xc4]
jmp 0x45e637
mov eax, dword [ebp - 0x138]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.00456489
xor edx, edx
mov dword [ebp - 0x144], eax
inc edx
pop ecx
cmp dword [ebx + 8], edx
jne 0x460c63
movzx eax, word [ebx + 2]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x138]
mov ecx, eax
or dword [eax + 0x18], edx
mov edx, dword [ebx + 4]
call fcn.0047dcfa
xor edx, edx
inc edx
jmp 0x460c74
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x460c74
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], edx
jne 0x460c8d
mov ecx, dword [ebp - 0x138]
xor edx, edx
call fcn.0045c4ed
and dword [edi + 0x98], 0xfffffffc
mov ecx, dword [ebp - 0x144]
jmp 0x45f1fc
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x460cba
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x460cba
mov ecx, dword [esi + 0x2c]
call fcn.0044e3f3
jmp 0x460de3
mov cl, byte [ebp - 0x151]
mov eax, dword [edi + 0x98]
xor edx, edx
and al, 3
inc edx
cmp al, dl
je 0x463d2c
mov esi, dword [ebp - 0x138]
xor eax, eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x160], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x14c], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0xdc], esi
cmp cl, 0x71
jne 0x460d31
movzx edi, word [ebx + 2]
mov eax, dword [eax + 0xc]
push 8
pop ecx
and edi, ecx
mov al, byte [eax + 0x4c]
push 4
pop ecx
or edi, ecx
mov ecx, dword [ebp - 0x13c]
cmp al, byte [ecx + 0x93]
jae 0x460d35
mov byte [ecx + 0x93], al
jmp 0x460d35
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x460d55
imul esi, edx, 0x28
add esi, dword [ebp - 0x140]
mov ecx, esi
call fcn.00458345
mov eax, dword [esi]
mov dword [ebp - 0x14c], eax
mov al, byte [ebx + 1]
cmp al, 0xf8
jne 0x460d68
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x1c], eax
movzx eax, word [eax + 8]
jmp 0x460d74
cmp al, 0xfd
jne 0x460d71
mov eax, dword [ebx + 0x10]
jmp 0x460d74
mov eax, dword [ebp - 0x14]
mov edx, dword [ebx + 4]
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x13c]
push eax
call fcn.0045e029
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd5a
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0xdc]
mov byte [esi + 1], al
xor eax, eax
inc eax
push 4
mov byte [esi + 2], al
pop eax
push dword [esi + 0x2c]
or dword [esi + 8], eax
mov eax, dword [ebp - 0x14c]
mov edx, eax
push dword [ebp - 0x1c]
mov dword [esi + 0x38], eax
push edi
call fcn.00451170
mov edi, dword [ebp - 0x13c]
add esp, 0xc
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x30], eax
cmp byte [ebx + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
jmp 0x460c8d
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [ebp - 0x13c]
push eax
movsx eax, word [edi + 0x3c]
push eax
call fcn.0045e029
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd5a
mov edx, dword [esi + 8]
xor eax, eax
inc eax
or edx, eax
mov byte [esi + 2], al
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
push 4
pop eax
xor ecx, edx
and ecx, eax
xor ecx, edx
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x10]
push 8
mov dword [esi + 0x10], eax
pop eax
or ecx, eax
mov dword [esi + 8], ecx
or dword [edi + 8], eax
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
pop eax
push eax
call fcn.00451170
add esp, 0xc
mov dword [ebp - 0x144], eax
jmp 0x45e82b
mov eax, dword [ebx + 0xc]
xor ecx, ecx
test eax, eax
jle 0x460e9e
imul eax, eax, 0x28
mov dword [eax + esi + 0xc], ecx
imul eax, dword [ebx + 0xc], 0x28
mov dword [eax + esi + 8], 0x4c8c24
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x460ee8
test byte [esi + 8], 8
jne 0x460ee8
movsx eax, word [esi + 0x3c]
cmp dword [ebx + 8], eax
jg 0x460ee8
mov edx, dword [esi + 0x38]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
push ecx
mov ecx, dword [esi + 0x10]
call fcn.0045625d
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x45ea37
jmp 0x460ff2
push ecx
push dword [ebx + 8]
mov ecx, edi
call fcn.0045e029
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd60
xor eax, eax
lea edi, [esi + 0x10]
push 0x41e
inc eax
xor edx, edx
or dword [esi + 8], eax
movzx eax, word [ebx + 2]
push 5
pop ecx
or eax, ecx
push eax
mov eax, dword [ebp - 0x138]
push edi
push eax
mov ecx, dword [eax]
call fcn.0044f8f3
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.00450398
mov edx, eax
mov dword [ebp - 0x144], edx
pop ecx
test edx, edx
jne 0x460fca
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi]
mov dword [ebp - 0x14], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x460fa4
movzx eax, word [ebx + 2]
push 2
pop edx
or eax, edx
lea edx, [esi + 0x38]
push eax
call fcn.00456092
mov edx, eax
mov dword [ebp - 0x144], edx
pop ecx
test edx, edx
jne 0x460fa0
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x14]
mov ecx, dword [edi]
push 4
pop eax
push eax
call fcn.00451170
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x144], edx
xor eax, eax
jmp 0x460fc7
push dword [esi + 0x2c]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
inc edx
push eax
mov dword [esi + 0x38], edx
call fcn.00451170
mov edx, eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x144], edx
inc eax
mov byte [esi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x463d36
mov edi, dword [ebp - 0x13c]
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x45e79f
mov edx, dword [ebx + 4]
xor eax, eax
inc eax
mov ecx, edi
push eax
push dword [ebx + 8]
call fcn.0045e029
pop ecx
pop ecx
test eax, eax
je 0x45fd60
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x138]
push eax
call fcn.0046538d
pop ecx
jmp 0x45ea27
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, eax
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
je 0x463b2f
jmp 0x45e82b
mov edx, dword [ebx + 4]
mov ecx, edi
push 3
push dword [ebx + 0xc]
call fcn.0045e029
pop ecx
pop ecx
test eax, eax
je 0x45fd60
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x2c], 0x4e5d7d
jmp 0x45e7a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x4610a9
mov ecx, edi
call fcn.0045a4de
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x45e7a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x148], ecx
mov word [edi + 2], cx
mov dword [edi + 0x20], ecx
cmp byte [edi + 4], cl
je 0x46120c
imul esi, dword [ebx + 0xc], 0x28
push 2
pop ecx
add esi, dword [ebp - 0x140]
movzx eax, word [esi + 0x10]
mov dword [ebp - 0x14], eax
and al, 0x2e
cmp al, cl
jne 0x4610fd
xor edx, edx
mov ecx, esi
call fcn.0045e118
mov ecx, esi
call fcn.00458228
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x160], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x46119a
test cl, 8
jne 0x46115c
xor eax, eax
inc eax
test al, cl
jne 0x463b2f
push 0x17
pop ecx
cmp dword [ebp - 0x150], ecx
jae 0x463b2f
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x24]
call fcn.00451942
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
jmp 0x461302
push dword [ebp - 0x160]
movsd xmm1, qword [esi]
push dword [ebp - 0x1c]
call fcn.0045b8bc
pop ecx
pop ecx
test eax, eax
jle 0x461184
mov eax, dword [ebp - 0x150]
xor ecx, ecx
inc ecx
test cl, al
jne 0x46119a
dec eax
jmp 0x461194
jns 0x46119a
mov eax, dword [ebp - 0x150]
xor ecx, ecx
inc ecx
test cl, al
je 0x46119a
inc eax
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x24]
xor edx, edx
push eax
push dword [ebp - 0x160]
lea esi, [edi + 0x2c]
push dword [ebp - 0x1c]
mov ecx, dword [esi]
call fcn.0045199e
mov ecx, eax
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x144], ecx
mov dword [edi + 0x44], eax
test ecx, ecx
jne 0x463d44
mov edx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x150]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x24]
jl 0x4612bf
test ecx, ecx
js 0x4612af
jne 0x461202
cmp eax, 0x18
je 0x4612af
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x461312
lea esi, [edi + 0x2c]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x151], al
pop eax
setne al
mov dword [ebp - 0x148], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x100], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xec], ax
lea eax, [edx - 1]
xor edx, edx
mov byte [ebp - 0xe6], cl
inc edx
and al, dl
lea edx, [ebp - 0x100]
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xea], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x140]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x24]
mov ecx, dword [esi]
push eax
call fcn.00451bfb
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp byte [ebp - 0x151], al
je 0x4611d5
mov edx, dword [ebp - 0x148]
mov dword [ebp - 0x148], edx
cmp byte [ebp - 0xe6], al
je 0x461308
jmp 0x4611db
xor eax, eax
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [esi]
call fcn.00452021
jmp 0x4612e1
test ecx, ecx
jg 0x4612d3
jne 0x4612ca
cmp eax, 0x15
je 0x4612d3
mov ecx, dword [esi]
call fcn.00451edc
jmp 0x4612ff
xor eax, eax
xor edx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [esi]
call fcn.00452138
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x461302
cmp ecx, 0x65
jne 0x463d44
xor eax, eax
mov dword [ebp - 0x144], eax
inc eax
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x148]
cmp dword [ebp - 0x24], 0
jne 0x463b2f
mov esi, dword [ebp - 0x140]
test edx, edx
je 0x45f567
push 0x14
pop eax
add ebx, eax
jmp 0x45f567
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x45e79f
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov edi, dword [ebx + 4]
mov dword [ebp - 0x100], eax
mov ax, word [ebx + 0x24]
mov word [ebp - 0xec], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [ebp - 0xea], cl
mov dword [ebp - 0x74], ecx
add eax, dword [ebp - 0x140]
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x100]
mov edx, esi
push eax
call fcn.0045c436
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x74]
test eax, eax
jle 0x4613aa
cmp word [ebx + 2], cx
je 0x4613e0
test eax, eax
jns 0x463b2f
test edi, edi
jle 0x463964
mov ecx, dword [esi + 0x2c]
xor edx, edx
dec edi
call fcn.00452021
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x461371
cmp ecx, 0x65
jne 0x463d44
xor eax, eax
mov dword [ebp - 0x144], eax
push 0x14
pop eax
add ebx, eax
jmp 0x463b2f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [ebx + 8]
jge 0x461409
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x45e7a5
cmp eax, dword [ebx + 0xc]
jle 0x45e7a5
mov ax, word [ebx + 0xc]
jmp 0x461400
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x45e4d3.9
cmp byte [eax + 2], 0
je 0x45e7a5
jmp case.0x45e4d3.9
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ebx + 0x10]
jge 0x45e7a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x140]
add ecx, eax
movzx eax, word [ebx + 0x10]
mov dword [ebp - 0xfc], ecx
mov word [ebp - 0xec], ax
test ax, ax
je 0x4614a7
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [ebp - 0x100], eax
lea edx, [ebp - 0x100]
xor eax, eax
mov byte [ebp - 0xea], al
mov ecx, dword [esi + 0x2c]
push edi
call fcn.00451bfb
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
jmp 0x461518
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x4614bf
call fcn.00457fa7
test eax, eax
jne 0x45fd60
mov ecx, dword [esi + 0x30]
call fcn.0045b5ba
mov edi, eax
test edi, edi
je 0x45fd5a
mov edx, dword [ebp - 0xfc]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0045b610
xor eax, eax
mov edx, edi
mov byte [edi + 0x16], al
lea eax, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.00451bfb
mov ecx, dword [ebp - 0x138]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x144], eax
call fcn.0043eeff
mov ecx, dword [ebp - 0x144]
lea edi, [esi + 0x24]
test ecx, ecx
jne 0x463d44
mov ecx, dword [edi]
test ecx, ecx
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [ebx]
cmp al, 0x1d
jne 0x46153f
test ecx, ecx
jmp 0x461056
test ecx, ecx
jne 0x463b2f
cmp al, 0x1b
jne 0x46157b
mov ecx, edx
movzx edx, word [ebp - 0xec]
test edx, edx
je 0x463964
mov eax, dword [ebp - 0xfc]
add eax, 0x10
test byte [eax], 1
jne 0x463b2f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x461565
jmp 0x45e82b
cmp byte [ebx], 0x1a
jne 0x463964
mov ax, word [ebx + 0x10]
mov word [esi + 0xc], ax
jmp 0x45e82b
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0x140]
test byte [esi + 0x10], 0x24
jne 0x4615dd
push 0xa
pop ecx
push dword [ebp - 0x15c]
lea edi, [ebp - 0xb8]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0xb8]
call fcn.0045e1c7
pop ecx
push 4
pop eax
test byte [ebp - 0xa8], al
je 0x463b2f
mov edi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
jmp 0x4615ee
mov esi, dword [ebp - 0x140]
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [eax + esi]
mov edx, dword [eax + esi + 4]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x5c]
push eax
push edx
push edi
xor edx, edx
call fcn.0045199e
mov ecx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x14c]
xor edx, edx
mov dword [esi + 0x44], eax
add esp, 0xc
mov word [esi + 2], dx
mov dword [esi + 0x20], edx
mov eax, dword [ebp - 0x5c]
mov dword [esi + 0x24], eax
mov dword [ebp - 0x144], ecx
cmp dword [ebp - 0x5c], edx
je 0x46165e
cmp dword [ebx + 8], edx
jne 0x463b2f
mov ecx, 0x172df
call fcn.004a845a
mov ecx, eax
mov dword [ebp - 0x144], ecx
mov edi, dword [ebp - 0x13c]
jmp 0x45f1fc
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add dword [eax + 0x18], ecx
pop ecx
adc dword [eax + 0x1c], ecx
jmp 0x45e7a5
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x20], xmm0
mov ecx, edi
mov dword [ebp - 0xdc], eax
call fcn.0045e304
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x14c], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [ebp - 0x14], edi
test byte [edi + 8], al
jne 0x461739
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xdc]
call fcn.00451942
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp dword [ebp - 0xdc], eax
je 0x461704
inc eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x461739
mov ecx, dword [edi + 0x2c]
call fcn.0045123d
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp edx, 0x7fffffff
jl 0x461729
jg 0x461721
cmp eax, 0xffffffff
jb 0x461729
push 2
pop eax
or dword [edi + 8], eax
jmp 0x461739
xor ecx, ecx
inc ecx
add eax, ecx
push 0
pop ecx
adc edx, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4617c9
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x4617ae
imul esi, ecx, 0x28
add esi, dword [ebp - 0x140]
mov ecx, esi
call fcn.00458345
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x46177a
cmp edx, 0x7fffffff
je 0x461831
push 2
pop eax
test byte [edi + 8], al
jne 0x461831
mov edi, dword [ebp - 0x1c]
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x4617be
jl 0x4617a0
mov eax, dword [ebp - 0x20]
cmp eax, ecx
jae 0x4617c1
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edi
jmp 0x4617c1
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4617ac
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [eax + 0x10]
jmp 0x46175d
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x14]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x46183f
xor eax, eax
mov esi, eax
lea eax, [ebp - 0x20]
push eax
push 8
pop eax
push eax
call fcn.00441224
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov ecx, dword [ebp - 0x20]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [ebp - 0x20], ecx
lea edx, [ebp - 0xdc]
mov dword [ebp - 0x1c], eax
push edx
push eax
push ecx
mov ecx, dword [edi + 0x2c]
xor edx, edx
call fcn.0045199e
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp dword [ebp - 0xdc], eax
jne 0x46183f
inc esi
cmp esi, 0x64
jl 0x4617d5
push 0xd
pop ecx
mov dword [ebp - 0x144], ecx
jmp 0x463d44
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x45e82b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x140]
add edx, esi
cmp byte [ebx + 1], 0xfb
mov esi, dword [eax + esi]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], eax
jne 0x4618be
mov ecx, dword [ebp - 0x138]
cmp dword [ecx + 0xfc], 0
je 0x4618be
mov eax, dword [ebp - 0x138]
movsx ecx, byte [edi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
jmp 0x4618c3
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x14c], ecx
xor ecx, ecx
inc ecx
test byte [ebx + 2], cl
je 0x4618df
mov ecx, dword [ebp - 0x13c]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [ebx + 2], 0x20
je 0x4618f1
mov ecx, dword [ebp - 0x138]
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 8]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0xf8], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0xec], eax
pop eax
test al, cl
je 0x461913
mov esi, dword [edi + 0x24]
jmp 0x461917
xor eax, eax
mov esi, eax
mov eax, 0x400
test word [edx + 0x10], ax
push 0
pop eax
je 0x461931
mov eax, dword [edx]
mov dword [ebp - 0xe8], eax
xor eax, eax
jmp 0x461937
mov dword [ebp - 0xe8], eax
and ecx, 0x8a
mov dword [ebp - 0x108], eax
push esi
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x108]
call fcn.0045531e
pop ecx
pop ecx
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x144], ecx
mov byte [edi + 3], dl
mov dword [edi + 0x20], edx
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x463964
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [eax]
push dword [ebp - 0x1c]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x138]
push dword [eax + 0xf8]
call dword [eax + 0xfc]
add esp, 0x18
jmp 0x45e82b
mov ecx, dword [edi + 0x60]
mov eax, dword [ebx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4619ea
mov ecx, dword [ebp - 0x140]
mov edi, dword [ebp - 0x140]
imul eax, eax, 0x28
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x13c]
jmp 0x4619f8
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.0045577d
pop ecx
jmp 0x45f1f3
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x461a63
mov eax, dword [ebp - 0x138]
xor ecx, ecx
cmp dword [eax + 0xfc], ecx
je 0x461a63
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edi, dword [ebx + 0x10]
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x14c], eax
pop eax
test byte [ebx + 2], al
je 0x461a6d
cmp byte [esi + 4], 0
je 0x461a6d
mov ecx, dword [esi + 0x2c]
call fcn.0045123d
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x461a6d
xor eax, eax
mov dword [ebp - 0x14c], eax
mov edi, eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00455ab6
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x144], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
test ecx, ecx
jne 0x463d44
inc ecx
test byte [ebp - 0x14], cl
je 0x463964
mov eax, dword [ebp - 0x13c]
add dword [eax + 0x28], ecx
adc dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x138]
mov eax, dword [edx + 0xfc]
test eax, eax
je 0x463964
test edi, edi
je 0x463964
test byte [edi + 0x1c], 0x80
jne 0x463964
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push dword [ebp - 0x14c]
push 9
push dword [edx + 0xf8]
call eax
jmp 0x4619ae
mov edx, dword [ebp - 0x138]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
add dword [edx + 0x70], eax
mov dword [edx + 0x68], eax
adc dword [edx + 0x74], ecx
mov dword [edx + 0x6c], ecx
xor edx, edx
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], edx
jmp 0x45e7a5
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x84]
push eax
push dword [ebx + 0x10]
add edx, esi
call fcn.004666fb
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
cmp dword [ebp - 0x84], eax
jmp 0x45e541
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, esi
mov ecx, dword [eax + ecx*4]
call fcn.004666a5
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x20], ecx
jmp 0x45e7a5
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [edi + 0x60]
mov esi, eax
mov edx, dword [ebx + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.00451200
mov eax, dword [ebp - 0x138]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x463d4f
push esi
mov ecx, edi
call fcn.00458a81
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp dword [ebx + 0xc], eax
jne 0x463964
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x463964
mov ecx, esi
call fcn.00457f61
mov edi, dword [ebp - 0x13c]
test eax, eax
jne 0x45fd60
jmp 0x45e79f
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x461c2b
xor eax, eax
inc eax
jmp 0x45f111
cmp byte [esi + 3], 0
je 0x461c39
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
jmp 0x461c9e
push 2
pop eax
cmp byte [esi], al
jne 0x461c7a
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x40]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x13c]
mov edx, esi
mov dword [ebp - 0x144], eax
call fcn.0045c5da
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463d44
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
jmp 0x461ca4
mov ecx, esi
call fcn.0045b338
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp byte [esi + 2], al
jne 0x461c23
mov ecx, dword [esi + 0x2c]
call fcn.0045123d
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], eax
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x45e82b
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
jne 0x461ceb
xor eax, eax
mov ecx, edi
inc eax
push 3
push eax
call fcn.0045e029
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd60
xor eax, eax
mov dword [esi + 0x24], eax
inc eax
mov byte [esi + 4], al
push 8
pop eax
or dword [esi + 8], eax
call fcn.0044e521
mov dword [esi + 0x2c], eax
xor eax, eax
inc eax
mov byte [esi + 2], al
xor eax, eax
mov dword [esi + 0x20], eax
cmp byte [esi], al
jne 0x463964
mov ecx, dword [esi + 0x2c]
call fcn.0044e3f3
jmp 0x45e79f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp - 0x151], 0x89
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x64], eax
jne 0x461d31
or dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x463964
lea edx, [ebp - 0x64]
call fcn.00451942
mov ecx, eax
xor edx, edx
mov al, byte [ebp - 0x64]
mov dword [ebp - 0x144], ecx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x45ea37
cmp dword [ebx + 8], edx
jle 0x463964
cmp dword [ebp - 0x64], edx
jne 0x463b2f
jmp 0x45e79f
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0x60]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00451916
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
cmp dword [ebp - 0x60], eax
jne 0x463b2f
mov ecx, esi
call fcn.00451ee4
xor ecx, ecx
cmp edx, ecx
jl 0x461dc7
jg 0x461db0
cmp eax, ecx
jb 0x461dc7
push edx
push eax
call fcn.00442e54
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x461dc7
xor eax, eax
inc eax
mov dword [ebp - 0x60], eax
jmp 0x461dca
mov eax, dword [ebp - 0x60]
test eax, eax
jmp 0x461d63
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0x54]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0x54], eax
cmp byte [esi], al
jne 0x461df3
mov ecx, esi
call fcn.00466561
jmp 0x461e03
mov ecx, dword [esi + 0x2c]
call fcn.00451916
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov al, byte [ebp - 0x54]
mov byte [esi + 2], al
cmp dword [ebp - 0x54], ecx
jmp 0x461d63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x138]
call fcn.00466617
jmp 0x461e63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00452138
jmp 0x461e63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00452021
mov ecx, eax
mov dword [ebp - 0x144], ecx
xor edx, edx
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x461e87
mov byte [esi + 2], dl
movzx eax, word [ebx + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x46362e
cmp ecx, 0x65
jne 0x45ea37
xor eax, eax
mov dword [ebp - 0x144], edx
inc eax
mov byte [esi + 2], al
jmp 0x462679
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add esi, dword [ebp - 0x140]
test byte [ebx + 2], cl
je 0x461ecb
mov eax, dword [ebp - 0x13c]
push 0
add dword [eax + 0x28], ecx
pop ecx
adc dword [eax + 0x2c], ecx
mov eax, 0x400
test word [esi + 0x10], ax
je 0x461eed
mov ecx, esi
call fcn.00457fa7
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
mov eax, dword [esi + 8]
mov esi, dword [ebp - 0x140]
mov dword [ebp - 0xb8], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop ecx
add eax, esi
mov dword [ebp - 0xa4], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xa0], ax
movzx eax, word [ebx + 2]
test cl, al
je 0x461f33
mov ecx, dword [edi + 0x24]
jmp 0x461f35
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xb8]
and eax, 0x8a
push eax
call fcn.0045531e
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x13c]
jmp 0x45ea29
imul esi, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
add esi, dword [ebp - 0x140]
mov edi, dword [eax + ecx*4]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x461f93
mov ecx, esi
call fcn.00457fa7
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
mov edx, esi
mov ecx, edi
call fcn.00465d81
jmp 0x461656
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0x100]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov ecx, edi
mov dword [ebp - 0x100], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xec], ax
xor eax, eax
mov byte [ebp - 0xea], al
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x140]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0xc8]
push eax
call fcn.00451bfb
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
cmp dword [ebp - 0xc8], eax
jne 0x462024
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.00455ab6
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
jmp 0x46203f
xor edx, edx
cmp word [ebx + 2], dx
je 0x462041
mov ecx, dword [ebp - 0x138]
call fcn.00474aac
test eax, eax
je 0x463d6a
xor edx, edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
jmp 0x45e82b
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x462076
mov ecx, esi
call fcn.0045b2fe
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45f17d
jmp 0x46207e
xor eax, eax
mov dword [ebp - 0x144], eax
cmp byte [esi + 2], 0
jne 0x462116
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x90]
xorps xmm0, xmm0
movlpd qword [ebp - 0x90], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.0045c336
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
cmp byte [ebx], 0x8d
jne 0x4620f7
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x8c]
mov dword [edx + 0x40], eax
xor eax, eax
inc eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], al
xor eax, eax
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], esi
jmp 0x45e79f
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x8c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x45e79f
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x9000
mov esi, dword [ebp - 0x140]
add eax, esi
test word [eax + 0x10], cx
jne 0x45f862
xor ecx, ecx
inc ecx
jmp 0x45ef62
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x45e7a5
call fcn.0045b2be
jmp 0x45ea27
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0x151], 0x2a
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x100], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xec], ax
sbb al, al
mov byte [ebp - 0xea], al
imul eax, dword [ebx + 0xc], 0x28
add eax, esi
mov dword [ebp - 0xfc], eax
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call fcn.00451200
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x463d86
cmp edx, 0x7fffffff
ja 0x463d86
xor eax, eax
mov ecx, esi
mov word [ebp - 0xa8], ax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xa4], eax
xor eax, eax
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00458a81
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0045bb7f
cmp dword [ebp - 0xa0], 0
mov esi, eax
pop ecx
pop ecx
je 0x46221c
lea ecx, [ebp - 0xb8]
call fcn.00458189
xor eax, eax
inc eax
test byte [ebx], al
jne 0x462227
neg esi
jmp 0x462228
inc esi
test esi, esi
jg 0x463b2f
jmp 0x45e79f
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [ebp - 0x138]
mov edi, eax
mov edx, dword [ebp - 0x138]
xor eax, eax
inc eax
mov word [edi + 0x10], ax
mov ecx, dword [ecx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x463da8
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0x58], ecx
mov ecx, eax
mov dword [ebp - 0x14c], eax
add ecx, ecx
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esi + 4], eax
lea eax, [ebp - 0x58]
push eax
call fcn.004562a7
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
push 4
pop eax
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x58]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x463d44
cmp dword [ebp - 0x58], ecx
je 0x463964
push dword [ebx + 4]
mov edx, dword [ebp - 0x14c]
push dword [ebp - 0x58]
mov ecx, dword [ebp - 0x138]
call fcn.00476f9c
mov al, byte [ebp - 0x14c]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x169], al
jmp 0x45e82b
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x18]
mov edx, dword [ebx + 4]
xorps xmm0, xmm0
push eax
mov eax, dword [ebx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0045625d
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x144], ecx
cmp dword [ebx + 0xc], eax
je 0x45ea2f
mov edx, dword [ebp - 0x18]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0x14]
adc dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x45ea2f
imul ecx, eax, 0x28
add dword [ecx + esi], edx
mov eax, dword [ebp - 0x14]
adc dword [ecx + esi + 4], eax
mov ecx, dword [ebp - 0x144]
jmp 0x45ea2f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
cmp byte [ecx], al
jne 0x46237b
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x138]
call fcn.00465590
jmp 0x45e7a5
mov ecx, dword [ecx + 0x2c]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.0045625d
jmp 0x46102d
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x138]
push edi
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov esi, dword [ecx + 4]
mov edx, dword [ecx]
mov dword [esi + 4], edx
lea edx, [ebp - 0x44]
call fcn.00455e48
mov edi, dword [ebp - 0x13c]
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea37
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x45e79f
mov ecx, dword [ebp - 0x138]
xor eax, eax
push eax
push eax
push eax
inc byte [ecx + 0x60]
push dword [ebx + 0x10]
push ecx
call fcn.00481fce
mov edx, dword [ebp - 0x138]
add esp, 0x14
dec byte [edx + 0x60]
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x45ea3d
jmp 0x45e7a5
mov esi, dword [ebx + 4]
xor edx, edx
cmp dword [ebx + 0x10], edx
jne 0x462486
mov eax, dword [ebp - 0x138]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.0047a03c
pop ecx
mov ecx, dword [ebp - 0x138]
mov edx, esi
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [ebx + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.00486007
pop ecx
pop ecx
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x138]
inc edx
mov dword [ebp - 0x144], ecx
or dword [eax + 0x18], edx
and dword [edi + 0x98], 0xfffffffc
jmp 0x46256e
mov ecx, dword [ebp - 0x138]
lea eax, [edi + 0x7c]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0xf4], esi
add esi, esi
mov dword [ebp - 0xf8], eax
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xec], edx
mov ecx, dword [ecx + esi*8 + 4]
call fcn.0044f74f
mov ecx, dword [ebp - 0x138]
push dword [ebx + 0x10]
mov dword [ebp - 0xe4], eax
push str.sqlite_master
mov eax, dword [ecx + 0x10]
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ecx
call fcn.00440d10
mov esi, eax
add esp, 0x14
test esi, esi
je 0x463dc5
mov eax, dword [ebp - 0x138]
xor ecx, ecx
inc ecx
mov byte [eax + 0xb1], cl
xor ecx, ecx
push ecx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xe8], ecx
lea ecx, [ebp - 0xfc]
push ecx
push fcn.00485ddd
push esi
push eax
call fcn.00481fce
add esp, 0x14
mov dword [ebp - 0x144], eax
test eax, eax
jne 0x46254d
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x144], eax
test eax, eax
jne 0x46254d
cmp dword [ebp - 0xe8], eax
jne 0x46254d
mov ecx, 0x178d1
call fcn.004a845a
mov dword [ebp - 0x144], eax
mov ecx, dword [ebp - 0x138]
mov edx, esi
call fcn.0043eeff
mov ecx, dword [ebp - 0x138]
xor eax, eax
mov byte [ecx + 0xb1], al
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463dcf
jmp 0x45e79f
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x138]
call fcn.00472e9b
jmp 0x45ea27
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x138]
call fcn.0047493a
jmp 0x45e9db
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x138]
call fcn.00474477
jmp 0x45e9db
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x138]
call fcn.0048f99d
jmp 0x45e9db
imul edi, dword [ebx + 0xc], 0x28
lea eax, [ebp - 0xcc]
mov ecx, dword [ebx + 0x10]
push eax
add edi, esi
imul esi, dword [ebx + 4], 0x28
mov eax, dword [edi]
add esi, dword [ebp - 0x140]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x138]
push eax
movzx eax, word [ebx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.00456e53
mov ecx, eax
add esp, 0x10
mov eax, 0x9000
mov dword [ebp - 0x14], ecx
test word [esi + 0x10], ax
je 0x46262c
mov ecx, esi
call fcn.0045815d
mov ecx, dword [ebp - 0x14]
jmp 0x462633
xor eax, eax
inc eax
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x462665
test ecx, ecx
je 0x45fd5a
dec eax
cdq
sub dword [edi], eax
push fcn.0043eeb4
sbb dword [edi + 4], edx
xor eax, eax
inc eax
mov edx, ecx
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00458804
add esp, 0x10
movzx edx, byte [ebp - 0x15c]
mov ecx, esi
call fcn.00457dea
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x140]
mov edx, dword [ebp - 0x138]
xor eax, eax
cmp dword [edx + 0x128], eax
jne 0x464020
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0x17c]
jb 0x45f567
mov ecx, dword [ebp - 0x170]
ja 0x4626b9
cmp dword [ebp - 0x180], ecx
jb 0x45f567
mov eax, dword [edx + 0x174]
test eax, eax
je 0x45f567
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x170], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x17c], ecx
call eax
mov edx, dword [ebp - 0x138]
pop ecx
test eax, eax
jne 0x463e75
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x170]
cmp eax, dword [ebp - 0x17c]
ja 0x4626b9
jb 0x45e7a5
cmp dword [ebp - 0x180], ecx
jae 0x4626b9
jmp 0x45e7a5
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
push 0x10
pop eax
add esi, dword [ebp - 0x140]
add edi, dword [ebp - 0x140]
test byte [esi + 0x10], al
jne 0x462745
mov ecx, esi
call fcn.0045866f
test eax, eax
jne 0x45fd5a
push dword [edi + 4]
mov ecx, dword [esi + 8]
push dword [edi]
call fcn.00447875
pop ecx
jmp 0x45fd16
imul esi, dword [ebx + 4], 0x28
push 0x10
pop eax
add esi, dword [ebp - 0x140]
test byte [esi + 0x10], al
je 0x4627a0
mov ecx, dword [esi + 8]
lea edx, [ebp - 0xd8]
call fcn.00447ad0
test eax, eax
je 0x4627a0
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0xd4]
mov esi, dword [ebp - 0x140]
push dword [ebp - 0xd8]
add ecx, esi
call fcn.004585fb
pop ecx
pop ecx
jmp 0x46267f
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4627b7
mov ecx, esi
call fcn.0045815d
jmp 0x46362e
xor eax, eax
inc eax
mov word [esi + 0x10], ax
jmp 0x46362e
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
mov eax, dword [ebx + 0x10]
push 0x10
pop ecx
add esi, dword [ebp - 0x140]
add edi, dword [ebp - 0x140]
mov dword [ebp - 0x14c], eax
test byte [esi + 0x10], cl
jne 0x4627fd
mov ecx, esi
call fcn.0045866f
test eax, eax
jne 0x45fd5a
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x462822
push dword [edi + 4]
mov ecx, dword [esi + 8]
mov edx, eax
push dword [edi]
call fcn.00447b1e
pop ecx
pop ecx
test eax, eax
jne 0x463b2f
mov eax, dword [ebp - 0x14c]
test eax, eax
js 0x45e82b
jmp 0x462745
imul edi, dword [ebx + 0xc], 0x28
xor edx, edx
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x14c], esi
add edi, dword [ebp - 0x140]
cmp word [ebx + 2], dx
je 0x462869
mov eax, dword [ebp - 0x13c]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xd0]
jmp 0x462865
cmp dword [eax + 0x1c], ecx
je 0x45e82b
mov eax, dword [eax + 4]
test eax, eax
jne 0x462859
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x463dee
push 0x10
pop eax
test byte [edi + 0x10], al
jne 0x462a4c
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], ecx
add eax, 7
imul ecx, ecx, 0xa
add ecx, edx
mov eax, eax
test eax, eax
jns 0x4628ba
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x138]
add eax, 0x58
mov dword [ebp - 0x14], eax
cdq
push edx
push eax
call fcn.0043f143
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd5a
mov ecx, edi
call fcn.004581b7
mov ecx, dword [ebp - 0x1c]
mov eax, 0x1010
sub ebx, dword [ebp - 0x134]
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x13c]
mov dword [edi + 8], esi
mov dword [edi + 0x24], 0x459e05
mov edi, dword [ebp - 0x14c]
mov dword [esi], eax
mov dword [esi + 0x3c], ecx
push 0x14
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ebx, dword [ebp - 0x13c]
mov dword [esi + 0x30], eax
imul ecx, ecx, 0x28
mov eax, dword [ebx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x38], eax
add ecx, 0x58
mov eax, dword [ebx + 0x60]
add ecx, esi
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x462986
mov edx, dword [ebp - 0x138]
xor ebx, ebx
mov dword [eax + 0x14], edx
mov word [eax + 0x10], bx
add eax, 0x28
cmp eax, ecx
jne 0x462970
mov ebx, dword [ebp - 0x13c]
xor edx, edx
mov ecx, dword [ebp - 0x138]
xor eax, eax
inc eax
add dword [ebx + 0xd8], eax
mov eax, dword [ebx + 0xd0]
mov dword [esi + 4], eax
mov ecx, dword [ecx + 0x2c]
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], ecx
mov eax, dword [ebx + 0xe4]
mov dword [esi + 0x28], eax
mov dword [ebx + 0xe4], edx
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], edx
lea edx, [esi + 0x58]
mov dword [ebx + 0x58], edx
mov dword [ebx + 0xd0], esi
mov ecx, dword [esi + 0x3c]
mov dword [ebx + 0x14], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [ebx + 0x18], eax
mov dword [ebp - 0x140], edx
add ecx, edx
mov dword [ebx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call fcn.004b21c0
mov ecx, dword [edi]
add esp, 0xc
mov dword [ebx + 0x68], ecx
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0x13c]
mov dword [ebp - 0x134], ecx
lea ebx, [ecx - 0x14]
mov dword [edi + 0x6c], eax
jmp 0x462679
mov esi, dword [edi + 8]
mov edi, dword [ebp - 0x14c]
mov ebx, dword [ebp - 0x13c]
jmp 0x462988
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov esi, dword [edi + 0xd0]
mov ecx, 0x4000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
call fcn.00458724
jmp 0x45f688
mov eax, dword [ebp - 0x138]
xor ecx, ecx
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, ecx
mov eax, dword [ebx + 8]
cdq
je 0x462ac4
mov ecx, dword [ebp - 0x138]
add dword [ecx + 0x208], eax
adc dword [ecx + 0x20c], edx
jmp 0x45e7a5
cmp dword [ebx + 4], ecx
je 0x462ae0
mov ecx, dword [ebp - 0x138]
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp 0x45e7a5
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x45e7a5
xor eax, eax
cmp dword [ebx + 4], eax
je 0x462b23
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x45e7a5
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
jmp 0x45f7a6
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x45e7a5
mov eax, dword [ebp - 0x138]
mov ecx, eax
jmp 0x462b12
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x462b85
imul edi, dword [ebx + 4], 0x28
add edi, esi
mov ecx, edi
call fcn.00458345
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x140]
mov ecx, esi
call fcn.00458345
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x463964
jl 0x462b79
cmp dword [edi], eax
jae 0x463964
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x45e82b
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x462b83
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x462b49
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, esi
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x463b43
jg 0x462bb4
cmp esi, edx
jbe 0x463b43
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x463b2f
imul esi, dword [ebx + 4], 0x28
mov edx, ebx
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x13c]
add esi, dword [ebp - 0x140]
add edi, dword [ebp - 0x140]
call fcn.0045e304
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], ecx
test ecx, ecx
jl 0x462c53
jg 0x462c0a
xor ecx, ecx
cmp edx, ecx
jbe 0x462c53
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x462c1b
jg 0x462c29
cmp eax, edx
ja 0x462c29
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
push eax
lea ecx, [ebp - 0xc0]
call fcn.00442c05
pop ecx
pop ecx
test eax, eax
jne 0x462c4d
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
jmp 0x46184d
mov eax, dword [ebp - 0x14c]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x45e82b
imul ecx, dword [ebx + 4], 0x28
add ecx, esi
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x45e79f
xor eax, eax
cmp esi, eax
jl 0x463b2f
jg 0x462c88
cmp edx, eax
jbe 0x463b2f
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x463b2f
imul edx, dword [ebx + 4], 0x28
add edx, esi
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x462cbb
jg 0x462cb0
test eax, eax
je 0x462cbb
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x45f7a6
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x14c], eax
push ecx
mov ecx, dword [ebp - 0x138]
lea eax, [eax*4 + 0x44]
push eax
call fcn.0043f1a0
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x45fd60
mov eax, dword [ebp - 0x14c]
xor edx, edx
add eax, 7
mov dword [esi + 8], edx
push 0x14
lea ecx, [esi + eax*4]
xor eax, eax
inc eax
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x138]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x134]
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x19], al
mov dword [esi + 0x14], eax
mov al, byte [ebp - 0x15c]
mov byte [esi + 0x18], al
mov eax, dword [ebp - 0x14c]
mov byte [esi + 0x1a], al
mov word [ebx], 0xf1a3
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edx, dword [ebp - 0x140]
mov dword [ebp - 0x14], edx
cmp dword [esi + 8], edx
je 0x462d9a
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x462d9a
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x140]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x462d7a
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x13c]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x462db5
call dword [ecx + 0x1c]
jmp 0x462db8
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x463964
jle 0x462dec
mov ecx, dword [esi]
xor eax, eax
lea edx, [eax + 1]
call fcn.00458b63
push eax
push 0x4d29f0
push edi
call fcn.0045903c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x144], eax
cmp byte [esi + 0x19], 0
je 0x462e35
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x462e1b
imul eax, eax, 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x140]
test word [eax + 0x10], cx
je 0x462e22
xor ecx, ecx
push ecx
inc ecx
push ecx
mov ecx, eax
call fcn.004585d9
pop ecx
pop ecx
xor edx, edx
mov byte [esi + 0x19], dl
jmp 0x462e37
xor ecx, ecx
inc ecx
xor edx, edx
push 4
mov dword [eax], ecx
pop ecx
mov dword [eax + 4], edx
mov word [eax + 0x10], cx
jmp 0x462e1d
xor edx, edx
mov ecx, dword [esi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x462e49
cmp dword [ecx + 0x18], edx
je 0x462e50
call fcn.00458189
xor edx, edx
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
mov dword [esi + 0x14], edx
jmp 0x460c8d
imul esi, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add esi, ecx
test eax, eax
je 0x462e91
push edx
imul edx, eax, 0x28
add edx, ecx
mov ecx, esi
call fcn.00458100
imul esi, dword [ebx + 0xc], 0x28
pop ecx
add esi, dword [ebp - 0x140]
jmp 0x462e98
mov ecx, esi
call fcn.00458063
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x144], edi
test edi, edi
jne 0x463e15
movzx edx, byte [ebp - 0x15c]
call fcn.00457dea
jmp 0x45e82b
mov edx, dword [ebx + 4]
xor eax, eax
mov ecx, dword [ebp - 0x138]
or dword [ebp - 8], 0xffffffff
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0x10], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 8]
call fcn.004a75a3
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x462f0b
push 5
pop eax
cmp ecx, eax
jne 0x45ea37
xor eax, eax
xor ecx, ecx
inc ecx
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x10], ecx
jmp 0x462f0d
xor eax, eax
imul esi, dword [ebx + 0xc], 0x28
mov edi, eax
push 4
pop ebx
mov ecx, 0x9000
add esi, dword [ebp - 0x140]
mov eax, dword [ebp + edi*4 - 0x10]
cdq
test word [esi + 0x10], cx
je 0x462f3e
push edx
push eax
mov ecx, esi
call fcn.004585d9
pop ecx
pop ecx
mov ecx, 0x9000
jmp 0x462f47
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bx
inc edi
add esi, 0x28
cmp edi, 3
jl 0x462f21
mov ebx, dword [ebp - 0x158]
jmp 0x45e82b
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edx, dword [ebx + 4]
mov dword [ebp - 0x14c], eax
add edx, edx
mov eax, dword [ebp - 0x138]
cmp dword [ebx + 0xc], 0xffffffff
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x14], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
mov esi, ecx
mov dword [ebp - 0xdc], ecx
cmovne esi, dword [ebx + 0xc]
cmp byte [edi + 0x11], 3
jae 0x462fb3
mov eax, dword [edi + 0x44]
xor edx, edx
cmp dword [eax], edx
je 0x462fb5
cmp dword [edi + 0x54], edx
jg 0x462fb3
jl 0x462fb5
cmp dword [edi + 0x50], edx
jbe 0x462fb5
mov esi, ecx
cmp byte [edi + 0xf], 0
mov eax, 0x4cbca0
jne 0x462fc6
mov eax, dword [edi + 0xb8]
push 5
pop edx
cmp esi, edx
jne 0x462ff3
test eax, eax
je 0x463047
push eax
call fcn.004b5c60
pop ecx
test eax, 0x3fffffff
je 0x463041
mov ecx, edi
call fcn.0044ba52
mov ecx, dword [ebp - 0xdc]
test eax, eax
je 0x463047
push 5
pop edx
cmp esi, ecx
je 0x463049
cmp ecx, edx
je 0x462fff
cmp esi, edx
jne 0x463049
mov eax, dword [ebp - 0x138]
cmp byte [eax + 0x55], 0
je 0x463e39
xor edx, edx
inc edx
cmp dword [eax + 0xc0], edx
jg 0x463e36
cmp ecx, 5
jne 0x46307c
mov edx, eax
mov ecx, edi
call fcn.0044bb2b
mov dword [ebp - 0x144], eax
test eax, eax
jne 0x463053
mov edx, esi
mov ecx, edi
call fcn.0044b916
jmp 0x463098
mov ecx, dword [ebp - 0xdc]
mov esi, ecx
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x463059
mov esi, dword [ebp - 0xdc]
mov edx, esi
mov ecx, edi
call fcn.0044b916
mov esi, dword [ebp - 0x14c]
mov ecx, 0x2202
mov word [esi + 0x10], cx
xor ecx, ecx
cmp eax, 6
jne 0x4630b3
mov eax, ecx
jmp 0x4630ba
push 4
pop eax
cmp ecx, eax
jne 0x46308f
push 2
pop eax
mov edx, eax
mov ecx, edi
call fcn.0044b916
cmp dword [ebp - 0x144], 0
jne 0x463053
mov ecx, dword [ebp - 0x14]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.0045733f
mov dword [ebp - 0x144], eax
jmp 0x46304f
mov eax, dword [eax*4 + 0x4cc320]
mov dword [esi + 8], eax
test eax, eax
jne 0x4630c5
mov eax, ecx
jmp 0x4630d1
push eax
call fcn.004b5c60
pop ecx
and eax, 0x3fffffff
movzx edx, byte [ebp - 0x15c]
mov ecx, esi
mov dword [esi + 0xc], eax
xor eax, eax
inc eax
mov byte [esi + 0x12], al
call fcn.00457dea
mov ecx, dword [ebp - 0x144]
jmp 0x46165e
mov eax, dword [ebx + 8]
test eax, eax
je 0x463101
imul eax, eax, 0x28
add eax, esi
jmp 0x463103
xor eax, eax
mov edx, dword [ebp - 0x138]
lea ecx, [edi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.00492cf5
pop ecx
jmp 0x46102d
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00450b6b
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x45f567
cmp ecx, 0x65
jne 0x45ea37
xor eax, eax
mov dword [ebp - 0x144], eax
jmp 0x463b2f
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x463197
mov edx, dword [ebp - 0x138]
mov eax, dword [ebx + 8]
mov edx, dword [edx + 4]
test edx, edx
je 0x45e7a5
lea esi, [eax + 1]
mov eax, dword [edx + 0x98]
mov ecx, esi
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edx + 0x98], ecx
mov edx, dword [edx + 8]
test edx, edx
jne 0x463176
jmp 0x45e79f
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edi + 0x98], ecx
jmp 0x45e7a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
jmp 0x45e7a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
jmp 0x45e7a5
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x18c], al
test al, al
jne 0x463203
mov eax, dword [ebp - 0x138]
mov ecx, 0x400
mov eax, dword [eax + 0x20]
and eax, ecx
mov dword [ebp - 0x18], eax
jne 0x45e7a5
mov ecx, dword [ebp - 0x138]
mov eax, dword [ebx + 4]
push dword [ebp - 0x18c]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00457261
pop ecx
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
je 0x45e7a5
cmp cl, 6
jne 0x45ea37
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x463e2b
mov esi, dword [ebx + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0x138]
call fcn.00493ede
mov ecx, eax
mov dword [ebp - 0x144], ecx
test esi, esi
je 0x45f1fc
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0045c5da
jmp 0x460c8d
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004b21c0
imul edx, dword [ebx + 8], 0x28
lea ecx, [ebp - 0xb8]
mov eax, dword [ebp - 0x138]
add esp, 0xc
mov dword [ebp - 0xa4], eax
add edx, esi
call fcn.00458777
mov dword [ebp - 0x144], eax
lea ecx, [ebp - 0xb8]
xor eax, eax
lea edx, [eax + 1]
call fcn.00458b63
test eax, eax
je 0x4632df
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x138]
push eax
call fcn.00493b38
pop ecx
pop ecx
mov dword [ebp - 0x144], eax
mov eax, 0x9000
test dword [ebp - 0xa8], eax
jne 0x4632f9
cmp dword [ebp - 0xa0], 0
je 0x46234d
lea ecx, [ebp - 0xb8]
call fcn.00458189
jmp 0x46234d
mov ecx, dword [ebp - 0x138]
inc dword [ecx + 0xcc]
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.00493dde
mov edx, dword [ebp - 0x138]
pop ecx
dec dword [edx + 0xcc]
jmp 0x462414
xor eax, eax
mov dword [ebp - 0xdc], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x463e6e
mov edi, dword [esi]
test edi, edi
je 0x463e68
lea eax, [ebp - 0xdc]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x13c]
mov edx, esi
mov dword [ebp - 0x144], eax
call fcn.0045c5da
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x13c]
push 2
mov dword [eax], esi
mov edx, dword [ebx + 4]
pop eax
push eax
xor eax, eax
push eax
call fcn.0045e029
pop ecx
pop ecx
test eax, eax
je 0x463e59
mov ecx, dword [ebp - 0xdc]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x45e82b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
call fcn.004a5fab
test eax, eax
jne 0x45fd60
push eax
push 8
pop eax
push eax
call fcn.0043ede2
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x45fd5a
mov ecx, dword [esi + 0x2c]
mov edx, ebx
mov dword [edi], ecx
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x140]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x13c]
call fcn.0045e304
mov esi, eax
xor eax, eax
inc eax
mov ecx, esi
mov word [esi + 0x10], ax
call fcn.00458189
mov eax, 0x1a01
mov dword [esi], str.ValueList
mov dword [esi + 8], edi
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], fcn.0043eeb4
jmp 0x45e82b
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x160], eax
add edx, esi
mov esi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
mov eax, dword [eax]
mov dword [ebp - 0x14c], eax
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
xor eax, eax
test ecx, ecx
jle 0x463479
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x46346e
push edi
mov edi, dword [ebp - 0x14c]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x14]
push esi
call dword [edi + 0x20]
mov edx, dword [ebp - 0x1c]
add esp, 0x14
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x144], eax
call fcn.0045c5da
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463d44
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [ebp - 0x160]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x45e82b
jmp 0x463b2f
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebx + 0xc], 0x28
mov edi, dword [eax + ecx*4]
add esi, dword [ebp - 0x140]
cmp byte [edi + 2], 0
je 0x463500
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4634f8
mov ecx, esi
jmp 0x45efa3
xor eax, eax
inc eax
jmp 0x45e8fa
mov eax, dword [edi + 0x2c]
push 0x20
mov eax, dword [eax]
mov dword [ebp - 0x14c], eax
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
xor eax, eax
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004b21c0
mov al, byte [ebp - 0x15c]
xor ecx, ecx
inc ecx
mov dword [ebp - 0x100], esi
add esp, 0xc
mov byte [ebp - 0xe8], al
test byte [ebx + 2], cl
je 0x463550
mov ecx, esi
call fcn.0045858f
xor eax, eax
mov dword [esi], eax
mov eax, 0x401
jmp 0x463562
mov ax, word [esi + 0x10]
mov edx, 0xf241
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [ebp - 0x100]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x14]
push dword [edi + 0x2c]
call dword [eax + 0x2c]
mov edi, dword [ebp - 0x13c]
add esp, 0xc
mov edx, dword [ebp - 0x14c]
mov ecx, edi
mov dword [ebp - 0x144], eax
call fcn.0045c5da
cmp dword [ebp - 0xec], 0
jle 0x4635c0
push esi
call fcn.0045c8fd
pop ecx
push eax
push 0x4d29f0
push edi
call fcn.0045903c
mov eax, dword [ebp - 0xec]
add esp, 0xc
mov dword [ebp - 0x144], eax
movzx edx, byte [ebp - 0x15c]
mov ecx, esi
call fcn.00457dea
jmp 0x460c8d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x45f567
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x14], ecx
call dword [ecx + 0x24]
pop ecx
mov ecx, dword [ebp - 0x13c]
mov edx, esi
mov dword [ebp - 0x144], eax
call fcn.0045c5da
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x463d44
mov eax, dword [ebp - 0x14]
push dword [edi + 0x2c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x462673
mov edi, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x140]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x134]
add ebx, 0xffffffec
add ebx, eax
jmp 0x46267f
mov ecx, dword [ebp - 0x138]
mov edx, 0x4000000
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], edx
and eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov edi, dword [eax + 8]
xor eax, eax
add esi, dword [ebp - 0x140]
mov ecx, esi
lea edx, [eax + 1]
call fcn.00457dea
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x463d44
push dword [esi + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [ebp - 0x14], 0
pop ecx
pop ecx
mov dword [ebp - 0x144], eax
jne 0x4636ba
mov ecx, dword [ebp - 0x138]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, edi
mov edi, dword [ebp - 0x13c]
mov ecx, edi
call fcn.0045c5da
jmp 0x460c86
mov ecx, dword [ebp - 0x138]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
cmp byte [ecx + 0x57], 0
jne 0x45fd66
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
mov dword [ebp - 0x14], esi
test esi, esi
je 0x463e6e
mov edi, dword [esi]
test edi, edi
je 0x463e68
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [edi + 0x34], ecx
je 0x45e82b
mov eax, dword [ebp - 0x138]
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x151], al
mov eax, dword [ebp - 0x13c]
mov eax, dword [eax + 0x5c]
mov dword [ebp - 0x14c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x140]
test edx, edx
jle 0x46374f
mov esi, dword [ebp - 0x14c]
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x463741
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x138]
mov al, byte [ebx + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x14c]
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [ebp - 0x138]
add esp, 0x10
mov edi, dword [ebp - 0x13c]
mov edx, esi
mov dword [ebp - 0x144], eax
mov al, byte [ebp - 0x151]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.0045c5da
mov ecx, dword [ebp - 0x144]
test ecx, ecx
jne 0x4637bc
xor edx, edx
cmp dword [ebx + 4], edx
mov edx, dword [ebp - 0x138]
je 0x4637ed
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp - 0x144]
mov dword [edx + 0x28], eax
jmp 0x4637ed
cmp cl, 0x13
jne 0x4637e7
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x4637e7
movzx ecx, word [ebx + 2]
push 4
pop eax
cmp cx, ax
jne 0x463e91
xor eax, eax
mov dword [ebp - 0x144], eax
jmp 0x45e79f
mov edx, dword [ebp - 0x138]
xor eax, eax
inc eax
add dword [edi + 0x28], eax
push 0
pop eax
adc dword [edi + 0x2c], eax
test ecx, ecx
jne 0x45ea3d
jmp 0x45e79f
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebx + 4]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x45e655
mov edx, ebx
mov ecx, edi
call fcn.0045e304
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x138]
add edx, edx
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, dword [ecx + edx*8 + 4]
mov edx, eax
cmp dword [ebx + 0xc], eax
je 0x463866
mov ecx, esi
call fcn.0044f74f
mov edx, eax
cmp edx, dword [ebx + 0xc]
cmovb edx, dword [ebx + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edx, edx
je 0x46387d
mov dword [eax + 0xa0], edx
mov eax, dword [eax + 0xa0]
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], eax
jmp 0x45e82b
imul edi, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edi, dword [ebp - 0x140]
cmp dword [esi], edi
je 0x4638dd
mov eax, dword [ebp - 0x13c]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x15c]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x4638dd
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, dword [ebp - 0x140]
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x4638c3
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x463964
jle 0x46393b
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.00458b63
mov edi, dword [ebp - 0x13c]
push eax
push 0x4d29f0
push edi
call fcn.0045903c
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x144], eax
jmp 0x463941
mov edi, dword [ebp - 0x13c]
push dword [ebx + 4]
mov ecx, dword [ebp - 0x138]
lea edx, [edi + 0xe4]
push dword [esi + 0x10]
call fcn.0045b16c
pop ecx
xor eax, eax
pop ecx
mov dword [esi + 0x14], eax
jmp 0x460c8d
mov esi, dword [ebp - 0x140]
jmp 0x45f567
imul eax, dword [ebx + 4], 0x28
mov ecx, 0xf7ff
and word [eax + esi + 0x10], cx
jmp 0x45e7a5
imul edi, dword [ebx + 4], 0x28
mov edx, ebx
mov ecx, esi
add edi, esi
call fcn.0045e329
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004b1560
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [edi + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x45e82b
imul ebx, dword [ebx + 4], 0x28
mov ecx, esi
mov edx, dword [ebp - 0x158]
add ebx, esi
call fcn.0045e329
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004b1560
mov ecx, dword [ebx + 8]
mov edi, eax
mov ebx, dword [ebp - 0x158]
mov esi, edi
shrd esi, edx, 3
xor eax, eax
and edi, 7
inc eax
movsx edx, byte [esi + ecx]
mov ecx, edi
shl eax, cl
test eax, edx
jne 0x463a15
mov eax, dword [ebp - 0x13c]
inc dword [eax + 0xc4]
jmp 0x463b2f
mov edi, dword [ebp - 0x13c]
inc dword [edi + 0xc0]
jmp 0x45e79f
mov eax, dword [ebp - 0x138]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x463aea
cmp byte [edi + 0x93], 0xfe
je 0x463aea
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x463a5a
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x463aea
test cl, 0x40
je 0x463a88
mov edx, eax
mov ecx, edi
call fcn.0045dd1c
mov esi, eax
mov eax, dword [ebp - 0x138]
push esi
push dword [eax + 0xdc]
call dword [eax + 0xd8]
push esi
call fcn.0043eeb4
add esp, 0xc
jmp 0x463ad1
mov ecx, dword [ebp - 0x138]
xor edx, edx
inc edx
push eax
cmp dword [ecx + 0xc8], edx
jle 0x463ad9
push str.____s
push ecx
call fcn.00440d10
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x138]
xor ecx, ecx
inc ecx
push esi
push edi
push dword [eax + 0xdc]
push ecx
call dword [eax + 0xd8]
push esi
push dword [ebp - 0x138]
call fcn.0043ef99
add esp, 0x18
mov esi, dword [ebp - 0x140]
jmp 0x463aea
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x4e2b04]
jl 0x463b25
cmp byte [ebx], 0xb5
je 0x45e7a5
xor eax, eax
inc eax
mov edx, eax
cmp dword [edi + 0x6c], eax
jle 0x463b23
push 0x14
pop esi
mov eax, esi
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x463b1b
and dword [eax + ecx + 4], 0
inc edx
add eax, esi
cmp edx, dword [edi + 0x6c]
jl 0x463b0d
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [edi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x134]
add ebx, 0xffffffec
add ebx, eax
jmp 0x45e82b
mov edi, dword [ebp - 0x13c]
jmp 0x45e59e
mov ecx, dword [ebx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
test ecx, ecx
je 0x463bdc
movzx eax, word [ebx + 2]
test ax, ax
je 0x463ba3
push dword [eax*4 + 0x4cc2f4]
push str._s_constraint_failed
push edi
call fcn.0045903c
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x463bb4
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x138]
call fcn.00440d10
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x463bb4
push dword [ebx + 0x10]
push 0x4d29f0
push edi
call fcn.0045903c
add esp, 0xc
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc8]
sub eax, dword [ebp - 0x134]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.00440ec2
add esp, 0x14
mov ecx, edi
call fcn.0045ad6a
mov edx, dword [ebp - 0x138]
mov ecx, eax
mov esi, dword [ebp - 0x134]
push 5
pop eax
mov dword [ebp - 0x144], ecx
cmp ecx, eax
jne 0x463c06
mov dword [edi + 0x24], eax
jmp 0x46414b
push 0x65
pop ecx
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne ecx, eax
mov dword [ebp - 0x144], ecx
jmp 0x46414b
mov ecx, 0x16a1c
call fcn.004a845a
mov ecx, eax
mov dword [ebp - 0x144], ecx
mov edi, dword [ebp - 0x13c]
mov edx, dword [ebp - 0x138]
jmp 0x45ea43
mov eax, dword [ebp - 0x148]
and edx, 0x3f
mov ecx, dword [ebp - 0x14]
add eax, eax
mov edi, dword [ebp - 0x13c]
push dword [ecx + eax*8]
mov eax, dword [ebp - 0x14c]
push dword [eax]
movzx eax, byte [edx + 0x4d0260]
push dword [esi*4 + 0x4e3844]
push dword [eax*4 + 0x4cef54]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0045903c
add esp, 0x18
mov ecx, 0xc13
jmp 0x45f17d
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [ebp - 0x13c]
push edi
call fcn.0045903c
pop ecx
pop ecx
push 5
jmp 0x45f17a
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x463c93
mov esi, dword [ebp - 0x134]
mov eax, ebx
sub eax, esi
cdq
idiv dword [ebp - 0x188]
mov dword [edi + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x138]
mov dword [ebp - 0x144], ecx
mov byte [edx + 0x55], al
mov dword [edi + 0x24], ecx
jmp 0x46414b
and edx, esi
xor eax, eax
mov esi, dword [ebp - 0x134]
or edx, eax
mov edx, dword [ebp - 0x138]
je 0x463cf7
push 8
pop eax
mov ecx, eax
jmp 0x463cfa
push 0xb
pop ecx
mov dword [ebp - 0x144], ecx
jmp 0x45ea43
mov esi, dword [ebp - 0x134]
cmp cl, 5
jne 0x463c31
mov eax, ebx
sub eax, esi
push 0x14
pop edi
cdq
idiv edi
mov edi, dword [ebp - 0x13c]
mov dword [edi + 0x24], ecx
jmp 0x463f0b
mov ecx, 0x204
jmp 0x45f17d
mov ecx, dword [esi + 0x10]
call fcn.0044fe33
mov ecx, dword [ebp - 0x144]
mov edi, dword [ebp - 0x13c]
jmp 0x45ea37
mov edi, dword [ebp - 0x13c]
push str.string_or_blob_too_big
push edi
call fcn.0045903c
pop ecx
pop ecx
push 0x12
pop ecx
jmp 0x45f17d
push str.index_corruption
mov edx, 0x17708
mov ecx, 0x30b
call fcn.004a8438
pop ecx
mov ecx, eax
jmp 0x461834
push 0x4d82cc
push 0x177d5
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00440ec2
add esp, 0x14
push 0xb
jmp 0x463d64
mov edi, dword [ebp - 0x13c]
push 6
pop ecx
push 2
pop eax
mov dword [ebp - 0x144], ecx
mov byte [edi + 0x92], al
jmp 0x45ea3d
mov dword [ebp - 0x144], 7
mov ecx, dword [ebp - 0x138]
call fcn.004745f2
mov ecx, dword [ebp - 0x144]
cmp ecx, 7
je 0x45fd60
jmp 0x45ea37
mov edi, dword [ebp - 0x13c]
xor eax, eax
inc eax
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0x144], eax
call fcn.0045903c
pop ecx
pop ecx
mov ecx, dword [ebp - 0x144]
jmp 0x45ea37
xor eax, eax
lea edx, [eax + 1]
call fcn.00458b63
push eax
push 0x4d29f0
mov edi, dword [ebp - 0x13c]
push edi
call fcn.0045903c
add esp, 0xc
jmp 0x463e0a
push 5
pop edx
xor eax, eax
mov ecx, str.out_of
inc eax
cmp esi, edx
mov dword [ebp - 0x144], eax
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x463e25
push dword [ebp - 0xdc]
call dword [edi + 0x1c]
pop ecx
jmp 0x45fd5a
mov edi, dword [ebp - 0x13c]
push 6
jmp 0x463d64
or dword [ebp - 0x170], 0xffffffff
or dword [ebp - 0x17c], 0xffffffff
push 9
pop ecx
mov dword [ebp - 0x144], ecx
jmp 0x45ea3d
push 5
pop edx
movzx eax, cl
cmp cx, dx
push 2
pop ecx
cmove eax, ecx
mov byte [edi + 0x92], al
jmp 0x463e0a
mov eax, dword [edi + 0x1c]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov ecx, dword [ebp - 0x138]
mov dword [edi + 0x1c], eax
imul eax, dword [ebx + 4], 0x28
add eax, esi
mov dword [edi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x45fd66
push 4
pop edx
test byte [ecx + 0x5e], dl
je 0x463ef0
xor eax, eax
push eax
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov esi, dword [ebp - 0x134]
mov eax, ebx
sub eax, esi
mov dword [ebp - 0x144], 0x64
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov edx, dword [ebp - 0x138]
mov dword [edi + 0x20], eax
jmp 0x46414b
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x44], edx
lea esi, [ecx + 0x55]
movzx eax, byte [esi]
cmp edx, eax
je 0x463fe1
test edi, edi
je 0x463f51
mov edx, 0x204
call fcn.004a6c95
mov edi, dword [ebp - 0x13c]
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x463f8e
test edx, edx
je 0x463f69
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x463f69
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x463c93
mov edi, dword [ebp - 0x13c]
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.0045acfc
mov ecx, eax
mov dword [ebp - 0x144], ecx
test ecx, ecx
jne 0x46413f
mov al, byte [ebp - 0x44]
mov ecx, edi
mov byte [esi], al
call fcn.0045ad6a
push 5
pop ecx
cmp eax, ecx
jne 0x463fbd
mov esi, dword [ebp - 0x134]
mov eax, ebx
sub eax, esi
cdq
idiv dword [ebp - 0x188]
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x44]
jmp 0x463cc5
mov ecx, dword [ebp - 0x138]
call fcn.004a6876
push 0x65
pop ecx
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne ecx, eax
mov dword [ebp - 0x144], ecx
jmp 0x46413f
test edi, edi
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [ebp - 0x13c]
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.0045903c
pop ecx
pop ecx
jmp 0x460724
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x180], eax
push 9
jmp 0x463d64
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x180], eax
jmp 0x45fd60
cmp ecx, 0x210a
jne 0x46406d
push 0x4d82cc
push 0x18069
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00440ec2
add esp, 0x14
push 0xb
pop ecx
mov dword [ebp - 0x144], ecx
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x464090
cmp ecx, 0xc0a
je 0x464090
call fcn.004a6d8c
push eax
push 0x4d29f0
push edi
call fcn.0045903c
add esp, 0xc
mov eax, dword [ebp - 0x144]
mov dword [edi + 0x24], eax
cmp eax, 0xc0a
je 0x4640c3
movzx eax, al
cmp eax, 0xe
je 0x4640ad
cmp eax, 0xa
jne 0x4640c3
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax]
call fcn.0043e986
mov ecx, dword [ebp - 0x138]
mov dword [ecx + 0x4c], eax
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc8]
sub eax, esi
mov esi, dword [ebp - 0x144]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.00440ec2
add esp, 0x14
push 2
pop ecx
cmp byte [edi + 0x95], cl
jne 0x464100
mov ecx, edi
call fcn.0045ad6a
push 2
pop ecx
cmp esi, 0xc0a
jne 0x4641b6
mov ecx, dword [ebp - 0x138]
call fcn.0043f47b
mov edx, dword [ebp - 0x138]
xor eax, eax
inc eax
mov dword [ebp - 0x144], eax
mov al, byte [ebp - 0x169]
test al, al
je 0x464145
mov ecx, dword [ebp - 0x138]
movzx edx, al
dec edx
call fcn.0047458e
mov edx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x184]
cmp eax, dword [ebp - 0x17c]
jb 0x4641dd
mov ecx, dword [ebp - 0x170]
ja 0x46416d
cmp dword [ebp - 0x180], ecx
jb 0x4641dd
mov eax, dword [edx + 0x174]
test eax, eax
je 0x4641dd
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x170], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x17c], ecx
call eax
mov edx, dword [ebp - 0x138]
pop ecx
test eax, eax
je 0x46414b
or eax, 0xffffffff
or dword [ebp - 0x17c], 0xffffffff
mov dword [ebp - 0x170], eax
push 9
jmp 0x463cf9
cmp esi, 0xb
jne 0x464117
mov edx, dword [ebp - 0x138]
cmp byte [edx + 0x55], 0
jne 0x46411d
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x46411d
mov ecx, dword [ebp - 0x180]
add dword [edi + 0xb4], ecx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x144]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004b0ce6
leave
ret