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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f4
mov eax, dword [0x8d3fc4]
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 - 0x14], edi
mov esi, ecx
mov byte [ebp - 0x75], cl
mov dword [ebp - 0x70], ecx
mov ecx, edi
mov eax, dword [edi + 0x68]
mov ebx, eax
mov dword [ebp - 0x20], eax
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], esi
movlpd qword [ebp - 0xa0], xmm0
mov al, byte [eax + 0x54]
mov byte [ebp - 0x64], al
mov eax, dword [edi + 0x58]
mov dword [ebp - 0x24], eax
call fcn.0046c4b8
mov edx, dword [ebp - 0x18]
xor eax, eax
cmp dword [edx + 0x174], eax
je 0x47118c
mov ecx, dword [edx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov edx, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], eax
jmp 0x47119d
or eax, 0xffffffff
mov dword [ebp - 0x80], eax
or eax, 0xffffffff
mov dword [ebp - 0x84], eax
xor eax, eax
cmp dword [edi + 0x24], 7
mov dword [ebp - 0x10c], 0x14
je 0x476644
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 0x476625
imul ebx, dword [edi + 0x20], 0x14
xorps xmm0, xmm0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x120], 0xf241
add ebx, eax
movsd qword [ebp - 0x130], xmm0
add ecx, 1
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x88], ecx
push 0
pop ecx
adc edx, ecx
mov cl, byte [ebx]
mov dword [ebp - 0xa4], edx
movzx edx, cl
mov byte [ebp - 0x49], cl
mov dword [ebp - 0x2c], edx
cmp edx, 0xb5
ja case.0x471227.89
jmp dword [edx*4 + 0x4767de]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
add ecx, dword [ebp - 0x24]
mov word [ecx + 0x10], ax
mov eax, ebx
sub eax, dword [ebp - 0x20]
cdq
idiv dword [ebp - 0x10c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x471227.9
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0x24]
test byte [eax + 0x10], cl
je 0x4714d6
imul ebx, dword [eax], 0x14
mov eax, dword [ebp - 0x20]
add ebx, eax
jmp case.0x471227.89
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [ebp - 0x24]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 0x10], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x473db5
jmp 0x4714d6
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x24]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
xor eax, eax
mov word [ecx + 0x10], ax
jmp 0x4714d6
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 - 0x24]
cdq
mov word [esi + 0x10], cx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x1c]
add ebx, eax
jmp case.0x471227.89
imul eax, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x4714d6
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x476200
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x476200
mov eax, dword [edx + 4]
mov ecx, dword [edi + 0x2c]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
mov eax, dword [edi + 0x28]
mov edi, dword [ebp - 0x18]
add dword [edi + 0x70], eax
mov dword [edi + 0x68], eax
mov eax, edi
mov dword [edi + 0x6c], ecx
adc dword [eax + 0x74], ecx
mov ecx, edx
call fcn.0046cd69
mov edi, dword [ebp - 0x14]
push 4
pop ecx
mov edx, dword [edi + 0x68]
mov dword [ebp - 0x20], edx
cmp dword [ebx + 8], ecx
jne 0x471360
imul eax, eax, 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov ecx, dword [edi + 0x58]
imul ebx, eax, 0x14
mov dword [ebp - 0x24], ecx
add ebx, edx
jmp 0x4714d6
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4714d6
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4714d6
mov edx, ebx
mov ecx, edi
call fcn.00471066
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x4714d6
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edx, dword [ebx + 0x10]
mov edi, eax
test edx, edx
jne 0x4713dc
xor eax, eax
mov ecx, eax
jmp 0x4713f6
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4713e4
sub ecx, dword [ebp - 0x3c]
and ecx, 0x3fffffff
xor eax, eax
cmp byte [ebp - 0x64], 1
mov dword [ebx + 4], ecx
je 0x471463
push eax
xor eax, eax
mov ecx, edi
inc eax
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0046b029
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x4763c3
movzx edx, byte [ebp - 0x64]
mov ecx, edi
call fcn.0046a60e
test eax, eax
jne 0x4715ac
mov dword [edi + 0x18], eax
mov eax, 0x2000
or word [edi + 0x10], ax
cmp byte [ebx + 1], 0xfa
jne 0x471453
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x471453
mov ecx, dword [ebp - 0x18]
call fcn.00450d17
mov byte [ebx + 1], 0xfa
mov eax, dword [edi + 8]
mov dword [ebx + 0x10], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x4763c6
mov byte [ebx], 0x49
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edi, eax
mov eax, 0x2202
mov word [edi + 0x10], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x64]
mov dword [edi + 8], ecx
mov ecx, dword [ebx + 4]
mov dword [edi + 0xc], ecx
mov byte [edi + 0x12], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x476021
mov esi, dword [ebp - 0x24]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + esi], eax
mov esi, dword [ebp - 0x1c]
jne 0x476021
mov eax, dword [ebp - 0x24]
cmp dword [ecx + eax + 4], edx
jne 0x476021
mov eax, 0x2210
mov word [edi + 0x10], ax
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xa4]
push 0x14
pop ecx
add ebx, ecx
mov ecx, dword [ebp - 0x88]
jmp 0x4711f9
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebx + 0xc]
mov edi, 0x101
mov edx, dword [ebx + 8]
mov dword [ebp - 0x50], ecx
xor ecx, ecx
inc ecx
cmp dword [ebx + 4], 0
cmovne ecx, edi
and dword [eax + 0xc], 0
lea edi, [eax + 0x10]
movzx ecx, cx
mov eax, dword [ebp - 0x50]
sub eax, edx
mov dword [ebp - 0x3c], ecx
mov word [edi], cx
mov dword [ebp - 0x50], eax
test eax, eax
jle 0x476021
xor edx, edx
mov ebx, 0x9000
lea edi, [edi + 0x28]
test word [edi], bx
je 0x47154f
lea ecx, [edi - 0x10]
call fcn.0046a954
mov eax, dword [ebp - 0x50]
xor edx, edx
mov ecx, dword [ebp - 0x3c]
dec eax
mov word [edi], cx
mov dword [edi - 4], edx
mov dword [ebp - 0x50], eax
test eax, eax
jg 0x471537
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
jmp 0x4714d3
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xffc1
add ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x10]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x4712b4
mov edx, ebx
mov ecx, edi
call fcn.00471066
cmp dword [ebx + 0x10], 0
mov edi, eax
mov ecx, edi
jne 0x4715cb
mov edx, dword [ebx + 4]
call fcn.0046adcc
mov ecx, edi
call fcn.0046a7d4
test eax, eax
je 0x4715e0
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.004512ff
push str.out_of_memory
push edi
call fcn.0046b818
pop ecx
pop ecx
push 7
jmp 0x4763d5
xor eax, eax
push eax
push eax
mov eax, dword [ebx + 4]
cdq
push edx
mov edx, dword [ebx + 0x10]
push eax
call fcn.0046b029
add esp, 0x10
mov dl, byte [ebp - 0x64]
mov byte [edi + 0x12], dl
jmp 0x4714d3
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.0046af01
test eax, eax
jne 0x4763c6
imul edx, dword [ebx + 8], 0x28
mov eax, 0x9000
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], edx
test word [edx + 0x10], ax
je 0x471625
mov ecx, edx
call fcn.0046a954
mov edx, dword [ebp - 0x3c]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 0x10]
mov ecx, 0xafff
and ax, cx
mov ecx, 0x2040
or ax, cx
mov word [edx + 0x10], ax
jmp 0x471560
mov eax, dword [ebx + 0xc]
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x54], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov edx, eax
mov ecx, edi
call fcn.0046b007
mov eax, 0x4000
test word [edi + 0x10], ax
je 0x471685
mov ecx, edi
call fcn.0046a78e
test eax, eax
jne 0x4715ac
mov eax, dword [ebp - 0x28]
add edi, 0x28
add eax, 0x28
sub dword [ebp - 0x54], 1
mov dword [ebp - 0x28], eax
jne 0x471662
jmp 0x4714d3
imul edi, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x28], eax
add edi, dword [ebp - 0x24]
add esi, dword [ebp - 0x24]
mov eax, 0x4000
mov edx, edi
push eax
mov ecx, esi
call fcn.0046af45
mov eax, 0x4000
pop ecx
test word [esi + 0x10], ax
je 0x4716da
mov ecx, esi
call fcn.0046a78e
test eax, eax
jne 0x4715ac
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x4716f8
push 2
pop ecx
test byte [ebx + 2], cl
je 0x4716f8
mov ecx, 0xf7ff
and eax, ecx
mov word [esi + 0x10], ax
mov ecx, dword [ebp - 0x28]
mov eax, ecx
dec ecx
mov dword [ebp - 0x28], ecx
test eax, eax
je 0x476021
add esi, 0x28
add edi, 0x28
jmp 0x4716b0
imul edx, dword [ebx + 4], 0x28
mov eax, 0x4000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
call fcn.0046af45
pop ecx
jmp 0x4714d6
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
mov edx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x24]
add ecx, edx
mov edx, dword [eax + edx]
mov eax, dword [eax + edi + 4]
mov edi, 0x9000
test word [ecx + 0x10], di
mov edi, dword [ebp - 0x14]
je 0x47175f
push eax
push edx
call fcn.0046adfa
pop ecx
jmp 0x47172a
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
jmp 0x4712b4
xor edx, edx
mov ecx, edi
call fcn.0046d646
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
mov esi, dword [ebp - 0x1c]
jmp 0x4714d6
imul edx, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x24]
imul ecx, dword [ebx + 8], 0x28
imul edi, dword [ebx + 0xc], 0x28
add edx, eax
mov dword [ebp - 0x2c], edx
add ecx, eax
add edi, eax
mov dword [ebp - 0x30], ecx
movzx eax, word [edx + 0x10]
mov dword [ebp - 0x34], eax
mov al, byte [ecx + 0x10]
or al, byte [ebp - 0x34]
test al, 1
je 0x4717d9
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4717cd
mov ecx, edi
call fcn.0046a954
jmp 0x4714d3
xor ecx, ecx
inc ecx
mov word [edi + 0x10], cx
jmp 0x4714d3
mov eax, dword [ebp - 0x34]
test al, 0x12
jne 0x47180e
mov dl, byte [ebp - 0x64]
xor eax, eax
mov ecx, dword [ebp - 0x2c]
push eax
call fcn.0046a81f
pop ecx
test eax, eax
jne 0x4715ac
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx edx, ax
mov dword [ebp - 0x34], edx
jmp 0x471839
test eax, 0x400
je 0x47183c
mov ecx, edx
call fcn.0046a7d4
test eax, eax
jne 0x4715ac
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x30]
movzx eax, word [ecx + 0x10]
mov dword [ebp - 0x28], eax
test al, 0x12
jne 0x471855
mov dl, byte [ebp - 0x64]
xor eax, eax
push eax
call fcn.0046a81f
pop ecx
jmp 0x471860
bt eax, 0xa
jae 0x47187d
call fcn.0046a7d4
test eax, eax
jne 0x4715ac
mov ecx, dword [ebp - 0x30]
mov ax, word [ecx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0xc]
add eax, ecx
mov dword [ebp - 0x3c], eax
cdq
mov ecx, eax
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x6c], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x54], edx
jg 0x4763c3
jl 0x4718b1
cmp ecx, eax
ja 0x4763c3
mov edx, dword [ebp - 0x3c]
xor eax, eax
cmp edi, dword [ebp - 0x30]
mov ecx, edi
sete al
add edx, 2
push eax
call fcn.0046a627
pop ecx
test eax, eax
jne 0x4715ac
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
push 2
pop ecx
or ax, cx
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x30]
cmp edi, eax
je 0x471908
push dword [eax + 0xc]
push dword [eax + 8]
push dword [edi + 8]
call fcn.00718720
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov ecx, dword [ebp - 0x28]
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 8]
push dword [ecx + 0xc]
push dword [ecx + 8]
push eax
call fcn.00718720
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
mov dl, byte [ebp - 0x64]
mov word [eax + 0x10], cx
xor eax, eax
mov ecx, dword [ebp - 0x6c]
inc eax
cmp dl, al
jbe 0x471940
mov eax, dword [ebp - 0x54]
and ecx, 0xfffffffe
mov dword [ebp - 0x44], 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
jmp 0x4715e3
imul eax, dword [ebx + 4], 0x28
mov edi, dword [ebp - 0x14]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x2c], eax
movzx edx, word [eax + 0x10]
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
movzx ecx, word [eax + 0x10]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x54], eax
mov al, cl
and al, dl
test al, 4
jne 0x4719c3
or cl, dl
xor edx, edx
inc edx
test dl, cl
jne 0x471c19
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.00471041
mov ecx, dword [ebp - 0x50]
movzx ebx, ax
call fcn.00471041
push 4
and al, bl
mov ebx, dword [ebp - 0x30]
pop ecx
test cl, al
je 0x471b48
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x94], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x98], ecx
sub eax, 0x6a
je 0x471a89
sub eax, 1
je 0x471a70
sub eax, 1
je 0x471a61
sub eax, 1
mov eax, edx
je 0x471a30
or eax, edi
je 0x471c13
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x471a1a
xor eax, eax
mov edi, eax
lea edx, [eax + 1]
push edi
push edx
push dword [ebp - 0x30]
push ecx
call fcn.007014e0
mov dword [ebp - 0x98], eax
jmp 0x471ad0
or eax, edi
je 0x471c13
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x471a54
xor eax, eax
cmp ecx, eax
jne 0x471a54
cmp dword [ebp - 0x30], 0x80000000
je 0x471b45
push edi
push edx
push dword [ebp - 0x30]
push ecx
call fcn.00700ff0
jmp 0x471a25
push edi
push edx
lea ecx, [ebp - 0x98]
call fcn.00454d05
jmp 0x471a7d
push edi
push edx
lea ecx, [ebp - 0x98]
call fcn.00454cb7
pop ecx
pop ecx
test eax, eax
jne 0x471b45
jmp 0x471ad6
xor eax, eax
cmp edi, eax
jl 0x471b08
jg 0x471a95
cmp edx, eax
jb 0x471b08
cmp dword [ebp - 0x30], eax
jl 0x471ac3
jg 0x471aa0
cmp ecx, eax
jbe 0x471ac3
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, dword [ebp - 0x34]
sbb eax, dword [ebp - 0x30]
cmp eax, edi
jg 0x471ac0
jl 0x471b45
cmp ecx, edx
jb 0x471b45
mov ecx, dword [ebp - 0x34]
add ecx, edx
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x98], ecx
adc edx, edi
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x98]
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 0x4714d3
mov eax, dword [ebp - 0x30]
test eax, eax
jg 0x471ac3
jl 0x471b15
test ecx, ecx
jae 0x471ac3
mov dword [ebp - 0x28], 1
sub dword [ebp - 0x28], ecx
mov ecx, 0x80000000
sbb ecx, eax
mov eax, edx
add eax, 1
mov dword [ebp - 0x3c], eax
mov eax, edi
adc eax, 0
cmp ecx, eax
jl 0x471ac0
jg 0x471b45
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x3c]
jbe 0x471ac0
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.0046aaaf
mov ecx, dword [ebp - 0x50]
movsd qword [ebp - 0x48], xmm0
call fcn.0046aaaf
movzx eax, byte [ebx]
sub eax, 0x6a
je 0x471bec
sub eax, 1
je 0x471be5
sub eax, 1
je 0x471bde
sub eax, 1
je 0x471bc5
mov ecx, edi
call fcn.0046aa42
mov ecx, dword [ebp - 0x50]
mov edi, eax
mov dword [ebp - 0x3c], edx
call fcn.0046aa42
mov dword [ebp - 0x98], eax
mov ecx, edi
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov dword [ebp - 0x94], edx
je 0x471c13
mov ecx, edi
and ecx, eax
cmp ecx, 0xffffffff
jne 0x471bae
xor eax, eax
lea edi, [eax + 1]
push eax
push edi
push edx
push dword [ebp - 0x98]
call fcn.007014e0
mov ecx, eax
call fcn.00701b90
jmp 0x471bf1
movsd xmm1, qword [ebp - 0x48]
ucomisd xmm1, qword [ebp - 0x130]
lahf
test ah, 0x44
jnp 0x471c13
divsd xmm0, xmm1
jmp 0x471bf1
mulsd xmm0, qword [ebp - 0x48]
jmp 0x471bf1
subsd xmm0, qword [ebp - 0x48]
jmp 0x471bf1
addsd xmm0, qword [ebp - 0x48]
movsd qword [ebp - 0x48], xmm0
mov edi, 0x7ff00000
mov ecx, dword [ebp - 0x44]
mov eax, ecx
and eax, edi
cmp eax, edi
jne 0x471c3c
mov eax, dword [ebp - 0x48]
and ecx, 0xfffff
or eax, ecx
je 0x471c3c
mov edi, dword [ebp - 0x14]
xor edx, edx
inc edx
mov eax, dword [ebp - 0x54]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x471c33
mov ecx, eax
call fcn.0046a954
jmp 0x4714d6
mov word [eax + 0x10], dx
jmp 0x4714d6
mov edx, dword [ebp - 0x54]
mov ecx, 0xf248
push 8
movsd qword [edx], xmm0
jmp 0x471af1
mov eax, dword [ebx + 4]
test eax, eax
je 0x4714d6
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x471c76
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x471757
xor edx, edx
push 4
mov dword [eax], edx
mov dword [eax + 4], edx
pop ecx
mov word [eax + 0x10], cx
jmp 0x4714d6
imul ecx, dword [ebx + 8], 0x28
imul edi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0x24]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add edi, eax
add edx, eax
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
mov dword [ebp - 0x54], edx
test al, 1
je 0x471cc1
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x474645
mov ecx, edx
jmp 0x4717c3
call fcn.0046aa42
mov ecx, edi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], edx
call fcn.0046aa42
mov cl, byte [ebx]
mov edi, eax
cmp cl, 0x66
jne 0x471ceb
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
and ecx, edi
and eax, edx
jmp 0x471dbd
cmp cl, 0x67
jne 0x471cff
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
or ecx, edi
or eax, edx
jmp 0x471dbd
mov eax, edi
or eax, edx
je 0x471db7
xor eax, eax
cmp edx, eax
jg 0x471d55
jl 0x471d15
cmp edi, eax
jae 0x471d30
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x471d53
jg 0x471d27
cmp edi, 0xffffffc0
jbe 0x471d53
neg edi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x471d3b
jg 0x471d55
cmp edi, 0x40
jae 0x471d55
mov eax, dword [ebp - 0x2c]
cmp cl, 0x68
mov edx, dword [ebp - 0x30]
mov ecx, edi
jne 0x471d7d
call fcn.007851d0
mov ecx, eax
mov eax, edx
jmp 0x471dbd
xor eax, eax
cmp dword [ebp - 0x30], eax
jg 0x471d6d
jl 0x471d61
cmp dword [ebp - 0x2c], eax
jae 0x471d6d
cmp cl, 0x68
je 0x471d6d
or ecx, 0xffffffff
or eax, ecx
jmp 0x471dbd
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
jmp 0x471dbd
call fcn.007851f0
mov ecx, eax
mov eax, edx
xor edx, edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x30], edx
jg 0x471dbd
jl 0x471d9a
cmp dword [ebp - 0x2c], edx
jae 0x471dbd
push 0x40
pop ecx
sub ecx, edi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.007851d0
mov ecx, dword [ebp - 0x3c]
or ecx, eax
mov eax, dword [ebp - 0x28]
jmp 0x471cf8
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x54]
push 4
mov dword [edx + 4], eax
mov ax, word [edx + 0x10]
mov dword [edx], ecx
mov ecx, 0xf244
and ax, cx
pop ecx
or ax, cx
jmp 0x471aff
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046ab66
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x471782
imul edi, dword [ebx + 4], 0x28
push 4
pop edx
add edi, dword [ebp - 0x24]
movzx eax, word [edi + 0x10]
mov ecx, eax
test dl, al
jne 0x471e41
push dword [ebp - 0x64]
mov dl, 0x43
mov ecx, edi
call fcn.00470f1e
movzx eax, word [edi + 0x10]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x471e41
mov edi, dword [ebp - 0x14]
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x473db5
push 0x14
pop eax
mov ecx, eax
mov dword [ebp - 0x1c], ecx
jmp 0x473bda
mov eax, 0xf244
push 4
and ecx, eax
pop eax
or ecx, eax
jmp 0x4717d0
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
test byte [ecx + 0x10], 0x24
je case.0x471227.89
call fcn.0046ab8b
jmp 0x4714d6
imul esi, dword [ebx + 4], 0x28
mov eax, 0x400
add esi, dword [ebp - 0x24]
test word [esi + 0x10], ax
je 0x471e93
mov ecx, esi
call fcn.0046a7d4
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
push dword [ebp - 0x64]
mov dl, byte [ebx + 8]
mov ecx, esi
call fcn.0046accb
pop ecx
jmp 0x471775
imul eax, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
movzx eax, word [eax + 0x10]
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x30], eax
mov eax, ecx
and eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ecx
test al, 4
je 0x471f36
mov eax, dword [ebp - 0x34]
mov ecx, dword [edi + 4]
cmp ecx, dword [eax + 4]
jl 0x471efc
jg 0x471ee1
mov edi, dword [edi]
cmp edi, dword [eax]
jbe 0x471efe
cmp byte [edx + 0x85b018], 0
mov edi, dword [ebp - 0x14]
jne 0x473db5
xor ecx, ecx
inc ecx
mov dword [ebp - 0x70], ecx
jmp 0x4714d6
mov edi, dword [edi]
cmp ecx, dword [eax + 4]
jg 0x471f22
jl 0x471f09
cmp edi, dword [eax]
jae 0x471f22
cmp byte [edx + 0x85b00c], 0
mov edi, dword [ebp - 0x14]
jne 0x473db5
or dword [ebp - 0x70], 0xffffffff
jmp 0x4714d6
cmp byte [edx + 0x85b012], 0
mov edi, dword [ebp - 0x14]
jne 0x473db5
xor ecx, ecx
jmp 0x471ef4
mov edx, ecx
or edx, dword [ebp - 0x30]
test dl, 1
je 0x471f91
movzx edx, word [ebx + 2]
test dl, dl
jns 0x471f78
xor edx, edx
inc edx
test dl, al
je 0x471f60
test ecx, 0x100
jne 0x471f60
xor eax, eax
mov edx, eax
mov dword [ebp - 0x70], eax
jmp 0x471f70
mov eax, ecx
not eax
and eax, edx
lea edx, [eax*2 - 1]
mov dword [ebp - 0x70], edx
mov al, byte [ebp - 0x49]
jmp 0x472085
mov edi, dword [ebp - 0x14]
push 0x10
pop eax
test al, dl
jne 0x473db5
xor eax, eax
inc eax
mov dword [ebp - 0x70], eax
jmp 0x4714d6
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x471fdf
push 2
pop eax
test al, dl
je 0x47206d
mov al, byte [ebp - 0x30]
push 2
and al, 0x2e
pop edx
cmp al, dl
jne 0x471fc2
mov ecx, dword [ebp - 0x34]
xor edx, edx
call fcn.00470e6a
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x2c], ecx
mov al, cl
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x47206d
xor edx, edx
mov ecx, edi
call fcn.00470e6a
jmp 0x47206d
cmp al, 0x42
jne 0x47206d
mov eax, dword [ebp - 0x30]
push 2
pop edx
test dl, al
jne 0x472036
test al, 0x2c
je 0x472036
mov dl, byte [ebp - 0x64]
xor eax, eax
mov ecx, dword [ebp - 0x34]
inc eax
push eax
call fcn.0046a81f
pop ecx
mov ecx, dword [ebp - 0x34]
mov edx, 0xdbf
mov ax, word [ecx + 0x10]
xor ax, word [ebp - 0x30]
and ax, dx
xor ax, word [ecx + 0x10]
movzx eax, ax
mov dword [ebp - 0x30], eax
cmp ecx, edi
jne 0x472033
push 2
pop ecx
or eax, ecx
movzx ecx, ax
mov dword [ebp - 0x2c], ecx
jmp 0x472036
mov ecx, dword [ebp - 0x2c]
push 2
pop eax
test al, cl
jne 0x47206d
test cl, 0x2c
je 0x47206d
mov dl, byte [ebp - 0x64]
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.0046a81f
mov ax, word [edi + 0x10]
pop ecx
mov ecx, dword [ebp - 0x2c]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [edi + 0x10]
movzx ecx, ax
mov dword [ebp - 0x2c], ecx
push dword [ebx + 0x10]
mov edx, dword [ebp - 0x34]
mov ecx, edi
call fcn.0046e219
mov edx, eax
mov al, byte [ebx]
pop ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x70], edx
movzx eax, al
test edx, edx
jns 0x472094
lea eax, [eax + 0x85b00c]
jmp 0x4720a4
jne 0x47209e
lea eax, [eax + 0x85b012]
jmp 0x4720a4
lea eax, [eax + 0x85b018]
mov al, byte [eax]
mov edx, dword [ebp - 0x30]
test al, al
mov word [edi + 0x10], cx
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
mov word [ecx + 0x10], dx
jmp 0x471290
cmp dword [ebp - 0x70], 0
je 0x473db5
jmp case.0x471227.89
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x4720d9
xor eax, eax
jmp 0x4720e1
mov eax, dword [ebx - 4]
push 4
pop ecx
add eax, ecx
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x50], edi
mov edi, dword [ebx + 8]
mov dword [ebp - 0x30], edi
xor edi, edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x6c], ecx
test edx, edx
jle 0x4714d3
lea edx, [ecx + 0x14]
mov dword [ebp - 0x28], edx
test eax, eax
je 0x472118
mov ecx, dword [eax + edi*4]
mov dword [ebp - 0x68], ecx
jmp 0x47211d
mov ecx, edi
mov dword [ebp - 0x68], edi
mov eax, dword [ebp - 0x6c]
push dword [edx]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + edi]
and eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
add eax, ecx
imul edx, eax, 0x28
mov eax, dword [ebp - 0x50]
add eax, ecx
imul ecx, eax, 0x28
add edx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
call fcn.0046e219
pop ecx
mov ecx, eax
mov dword [ebp - 0x70], ecx
test ecx, ecx
jne 0x47216d
mov edx, dword [ebp - 0x28]
inc edi
push 4
pop eax
add edx, eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x28], edx
cmp edi, dword [ebp - 0x3c]
jl 0x47210c
jmp 0x4714d3
mov eax, dword [ebp - 0x6c]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [edi + eax], dl
je 0x4721ae
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x68]
add eax, ecx
mov edx, dword [ebp - 0x24]
imul eax, eax, 0x28
test byte [eax + edx + 0x10], 1
jne 0x4721a1
mov eax, dword [ebp - 0x30]
add eax, ecx
xor ecx, ecx
imul eax, eax, 0x28
inc ecx
test byte [eax + edx + 0x10], cl
je 0x4721ab
mov ecx, dword [ebp - 0x70]
neg ecx
mov dword [ebp - 0x70], ecx
jmp 0x4721ae
mov ecx, dword [ebp - 0x70]
cmp dword [ebp - 0x2c], 0
mov edi, dword [ebp - 0x14]
je 0x471782
neg ecx
jmp 0x471ef4
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jns 0x4721cf
imul ebx, dword [ebx + 4], 0x14
jmp 0x4721db
jne 0x4721d7
imul ebx, dword [ebx + 8], 0x14
jmp 0x4721db
imul ebx, dword [ebx + 0xc], 0x14
add ebx, eax
add ebx, 0xffffffec
jmp case.0x471227.89
imul ecx, dword [ebx + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, dword [ebp - 0x24]
call fcn.0046aad6
imul ecx, dword [ebx + 8], 0x28
mov edi, eax
push 2
pop eax
mov edx, eax
add ecx, dword [ebp - 0x24]
call fcn.0046aad6
cmp byte [ebx], 0x2c
mov edx, eax
jne 0x47221c
imul ecx, edi, 3
mov al, byte [ecx + edx + 0x8592bc]
jmp 0x472226
imul eax, edi, 3
mov al, byte [eax + edx + 0x85dc9c]
imul edi, dword [ebx + 0xc], 0x28
push 2
pop edx
add edi, dword [ebp - 0x24]
movzx ecx, word [edi + 0x10]
cmp al, dl
jne 0x472247
mov eax, 0xf241
and ecx, eax
xor eax, eax
inc eax
jmp 0x471e4b
movzx eax, al
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x471e41
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x24]
call fcn.0046aad6
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x9000
xor eax, dword [ebx + 0x10]
cdq
add ecx, dword [ebp - 0x24]
test word [ecx + 0x10], di
mov edi, dword [ebp - 0x14]
je 0x472284
push edx
push eax
jmp 0x471757
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x471764
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
imul edi, dword [ebx + 8], 0x28
inc edx
add ecx, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
test byte [ecx + 0x10], dl
jne 0x4722dc
xor edx, edx
call fcn.0046aad6
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [edi + 0x10], cx
je 0x4722cd
xor ecx, ecx
push ecx
push eax
mov ecx, edi
call fcn.0046adfa
pop ecx
pop ecx
jmp 0x4714d3
mov dword [edi], eax
xor eax, eax
push 4
mov dword [edi + 4], eax
pop eax
jmp 0x4714cf
mov ecx, 0x9000
test word [edi + 0x10], cx
jne 0x4717c1
mov word [edi + 0x10], dx
mov edi, dword [ebp - 0x14]
jmp case.0x471227.89
imul edi, dword [ebx + 8], 0x28
mov ecx, 0x9000
imul eax, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
test word [edi + 0x10], cx
je 0x472322
mov ecx, edi
call fcn.0046a954
mov eax, dword [ebp - 0x3c]
xor edx, edx
inc edx
jmp 0x472329
xor edx, edx
inc edx
mov word [edi + 0x10], dx
test byte [eax + 0x10], dl
jne 0x476021
push 4
pop ecx
mov word [edi + 0x10], cx
mov ecx, eax
call fcn.0046aa42
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4714d3
cmp dword [edi + 0xd0], 0
je 0x47239d
mov eax, ebx
sub eax, dword [edi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
mov edx, dword [ebp - 0x14]
mov ecx, eax
mov edi, ecx
and ecx, 7
shr edi, 3
mov eax, dword [edx + 0xd0]
xor edx, edx
inc edx
shl edx, cl
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x3c], eax
movzx eax, byte [edi + eax]
test eax, edx
jne 0x473db2
bts eax, ecx
mov ecx, dword [ebp - 0x3c]
mov byte [edi + ecx], al
mov edi, dword [ebp - 0x14]
mov ecx, dword [edi + 0x68]
jmp 0x4723ac
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [ebx + 4]
je 0x473db5
mov eax, dword [ecx + 4]
mov dword [ebx + 4], eax
jmp 0x4714d6
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x24]
call fcn.0046aad6
test eax, eax
jmp 0x471290
xor edx, edx
xor eax, eax
cmp dword [ebx + 0xc], eax
sete dl
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
call fcn.0046aad6
test eax, eax
je 0x473db5
jmp 0x4714d6
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x471290
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x472442
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 0x47243d
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x472434
xor ecx, ecx
inc ecx
push 4
test cl, al
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x47245f
movzx eax, byte [eax + 0x85dc88]
jmp 0x472462
mov ecx, dword [ebx + 0x10]
jmp 0x472458
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
movzx eax, word [eax + ecx + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x85ddc0]
xor eax, eax
dec ecx
inc eax
shl ax, cl
movzx eax, ax
test word [ebx + 2], ax
jmp 0x471290
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
mov edx, dword [ebp - 0x24]
inc ecx
test byte [eax + edx + 0x10], cl
jne 0x472490
imul eax, dword [ebx + 0xc], 0x28
test byte [eax + edx + 0x10], cl
jne 0x472490
imul eax, dword [ebx + 8], 0x28
add eax, edx
jmp 0x471c60
imul eax, dword [ebx + 8], 0x28
add eax, edx
mov edx, 0x9000
test word [eax + 0x10], dx
je 0x471c80
jmp 0x471c27
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x4723e5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4714d6
cmp byte [eax + 2], 0
je 0x4714d6
imul eax, dword [ebx + 0xc], 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x24]
test word [eax + 0x10], cx
je 0x4724f6
mov ecx, eax
call fcn.0046a954
jmp 0x473db5
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
jmp 0x473db5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 8]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x54], esi
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x48]
mov dword [ebp - 0x2c], ecx
cmp eax, dword [edi + 0x1c]
je 0x472563
cmp byte [esi + 2], 0
jne 0x4725b8
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x3c], edi
je 0x472552
mov eax, dword [esi + 0x10]
test eax, eax
je 0x472588
mov eax, dword [eax + edx*4 + 4]
test eax, eax
je 0x472588
mov esi, dword [esi + 0x28]
lea edx, [eax - 1]
mov edi, dword [ebp - 0x14]
jmp 0x47250e
cmp byte [edi], 0
je 0x47259c
mov ecx, esi
call fcn.0046dc58
mov edi, dword [ebp - 0x14]
jmp 0x472576
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x472643
mov ecx, esi
call fcn.0046dc58
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
mov edx, dword [ebp - 0x34]
jmp 0x472514
mov ecx, esi
call fcn.0046dc18
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov ecx, edi
call fcn.00463bb8
mov eax, dword [edi + 0x2c]
lea edi, [esi + 0x54]
mov ecx, dword [ebp - 0x3c]
mov edx, edi
mov dword [esi + 0x50], eax
call fcn.0046404f
jmp 0x4725e0
cmp byte [esi], 3
jne 0x47270a
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x47270a
imul ecx, eax, 0x28
lea edi, [esi + 0x54]
add ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0xc]
mov dword [edi], eax
mov dword [esi + 0x50], eax
mov eax, dword [ecx + 8]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov dword [esi + 0x4c], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [ecx], eax
cmp eax, 0x80
jae 0x472603
xor eax, eax
inc eax
jmp 0x472613
mov edx, ecx
mov ecx, dword [esi + 0x4c]
call fcn.00454aaa
mov ecx, dword [ebp - 0x2c]
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov eax, dword [ecx]
cmp dword [edi], eax
jae 0x472701
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [edi], eax
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x472832
cmp eax, dword [esi + 0x50]
ja 0x472832
movzx edx, word [esi + 0x3e]
mov ecx, dword [ebp - 0x34]
mov eax, edx
cmp eax, ecx
ja 0x4728a3
mov eax, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x34]
mov eax, dword [eax]
cmp ecx, eax
jae 0x47284d
mov edi, dword [esi + 0x4c]
mov dword [ebp - 0x68], edi
test edi, edi
jne 0x4726b2
push 0xa
xor eax, eax
lea edi, [ebp - 0x158]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x2c]
lea eax, [ebp - 0x158]
push eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call fcn.0046b2b9
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x150]
movzx edx, word [esi + 0x3e]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34]
mov dword [ebp - 0x68], edi
movzx ebx, dx
add edi, ecx
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + ebx*4]
mov dword [ebp - 0x50], edx
xor edx, edx
add eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x60], edx
lea edx, [esi + 0x58]
mov esi, dword [ebp - 0x60]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x28], edx
movzx eax, byte [edi]
mov dword [ebp - 0x74], eax
mov dword [edx], eax
mov eax, dword [ebp - 0x74]
cmp eax, 0x80
jae 0x472734
movzx eax, al
inc edi
movzx eax, byte [eax + 0x85ae20]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x28]
jmp 0x47276d
mov edi, dword [esi + 0x4c]
xor ecx, ecx
mov edx, ecx
jmp 0x4726ac
imul eax, dword [ebx + 0xc], 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x24]
test word [eax + 0x10], cx
je 0x472728
mov ecx, eax
call fcn.0046a954
jmp 0x471782
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
jmp 0x471782
lea edx, [ebp - 0x74]
mov ecx, edi
call fcn.00454aaa
mov edx, dword [ebp - 0x28]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x74]
mov dword [edx], eax
mov eax, dword [ebp - 0x74]
cmp eax, 0x80
jb 0x47275c
add eax, 0xfffffff4
shr eax, 1
jmp 0x472763
movzx eax, byte [eax + 0x85ae20]
mov ecx, dword [ebp - 0x50]
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x2c]
inc ebx
mov dword [ebp - 0x28], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [ebp - 0x34]
ja 0x47278d
cmp edi, dword [ebp - 0x5c]
jb 0x4726da
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x30]
mov dword [ebp - 0x60], esi
mov esi, dword [ebp - 0x54]
cmp edi, edx
jb 0x4727e8
ja 0x4727f9
cmp ecx, dword [esi + 0x50]
jne 0x4727f9
xor ecx, ecx
cmp dword [ebp - 0x60], ecx
jne 0x472805
mov eax, dword [ebp - 0x28]
sub edi, dword [ebp - 0x68]
mov word [esi + 0x3e], ax
xor eax, eax
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], eax
jne 0x4727e3
mov eax, 0x9000
test dword [ebp - 0x148], eax
jne 0x4727d8
cmp dword [ebp - 0x140], 0
je 0x4727e3
lea ecx, [ebp - 0x158]
call fcn.0046a995
mov ecx, dword [ebp - 0x74]
jmp 0x472854
mov edx, dword [ebp - 0x60]
test edx, edx
jb 0x4727ae
ja 0x4727f6
cmp ecx, dword [esi + 0x50]
jbe 0x4727ae
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
cmp dword [eax], ecx
jne 0x47280a
xor eax, eax
mov edi, edx
jmp 0x4727b1
mov edx, dword [ebp - 0x5c]
jmp 0x4727fb
xor eax, eax
cmp dword [esi + 0x4c], eax
jne 0x472832
mov eax, 0x9000
test dword [ebp - 0x148], eax
jne 0x472827
cmp dword [ebp - 0x140], 0
je 0x472832
lea ecx, [ebp - 0x158]
call fcn.0046a995
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4762bb
imul eax, eax, 0x14
lea ebx, [edx - 0x14]
add ebx, eax
jmp 0x471560
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x74], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [ebp - 0x34]
ja 0x4728aa
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
cmp byte [ebx + 1], 0xf6
jne 0x472880
mov edx, dword [ebx + 0x10]
mov ecx, 0x2000
push ecx
mov ecx, eax
call fcn.0046af45
pop ecx
jmp 0x471560
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x472897
mov ecx, eax
call fcn.0046a954
jmp 0x471560
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
jmp 0x471560
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0x74], ecx
imul edi, dword [ebx + 0xc], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x24]
test word [edi + 0x10], ax
je 0x4728c6
mov ecx, edi
call fcn.0046a954
mov ecx, dword [ebp - 0x74]
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [ebp - 0x54]
jb 0x472975
mov eax, dword [esi + 0x4c]
mov esi, dword [ebp - 0x34]
add eax, dword [edx + esi*4]
mov dword [ebp - 0x3c], eax
cmp ecx, 0xc
jae 0x4728f9
mov edx, ecx
mov ecx, eax
push edi
call fcn.0046dd7e
jmp 0x47287a
mov al, byte [ebp - 0x64]
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 0x47293a
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 0x78]
jg 0x4763c3
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 0x10], ax
xor eax, eax
push eax
call fcn.0046a627
pop ecx
test eax, eax
jne 0x4715ac
mov eax, dword [edi + 8]
jmp 0x472940
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [ebp - 0x3c]
push eax
call fcn.00718720
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 [eax + esi + 1], dl
mov eax, dword [ebp - 0x74]
and eax, ecx
mov ax, word [eax*2 + 0x859e58]
mov word [edi + 0x10], ax
jmp 0x471560
mov al, byte [ebp - 0x64]
mov byte [edi + 0x12], al
movzx eax, word [ebx + 2]
mov edx, dword [ebp - 0x74]
test al, 0xc0
je 0x472996
cmp edx, 0xc
jb 0x472992
xor ecx, ecx
inc ecx
test cl, dl
je 0x4729b0
test al, al
js 0x4729b0
cmp edx, 0x80
jb 0x4729a5
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4729ac
movzx eax, byte [edx + 0x85ae20]
test eax, eax
jne 0x4729ba
mov ecx, 0x85a3f0
jmp 0x4728f1
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx + 0x78]
jg 0x4763c3
mov ecx, dword [ebp - 0x34]
push edi
push eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0046b22d
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov edx, dword [ebp - 0x74]
mov ecx, dword [edi + 8]
push edi
call fcn.0046dd7e
mov eax, 0xbfff
and word [edi + 0x10], ax
pop ecx
jmp 0x471560
imul edi, dword [ebx + 4], 0x28
xor ecx, ecx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], ecx
add edi, dword [ebp - 0x24]
mov edx, dword [eax + 4]
mov dword [ebp - 0x44], edx
cmp cx, word [eax + 0x22]
jge 0x4714d3
add edx, 8
mov dword [ebp - 0x68], edx
movzx eax, word [edx + 6]
test al, 0x60
je 0x472a46
test al, 0x20
jne 0x472af5
xor eax, eax
cmp dword [ebx + 0xc], eax
jne 0x472af2
push dword [ebp - 0x64]
mov dl, byte [edx]
mov ecx, edi
call fcn.00470f1e
mov edx, dword [ebp - 0x68]
xor eax, eax
pop ecx
movzx ecx, word [edi + 0x10]
inc eax
mov dword [ebp - 0x54], ecx
test al, cl
jne 0x472aef
mov eax, dword [edx - 4]
shr eax, 4
and eax, 0xf
cmp eax, 2
je 0x472ae6
jbe 0x472aef
cmp eax, 4
jbe 0x472ae1
cmp eax, 5
je 0x472a8c
cmp eax, 6
jne 0x472aef
test cl, 2
jmp 0x472ae9
test cl, 4
je 0x472adc
mov edx, dword [edi]
xor eax, eax
add edx, eax
mov eax, dword [edi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x472ab5
jb 0x472aad
cmp edx, 0xffffffff
ja 0x472ab5
or ecx, 0x20
movzx eax, cx
jmp 0x472ace
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.00701b90
mov eax, dword [ebp - 0x54]
push 8
pop ecx
or eax, ecx
movsd qword [edi], xmm0
movzx eax, ax
mov edx, dword [ebp - 0x68]
and eax, 0xfffb
mov word [edi + 0x10], ax
jmp 0x472aef
test cl, 0x28
jmp 0x472ae9
test cl, 4
jmp 0x472ae9
test cl, 0x10
je 0x4762e4
mov ecx, dword [ebp - 0x28]
add edi, 0x28
push 0x10
pop eax
add edx, eax
inc ecx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x68], edx
movsx eax, word [eax + 0x22]
cmp ecx, eax
jl 0x472a2b
jmp 0x4714d3
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
add esi, dword [ebp - 0x24]
mov al, byte [edi]
push dword [ebp - 0x64]
mov dl, al
mov ecx, esi
call fcn.00470f1e
cmp byte [edi], 0x45
pop ecx
jne 0x472b8b
movzx ecx, word [esi + 0x10]
push 4
pop eax
mov dword [ebp - 0x3c], ecx
test al, cl
je 0x472b8b
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x472b6c
jb 0x472b5d
cmp edx, 0xffffffff
ja 0x472b6c
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x472b8b
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.00701b90
mov eax, dword [ebp - 0x3c]
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 0x476021
add esi, 0x28
jmp 0x472b21
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov esi, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x34], eax
imul eax, dword [ebx + 8], 0x28
movlpd qword [ebp - 0x48], xmm0
add ecx, dword [ebp - 0x24]
movlpd qword [ebp - 0x58], xmm0
mov dword [ebp - 0x50], ecx
add eax, ecx
mov dword [ebp - 0x3c], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x6c], eax
test esi, esi
je 0x472c0c
mov al, byte [esi]
lea edi, [ecx + 0x10]
mov ebx, dword [ebp - 0x64]
push ebx
lea ecx, [edi - 0x10]
mov dl, al
call fcn.00470f1e
cmp byte [esi], 0x45
pop ecx
jne 0x472bff
movzx eax, word [edi]
push 4
pop ecx
test cl, al
je 0x472bff
and eax, 0xfffb
or eax, 0x20
mov word [edi], ax
inc esi
add edi, 0x28
mov al, byte [esi]
test al, al
jne 0x472bd9
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
add eax, 0xfffffff4
mov edi, dword [ebp - 0x48]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], ecx
movzx ecx, word [eax - 0xc]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x68], ecx
test cl, 1
je 0x472c5e
mov esi, dword [ebp - 0x2c]
mov eax, 0x400
and ecx, eax
movzx eax, cx
mov ecx, dword [ebp - 0x34]
neg eax
sbb eax, eax
and eax, 0xa
inc ecx
mov dword [esi], eax
mov dword [ebp - 0x34], ecx
jmp 0x472e57
test cl, 0x24
je 0x472da9
mov edi, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
xor eax, eax
cmp edi, eax
jg 0x472c83
jl 0x472c79
cmp esi, eax
jae 0x472c83
mov edx, esi
mov eax, edi
not edx
not eax
jmp 0x472c87
mov edx, esi
mov eax, edi
inc dword [ebp - 0x34]
test eax, eax
ja 0x472d38
jb 0x472c99
cmp edx, 0x7f
ja 0x472cd4
xor ecx, ecx
mov eax, esi
inc ecx
and eax, ecx
cmp eax, esi
jne 0x472cbb
xor eax, eax
cmp eax, edi
jne 0x472cbb
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x93], 4
jb 0x472cbb
lea eax, [edx + 8]
jmp 0x472ccc
add dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x60]
push 0
pop ecx
adc eax, ecx
mov dword [ebp - 0x60], eax
xor eax, eax
inc eax
mov edx, dword [ebp - 0x60]
jmp 0x472d9c
test eax, eax
ja 0x472d38
jb 0x472ce2
cmp edx, 0x7fff
ja 0x472cff
push 2
mov edi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
pop ecx
add edi, ecx
push 0
pop eax
adc edx, eax
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x60], edx
mov eax, ecx
jmp 0x472d9f
test eax, eax
ja 0x472d38
jb 0x472d0d
cmp edx, 0x7fffff
ja 0x472d26
mov edi, dword [ebp - 0x5c]
push 0
pop eax
add edi, 3
push 3
mov edx, dword [ebp - 0x60]
adc edx, eax
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x60], edx
pop eax
jmp 0x472d9f
test eax, eax
ja 0x472d38
jb 0x472d34
cmp edx, 0x7fffffff
ja 0x472d38
push 4
jmp 0x472ce4
cmp eax, 0x7fff
ja 0x472d53
jb 0x472d46
cmp edx, 0xffffffff
ja 0x472d53
mov edi, dword [ebp - 0x5c]
push 0
pop eax
add edi, 6
push 5
jmp 0x472d18
mov edx, dword [ebp - 0x60]
push 8
pop eax
add dword [ebp - 0x5c], eax
push 0
pop eax
adc edx, eax
mov dword [ebp - 0x60], edx
test cl, 0x20
je 0x472d99
mov edx, edi
mov ecx, esi
call fcn.00701b90
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x5c]
movsd qword [eax - 0x1c], xmm0
mov eax, dword [ebp - 0x68]
push 8
pop ecx
and eax, 0xffdf
or eax, ecx
push 7
mov word [esi - 0xc], ax
pop eax
jmp 0x472da2
push 6
pop eax
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x2c]
mov dword [esi], eax
jmp 0x472e54
test cl, 8
je 0x472dcc
mov ecx, dword [ebp - 0x34]
inc ecx
mov dword [eax], 7
add edi, 8
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x5c], edi
adc edx, 0
mov dword [ebp - 0x60], edx
jmp 0x472e5d
mov edi, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
lea eax, [eax + edi*2]
add eax, 0xc
bt ecx, 0xa
mov dword [ebp - 0x68], eax
jae 0x472e1c
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x5c]
or eax, edx
je 0x472e0d
lea ecx, [esi - 0x1c]
call fcn.0046a7d4
test eax, eax
jne 0x4715ac
add edi, dword [esi - 0x1c]
jmp 0x472e16
mov eax, ecx
cdq
add dword [ebp - 0x54], eax
adc dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
add dword [ebp - 0x5c], edi
push 0
pop ecx
adc edx, ecx
mov dword [ebp - 0x60], edx
lea esi, [ecx + 1]
mov ecx, eax
shr ecx, 7
xor eax, eax
mov edx, eax
jmp 0x472e3d
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x472e35
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x68]
add dword [ebp - 0x34], esi
mov edx, dword [ebp - 0x60]
mov edi, dword [ebp - 0x5c]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x50]
add eax, 0xffffffe4
cmp eax, esi
je 0x472e6f
mov eax, dword [ebp - 0x2c]
sub eax, 0x28
jmp 0x472c2d
cmp ecx, 0x7e
jle 0x472ed2
xor eax, eax
inc eax
mov edi, eax
mov dword [ebp - 0x68], eax
mov eax, ecx
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x472e9f
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x472e8e
mov dword [ebp - 0x68], edi
mov eax, dword [ebp - 0x34]
xor ecx, ecx
add eax, edi
mov dword [ebp - 0x34], eax
cdq
mov esi, eax
lea edi, [ecx + 1]
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x472eca
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x472ebc
mov ecx, dword [ebp - 0x34]
cmp dword [ebp - 0x68], edi
jge 0x472ed6
inc ecx
mov dword [ebp - 0x34], ecx
mov eax, ecx
cdq
mov edi, eax
mov dword [ebp - 0x44], eax
add edi, dword [ebp - 0x5c]
mov ecx, edx
mov eax, dword [ebp - 0x6c]
mov esi, edi
mov dword [ebp - 0x68], ecx
adc ecx, dword [ebp - 0x60]
add esi, dword [ebp - 0x54]
mov eax, dword [eax + 0x18]
adc ecx, dword [ebp - 0x28]
cdq
cmp ecx, edx
jg 0x472f0d
jl 0x472f02
cmp esi, eax
ja 0x472f0d
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x472f3b
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x4763c3
jl 0x472f26
cmp esi, eax
ja 0x4763c3
mov ecx, dword [ebp - 0x6c]
mov edx, edi
call fcn.0046a72c
test eax, eax
jne 0x4715ac
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x54]
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [ebp - 0x28]
mov dword [ecx + 0xc], edi
je 0x472f5a
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x34]
mov esi, dword [ecx + 8]
lea ecx, [esi + eax]
mov dword [ebp - 0x2c], ecx
cmp eax, 0x80
jge 0x472f72
mov byte [esi], al
inc esi
jmp 0x472f86
push dword [ebp - 0x68]
mov ecx, esi
push dword [ebp - 0x44]
call fcn.004548e5
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
add esi, eax
mov edi, dword [ebp - 0x50]
add edi, 0xc
mov eax, dword [edi + 0x10]
cmp eax, 7
ja 0x472fda
mov byte [esi], al
inc esi
test eax, eax
je 0x473027
movzx eax, byte [eax + 0x85ae20]
mov edx, dword [edi - 0xc]
mov dword [ebp - 0x44], eax
sub eax, 1
mov dword [ebp - 0x28], edx
mov ebx, dword [ebp - 0x28]
mov edx, dword [edi - 8]
mov byte [eax + ecx], bl
mov ebx, dword [ebp - 0x30]
je 0x472fd5
mov ebx, dword [ebp - 0x28]
shrd ebx, edx, 8
shr edx, 8
sub eax, 1
mov byte [eax + ecx], bl
jne 0x472fc3
mov ebx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x44]
jmp 0x473001
cmp eax, 0x80
jae 0x473006
mov byte [esi], al
inc esi
cmp eax, 0xe
jb 0x473027
cmp dword [edi], 0
jle 0x473027
push dword [edi]
push dword [edi - 4]
push ecx
call fcn.00718720
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
add ecx, dword [edi]
mov dword [ebp - 0x2c], ecx
jmp 0x473027
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.004548e5
pop ecx
add esi, eax
cmp dword [edi], 0
pop ecx
je 0x473024
push dword [edi]
push dword [edi - 4]
push dword [ebp - 0x2c]
jmp 0x472ff4
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
add eax, 0xffffffe4
cmp edi, eax
je 0x476021
add edi, 0x28
jmp 0x472f8c
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 0x473065
mov ecx, edx
call fcn.00464868
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], edx
jmp 0x47308f
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xf8]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0xf8], xmm0
call fcn.00468d0f
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
mov esi, eax
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xf4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x475cd4
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x44], esi
test eax, eax
jne 0x473190
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0xc4], eax
jg 0x476327
test esi, esi
jne 0x4730d9
mov esi, eax
jmp 0x4730ee
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4730dc
sub esi, ecx
mov ecx, dword [ebp - 0x18]
and esi, 0x3fffffff
mov eax, dword [ecx + 0x1fc]
xor edx, edx
add eax, dword [ecx + 0x1f8]
push eax
call fcn.004a71d9
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
push ecx
mov ecx, dword [ebp - 0x18]
lea eax, [esi + 0x21]
push eax
call fcn.0045101b
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x47342a
lea ecx, [esi + 1]
push ecx
push dword [ebp - 0x44]
lea edx, [edi + 0x20]
push edx
mov dword [edi], edx
call fcn.00718720
mov edx, dword [ebp - 0x18]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x473152
xor eax, eax
mov byte [edx + 0x55], al
inc eax
mov byte [edx + 0x5d], al
jmp 0x473158
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [edi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x47342a
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
mov edi, dword [eax + 0x1ec]
jmp 0x4731b3
mov ecx, dword [edi]
mov edx, esi
call fcn.00453ce5
test eax, eax
je 0x4731d3
inc dword [ebp - 0x2c]
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x4731a0
mov edi, dword [ebp - 0x14]
push esi
push str.no_such_savepoint:__s
push edi
call fcn.0046b818
add esp, 0xc
xor eax, eax
lea ecx, [eax + 1]
jmp 0x471e39
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov edx, dword [ebp - 0x50]
cmp dword [ecx + 0xc4], eax
jle 0x4731ec
inc eax
cmp edx, eax
je 0x47633b
lea eax, [edi + 0x18]
cmp dword [eax], 0
mov dword [ebp - 0x6c], eax
jne 0x4732d7
cmp byte [ecx + 0x5d], 0
je 0x4732d7
xor eax, eax
inc eax
mov dword [ebp - 0x28], eax
cmp edx, eax
jne 0x4732dc
mov ecx, dword [ebp - 0x14]
mov edx, eax
call fcn.0046d646
mov esi, eax
test esi, esi
jne 0x476719
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov esi, dword [ebp - 0x14]
inc ecx
mov byte [eax + 0x55], cl
mov ecx, esi
call fcn.0046d6b4
push 5
pop ecx
cmp eax, ecx
je 0x476345
mov ecx, dword [esi + 0x24]
xor edx, edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x4732d2
mov byte [eax + 0x55], dl
mov edx, dword [ebp - 0x18]
test ecx, ecx
jne 0x473bd7
mov ecx, dword [edx + 0x1ec]
cmp ecx, edi
je 0x473297
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1ec], eax
call fcn.00450d17
mov ecx, dword [ebx + 0x1ec]
dec dword [ebx + 0x1f8]
cmp ecx, edi
jne 0x47326f
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x50]
xor eax, eax
inc eax
cmp esi, eax
jne 0x4733de
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [edx + 0x1ec], eax
mov edx, edi
call fcn.00450d17
cmp dword [ebp - 0x28], 0
jne 0x47342a
mov edx, dword [ebp - 0x18]
dec dword [edx + 0x1f8]
jmp 0x47340f
mov byte [eax + 0x5d], dl
jmp 0x473257
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x1f8]
sub eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 0x14]
cmp edx, 2
jne 0x473351
mov ecx, dword [ecx + 0x18]
and dword [ebp - 0x3c], 0
and ecx, 1
mov dword [ebp - 0x54], ecx
test eax, eax
jle 0x47334d
xor eax, eax
inc eax
xor ecx, eax
xor eax, eax
mov dword [ebp - 0x44], ecx
mov esi, eax
mov eax, dword [ebp - 0x18]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + esi + 4]
call fcn.00463869
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov ecx, dword [ebp - 0x3c]
push 0x10
pop eax
add esi, eax
inc ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x14]
cmp ecx, eax
mov ecx, dword [ebp - 0x44]
jl 0x47330e
mov edx, dword [ebp - 0x50]
xor ecx, ecx
jmp 0x473356
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x3c], ecx
test eax, eax
jle 0x473398
mov esi, ecx
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x2c]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + esi + 4]
call fcn.004639d1
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov eax, dword [ebp - 0x3c]
push 0x10
pop edx
add esi, edx
inc eax
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0x50]
jl 0x47335f
jmp 0x47339b
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x54], 0
je 0x473257
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
jmp 0x4733c2
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4733ad
mov ecx, edx
call fcn.004871e7
mov edx, dword [ebp - 0x18]
xor eax, eax
mov ecx, dword [ebp - 0x1c]
inc eax
or dword [edx + 0x18], eax
jmp 0x47325a
cmp dword [ebp - 0x28], 0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
je 0x47340f
push 2
pop eax
cmp esi, eax
jne 0x47342a
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
mov edx, esi
call fcn.004a71d9
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov edi, dword [ebp - 0x14]
cmp byte [edi + 0x95], 3
jne 0x471782
push 0x65
pop esi
jmp 0x476719
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebx + 8], eax
je 0x473469
mov eax, dword [ebp - 0x18]
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 0x476368
mov eax, dword [ebp - 0x18]
mov edi, dword [ebx + 4]
shl edi, 4
add edi, dword [eax + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x473544
mov edx, dword [ebx + 8]
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.00462cc8
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x476385
mov edx, dword [ebp - 0x14]
test byte [edx + 0x98], 0x20
je 0x47354f
cmp dword [ebx + 8], eax
je 0x47354f
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x55], al
je 0x4734cd
inc eax
cmp dword [ecx + 0xc0], eax
jle 0x47354f
mov eax, dword [edx + 0x30]
test eax, eax
jne 0x4734f1
mov eax, dword [ebp - 0x18]
inc dword [ecx + 0x1fc]
mov ecx, dword [ecx + 0x1fc]
mov eax, dword [eax + 0x1f8]
add eax, ecx
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0x30], eax
dec eax
xor edx, edx
push eax
call fcn.004a71d9
mov esi, eax
mov dword [ebp - 0x1c], esi
pop ecx
test esi, esi
jne 0x473517
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x44]
mov edx, dword [eax + 0x30]
call fcn.0046399b
mov esi, eax
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x200]
mov ecx, dword [ecx + 0x204]
mov dword [edx + 0x4c], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0x48], eax
mov eax, dword [ecx + 0x208]
mov ecx, dword [ecx + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x473bd7
xor eax, eax
cmp word [ebx + 2], ax
je 0x471560
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebx + 0xc]
jne 0x473572
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x471560
mov edi, dword [ebp - 0x14]
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x473584
mov ecx, dword [ebp - 0x18]
call fcn.00450d17
mov ecx, dword [ebp - 0x18]
mov edx, str.database_schema_has_changed
call fcn.004511f6
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 0x18]
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 - 0x28]
je 0x4735b4
mov ecx, dword [ebp - 0x18]
call fcn.00487191
mov eax, dword [edi + 0x98]
xor edx, edx
push 0x11
and eax, 0xffffffed
inc edx
pop ecx
or eax, edx
mov dword [ebp - 0x1c], ecx
mov dword [edi + 0x98], eax
jmp 0x473bda
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x110]
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.00468c7c
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, eax
mov eax, dword [ebp - 0x110]
jmp 0x47137e
mov eax, dword [ebp - 0x18]
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.00468cbe
xor edx, edx
pop ecx
inc edx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebx + 8], edx
jne 0x473653
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 - 0x18]
mov ecx, eax
or dword [eax + 0x18], edx
mov edx, dword [ebx + 4]
call fcn.00490886
xor edx, edx
inc edx
jmp 0x473664
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x473667
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 0x1c]
cmp dword [ebx + 4], edx
jne 0x47177a
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
jmp 0x47368d
mov eax, dword [edx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [edx + 0x98], eax
mov edx, dword [edx + 8]
test edx, edx
jne 0x473678
and dword [edi + 0x98], 0xfffffffc
jmp 0x47177a
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x4736cd
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4736cd
add edi, 0x2c
mov esi, dword [edi]
push dword [esi + 0x10]
call fcn.00450ca0
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x4737d2
mov edi, dword [ebp - 0x14]
mov cl, byte [ebp - 0x49]
mov eax, dword [edi + 0x98]
xor edx, edx
mov esi, dword [ebp - 0x18]
and al, 3
inc edx
cmp al, dl
je 0x4763aa
mov edx, dword [ebx + 8]
xor eax, eax
mov edi, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x44], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x3c], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0x6c], esi
mov esi, edi
cmp cl, 0x71
jne 0x473735
movzx ecx, word [ebx + 2]
mov eax, dword [eax + 0xc]
and ecx, 8
or ecx, 4
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x14]
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x93]
jae 0x47373a
mov byte [ecx + 0x93], al
jmp 0x47373a
xor eax, eax
mov dword [ebp - 0x54], eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x473756
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046ab66
mov eax, dword [esi]
mov esi, edi
mov dword [ebp - 0x3c], eax
mov al, byte [ebx + 1]
cmp al, 0xf8
jne 0x473769
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x28], esi
movzx edi, word [esi + 8]
jmp 0x473770
cmp al, 0xfd
jne 0x473770
mov edi, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
xor eax, eax
mov ecx, dword [ebp - 0x14]
push eax
push edi
call fcn.00470d87
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4715ac
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x6c]
mov byte [edi + 1], al
xor eax, eax
inc eax
mov dword [edi + 0x38], edx
push 4
mov byte [edi + 2], al
pop eax
or dword [edi + 8], eax
lea eax, [edi + 0x2c]
push dword [eax]
mov dword [ebp - 0x44], eax
push esi
push dword [ebp - 0x54]
call fcn.00463aec
mov esi, eax
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov dword [edi + 0x30], eax
cmp byte [ebx + 1], 0xf8
mov dword [ebp - 0x1c], esi
setne al
mov byte [edi + 4], al
mov edi, dword [ebp - 0x44]
mov cl, byte [ebx + 2]
mov eax, dword [edi]
and cl, 3
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
jmp 0x47177a
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 - 0x14]
push eax
movsx eax, word [edi + 0x3c]
push eax
call fcn.00470d87
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4715ac
xor eax, eax
inc eax
or dword [esi + 8], eax
mov byte [esi + 2], al
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
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]
xor ecx, dword [esi + 8]
push 4
pop edx
and ecx, edx
xor ecx, dword [esi + 8]
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 ecx, dword [esi + 0x10]
push dword [esi + 0x30]
push edx
mov edx, dword [esi + 0x38]
call fcn.00463aec
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x1c], esi
jmp 0x4714d3
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47388b
mov ecx, dword [ebp - 0x24]
xor edx, edx
imul eax, eax, 0x28
mov dword [eax + ecx + 0xc], edx
imul eax, dword [ebx + 0xc], 0x28
mov dword [eax + ecx + 8], 0x858903
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + edx*4]
test edi, edi
je 0x4738d3
test byte [edi + 8], 8
jne 0x4738d3
movsx eax, word [edi + 0x3c]
cmp dword [ebx + 8], eax
jg 0x4738d3
mov edx, dword [edi + 0x38]
xor eax, eax
mov ecx, dword [edi + 0x10]
push eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
call fcn.00468a32
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov esi, eax
jmp 0x4739f1
mov ecx, dword [ebp - 0x14]
xor eax, eax
push eax
push dword [ebx + 8]
call fcn.00470d87
mov edi, eax
mov dword [ebp - 0x3c], edi
pop ecx
pop ecx
test edi, edi
je 0x4715ac
xor eax, eax
lea esi, [edi + 0x10]
push 0x41e
inc eax
mov dword [ebp - 0x28], esi
or dword [edi + 8], eax
xor edx, edx
movzx ecx, word [ebx + 2]
push 5
pop eax
or ecx, eax
mov eax, dword [ebp - 0x18]
push ecx
push esi
push eax
mov ecx, dword [eax]
call fcn.00461fd4
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov ecx, dword [esi]
lea edx, [eax + 1]
push eax
call fcn.00462cc8
mov esi, eax
mov dword [ebp - 0x1c], esi
pop ecx
test esi, esi
jne 0x4739cf
mov eax, dword [ebx + 0x10]
lea ecx, [edi + 0x38]
mov dword [ebp - 0x54], eax
mov dword [edi + 0x30], eax
mov dword [ebp - 0x44], ecx
test eax, eax
je 0x4739aa
mov edi, dword [ebp - 0x28]
movzx esi, word [ebx + 2]
push 2
pop eax
mov edi, dword [edi]
or esi, eax
mov ecx, edi
call fcn.004606c4
mov edx, dword [ebp - 0x44]
mov ecx, edi
push esi
call fcn.00468658
pop ecx
mov esi, eax
mov ecx, edi
mov dword [ebp - 0x1c], esi
call fcn.00460736
mov edi, dword [ebp - 0x3c]
test esi, esi
jne 0x4739a6
push dword [edi + 0x2c]
mov edx, dword [edi + 0x38]
push dword [ebp - 0x54]
mov ecx, dword [edi + 0x10]
push 4
pop eax
push eax
call fcn.00463aec
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x1c], esi
xor eax, eax
jmp 0x4739cc
push dword [edi + 0x2c]
xor eax, eax
xor edx, edx
push eax
push 4
inc edx
pop eax
mov dword [ecx], edx
mov ecx, dword [edi + 0x10]
push eax
call fcn.00463aec
mov esi, eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x1c], esi
inc eax
mov byte [edi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [edi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [edi + 8], ecx
test esi, esi
jne 0x4763b1
xor eax, eax
inc eax
mov byte [edi + 2], al
jmp 0x4714d3
mov edx, dword [ebx + 4]
xor eax, eax
inc eax
mov ecx, edi
push eax
push dword [ebx + 8]
call fcn.00470d87
pop ecx
pop ecx
test eax, eax
je 0x4715af
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004779d9
jmp 0x471ea0
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 esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
mov dword [edx + 0x1c], eax
jmp 0x4723e5
mov edx, dword [ebx + 4]
mov ecx, edi
push 3
push dword [ebx + 0xc]
call fcn.00470d87
pop ecx
pop ecx
test eax, eax
je 0x4715af
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], 0x8f401c
jmp 0x4714d6
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov edx, dword [ecx + eax*4]
test edx, edx
je 0x473aaa
mov ecx, edi
call fcn.0046ccd2
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
xor edx, edx
mov dword [ecx + eax*4], edx
jmp 0x4714d6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x28], ecx
mov word [edi + 2], cx
mov dword [edi + 0x20], ecx
cmp byte [edi + 4], cl
je 0x473bef
imul edi, dword [ebx + 0xc], 0x28
push 2
pop ecx
add edi, dword [ebp - 0x24]
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x44], eax
and al, 0x2e
cmp al, cl
jne 0x473af5
xor edx, edx
mov ecx, edi
call fcn.00470e6a
mov ecx, edi
call fcn.0046aa42
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov word [edi + 0x10], dx
test cl, 0x24
jne 0x473ba6
test cl, 8
jne 0x473b71
xor eax, eax
inc eax
test al, cl
jne 0x473db2
push 0x17
pop ecx
cmp dword [ebp - 0x2c], ecx
jae 0x473db2
mov ecx, dword [ebp - 0x6c]
lea edx, [ebp - 0x7c]
mov ecx, dword [ecx + 0x2c]
call fcn.004642b0
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x7c], 0
jne 0x473db2
cmp dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x14]
je 0x471782
push 0x14
pop eax
add ebx, eax
jmp 0x471782
push dword [ebp - 0x54]
mov esi, dword [ebp - 0x3c]
movsd xmm1, qword [edi]
push esi
call fcn.0046e1ac
pop ecx
pop ecx
test eax, eax
jle 0x473b97
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
test cl, al
jne 0x473ba9
dec eax
mov dword [ebp - 0x2c], eax
jmp 0x473ba9
jns 0x473ba9
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
test cl, al
je 0x473ba9
inc eax
jmp 0x473b92
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x6c]
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [edi + 0x2c]
push esi
call fcn.00464304
mov ecx, eax
mov dword [edi + 0x40], esi
mov eax, dword [ebp - 0x54]
add esp, 0xc
mov dword [ebp - 0x1c], ecx
mov dword [edi + 0x44], eax
test ecx, ecx
je 0x473c77
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp byte [esi + 0x57], 0
je 0x476668
push 7
pop ecx
jmp 0x47667c
mov eax, dword [edi + 0x2c]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x49], al
pop eax
setne al
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xc8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb4], ax
lea eax, [edx - 1]
xor edx, edx
mov byte [ebp - 0xae], cl
inc edx
and al, dl
lea edx, [ebp - 0xc8]
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xb2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x7c]
mov ecx, dword [edi + 0x2c]
push eax
call fcn.00464578
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
cmp byte [ebp - 0x49], al
je 0x473c77
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
cmp byte [ebp - 0xae], cl
je 0x473b4d
mov eax, dword [ebp - 0x2c]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x7c]
jl 0x473cce
test ecx, ecx
js 0x473c99
jne 0x473c8f
cmp eax, 0x18
je 0x473c99
xor eax, eax
mov dword [ebp - 0x7c], eax
jmp 0x473b5a
xor eax, eax
xor edx, edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [edi + 0x2c]
call fcn.0046499b
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x473b4d
cmp ecx, 0x65
jne 0x473bd7
xor eax, eax
mov esi, eax
inc eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x7c], eax
jmp 0x473b50
test ecx, ecx
jg 0x473ceb
jne 0x473cd9
cmp eax, 0x15
je 0x473ceb
mov eax, dword [edi + 0x2c]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x7c], ecx
jmp 0x473b4d
xor eax, eax
xor edx, edx
mov dword [ebp - 0x7c], eax
mov ecx, dword [edi + 0x2c]
call fcn.00464aa8
jmp 0x473ca8
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x4714d3
mov eax, dword [edi + 0x30]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov dword [ebp - 0xc8], eax
mov ax, word [ebx + 0x24]
mov word [ebp - 0xb4], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [ebp - 0xb2], cl
mov dword [ebp - 0xe4], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xe4]
push eax
lea eax, [ebp - 0xc8]
mov edx, edi
push eax
call fcn.0046ed48
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov eax, dword [ebp - 0xe4]
test eax, eax
jle 0x473d7c
cmp word [ebx + 2], cx
je 0x473daa
test eax, eax
jns 0x473daf
test esi, esi
jle 0x476021
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
call fcn.0046499b
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x473d43
cmp ecx, 0x65
jne 0x473bd7
xor eax, eax
mov esi, eax
mov dword [ebp - 0x1c], esi
push 0x14
pop eax
add ebx, eax
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x20]
add ebx, 0xffffffec
add ebx, eax
jmp 0x4714d6
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 0x473de5
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x4714d6
cmp eax, dword [ebx + 0xc]
jle 0x4714d6
mov ax, word [ebx + 0xc]
jmp 0x473ddc
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x471227.9
cmp byte [eax + 2], 0
je 0x4714d6
jmp case.0x471227.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 0x4714d6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
imul ecx, dword [ebx + 0xc], 0x28
movzx eax, word [ebx + 0x10]
mov word [ebp - 0xb4], ax
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0xc4], ecx
test ax, ax
je 0x473e7b
mov eax, dword [edi + 0x30]
lea esi, [edi + 0x24]
mov dword [ebp - 0xc8], eax
lea edx, [ebp - 0xc8]
xor eax, eax
mov byte [ebp - 0xb2], al
mov ecx, dword [edi + 0x2c]
push esi
call fcn.00464578
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
jmp 0x473ee8
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x473e93
call fcn.0046a7d4
test eax, eax
jne 0x4715ac
mov ecx, dword [edi + 0x30]
call fcn.0046deda
mov esi, eax
mov dword [ebp - 0x44], esi
test esi, esi
je 0x4715ac
mov edx, dword [ebp - 0xc4]
mov ecx, dword [edi + 0x30]
push esi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0046df30
xor eax, eax
mov edx, esi
mov byte [esi + 0x16], al
lea eax, [edi + 0x24]
mov ecx, dword [edi + 0x2c]
push eax
call fcn.00464578
mov edx, dword [ebp - 0x44]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov esi, eax
mov dword [ebp - 0x1c], esi
call fcn.00450d17
mov ecx, esi
lea esi, [edi + 0x24]
test ecx, ecx
jne 0x473bd7
mov ecx, dword [esi]
test ecx, ecx
setne al
xor edx, edx
mov byte [edi + 2], al
mov byte [edi + 3], dl
mov dword [edi + 0x20], edx
mov al, byte [ebx]
cmp al, 0x1d
jne 0x473f15
mov esi, dword [ebp - 0x1c]
test ecx, ecx
mov edi, dword [ebp - 0x14]
jmp 0x4723e5
test ecx, ecx
jne 0x473daf
cmp al, 0x1b
jne 0x473f51
mov ecx, edx
movzx edx, word [ebp - 0xb4]
test edx, edx
je 0x476021
mov eax, dword [ebp - 0xc4]
add eax, 0x10
test byte [eax], 1
jne 0x473daf
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x473f3b
jmp 0x471560
cmp al, 0x1a
jne 0x476021
mov ax, word [ebx + 0x10]
mov word [edi + 0xc], ax
jmp 0x471560
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add esi, ecx
test byte [esi + 0x10], 0x24
jne 0x473fb1
push 0xa
pop ecx
push dword [ebp - 0x64]
lea edi, [ebp - 0x1a0]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x1a0]
call fcn.00470f1e
pop ecx
push 4
pop eax
test byte [ebp - 0x190], al
je 0x473daf
mov edi, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x19c]
jmp 0x473fbc
mov ecx, dword [ebp - 0x24]
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [eax + ecx]
mov edx, dword [eax + ecx + 4]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x14]
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 - 0xe0], eax
lea eax, [ebp - 0xe0]
push eax
push edx
push edi
xor edx, edx
call fcn.00464304
mov ecx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x3c]
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 - 0xe0]
mov dword [esi + 0x24], eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0xe0], edx
je 0x4737e0
cmp dword [ebx + 8], edx
jne 0x473daf
push 0x865d1c
push 0x172df
jmp 0x4762c5
mov edx, ebx
mov ecx, edi
call fcn.00471066
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 0x4714d6
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x58], xmm0
mov ecx, edi
mov dword [ebp - 0x28], eax
call fcn.00471066
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x3c], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [ebp - 0x44], edi
test byte [edi + 8], al
jne 0x4740f6
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x28]
call fcn.004642b0
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
cmp dword [ebp - 0x28], eax
je 0x4740b9
inc eax
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x4740f6
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.00463bb8
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
cmp ecx, 0x7fffffff
jl 0x4740e6
jg 0x4740de
cmp eax, 0xffffffff
jb 0x4740e6
push 2
pop eax
or dword [edi + 8], eax
jmp 0x4740f6
xor edx, edx
inc edx
add eax, edx
push 0
pop edx
adc ecx, edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x47417b
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x474161
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046ab66
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x47412d
cmp edx, 0x7fffffff
je 0x4741da
push 2
pop eax
test byte [edi + 8], al
jne 0x4741da
mov edi, dword [ebp - 0x54]
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x474170
jl 0x474153
mov eax, dword [ebp - 0x58]
cmp eax, ecx
jae 0x474173
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edi
jmp 0x474173
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47415f
imul esi, edx, 0x28
add esi, dword [eax + 0x10]
jmp 0x474110
mov eax, dword [ebp - 0x58]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x44]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x4741e1
xor eax, eax
mov esi, eax
lea eax, [ebp - 0x58]
push eax
push 8
pop eax
push eax
call fcn.00453170
mov eax, dword [ebp - 0x54]
xor edx, edx
mov ecx, dword [ebp - 0x58]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [ebp - 0x58], ecx
lea edx, [ebp - 0x28]
mov dword [ebp - 0x54], eax
push edx
push eax
push ecx
mov ecx, dword [edi + 0x2c]
xor edx, edx
call fcn.00464304
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
cmp dword [ebp - 0x28], eax
jne 0x4741e1
inc esi
cmp esi, 0x64
jl 0x474187
push 0xd
jmp 0x4762db
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x471560
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebp - 0x24]
imul esi, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
add esi, edx
mov ecx, dword [eax + edx]
mov eax, dword [eax + edx + 4]
xor edx, edx
cmp byte [ebx + 1], 0xfb
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], eax
jne 0x474257
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xfc], edx
je 0x474257
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x3c], edx
xor edx, edx
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x28], eax
jmp 0x47425d
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x28], edx
movzx eax, word [ebx + 2]
mov ecx, eax
test al, 1
je 0x474277
mov eax, dword [ebp - 0x14]
xor ecx, ecx
inc ecx
add dword [eax + 0x28], ecx
adc dword [eax + 0x2c], edx
movzx ecx, word [ebx + 2]
movzx edx, cx
test cl, 0x20
je 0x474292
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x44]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x54]
mov dword [ecx + 0x2c], eax
movzx edx, word [ebx + 2]
mov eax, dword [esi + 8]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0xc]
push 0x10
mov dword [ebp - 0xb4], eax
pop eax
test al, dl
je 0x4742b0
mov ecx, dword [edi + 0x24]
jmp 0x4742b4
xor eax, eax
mov ecx, eax
mov eax, 0x400
test word [esi + 0x10], ax
push 0
pop eax
je 0x4742ce
mov eax, dword [esi]
mov dword [ebp - 0xb0], eax
xor eax, eax
jmp 0x4742d4
mov dword [ebp - 0xb0], eax
push ecx
and edx, 0x8a
mov dword [ebp - 0xd0], eax
mov ecx, dword [edi + 0x2c]
push edx
lea edx, [ebp - 0xd0]
call fcn.00467bd9
pop ecx
pop ecx
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov byte [edi + 3], dl
mov dword [edi + 0x20], edx
test ecx, ecx
jne 0x473bd7
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x476021
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push dword [eax]
push dword [ebp - 0x28]
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 - 0x18]
mov esi, dword [eax + 0xfc]
mov ecx, esi
push dword [eax + 0xf8]
call dword [0x7f07dc]
call esi
add esp, 0x18
jmp 0x471560
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 0x47437f
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x24]
imul eax, eax, 0x28
mov ecx, dword [eax + ecx]
mov eax, dword [eax + edi + 4]
mov edi, dword [ebp - 0x14]
jmp 0x47438d
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.0046802f
pop ecx
jmp 0x471ea0
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x474400
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp dword [eax + 0xfc], ecx
je 0x474400
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [ebx + 0x10]
push 2
mov dword [ebp - 0x44], esi
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x3c], eax
pop eax
test byte [ebx + 2], al
je 0x474407
cmp byte [edi + 4], 0
je 0x474407
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.00463bb8
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [ebp - 0x44]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x474407
xor eax, eax
mov dword [ebp - 0x3c], eax
mov esi, eax
mov dl, byte [ebx + 2]
mov ecx, dword [edi + 0x2c]
call fcn.004682dd
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], edx
test ecx, ecx
jne 0x473bd7
inc ecx
test byte [ebp - 0x28], cl
je 0x476021
mov eax, dword [ebp - 0x14]
add dword [eax + 0x28], ecx
adc dword [eax + 0x2c], edx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0xfc]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x476021
test esi, esi
je 0x476021
test byte [esi + 0x1c], 0x80
jne 0x476021
push dword [edi + 0x44]
mov ecx, eax
push dword [edi + 0x40]
push dword [esi]
push dword [ebp - 0x3c]
push 9
push dword [edx + 0xf8]
call dword [0x7f07dc]
call dword [ebp - 0x44]
jmp 0x47434c
mov edx, dword [ebp - 0x18]
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 0x4714d6
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 - 0xe8], eax
lea eax, [ebp - 0xe8]
add edx, dword [ebp - 0x24]
push eax
push dword [ebx + 0x10]
call fcn.00479314
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
cmp dword [ebp - 0xe8], eax
mov esi, eax
jmp 0x471290
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
add edx, dword [ebp - 0x24]
mov ecx, dword [eax + ecx*4]
call fcn.004792be
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
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 0x471782
mov edx, ebx
mov ecx, edi
call fcn.00471066
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.00463bb8
mov eax, dword [ebp - 0x18]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x4763c3
push esi
mov ecx, edi
call fcn.0046b2b9
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
cmp dword [ebx + 0xc], eax
jne 0x476021
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x476021
mov ecx, esi
call fcn.0046a78e
mov edi, dword [ebp - 0x14]
test eax, eax
jne 0x4715af
jmp 0x471782
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x3c], eax
mov edi, dword [ecx + edx*4]
cmp byte [edi + 2], 0
je 0x4745b6
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
jmp 0x4714d3
cmp byte [edi + 3], 0
je 0x4745c7
mov eax, dword [edi + 0x40]
mov ecx, dword [edi + 0x44]
jmp 0x474660
push 2
pop eax
cmp byte [edi], al
jne 0x474615
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xa0]
push edx
push ecx
mov edi, dword [ecx]
mov eax, dword [edi]
mov esi, dword [eax + 0x30]
mov ecx, esi
call dword [0x7f07dc]
call esi
pop ecx
pop ecx
mov edx, edi
mov esi, eax
mov edi, dword [ebp - 0x14]
mov ecx, edi
mov dword [ebp - 0x1c], esi
call fcn.0046eebf
mov ecx, esi
test ecx, ecx
jne 0x473bda
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
jmp 0x47466f
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
je 0x474635
mov ecx, edi
call fcn.0046dc58
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x4762dc
mov esi, eax
jmp 0x47463c
xor eax, eax
mov esi, eax
mov dword [ebp - 0x1c], esi
cmp byte [edi + 2], 0
je 0x47464d
mov edx, dword [ebp - 0x3c]
xor eax, eax
inc eax
jmp 0x471aff
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.00463bb8
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x3c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x4714d6
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x4746b8
inc eax
mov ecx, edi
push 3
push eax
call fcn.00470d87
pop ecx
pop ecx
test eax, eax
je 0x4715af
xor ecx, ecx
mov dword [eax + 0x2c], 0x8f401c
push 8
xor edx, edx
inc ecx
pop esi
or dword [eax + 8], esi
mov dword [eax + 0x24], edx
mov byte [eax + 4], cl
jmp 0x4746bd
xor ecx, ecx
xor edx, edx
inc ecx
cmp byte [eax], 0
mov byte [eax + 2], cl
mov dword [eax + 0x20], edx
jne 0x471782
mov esi, dword [eax + 0x2c]
push dword [esi + 0x10]
call fcn.00450ca0
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
pop ecx
mov byte [esi], al
jmp 0x471782
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [ebp - 0x49], 0x89
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0x8c], eax
jne 0x47470b
or dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x471782
lea edx, [ebp - 0x8c]
call fcn.004642b0
mov ecx, eax
xor edx, edx
mov al, byte [ebp - 0x8c]
mov dword [ebp - 0x1c], ecx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x473bda
cmp dword [ebx + 8], edx
jle 0x471782
cmp dword [ebp - 0x8c], edx
mov esi, ecx
jmp 0x471290
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xd8]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00464284
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
cmp dword [ebp - 0xd8], eax
jne 0x475b70
mov ecx, esi
call fcn.00464868
xor ecx, ecx
cmp edx, ecx
jl 0x4747b0
jg 0x47478f
cmp eax, ecx
jb 0x4747b0
push edx
push eax
call fcn.00454e6d
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd8]
cwde
cmp eax, dword [ebx + 0xc]
push 1
pop eax
cmovl ecx, eax
mov dword [ebp - 0xd8], ecx
jmp 0x4747b6
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0x1c]
test ecx, ecx
jmp 0x471290
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0xd4]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0xd4], eax
cmp byte [esi], al
jne 0x4747eb
mov ecx, esi
call fcn.004791b9
jmp 0x4747fb
mov ecx, dword [esi + 0x2c]
call fcn.00464284
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
mov al, byte [ebp - 0xd4]
mov byte [esi + 2], al
mov esi, ecx
cmp dword [ebp - 0xd4], ecx
jmp 0x471290
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
mov edx, edi
mov ecx, dword [ebp - 0x18]
call fcn.00479209
jmp 0x47485d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.00464aa8
jmp 0x47485d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [ebx + 0xc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.0046499b
mov ecx, eax
mov dword [ebp - 0x1c], ecx
xor edx, edx
mov dword [edi + 0x20], edx
test ecx, ecx
jne 0x474881
mov byte [edi + 2], dl
movzx eax, word [ebx + 2]
mov edi, dword [ebp - 0x14]
inc dword [edi + eax*4 + 0xa4]
jmp 0x475cc0
cmp ecx, 0x65
jne 0x473bd7
xor eax, eax
mov esi, edx
inc eax
mov dword [ebp - 0x1c], esi
mov byte [edi + 2], al
mov edi, dword [ebp - 0x14]
jmp 0x475cd4
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 - 0x24]
test byte [ebx + 2], cl
je 0x4748c1
mov eax, dword [ebp - 0x14]
push 0
add dword [eax + 0x28], ecx
pop ecx
adc dword [eax + 0x2c], ecx
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4748e0
mov ecx, esi
call fcn.0046a7d4
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xbc], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb8], ax
movzx eax, word [ebx + 2]
test cl, al
je 0x474921
mov ecx, dword [edi + 0x24]
jmp 0x474923
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xd0]
and eax, 0x8a
push eax
call fcn.00467bd9
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [edi + 0x20], eax
jmp 0x4737e0
imul esi, dword [ebx + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
add esi, dword [ebp - 0x24]
mov edi, dword [eax + ecx*4]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x474978
mov ecx, esi
call fcn.0046a7d4
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov edx, esi
mov ecx, edi
call fcn.004785ce
mov ecx, eax
mov dword [ebp - 0x1c], ecx
jmp 0x4737e0
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0xc8]
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 - 0xc8], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xb4], ax
xor eax, eax
mov byte [ebp - 0xb2], al
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x114]
push eax
call fcn.00464578
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
cmp dword [ebp - 0x114], eax
jne 0x474a05
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.004682dd
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
jmp 0x474a1d
xor edx, edx
cmp word [ebx + 2], dx
je 0x474a1f
mov ecx, dword [ebp - 0x18]
call fcn.004876c6
test eax, eax
je 0x4763db
xor edx, edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
jmp 0x471560
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.0046dc92
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
cmp byte [esi + 2], al
jne 0x474ad8
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x100]
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.0046ec62
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
cmp byte [ebx], 0x8d
jne 0x474ab9
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 - 0x100]
mov ecx, dword [ebp - 0xfc]
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 0x471782
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0xfc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x471782
imul ecx, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x24]
call fcn.0046adb0
jmp 0x471782
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x4714d6
call fcn.0046dc18
jmp 0x471775
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0xc8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xb4], ax
mov al, byte [ebp - 0x49]
cmp al, 0x2a
sbb al, al
mov byte [ebp - 0xb2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xc4], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.00463c04
mov esi, eax
xor eax, eax
cmp esi, eax
jbe 0x4763f7
cmp esi, 0x7fffffff
ja 0x4763f7
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x1c8]
push eax
call fcn.0046ad9c
pop ecx
lea eax, [ebp - 0x1c8]
mov edx, esi
push eax
mov ecx, edi
call fcn.0046b2b9
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov edx, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1bc]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.0046e494
pop ecx
pop ecx
lea ecx, [ebp - 0x1c8]
mov esi, eax
call fcn.0046a9dc
mov dl, byte [ebx]
lea ecx, [esi + 1]
mov edi, dword [ebp - 0x14]
xor eax, eax
neg esi
inc eax
and dl, al
cmovne esi, ecx
test esi, esi
mov esi, dword [ebp - 0x1c]
jg 0x473db5
jmp 0x4714d6
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebp - 0x18]
mov esi, eax
xor eax, eax
inc eax
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 0xcc]
inc ecx
cmp dword [eax + 0xc0], ecx
jg 0x476403
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov dword [ebp - 0xdc], ecx
lea ecx, [ebp - 0xdc]
push ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x3c], eax
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468c50
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
push 4
pop eax
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xdc]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne 0x473bda
cmp dword [ebp - 0xdc], ecx
je 0x471782
push dword [ebx + 4]
mov edx, dword [ebp - 0x3c]
push dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x18]
call fcn.00489b19
mov al, byte [ebp - 0x3c]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x75], al
jmp 0x471782
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x48]
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 - 0x48], xmm0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00468a32
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x1c], ecx
cmp dword [ebx + 0xc], eax
je 0x47177a
mov edx, dword [ebp - 0x48]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0x44]
adc dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47177a
mov esi, dword [ebp - 0x24]
imul ecx, eax, 0x28
add dword [ecx + esi], edx
mov eax, dword [ebp - 0x44]
adc dword [ecx + esi + 4], eax
mov ecx, dword [ebp - 0x1c]
jmp 0x47177a
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 0x474cfe
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.00477d23
jmp 0x4714d6
mov ecx, dword [ecx + 0x2c]
call fcn.00468a91
jmp 0x471775
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xec]
push dword [ebx + 0xc]
mov esi, eax
shl ecx, 4
xor eax, eax
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x18]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.0046886b
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bda
mov eax, dword [ebp - 0xec]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x471782
mov eax, dword [ebp - 0x18]
xor ecx, ecx
push ecx
push ecx
push ecx
inc byte [eax + 0x60]
push dword [ebx + 0x10]
push eax
call fcn.00494c90
mov esi, dword [ebp - 0x18]
add esp, 0x14
dec byte [esi + 0x60]
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bdd
jmp 0x471782
mov esi, dword [ebx + 4]
xor edx, edx
cmp dword [ebx + 0x10], edx
jne 0x474ddd
mov eax, dword [ebp - 0x18]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.0048cb20
mov eax, dword [ebp - 0x18]
mov edx, esi
mov esi, dword [ebp - 0x18]
pop ecx
mov ecx, esi
and dword [eax + 0x18], 0xffffffef
movzx eax, word [ebx + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.00498e8f
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
inc eax
mov dword [ebp - 0x1c], ecx
or dword [esi + 0x18], eax
and dword [edi + 0x98], 0xfffffffc
jmp 0x474eb0
mov ecx, dword [ebp - 0x18]
lea eax, [edi + 0x7c]
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xbc], esi
add esi, esi
mov dword [ebp - 0xc0], eax
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xb4], edx
mov ecx, dword [ecx + esi*8 + 4]
call fcn.00461e26
push dword [ebx + 0x10]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x18]
push str.sqlite_master
mov eax, dword [eax + 0x10]
push dword [eax + esi*8]
mov esi, dword [ebp - 0x18]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00452d1e
mov edi, eax
add esp, 0x14
test edi, edi
je 0x476417
xor eax, eax
inc eax
mov byte [esi + 0xb1], al
xor eax, eax
push eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xc4]
push eax
push fcn.00498c50
push edi
push esi
call fcn.00494c90
mov esi, eax
add esp, 0x14
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x474e96
mov esi, dword [ebp - 0xb8]
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x474e96
cmp dword [ebp - 0xb0], esi
jne 0x474e96
mov ecx, 0x178d1
call fcn.004bbf6e
mov esi, eax
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x18]
mov edx, edi
mov ecx, esi
call fcn.00450d17
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov edi, dword [ebp - 0x14]
mov byte [esi + 0xb1], al
test ecx, ecx
jne 0x47641d
jmp 0x471782
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.004859e3
jmp 0x471775
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.00487554
jmp 0x47172a
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.00487083
jmp 0x47172a
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.004a2b9b
jmp 0x47172a
imul eax, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x118]
push eax
mov eax, dword [edi]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x18]
push eax
movzx eax, word [ebx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.0046963d
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov dword [ebp - 0x44], eax
call fcn.0046adb0
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x474f85
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x4715ac
dec eax
cdq
sub dword [edi], eax
push fcn.00450ca0
sbb dword [edi + 4], edx
xor eax, eax
inc eax
mov edx, ecx
mov ecx, dword [ebp - 0x28]
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0046b029
add esp, 0x10
movzx edx, byte [ebp - 0x64]
mov ecx, dword [ebp - 0x28]
call fcn.0046a60e
jmp 0x474895
imul edi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
push 0x10
pop ecx
add edi, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
test byte [edi + 0x10], cl
jne 0x474fc1
mov ecx, edi
call fcn.0046ae90
test eax, eax
jne 0x4715ac
mov eax, dword [ebp - 0x44]
push dword [eax + 4]
mov ecx, dword [edi + 8]
push dword [eax]
call fcn.00459fc9
jmp 0x4722c6
imul edi, dword [ebx + 4], 0x28
push 0x10
pop eax
add edi, dword [ebp - 0x24]
test byte [edi + 0x10], al
je 0x475013
mov ecx, dword [edi + 8]
lea edx, [ebp - 0x128]
call fcn.0045a1e6
test eax, eax
je 0x475013
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0x124]
push dword [ebp - 0x128]
add ecx, dword [ebp - 0x24]
call fcn.0046ae1c
pop ecx
pop ecx
jmp 0x474895
mov ecx, edi
call fcn.0046adb0
mov edi, dword [ebp - 0x14]
jmp case.0x471227.9
imul edi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebx + 0x10]
push 0x10
pop edx
add edi, dword [ebp - 0x24]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], ecx
test byte [edi + 0x10], dl
jne 0x475056
mov ecx, edi
call fcn.0046ae90
test eax, eax
jne 0x4715ac
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x47507c
push dword [eax + 4]
mov edx, ecx
mov ecx, dword [edi + 8]
push dword [eax]
call fcn.0045a23e
pop ecx
pop ecx
test eax, eax
jne 0x473db2
cmp dword [ebp - 0x3c], eax
jl 0x476021
mov eax, dword [ebp - 0x28]
jmp 0x474fc1
imul eax, dword [ebx + 0xc], 0x28
xor ecx, ecx
mov edi, dword [ebx + 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x50], edi
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp word [ebx + 2], cx
je 0x4750bd
mov ecx, dword [edi + 0x14]
mov eax, dword [edx + 0xd0]
test eax, eax
je 0x4750ba
cmp dword [eax + 0x1c], ecx
je 0x4761f9
mov eax, dword [eax + 4]
jmp 0x4750a8
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edx + 0xd8]
cmp ecx, dword [edi + 0xa0]
mov edi, dword [ebp - 0x50]
jge 0x476439
test byte [eax + 0x10], 0x10
jne 0x4751cf
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x3c], ecx
add eax, 7
imul ecx, ecx, 0xa
add ecx, edx
mov eax, eax
test eax, eax
jns 0x475106
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
add eax, 0x58
mov dword [ebp - 0x44], eax
cdq
push edx
push eax
call fcn.00450fbe
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4715ac
mov ecx, dword [ebp - 0x28]
call fcn.0046a9c3
mov eax, dword [ebp - 0x28]
mov ecx, 0x1010
sub ebx, dword [ebp - 0x20]
push 0x14
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 8], edi
mov dword [eax + 0x24], 0x46c610
mov eax, dword [ebp - 0x14]
mov dword [edi], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x3c], ecx
imul ecx, ecx, 0x28
mov eax, dword [eax + 0xc]
mov dword [edi + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, dword [ebp - 0x14]
add ecx, 0x58
mov ebx, dword [ebp - 0x50]
add ecx, edi
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [edi + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x4751c7
mov edx, dword [ebp - 0x18]
xor ebx, ebx
mov dword [eax + 0x14], edx
mov word [eax + 0x10], bx
add eax, 0x28
cmp eax, ecx
jne 0x4751b1
mov ebx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xd8]
jmp 0x4751d5
mov edi, dword [eax + 8]
mov ebx, dword [ebp - 0x50]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0xd8], eax
mov eax, dword [edx + 0xd0]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], ecx
mov eax, dword [edx + 0xe4]
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [edx + 0xe4], eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], eax
lea eax, [edi + 0x58]
mov dword [edx + 0x58], eax
mov dword [edx + 0xd0], edi
mov ecx, dword [edi + 0x3c]
mov dword [edx + 0x14], ecx
imul ecx, ecx, 0x28
mov dword [ebp - 0x24], eax
movzx eax, word [edi + 0x40]
mov dword [edx + 0x18], eax
add ecx, 0x58
add ecx, edi
mov dword [edx + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], ecx
mov eax, dword [ebx + 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.00719250
mov ecx, dword [ebx]
add esp, 0xc
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
mov dword [edi + 0x68], ecx
mov eax, dword [ebx + 4]
lea ebx, [ecx - 0x14]
mov dword [edi + 0x6c], eax
jmp 0x475cd4
mov edx, ebx
mov ecx, edi
call fcn.00471066
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.0046af45
pop ecx
jmp 0x471782
mov eax, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, edx
mov eax, dword [ebx + 8]
je 0x4752eb
mov ecx, dword [ebp - 0x18]
cdq
add dword [ecx + 0x208], eax
adc dword [ecx + 0x20c], edx
jmp 0x4714d6
cmp dword [ebx + 4], edx
cdq
je 0x475305
mov ecx, dword [ebp - 0x18]
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp 0x4714d6
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x4714d6
xor eax, eax
cmp dword [ebx + 4], eax
je 0x475342
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x4714d6
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
jmp 0x4723e5
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x4714d6
mov eax, dword [ebp - 0x18]
mov ecx, eax
jmp 0x475331
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x47539f
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x24]
mov ecx, edi
call fcn.0046ab66
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046ab66
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x476021
jl 0x475393
cmp dword [edi], eax
jae 0x476021
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x471560
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47539d
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x475366
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, dword [ebp - 0x24]
mov edi, dword [ecx]
cmp dword [ecx + 4], edx
jl 0x4714d3
jg 0x4753cd
cmp edi, edx
jbe 0x4714d3
mov eax, dword [ebx + 0xc]
cdq
sub edi, eax
mov eax, dword [ecx + 4]
mov dword [ecx], edi
sbb eax, edx
mov dword [ecx + 4], eax
jmp 0x473db2
imul esi, dword [ebx + 4], 0x28
mov edx, ebx
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x14]
add esi, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
call fcn.00471066
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x104], ecx
test ecx, ecx
jl 0x475460
jg 0x47541a
xor ecx, ecx
cmp edx, ecx
jbe 0x475460
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x47542b
jg 0x475439
cmp eax, edx
ja 0x475439
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ecx
push eax
lea ecx, [ebp - 0x108]
call fcn.00454c2d
pop ecx
pop ecx
test eax, eax
jne 0x47545d
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
jmp 0x4741ef
mov eax, dword [ebp - 0x3c]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x471560
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
mov edx, dword [ecx]
mov eax, edx
mov edi, dword [ecx + 4]
or eax, edi
je 0x4714d3
xor eax, eax
cmp edi, eax
jl 0x473db2
jg 0x475496
cmp edx, eax
jbe 0x473db2
sub edx, 1
mov dword [ecx], edx
sbb edi, eax
mov dword [ecx + 4], edi
jmp 0x473db2
imul edx, dword [ebx + 4], 0x28
add edx, dword [ebp - 0x24]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x4754ca
jg 0x4754bf
test eax, eax
je 0x4754ca
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x4723e5
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x3c], eax
push ecx
mov ecx, dword [ebp - 0x18]
lea eax, [eax*4 + 0x44]
push eax
call fcn.0045101b
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4715af
mov edx, dword [ebp - 0x18]
xor eax, eax
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x3c]
add eax, 7
lea ecx, [esi + eax*4]
xor eax, eax
inc eax
mov dword [esi], ecx
push eax
call fcn.0046ad9c
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x20]
pop ecx
cdq
push 0x14
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 - 0x64]
mov byte [esi + 0x18], al
mov eax, dword [ebp - 0x3c]
mov byte [esi + 0x1a], al
mov word [ebx], 0xf1a3
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x44], edx
cmp dword [edi + 8], edx
je 0x475585
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], edx
js 0x475585
lea esi, [ecx + 7]
push 4
lea esi, [edi + esi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [esi], eax
sub esi, edx
sub ecx, 1
jns 0x47556e
mov edx, dword [ebp - 0x44]
inc dword [edx + 0xc]
lea eax, [edi + 0x1c]
movzx ecx, byte [edi + 0x1a]
xor edx, edx
mov esi, dword [edi + 4]
push eax
push ecx
push edi
cmp dword [ebx + 4], edx
je 0x4755a1
mov esi, dword [esi + 0x1c]
jmp 0x4755a4
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x7f07dc]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x476021
jle 0x4755dd
push dword [edi]
call fcn.0046f290
pop ecx
push eax
push 0x860490
push dword [ebp - 0x14]
call fcn.0046b818
mov esi, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x1c], esi
cmp byte [edi + 0x19], 0
je 0x475601
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x4755fc
xor ecx, ecx
push ecx
inc ecx
push ecx
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x24]
call fcn.0046ae1c
pop ecx
pop ecx
xor eax, eax
mov byte [edi + 0x19], al
mov ecx, dword [edi]
call fcn.0046a9c3
mov eax, dword [edi]
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
xor eax, eax
mov dword [edi + 0x14], eax
jmp 0x4737dd
imul edi, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 0xc]
add edi, ecx
test eax, eax
je 0x475644
push dword [ebx + 0x10]
imul edx, eax, 0x28
add edx, ecx
mov ecx, edi
call fcn.0046a907
imul edi, dword [ebx + 0xc], 0x28
pop ecx
add edi, dword [ebp - 0x24]
jmp 0x47564e
mov edx, dword [ebx + 0x10]
mov ecx, edi
call fcn.0046a898
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x476459
movzx edx, byte [ebp - 0x64]
mov ecx, edi
call fcn.0046a60e
jmp 0x4714d3
mov edx, dword [ebx + 4]
xor eax, eax
mov ecx, dword [ebp - 0x18]
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.004baf78
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x4756b4
push 5
pop eax
cmp ecx, eax
jne 0x473bda
xor eax, eax
xor ecx, ecx
mov esi, eax
inc ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x10], ecx
jmp 0x4756b6
xor eax, eax
imul edi, dword [ebx + 0xc], 0x28
mov esi, eax
add edi, dword [ebp - 0x24]
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.0046ae1c
inc esi
add edi, 0x28
pop ecx
pop ecx
cmp esi, 3
jl 0x4756bf
jmp 0x471560
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x44], eax
call fcn.00468dfd
mov ecx, eax
mov dword [ebp - 0x30], eax
call fcn.0045deef
mov ecx, dword [ebp - 0x30]
cmp edi, 0xffffffff
mov dword [ebp - 0x28], eax
cmove edi, eax
call fcn.0045def4
mov ecx, dword [ebp - 0x30]
test eax, eax
cmove edi, dword [ebp - 0x28]
xor eax, eax
lea edx, [eax + 1]
call fcn.0045dcb5
push 5
pop ecx
cmp edi, ecx
jne 0x47575c
mov ecx, eax
call fcn.00453a51
test eax, eax
je 0x475751
mov ecx, dword [ebp - 0x30]
call fcn.0045df8c
test eax, eax
jne 0x475759
mov edi, dword [ebp - 0x28]
jmp 0x4757dd
push 5
pop ecx
mov eax, dword [ebp - 0x28]
cmp edi, eax
je 0x4757dd
cmp eax, ecx
je 0x47576b
cmp edi, ecx
jne 0x4757dd
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x55], 0
je 0x476474
xor edx, edx
inc edx
cmp dword [ecx + 0xc0], edx
jg 0x476474
push 5
pop edx
cmp eax, edx
jne 0x4757ad
mov edx, ecx
mov ecx, dword [ebp - 0x30]
call fcn.0045e065
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
jne 0x4757e1
mov ecx, dword [ebp - 0x30]
mov edx, edi
call fcn.0045de25
jmp 0x4757c5
push 4
pop ecx
cmp eax, ecx
jne 0x4757c1
mov ecx, dword [ebp - 0x30]
push 2
pop eax
mov edx, eax
call fcn.0045de25
test esi, esi
jne 0x4757e1
mov ecx, dword [ebp - 0x44]
xor edx, edx
push 5
pop eax
cmp edi, eax
sete dl
inc edx
call fcn.00469af6
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x4757e4
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x30]
mov edx, edi
call fcn.0045de25
mov esi, dword [ebp - 0x3c]
mov ecx, 0x2202
mov word [esi + 0x10], cx
mov ecx, eax
call fcn.0049585c
mov ecx, eax
mov dword [esi + 8], eax
call fcn.00453a51
mov dword [esi + 0xc], eax
mov ecx, esi
xor eax, eax
inc eax
mov byte [esi + 0x12], al
movzx edx, byte [ebp - 0x64]
call fcn.0046a60e
jmp 0x4737dd
mov eax, dword [ebx + 8]
test eax, eax
je 0x475833
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
jmp 0x475835
xor eax, eax
mov edx, dword [ebp - 0x18]
lea ecx, [edi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.004a5e90
jmp 0x47439a
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0046346b
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x471782
cmp ecx, 0x65
jne 0x473bda
xor eax, eax
mov esi, eax
mov dword [ebp - 0x1c], esi
jmp 0x473db5
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x475896
mov edx, dword [ebx + 8]
mov ecx, dword [ebp - 0x18]
call fcn.0046edd3
jmp 0x4714d6
mov eax, dword [ebx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
jmp 0x4714d6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.00463bfa
jmp 0x4714d6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.00463bff
jmp 0x4714d6
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x11c], al
test al, al
jne 0x4758fd
mov eax, dword [ebp - 0x18]
mov ecx, 0x400
mov eax, dword [eax + 0x20]
and eax, ecx
mov dword [ebp - 0x48], eax
jne 0x4714d6
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 4]
push dword [ebp - 0x11c]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00469a4b
pop ecx
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x471782
cmp cl, 6
jne 0x473bda
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x476469
mov esi, dword [ebx + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0x18]
call fcn.004a7107
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test esi, esi
je 0x47177a
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0046eebf
jmp 0x474cd6
imul edx, dword [ebx + 8], 0x28
lea edi, [ebp - 0x1f0]
push 0xa
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x1f0]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x1dc], eax
call fcn.0046af96
mov esi, eax
lea eax, [ebp - 0x1f0]
push eax
mov dword [ebp - 0x1c], esi
call fcn.0046f290
mov edi, dword [ebp - 0x14]
pop ecx
test eax, eax
je 0x4759bf
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
call fcn.004a6d09
pop ecx
mov esi, eax
pop ecx
mov dword [ebp - 0x1c], esi
lea ecx, [ebp - 0x1f0]
call fcn.0046a9c3
jmp 0x474cd6
mov eax, dword [ebp - 0x18]
mov ecx, eax
inc dword [eax + 0xcc]
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.004a6fed
mov esi, dword [ebp - 0x18]
pop ecx
dec dword [esi + 0xcc]
jmp 0x474d78
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4764af
mov eax, dword [edi]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x4764af
mov esi, dword [eax + 0x18]
lea ecx, [ebp - 0x28]
push ecx
push edi
mov ecx, esi
call dword [0x7f07dc]
call esi
mov esi, eax
mov edx, edi
pop ecx
pop ecx
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0046eebf
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x476661
mov eax, dword [ebp - 0x28]
mov ecx, esi
push 2
mov dword [eax], edi
mov edx, dword [ebx + 4]
pop eax
push eax
xor eax, eax
push eax
call fcn.00470d87
pop ecx
pop ecx
test eax, eax
je 0x476496
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x2c], ecx
inc dword [edi + 4]
jmp 0x471560
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x44], eax
xor eax, eax
push eax
push 8
pop eax
push eax
call fcn.00450bf0
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x4715ac
mov ecx, dword [ebp - 0x44]
mov edx, ebx
mov ecx, dword [ecx + 0x2c]
mov dword [edi], ecx
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00471066
xor ecx, ecx
mov edx, edi
inc ecx
push fcn.00450ca0
mov word [eax + 0x10], cx
mov ecx, eax
push str.ValueList
call fcn.0046ae4f
jmp 0x4722c6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x54], eax
add edx, dword [ebp - 0x24]
mov edi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [edi]
mov dword [ebp - 0x28], eax
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [edx]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 0x5c]
xor eax, eax
test ecx, ecx
jle 0x475b13
add edx, 0x50
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x475b08
push esi
mov esi, dword [ebp - 0x3c]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x44]
mov esi, dword [esi + 0x20]
mov ecx, esi
push edi
call dword [0x7f07dc]
call esi
mov edx, dword [ebp - 0x28]
add esp, 0x14
mov ecx, dword [ebp - 0x14]
mov esi, eax
mov dword [ebp - 0x1c], esi
call fcn.0046eebf
mov ecx, esi
test ecx, ecx
jne 0x473bd7
mov eax, dword [ebp - 0x3c]
push edi
mov esi, dword [eax + 0x28]
mov ecx, esi
call dword [0x7f07dc]
call esi
pop ecx
mov ecx, dword [ebp - 0x54]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x471560
jmp 0x473daf
mov esi, dword [ebp - 0x1c]
jmp 0x473db5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], edx
add ecx, eax
cmp byte [edx + 2], 0
mov dword [ebp - 0x44], ecx
je 0x475ba0
call fcn.0046adb0
jmp 0x4714d6
mov eax, dword [edx + 0x2c]
lea edi, [ebp - 0x178]
push 8
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov esi, dword [eax]
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov al, byte [ebp - 0x64]
xor ecx, ecx
mov edi, dword [ebp - 0x44]
inc ecx
mov dword [ebp - 0x178], edi
mov byte [ebp - 0x160], al
test byte [ebx + 2], cl
je 0x475be8
mov ecx, edi
call fcn.0046adb0
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov dword [edi], eax
mov eax, 0x401
jmp 0x475bf9
mov ax, word [edi + 0x10]
and ax, word [ebp - 0x120]
or ax, cx
movzx eax, ax
mov word [edi + 0x10], ax
lea eax, [ebp - 0x178]
push dword [ebx + 8]
mov esi, dword [esi + 0x2c]
mov ecx, esi
push eax
push dword [edx + 0x2c]
call dword [0x7f07dc]
call esi
mov edx, dword [ebp - 0x28]
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.0046eebf
cmp dword [ebp - 0x164], 0
jle 0x475c54
push edi
call fcn.0046f290
pop ecx
push eax
push 0x860490
push esi
call fcn.0046b818
mov esi, dword [ebp - 0x164]
add esp, 0xc
mov dword [ebp - 0x1c], esi
mov ecx, edi
jmp 0x475816
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x44], eax
cmp byte [eax + 2], 0
jne 0x4714d6
mov eax, dword [eax + 0x2c]
push eax
mov edi, dword [eax]
mov ecx, dword [edi]
mov dword [ebp - 0x3c], ecx
mov esi, dword [ecx + 0x24]
mov ecx, esi
call dword [0x7f07dc]
call esi
pop ecx
mov edx, edi
mov esi, eax
mov edi, dword [ebp - 0x14]
mov ecx, edi
mov dword [ebp - 0x1c], esi
call fcn.0046eebf
mov ecx, esi
test ecx, ecx
jne 0x473bda
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x3c]
push dword [eax + 0x2c]
mov esi, dword [esi + 0x28]
mov ecx, esi
call dword [0x7f07dc]
call esi
pop ecx
test eax, eax
jne 0x475cd1
mov esi, dword [ebp - 0x1c]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x20]
add ebx, 0xffffffec
add ebx, eax
jmp 0x475cd4
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
xor eax, eax
cmp dword [edx + 0x128], eax
jne 0x47663d
mov ecx, dword [ebp - 0x84]
cmp dword [ebp - 0xa4], ecx
jb 0x471782
mov eax, dword [ebp - 0x80]
ja 0x475d08
cmp dword [ebp - 0x88], eax
jb 0x471782
mov edi, dword [edx + 0x174]
test edi, edi
je 0x476021
add eax, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x80], eax
pop eax
push dword [edx + 0x178]
adc ecx, eax
mov dword [ebp - 0x84], ecx
mov ecx, edi
call dword [0x7f07dc]
call edi
pop ecx
test eax, eax
jne 0x4764b6
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], ecx
ja 0x475d08
jb 0x4714d3
cmp dword [ebp - 0x88], eax
jae 0x475d08
jmp 0x4714d3
mov ecx, dword [ebp - 0x18]
mov eax, 0x4000000
mov edi, dword [ecx + 0x20]
or dword [ecx + 0x20], eax
and edi, eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov eax, dword [eax + 8]
mov dword [ebp - 0x3c], eax
xor eax, eax
add esi, dword [ebp - 0x24]
mov ecx, esi
lea edx, [eax + 1]
call fcn.0046a60e
mov ecx, eax
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x473bd7
mov ecx, dword [ebp - 0x3c]
push dword [esi + 8]
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0x7f07dc]
call esi
mov esi, eax
mov dword [ebp - 0x1c], esi
pop ecx
pop ecx
test edi, edi
jne 0x475dda
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [ebp - 0x14]
mov ecx, edi
mov edx, dword [ebp - 0x3c]
call fcn.0046eebf
and dword [edi + 0x98], 0xfffffffc
jmp 0x474cd6
mov ecx, dword [ebp - 0x18]
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
cmp byte [ecx + 0x57], 0
jne 0x4715b2
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4764af
mov eax, dword [edi]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x4764af
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [eax + 0x34], ecx
je 0x4714d3
mov eax, dword [ebp - 0x18]
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x49], al
mov eax, dword [ebp - 0x14]
mov esi, dword [eax + 0x5c]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
test edx, edx
jle 0x475e56
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x475e4b
mov ecx, dword [ebp - 0x18]
mov al, byte [ebx + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x40]
push eax
push esi
mov esi, dword [ebp - 0x44]
push edx
push edi
mov esi, dword [esi + 0x34]
mov ecx, esi
call dword [0x7f07dc]
call esi
mov ecx, dword [ebp - 0x18]
mov esi, eax
mov al, byte [ebp - 0x49]
add esp, 0x10
mov edx, edi
mov dword [ebp - 0x1c], esi
mov edi, dword [ebp - 0x14]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.0046eebf
mov ecx, esi
test ecx, ecx
jne 0x475eb4
mov esi, dword [ebp - 0x18]
xor edx, edx
cmp dword [ebx + 4], edx
je 0x475ee3
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x2c], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [esi + 0x28], eax
jmp 0x475ee3
cmp cl, 0x13
jne 0x475ede
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x475ede
movzx edx, word [ebx + 2]
push 4
pop eax
cmp dx, ax
jne 0x4764c8
xor eax, eax
mov esi, eax
mov dword [ebp - 0x1c], esi
jmp 0x4714d6
mov esi, dword [ebp - 0x18]
xor edx, edx
xor eax, eax
inc eax
add dword [edi + 0x28], eax
adc dword [edi + 0x2c], edx
jmp 0x474d7d
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [ebp - 0x18]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.00461e26
jmp 0x474d4f
mov edx, ebx
mov ecx, edi
call fcn.00471066
mov edx, dword [ebx + 4]
mov dword [ebp - 0x44], eax
add edx, edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
mov edi, dword [ecx + edx*8 + 4]
xor ecx, ecx
mov eax, ecx
cmp dword [ebx + 0xc], ecx
je 0x475f47
mov ecx, edi
call fcn.00461e26
cmp eax, dword [ebx + 0xc]
cmovb eax, dword [ebx + 0xc]
mov edx, eax
mov ecx, edi
call fcn.004628b7
mov ecx, dword [ebp - 0x44]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x4714d3
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x3c], edx
cmp dword [edi], edx
je 0x475fa7
mov eax, dword [ebp - 0x14]
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 0xc], eax
mov al, byte [ebp - 0x64]
mov dword [edi], edx
mov byte [edi + 0x18], al
js 0x475fa7
lea esi, [ecx + 7]
push 4
lea esi, [edi + esi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [esi], eax
sub esi, edx
sub ecx, 1
jns 0x475f90
mov edx, dword [ebp - 0x3c]
mov ax, word [edx + 0x10]
mov ecx, 0xf241
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edx + 0x10], ax
lea eax, [edi + 0x1c]
mov esi, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
mov esi, dword [esi + 0x10]
mov ecx, esi
push edi
call dword [0x7f07dc]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x476021
jle 0x476003
push dword [ebp - 0x3c]
call fcn.0046f290
pop ecx
push eax
push 0x860490
push dword [ebp - 0x14]
call fcn.0046b818
mov esi, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x1c], esi
push dword [ebx + 4]
mov edx, dword [ebp - 0x14]
push dword [edi + 0x10]
mov ecx, dword [ebp - 0x18]
lea edx, [edx + 0xe4]
call fcn.0046dabe
pop ecx
pop ecx
jmp 0x475611
mov edi, dword [ebp - 0x14]
jmp 0x471782
imul eax, dword [ebx + 4], 0x28
mov ecx, 0xf7ff
add eax, dword [ebp - 0x24]
and word [eax + 0x10], cx
jmp 0x4714d6
imul edi, dword [ebx + 4], 0x28
mov edx, ebx
mov ecx, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
call fcn.0047108b
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00785000
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 0x471560
imul ebx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
add ebx, dword [ebp - 0x24]
call fcn.0047108b
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00785000
mov ecx, dword [ebx + 8]
mov edi, eax
mov ebx, dword [ebp - 0x30]
mov esi, edi
shrd esi, edx, 3
and edi, 7
xor eax, eax
inc eax
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
shl eax, cl
test eax, edx
jne 0x4760cf
inc dword [edi + 0xc4]
jmp 0x473db5
inc dword [edi + 0xc0]
jmp 0x4714d6
mov eax, dword [ebp - 0x18]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x4761ac
cmp byte [edi + 0x93], 0xfe
je 0x4761ac
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x47610b
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x4761ac
test cl, 0x40
je 0x476143
mov edx, eax
mov ecx, edi
call fcn.00470a81
mov edi, eax
mov eax, dword [ebp - 0x18]
push edi
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
call dword [0x7f07dc]
call esi
push edi
call fcn.00450ca0
add esp, 0xc
mov edi, dword [ebp - 0x14]
jmp 0x4761a9
mov esi, dword [ebp - 0x18]
xor ecx, ecx
inc ecx
push eax
cmp dword [esi + 0xc8], ecx
jle 0x47618e
push str.____s
push esi
call fcn.00452d1e
add esp, 0xc
mov edi, eax
xor eax, eax
inc eax
push edi
push dword [ebp - 0x14]
push dword [esi + 0xdc]
mov esi, dword [esi + 0xd8]
mov ecx, esi
push eax
call dword [0x7f07dc]
call esi
push edi
push dword [ebp - 0x18]
call fcn.00450dc0
add esp, 0x18
jmp 0x47613e
push edi
push dword [esi + 0xdc]
mov esi, dword [esi + 0xd8]
push ecx
mov ecx, esi
call dword [0x7f07dc]
call esi
add esp, 0x10
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebx + 4]
cmp eax, dword [0x8d8bf4]
jl 0x4761ea
cmp byte [ebx], 0xb5
je 0x4714d6
xor eax, eax
inc eax
mov edx, eax
cmp dword [edi + 0x6c], eax
jle 0x4761e8
push 0x14
pop eax
push eax
pop esi
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x4761dd
and dword [eax + ecx + 4], 0
inc edx
add eax, esi
cmp edx, dword [edi + 0x6c]
jl 0x4761cf
mov esi, dword [ebp - 0x1c]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [edi + 0xbc]
jmp 0x473db5
mov edi, edx
jmp 0x4714d6
mov ecx, dword [ebx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
test ecx, ecx
je 0x476288
movzx eax, word [ebx + 2]
test ax, ax
je 0x476252
push dword [eax*4 + 0x859e30]
push str._s_constraint_failed
push edi
call fcn.0046b818
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x476263
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x18]
call fcn.00452d1e
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x476263
push dword [ebx + 0x10]
push 0x860490
push edi
call fcn.0046b818
add esp, 0xc
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc8]
sub eax, dword [ebp - 0x20]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.00452ef0
add esp, 0x14
mov ecx, edi
call fcn.0046d6b4
mov edx, dword [ebp - 0x18]
mov esi, eax
push 5
pop eax
cmp esi, eax
jne 0x4762a3
mov dword [edi + 0x24], eax
jmp 0x47671c
push 0x65
pop ecx
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne ecx, eax
mov dword [ebp - 0x1c], ecx
mov esi, ecx
jmp 0x47671c
push 0x865d1c
push 0x16a1c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00452ef0
add esp, 0x14
push 0xb
pop ecx
mov dword [ebp - 0x1c], ecx
jmp 0x473bd7
mov edx, dword [ebp - 0x28]
and ecx, 0x3f
mov esi, dword [ebp - 0x44]
add edx, edx
mov edi, dword [ebp - 0x14]
push dword [esi + edx*8]
mov edx, dword [ebp - 0x3c]
push dword [edx]
push dword [eax*4 + 0x8d9a8c]
movzx eax, byte [ecx + 0x85ddc0]
push dword [eax*4 + 0x85ca90]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0046b818
add esp, 0x18
mov ecx, 0xc13
jmp 0x471e39
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0046b818
pop ecx
pop ecx
push 5
jmp 0x471e36
mov edi, dword [ebp - 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x47632c
mov eax, ebx
sub eax, dword [ebp - 0x20]
cdq
push 0x14
pop edi
idiv edi
mov edx, dword [ebp - 0x18]
mov dword [esi + 0x20], eax
xor eax, eax
mov esi, ecx
mov byte [edx + 0x55], al
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x24], ecx
jmp 0x47671c
and edx, esi
xor eax, eax
or edx, eax
mov esi, dword [ebp - 0x18]
je 0x47637a
push 8
pop eax
mov ecx, eax
jmp 0x47637d
push 0xb
pop ecx
mov dword [ebp - 0x1c], ecx
jmp 0x473bdd
cmp cl, 5
jne 0x473bd7
mov eax, ebx
sub eax, dword [ebp - 0x20]
push 0x14
pop esi
cdq
idiv esi
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
jmp 0x476719
mov ecx, 0x204
jmp 0x47637d
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call fcn.0046268f
mov ecx, dword [ebp - 0x1c]
jmp 0x473bd7
mov edi, dword [ebp - 0x14]
push str.string_or_blob_too_big
push edi
call fcn.0046b818
pop ecx
pop ecx
push 0x12
pop ecx
jmp 0x471e39
push str.index_corruption
mov edx, 0x17708
mov ecx, 0x30b
call fcn.004bbf4c
pop ecx
mov ecx, eax
jmp 0x4762dc
mov ecx, 0x177d5
call fcn.004bbf6e
jmp 0x4763f0
push 6
pop ecx
push 2
mov dword [ebp - 0x1c], ecx
pop eax
mov byte [edi + 0x92], al
jmp 0x473bda
push 7
pop esi
mov dword [ebp - 0x1c], esi
mov ecx, dword [ebp - 0x18]
call fcn.004871e7
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
cmp ecx, 7
je 0x4715af
jmp 0x473bda
mov edi, dword [ebp - 0x14]
xor eax, eax
push str.too_many_levels_of_trigger_recursion
push edi
lea esi, [eax + 1]
mov dword [ebp - 0x1c], esi
call fcn.0046b818
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
jmp 0x473bda
push edi
call fcn.0046f290
pop ecx
push eax
push 0x860490
mov edi, dword [ebp - 0x14]
push edi
call fcn.0046b818
add esp, 0xc
jmp 0x476451
xor eax, eax
mov ecx, str.out_of
push 5
pop edx
cmp edi, edx
lea esi, [eax + 1]
mov eax, str.into
cmovne eax, ecx
mov dword [ebp - 0x1c], esi
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x476466
mov esi, dword [ebp - 0x44]
push dword [ebp - 0x28]
mov esi, dword [esi + 0x1c]
mov ecx, esi
call dword [0x7f07dc]
call esi
pop ecx
jmp 0x4715ac
push 6
jmp 0x4762db
or dword [ebp - 0x80], 0xffffffff
or dword [ebp - 0x84], 0xffffffff
push 9
jmp 0x4762db
push 5
pop esi
movzx eax, dl
cmp dx, si
push 2
pop edx
cmove eax, edx
jmp 0x47640c
mov eax, dword [edi + 0x1c]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0x1c], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
mov dword [edi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x4715b2
push 4
pop edx
test byte [ecx + 0x5e], dl
je 0x476529
mov esi, dword [ecx + 0xd8]
xor eax, eax
push eax
push edi
push dword [ecx + 0xdc]
mov ecx, esi
push edx
call dword [0x7f07dc]
call esi
add esp, 0x10
mov eax, ebx
sub eax, dword [ebp - 0x20]
push 0x14
cdq
pop ecx
idiv ecx
push 0x64
inc eax
mov dword [edi + 0x20], eax
jmp 0x47343c
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x8c], edx
movzx eax, byte [ecx + 0x55]
cmp edx, eax
je 0x4765fe
test esi, esi
je 0x47656f
mov edx, 0x204
call fcn.004ba485
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x4765a9
test edx, edx
je 0x476587
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x476587
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x47632c
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.0046d646
mov esi, eax
test esi, esi
jne 0x476719
mov al, byte [ebp - 0x8c]
mov byte [ebp - 0x8c], al
mov esi, dword [ebp - 0x18]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.0046d6b4
push 5
pop ecx
cmp eax, ecx
jne 0x4765e4
mov eax, ebx
sub eax, dword [ebp - 0x20]
cdq
push 0x14
pop esi
idiv esi
mov edx, dword [ebp - 0x18]
mov esi, ecx
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0x8c]
mov byte [edx + 0x55], al
mov dword [edi + 0x24], ecx
jmp 0x47671c
mov ecx, esi
call fcn.004b9fbb
push 0x65
pop esi
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne esi, eax
jmp 0x476719
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
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.0046b818
pop ecx
pop ecx
jmp 0x4731c9
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x88], eax
push 9
jmp 0x4763d5
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x88], eax
jmp 0x4715af
mov edi, esi
jmp 0x473bda
cmp ecx, 0x210a
jne 0x47667f
mov ecx, 0x18069
call fcn.004bbf6e
mov ecx, eax
mov dword [ebp - 0x1c], ecx
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x4766a2
cmp ecx, 0xc0a
je 0x4766a2
call fcn.004ba589
push eax
push 0x860490
push edi
call fcn.0046b818
add esp, 0xc
mov esi, dword [ebp - 0x1c]
mov edx, esi
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0x24], esi
call fcn.00453ae1
push dword [edi + 0x7c]
mov eax, ebx
push dword [edi + 0xc8]
sub eax, dword [ebp - 0x20]
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.00452ef0
add esp, 0x14
push 2
pop ecx
cmp byte [edi + 0x95], cl
jne 0x4766ea
mov ecx, edi
call fcn.0046d6b4
push 2
pop ecx
cmp esi, 0xc0a
jne 0x476790
mov ecx, dword [ebp - 0x18]
call fcn.004512ff
mov edx, dword [ebp - 0x18]
xor eax, eax
lea esi, [eax + 1]
mov al, byte [ebp - 0x75]
test al, al
je 0x47671c
mov ecx, dword [ebp - 0x18]
movzx edx, al
dec edx
call fcn.00487191
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x84]
cmp dword [ebp - 0xa4], ecx
jb 0x4767b4
mov eax, dword [ebp - 0x80]
ja 0x47673b
cmp dword [ebp - 0x88], eax
jb 0x4767b4
mov edi, dword [edx + 0x174]
test edi, edi
je 0x4767b4
add eax, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x80], eax
pop eax
push dword [edx + 0x178]
adc ecx, eax
mov dword [ebp - 0x84], ecx
mov ecx, edi
call dword [0x7f07dc]
call edi
mov edx, dword [ebp - 0x18]
pop ecx
test eax, eax
je 0x47671c
mov edi, dword [ebp - 0x14]
or eax, 0xffffffff
push 9
mov dword [ebp - 0x80], eax
mov esi, edx
or eax, 0xffffffff
pop ecx
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x1c], ecx
jmp 0x473bdd
cmp esi, 0xb
jne 0x4766fe
mov edx, dword [ebp - 0x18]
cmp byte [edx + 0x55], 0
jne 0x476701
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x476701
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x88]
add dword [eax + 0xb4], ecx
mov ecx, eax
call fcn.0046c558
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00700c25
leave
ret