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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x6ffe74]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xor edx, edx
mov esi, edx
mov dword [ebp - 0x14], edi
xorps xmm0, xmm0
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x18], esi
mov ecx, dword [edi]
mov eax, dword [edi + 0x68]
mov ebx, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
mov al, byte [ecx + 0x54]
mov byte [ebp - 0x6c], al
mov eax, dword [edi + 0x58]
mov byte [ebp - 0x85], dl
mov dword [ebp - 0x80], edx
movlpd qword [ebp - 0xb8], xmm0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xbc], edx
cmp dword [edi + 0xa0], edx
je 0x473c55
mov ecx, edi
call fcn.0046eec7
mov ecx, dword [ebp - 0x1c]
xor edx, edx
cmp dword [ecx + 0x174], edx
je 0x473c7e
mov eax, dword [ecx + 0x17c]
xor edx, edx
mov dword [ebp - 0x7c], eax
mov eax, dword [edi + 0xb4]
div dword [ebp - 0x7c]
sub dword [ebp - 0x7c], edx
xor edx, edx
mov dword [ebp - 0x90], edx
jmp 0x473c89
or dword [ebp - 0x7c], 0xffffffff
or dword [ebp - 0x90], 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [ebp - 0x154], 0x14
je 0x47942a
mov dword [edi + 0x24], edx
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], edx
mov dword [ecx + 0x1c8], edx
cmp dword [ecx + 0x128], edx
jne 0x47940d
imul ebx, dword [edi + 0x20], 0x14
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb8]
add ebx, eax
add ecx, 1
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x9c], ecx
push 0
pop ecx
adc edx, ecx
mov cl, byte [ebx]
mov dword [ebp - 0xa4], edx
movzx edx, cl
mov byte [ebp - 0x39], cl
mov dword [ebp - 0x2c], edx
cmp edx, 0xb8
ja case.0x473cfb.89
jmp dword [edx*4 + 0x4795b6]
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 - 0x154]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x473cfb.9
imul eax, dword [ebx + 4], 0x28
push 4
pop ecx
add eax, dword [ebp - 0x24]
test byte [eax + 0x10], cl
je 0x473f90
imul ebx, dword [eax], 0x14
mov eax, dword [ebp - 0x20]
add ebx, eax
jmp case.0x473cfb.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 0x4769a5
jmp 0x473f90
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 0x473f90
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 - 0x18]
add ebx, eax
jmp case.0x473cfb.89
imul eax, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x473f90
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x478ff7
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x478ff7
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 4]
push dword [ecx + 0x2c]
dec dword [ecx + 0xd8]
push dword [ecx + 0x28]
mov dword [ecx + 0xd0], eax
mov ecx, dword [ebp - 0x1c]
call fcn.004717f8
pop ecx
pop ecx
mov ecx, edi
call fcn.0046f750
mov edi, dword [ebp - 0x14]
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x473e2d
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi + 0x58]
mov dword [ebp - 0x24], ecx
imul ebx, eax, 0x14
jmp 0x473d3d
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x473f90
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x473f90
mov edx, ebx
mov ecx, edi
call fcn.0047399d
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x473f90
mov edx, ebx
mov ecx, edi
call fcn.0047399d
cmp dword [ebx + 0x10], 0
mov edi, eax
jne 0x473eac
xor ecx, ecx
mov eax, ecx
jmp 0x473ebc
push dword [ebx + 0x10]
call fcn.00643470
pop ecx
and eax, 0x3fffffff
xor ecx, ecx
xor edx, edx
mov dword [ebx + 4], eax
inc edx
cmp byte [ebp - 0x6c], dl
je 0x473f29
push ecx
push edx
mov edx, dword [ebx + 0x10]
mov ecx, edi
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0046d976
mov esi, eax
add esp, 0x10
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x4791a6
movzx edx, byte [ebp - 0x6c]
mov ecx, edi
call fcn.0046cf0a
test eax, eax
jne 0x474062
mov dword [edi + 0x18], eax
mov eax, 0x2000
or word [edi + 0x10], ax
cmp byte [ebx + 1], 0xfa
jne 0x473f19
push dword [ebx + 0x10]
push dword [ebp - 0x1c]
call fcn.004514af
pop ecx
pop ecx
mov byte [ebx + 1], 0xfa
mov eax, dword [edi + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
cmp eax, dword [ecx + 0x78]
jg 0x4791a9
mov byte [ebx], 0x49
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov edi, eax
mov eax, 0x2202
mov word [edi + 0x10], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [ebp - 0x6c]
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 0x473f8d
mov esi, dword [ebp - 0x24]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + esi], eax
mov esi, dword [ebp - 0x18]
jne 0x473f8d
mov eax, dword [ebp - 0x24]
cmp dword [ecx + eax + 4], edx
jne 0x473f8d
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 - 0x9c]
jmp 0x473ccd
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebx + 0xc]
mov edi, 0x101
mov edx, dword [ebx + 8]
mov dword [ebp - 0x58], 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 - 0x58]
sub eax, edx
mov dword [ebp - 0x34], ecx
mov word [edi], cx
mov dword [ebp - 0x58], eax
test eax, eax
jle 0x473f8d
xor edx, edx
mov ebx, 0x9000
lea edi, [edi + 0x28]
test word [edi], bx
je 0x474005
lea ecx, [edi - 0x10]
call fcn.0046d2b9
mov eax, dword [ebp - 0x58]
xor edx, edx
mov ecx, dword [ebp - 0x34]
dec eax
mov word [edi], cx
mov dword [edi - 4], edx
mov dword [ebp - 0x58], eax
test eax, eax
jg 0x473fed
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x18]
jmp 0x473f8d
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 0x473d88
mov edx, ebx
mov ecx, edi
call fcn.0047399d
cmp dword [ebx + 0x10], 0
mov edi, eax
mov ecx, edi
jne 0x474081
mov edx, dword [ebx + 4]
call fcn.0046d71d
mov ecx, edi
call fcn.0046d140
test eax, eax
je 0x474096
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
call fcn.004519d7
push str.out_of_memory
push edi
call fcn.0046e181
pop ecx
pop ecx
push 7
jmp 0x4791b8
xor eax, eax
push eax
push eax
mov eax, dword [ebx + 4]
cdq
push edx
mov edx, dword [ebx + 0x10]
push eax
call fcn.0046d976
add esp, 0x10
mov dl, byte [ebp - 0x6c]
mov byte [edi + 0x12], dl
jmp 0x473f8d
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [edi + 0x64]
add ecx, 0xffffffd8
add eax, ecx
mov ecx, eax
mov dword [ebp - 0x34], eax
call fcn.0046d852
test eax, eax
jne 0x4791a9
imul edi, dword [ebx + 8], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x24]
test word [edi + 0x10], ax
je 0x4740d8
mov ecx, edi
call fcn.0046d701
push 0x14
pop eax
push eax
push dword [ebp - 0x34]
push edi
call fcn.00638b30
mov ax, word [edi + 0x10]
mov ecx, 0xafff
and ax, cx
add esp, 0xc
mov ecx, 0x2040
or ax, cx
jmp 0x473f89
mov eax, dword [ebx + 0xc]
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x50], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x44], eax
mov edx, eax
mov ecx, edi
call fcn.0046d94f
mov eax, 0x4000
test word [edi + 0x10], ax
je 0x47413b
mov ecx, edi
call fcn.0046d0fa
test eax, eax
jne 0x474062
mov eax, dword [ebp - 0x44]
add edi, 0x28
add eax, 0x28
sub dword [ebp - 0x50], 1
mov dword [ebp - 0x44], eax
jne 0x474118
jmp 0x473f8d
mov eax, dword [ebx + 0xc]
imul edi, dword [ebx + 8], 0x28
mov dword [ebp - 0x44], eax
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
push 0x4000
mov edx, eax
mov dword [ebp - 0x50], eax
mov ecx, edi
call fcn.0046d896
mov eax, 0x4000
pop ecx
test word [edi + 0x10], ax
je 0x474192
mov ecx, edi
call fcn.0046d0fa
test eax, eax
jne 0x474062
movzx eax, word [edi + 0x10]
bt eax, 0xb
jae 0x4741af
push 2
pop ecx
test byte [ebx + 2], cl
je 0x4741af
mov ecx, 0xf7ff
and eax, ecx
mov word [edi + 0x10], ax
mov ecx, dword [ebp - 0x44]
mov eax, ecx
dec ecx
mov dword [ebp - 0x44], ecx
test eax, eax
je 0x473f8d
mov eax, dword [ebp - 0x50]
add edi, 0x28
add eax, 0x28
jmp 0x474166
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.0046d896
pop ecx
jmp 0x473f90
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 0x474219
push eax
push edx
call fcn.0046d74b
pop ecx
jmp 0x4741e4
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
jmp 0x473d88
xor edx, edx
mov ecx, edi
call fcn.0046fefc
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov esi, dword [ebp - 0x18]
jmp 0x473f90
imul ecx, dword [ebx + 4], 0x28
imul eax, dword [ebx + 8], 0x28
mov edx, dword [ebp - 0x24]
imul edi, dword [ebx + 0xc], 0x28
add ecx, edx
add eax, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
add edi, edx
movzx edx, word [ecx + 0x10]
mov al, byte [eax + 0x10]
or al, dl
mov dword [ebp - 0x64], edx
test al, 1
je 0x474292
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x474286
mov ecx, edi
call fcn.0046d2b9
jmp 0x473f8d
xor ecx, ecx
inc ecx
mov word [edi + 0x10], cx
jmp 0x473f8d
test dl, 0x12
jne 0x4742c2
mov dl, byte [ebp - 0x6c]
xor eax, eax
push eax
call fcn.0046d18d
pop ecx
test eax, eax
jne 0x474062
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx edx, ax
mov dword [ebp - 0x64], edx
jmp 0x4742ea
bt edx, 0xa
jae 0x4742ea
call fcn.0046d140
test eax, eax
jne 0x474062
mov eax, dword [ebp - 0x2c]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x10]
mov dword [ebp - 0x4c], ecx
test cl, 0x12
jne 0x474309
mov dl, byte [ebp - 0x6c]
xor ecx, ecx
push ecx
mov ecx, eax
call fcn.0046d18d
pop ecx
jmp 0x474316
bt ecx, 0xa
jae 0x474336
mov ecx, eax
call fcn.0046d140
test eax, eax
jne 0x474062
mov ecx, dword [ebp - 0x28]
mov ax, word [ecx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0xc]
add eax, ecx
mov dword [ebp - 0x34], eax
cdq
mov ecx, eax
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x50], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x44], edx
jg 0x4791a6
jl 0x474367
cmp ecx, eax
ja 0x4791a6
mov edx, dword [ebp - 0x34]
xor eax, eax
cmp edi, dword [ebp - 0x28]
mov ecx, edi
sete al
add edx, 2
push eax
call fcn.0046cf23
pop ecx
test eax, eax
jne 0x474062
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 - 0x28]
cmp edi, eax
je 0x4743c0
push dword [eax + 0xc]
push dword [eax + 8]
push dword [edi + 8]
call fcn.00638b30
mov ecx, dword [ebp - 0x28]
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov word [ecx + 0x10], ax
jmp 0x4743c3
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [edi + 8]
add eax, dword [ecx + 0xc]
push eax
call fcn.00638b30
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ebp - 0x64]
mov dl, byte [ebp - 0x6c]
mov word [eax + 0x10], cx
xor eax, eax
mov ecx, dword [ebp - 0x50]
inc eax
cmp dl, al
jbe 0x4743fb
mov eax, dword [ebp - 0x44]
and ecx, 0xfffffffe
mov dword [ebp - 0x34], 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 0x474099
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 - 0x58], eax
movzx ecx, word [eax + 0x10]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x64], eax
mov al, cl
and al, dl
test al, 4
jne 0x47447e
xor eax, eax
or cl, dl
inc eax
test al, cl
jne 0x4746a1
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.00473975
mov ecx, dword [ebp - 0x58]
movzx ebx, ax
call fcn.00473975
push 4
and al, bl
mov ebx, dword [ebp - 0x28]
pop ecx
test cl, al
je 0x4745d7
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xac], eax
movzx eax, byte [ebx]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xb0], ecx
sub eax, 0x6a
je 0x474547
sub eax, 1
je 0x47452b
sub eax, 1
je 0x47451c
sub eax, 1
mov eax, edx
je 0x4744eb
or eax, edi
je 0x47469b
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x4744d5
xor eax, eax
mov edi, eax
lea edx, [eax + 1]
push edi
push edx
push dword [ebp - 0x28]
push ecx
call fcn.0066c4f0
mov dword [ebp - 0xb0], eax
jmp 0x4746e9
or eax, edi
je 0x47469b
mov eax, edx
and eax, edi
cmp eax, 0xffffffff
jne 0x47450f
xor eax, eax
cmp ecx, eax
jne 0x47450f
cmp dword [ebp - 0x28], 0x80000000
je 0x4745d4
push edi
push edx
push dword [ebp - 0x28]
push ecx
call fcn.00612f20
jmp 0x4744e0
push edi
push edx
lea ecx, [ebp - 0xb0]
call fcn.00456cae
jmp 0x474538
push edi
push edx
lea ecx, [ebp - 0xb0]
call fcn.00456c60
pop ecx
pop ecx
test eax, eax
jne 0x4745d4
jmp 0x4746ef
xor eax, eax
cmp edi, eax
jl 0x47458b
jg 0x474553
cmp edx, eax
jb 0x47458b
cmp dword [ebp - 0x28], eax
jl 0x4746dc
jg 0x474566
cmp ecx, eax
jbe 0x4746dc
or eax, 0xffffffff
sub eax, ecx
mov dword [ebp - 0x34], eax
mov eax, SysReAllocString
sbb eax, dword [ebp - 0x28]
cmp eax, edi
jg 0x4746dc
jl 0x4745d4
cmp dword [ebp - 0x34], edx
jae 0x4746dc
jmp 0x4745d4
cmp dword [ebp - 0x28], eax
jg 0x4746dc
jl 0x47459e
cmp ecx, eax
jae 0x4746dc
xor ecx, ecx
mov eax, edx
inc ecx
add eax, ecx
mov ecx, edi
mov dword [ebp - 0x5c], eax
push 0
pop eax
adc ecx, eax
inc eax
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x34], eax
mov eax, SysReAllocString
sbb eax, dword [ebp - 0x28]
cmp eax, ecx
jl 0x4746d9
jg 0x4745d4
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x5c]
jbe 0x4746d9
mov edi, dword [ebp - 0x2c]
mov ecx, edi
call fcn.0046d3ca
mov ecx, dword [ebp - 0x58]
movsd qword [ebp - 0x38], xmm0
call fcn.0046d3ca
movzx eax, byte [ebx]
sub eax, 0x6a
je 0x474688
sub eax, 1
je 0x474681
sub eax, 1
je 0x47467a
sub eax, 1
je 0x474661
mov ecx, edi
call fcn.0046d364
mov ecx, dword [ebp - 0x58]
mov edi, eax
mov dword [ebp - 0x34], edx
call fcn.0046d364
mov ecx, edx
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0xac], ecx
mov ecx, edi
or ecx, edx
mov dword [ebp - 0xb0], eax
je 0x47469b
mov eax, edi
and eax, edx
cmp eax, 0xffffffff
jne 0x47464b
xor eax, eax
mov edx, eax
lea edi, [eax + 1]
push edx
push edi
push dword [ebp - 0x5c]
push dword [ebp - 0x44]
call fcn.0066c4f0
mov ecx, eax
call fcn.0066c350
jmp 0x47468d
movsd xmm1, qword [ebp - 0x38]
ucomisd xmm1, qword [0x6d9b60]
lahf
test ah, 0x44
jnp 0x47469b
divsd xmm0, xmm1
jmp 0x47468d
mulsd xmm0, qword [ebp - 0x38]
jmp 0x47468d
subsd xmm0, qword [ebp - 0x38]
jmp 0x47468d
addsd xmm0, qword [ebp - 0x38]
movsd qword [ebp - 0x38], xmm0
call fcn.00453fab
test eax, eax
je 0x4746c4
mov edi, dword [ebp - 0x14]
xor eax, eax
inc eax
mov edx, dword [ebp - 0x64]
mov ecx, 0x9000
test word [edx + 0x10], cx
je 0x4746bb
mov ecx, edx
call fcn.0046d2b9
jmp 0x473f90
mov word [edx + 0x10], ax
jmp 0x473f90
mov edx, dword [ebp - 0x64]
mov ecx, 0xf248
movsd xmm0, qword [ebp - 0x38]
push 8
movsd qword [edx], xmm0
jmp 0x47470a
mov ecx, dword [ebp - 0x4c]
add ecx, edx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0xb0], ecx
adc edx, edi
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
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 0x473f8d
mov eax, dword [ebx + 4]
test eax, eax
je 0x473f90
imul eax, eax, 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x24]
test word [eax + 0x10], cx
je 0x474748
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x474211
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
mov word [eax + 0x10], cx
jmp 0x473f90
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 - 0x44], edx
test al, 1
je 0x474794
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x47478f
mov ecx, edx
jmp 0x47427c
xor eax, eax
inc eax
jmp 0x474718
call fcn.0046d364
mov ecx, edi
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
call fcn.0046d364
mov cl, byte [ebx]
mov edi, eax
mov byte [ebp - 0x39], cl
cmp cl, 0x66
jne 0x4747c9
and dword [ebp - 0x98], edi
and dword [ebp - 0x94], edx
jmp 0x4748f8
cmp cl, 0x67
jne 0x4747df
or dword [ebp - 0x98], edi
or dword [ebp - 0x94], edx
jmp 0x4748f8
mov eax, edi
or eax, edx
je 0x4748f8
xor eax, eax
cmp edx, eax
jg 0x474855
jl 0x4747f5
cmp edi, eax
jae 0x474813
mov al, 0xd1
sub al, cl
mov byte [ebp - 0x39], al
mov cl, al
cmp edx, 0xffffffff
jl 0x474853
jg 0x47480a
cmp edi, 0xffffffc0
jbe 0x474853
neg edi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x47481e
jg 0x474855
cmp edi, 0x40
jae 0x474855
push 8
pop eax
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.00638b30
mov eax, dword [ebp - 0xc8]
add esp, 0xc
cmp byte [ebp - 0x39], 0x68
mov ecx, edi
mov edx, dword [ebp - 0xc4]
jne 0x47488f
call fcn.0066c1b0
jmp 0x4748d2
xor eax, eax
cmp dword [ebp - 0x94], eax
jg 0x474873
jl 0x474867
cmp dword [ebp - 0x98], eax
jae 0x474873
cmp cl, 0x68
je 0x474873
or eax, 0xffffffff
or ecx, eax
jmp 0x474881
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], ecx
jmp 0x4748f8
call fcn.0066c190
mov dword [ebp - 0x34], eax
mov ecx, edx
mov dword [ebp - 0xc8], eax
xor eax, eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0xc4], ecx
cmp dword [ebp - 0x94], eax
jg 0x4748de
jl 0x4748bc
cmp dword [ebp - 0x98], eax
jae 0x4748de
push 0x40
pop ecx
sub ecx, edi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0066c1b0
or eax, dword [ebp - 0x34]
or edx, dword [ebp - 0x5c]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], eax
push 8
pop eax
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00638b30
add esp, 0xc
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
push 4
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
pop ecx
or ax, cx
jmp 0x474718
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046d48e
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x47423c
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 0x474988
push dword [ebp - 0x6c]
mov dl, 0x43
mov ecx, edi
call fcn.0047385b
movzx eax, word [edi + 0x10]
pop ecx
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x474988
mov edi, dword [ebp - 0x14]
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x4769a5
push 0x14
pop eax
mov ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x4775bd
mov eax, 0xf244
and ecx, eax
push 4
pop eax
or ecx, eax
jmp 0x474289
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x24]
test byte [ecx + 0x10], 0x24
je case.0x473cfb.89
call fcn.0046d4b3
jmp 0x473f90
imul esi, dword [ebx + 4], 0x28
mov eax, 0x400
add esi, dword [ebp - 0x24]
test word [esi + 0x10], ax
je 0x4749da
mov ecx, esi
call fcn.0046d140
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
push dword [ebp - 0x6c]
mov dl, byte [ebx + 8]
mov ecx, esi
call fcn.0046d621
pop ecx
jmp 0x47422f
imul eax, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
push 4
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
movzx eax, word [eax + 0x10]
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x5c], eax
movzx eax, ax
mov dword [ebp - 0x58], ecx
and dword [ebp - 0x58], eax
mov dword [ebp - 0x70], eax
pop eax
mov dword [ebp - 0x2c], ecx
test byte [ebp - 0x58], al
je 0x474a8e
mov eax, dword [ebp - 0x28]
mov ecx, dword [edi + 4]
cmp ecx, dword [eax + 4]
jl 0x474a4e
jg 0x474a33
mov edi, dword [edi]
cmp edi, dword [eax]
jbe 0x474a50
cmp byte [edx + 0x6c0218], 0
mov edi, dword [ebp - 0x14]
jne 0x4769a5
xor ecx, ecx
inc ecx
mov dword [ebp - 0x80], ecx
jmp 0x473f90
mov edi, dword [edi]
cmp ecx, dword [eax + 4]
jg 0x474a74
jl 0x474a5b
cmp edi, dword [eax]
jae 0x474a74
cmp byte [edx + 0x6c020c], 0
mov edi, dword [ebp - 0x14]
jne 0x4769a5
or dword [ebp - 0x80], 0xffffffff
jmp 0x473f90
cmp byte [edx + 0x6c0212], 0
mov edi, dword [ebp - 0x14]
jne 0x4769a5
xor eax, eax
mov dword [ebp - 0x80], eax
jmp 0x473f90
mov edx, dword [ebp - 0x70]
mov eax, ecx
or eax, edx
mov dword [ebp - 0x34], eax
test al, 1
je 0x474af7
movzx eax, word [ebx + 2]
test al, al
jns 0x474ae4
xor eax, eax
inc eax
test byte [ebp - 0x58], al
je 0x474ad1
test ecx, 0x100
jne 0x474ad1
xor eax, eax
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
movzx eax, byte [ebx]
jne 0x474c1f
mov al, byte [eax + 0x6c0212]
jmp 0x474c25
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x474c09
mov edi, dword [ebp - 0x14]
push 0x10
pop ecx
test cl, al
jne 0x4769a5
xor eax, eax
inc eax
jmp 0x474a86
mov al, byte [ebx + 2]
and al, 0x47
mov byte [ebp - 0x39], al
cmp al, 0x43
mov eax, dword [ebp - 0x34]
jb 0x474b47
test al, 2
je 0x474bf5
mov al, dl
push 2
and al, 0x2e
pop edx
cmp al, dl
jne 0x474b2a
mov ecx, dword [ebp - 0x28]
xor edx, edx
call fcn.004737ac
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x2c], ecx
mov al, cl
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x474bf5
xor edx, edx
mov ecx, edi
call fcn.004737ac
jmp 0x474bf5
cmp byte [ebp - 0x39], 0x42
jne 0x474bf5
test al, 2
je 0x474bf5
push 2
pop eax
test al, dl
je 0x474b73
mov edx, dword [ebp - 0x5c]
mov eax, 0xffd3
and edx, eax
mov eax, dword [ebp - 0x28]
mov word [eax + 0x10], dx
jmp 0x474bb8
test dl, 0x2c
je 0x474bb8
mov dl, byte [ebp - 0x6c]
xor eax, eax
mov ecx, dword [ebp - 0x28]
inc eax
push eax
call fcn.0046d18d
mov edx, dword [ebp - 0x70]
pop ecx
mov ecx, dword [ebp - 0x28]
movzx eax, word [ecx + 0x10]
xor edx, eax
and edx, 0xdbf
xor edx, eax
movzx edx, dx
mov dword [ebp - 0x70], edx
cmp ecx, edi
jne 0x474bb5
push 2
pop ecx
mov eax, edx
or eax, ecx
movzx ecx, ax
mov dword [ebp - 0x2c], ecx
jmp 0x474bb8
mov ecx, dword [ebp - 0x2c]
push 2
pop edx
test dl, cl
je 0x474bca
mov eax, 0xffd3
and word [edi + 0x10], ax
jmp 0x474bf5
test cl, 0x2c
je 0x474bf5
mov dl, byte [ebp - 0x6c]
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.0046d18d
movzx eax, word [edi + 0x10]
pop ecx
mov ecx, dword [ebp - 0x2c]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [ebp - 0x2c], ecx
push dword [ebx + 0x10]
mov edx, dword [ebp - 0x28]
mov ecx, edi
call fcn.00470c51
mov edx, dword [ebp - 0x70]
pop ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x80], eax
test eax, eax
jns 0x474ab9
movzx eax, byte [ebx]
mov al, byte [eax + 0x6c020c]
jmp 0x474c25
mov al, byte [eax + 0x6c0218]
mov word [edi + 0x10], cx
test al, al
mov ecx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x14]
mov word [ecx + 0x10], dx
jmp 0x473d64
cmp dword [ebp - 0x80], 0
je 0x4769a5
jmp case.0x473cfb.89
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x474c55
xor eax, eax
jmp 0x474c5d
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 - 0x5c], edi
mov edi, dword [ebx + 8]
mov dword [ebp - 0x34], edi
xor edi, edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x50], ecx
test edx, edx
jle 0x473f8d
lea edx, [ecx + 0x14]
mov dword [ebp - 0x4c], edx
test eax, eax
je 0x474c91
mov ecx, dword [eax + edi*4]
jmp 0x474c93
mov ecx, edi
mov eax, dword [ebp - 0x50]
xor edx, edx
inc edx
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + edi]
and eax, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
add eax, ecx
push dword [edx]
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x64]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
mov ecx, eax
mov dword [ebp - 0x70], eax
call fcn.00470c51
pop ecx
mov ecx, eax
mov dword [ebp - 0x80], ecx
test ecx, ecx
jne 0x474cee
push 4
pop eax
add dword [ebp - 0x4c], eax
inc edi
mov eax, dword [ebp - 0x44]
cmp edi, dword [ebp - 0x58]
jl 0x474c88
jmp 0x473f8d
mov eax, dword [ebp - 0x50]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [edi + eax], dl
je 0x474d14
mov eax, dword [ebp - 0x70]
xor edx, edx
inc edx
test byte [eax + 0x10], dl
jne 0x474d0f
mov eax, dword [ebp - 0x64]
test byte [eax + 0x10], dl
je 0x474d14
neg ecx
mov dword [ebp - 0x80], ecx
cmp dword [ebp - 0x28], 0
mov edi, dword [ebp - 0x14]
je 0x473f90
neg ecx
jmp 0x474a46
mov ecx, dword [ebp - 0x80]
test ecx, ecx
jns 0x474d35
imul ebx, dword [ebx + 4], 0x14
jmp 0x474d41
jne 0x474d3d
imul ebx, dword [ebx + 8], 0x14
jmp 0x474d41
imul ebx, dword [ebx + 0xc], 0x14
add ebx, eax
add ebx, 0xffffffec
jmp case.0x473cfb.89
imul ecx, dword [ebx + 4], 0x28
push 2
pop eax
mov edx, eax
add ecx, dword [ebp - 0x24]
call fcn.0046d3f1
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, dword [ebp - 0x24]
call fcn.0046d3f1
imul ecx, esi, 3
cmp byte [ebx], 0x2c
jne 0x474d80
mov al, byte [ecx + eax + 0x6be3d8]
jmp 0x474d87
mov al, byte [ecx + eax + 0x6bf764]
imul esi, dword [ebx + 0xc], 0x28
push 2
pop edx
add esi, dword [ebp - 0x24]
movzx ecx, word [esi + 0x10]
cmp al, dl
jne 0x474da5
mov eax, 0xf241
and ecx, eax
xor eax, eax
inc eax
jmp 0x474db8
movzx eax, al
cdq
mov dword [esi], eax
mov eax, 0xf244
push 4
and ecx, eax
mov dword [esi + 4], edx
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x47423c
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x24]
call fcn.0046d3f1
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 0x474df2
push edx
push eax
jmp 0x474211
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x47421e
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
imul edi, dword [ebx + 8], 0x28
inc eax
add ecx, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
test byte [ecx + 0x10], al
jne 0x474e30
xor edx, edx
call fcn.0046d3f1
neg eax
sbb eax, eax
xor ecx, ecx
push ecx
inc eax
mov ecx, edi
push eax
call fcn.0046d76d
pop ecx
pop ecx
jmp 0x473f8d
mov ecx, edi
call fcn.0046d701
jmp 0x473f8d
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 - 0x34], eax
test word [edi + 0x10], cx
je 0x474e67
mov ecx, edi
call fcn.0046d2b9
mov eax, dword [ebp - 0x34]
xor ecx, ecx
inc ecx
jmp 0x474e6e
xor ecx, ecx
inc ecx
mov word [edi + 0x10], cx
test byte [eax + 0x10], cl
jne 0x473f8d
push 4
pop ecx
mov word [edi + 0x10], cx
mov ecx, eax
call fcn.0046d364
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x473f8d
cmp dword [edi + 0xd0], 0
je 0x474edf
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 + 0x14]
mov dword [ebp - 0x34], eax
movzx eax, byte [edi + eax]
test eax, edx
jne 0x4769a2
bts eax, ecx
mov ecx, dword [ebp - 0x34]
mov byte [edi + ecx], al
mov edi, dword [ebp - 0x14]
jmp 0x474eee
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x4769a5
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x473f90
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [ebp - 0x24]
call fcn.0046d3f1
test eax, eax
jmp 0x473d64
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.0046d3f1
test eax, eax
je 0x4769a5
jmp 0x473f90
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x473d64
mov ecx, dword [ebx + 4]
test ecx, ecx
js 0x474f91
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 0x474f82
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x474f79
xor ecx, ecx
inc ecx
push 4
test cl, al
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x474f8c
movzx eax, byte [eax + 0x6c389c]
jmp 0x474fad
mov ecx, dword [ebx + 0x10]
xor eax, eax
dec ecx
inc eax
shl ax, cl
movzx eax, ax
jmp 0x474fad
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
push eax
call fcn.00471cb1
pop ecx
xor ecx, ecx
lea edx, [ecx + 1]
lea ecx, [eax - 1]
shl dx, cl
movzx eax, dx
test word [ebx + 2], ax
jmp 0x473d64
imul eax, dword [ebx + 4], 0x28
xor ecx, ecx
mov edx, dword [ebp - 0x24]
inc ecx
test byte [eax + edx + 0x10], cl
jne 0x474fe4
imul eax, dword [ebx + 0xc], 0x28
test byte [eax + edx + 0x10], cl
jne 0x474fe4
imul ecx, dword [ebx + 8], 0x28
xor eax, eax
push eax
add ecx, edx
push eax
call fcn.0046d76d
jmp 0x474216
imul eax, dword [ebx + 8], 0x28
add eax, edx
mov edx, 0x9000
test word [eax + 0x10], dx
je 0x474752
mov ecx, eax
jmp 0x4746b1
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [ebp - 0x24]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x474f2a
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x473f90
cmp byte [eax + 2], 0
je 0x473f90
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
call fcn.0046d701
jmp 0x4769a5
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], esi
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x1c]
je 0x4750a0
cmp byte [esi + 2], 0
jne 0x4750f4
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x34], edi
je 0x47508f
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4750c5
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x4750c5
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov edi, dword [ebp - 0x14]
jmp 0x47504b
cmp byte [edi], 0
je 0x4750d9
mov ecx, esi
call fcn.00470571
mov edi, dword [ebp - 0x14]
jmp 0x4750b3
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x4751a4
mov ecx, esi
call fcn.00470571
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov ecx, dword [ebp - 0x54]
jmp 0x475051
mov ecx, esi
call fcn.00470531
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov ecx, edi
call fcn.00465e2a
mov ecx, dword [ebp - 0x34]
lea edi, [esi + 0x54]
mov edx, edi
mov dword [esi + 0x50], eax
call fcn.0046637b
mov ecx, eax
jmp 0x47511c
cmp byte [esi], 3
jne 0x475193
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x475193
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 ecx, dword [ecx + 8]
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x4c], ecx
mov eax, dword [edx + 0x1c]
mov edx, dword [ebp - 0x2c]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
lea ecx, [esi + 0x34]
mov dword [ebp - 0x58], ecx
mov dword [edx], eax
cmp eax, 0x80
jae 0x475142
xor eax, eax
inc eax
jmp 0x475150
mov ecx, dword [esi + 0x4c]
call fcn.00456a20
mov ecx, dword [ebp - 0x58]
movzx eax, al
mov dword [ecx], eax
lea edx, [esi + 0x3e]
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov word [edx], ax
mov eax, dword [edi]
mov dword [ebp - 0x68], edx
cmp eax, dword [ecx]
jae 0x475188
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [edi], eax
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x475356
cmp eax, dword [esi + 0x50]
ja 0x475356
mov ecx, dword [ebp - 0x54]
jmp 0x4751aa
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x64], eax
jmp 0x47521d
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
call fcn.0046d701
jmp 0x47423c
lea edx, [esi + 0x3e]
mov dword [ebp - 0x68], edx
movzx eax, word [edx]
cmp eax, ecx
ja 0x4753ae
mov edi, dword [ebp - 0x2c]
lea ecx, [esi + 0x34]
mov eax, dword [ecx]
mov dword [ebp - 0x58], ecx
cmp eax, dword [edi]
mov edi, dword [ebp - 0x14]
jae 0x475371
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x475217
push 0x28
push eax
lea eax, [ebp - 0x198]
push eax
call fcn.006390b0
mov ecx, dword [esi + 0x2c]
lea eax, [ebp - 0x198]
add esp, 0xc
push eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call fcn.0046dbe9
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov eax, dword [ebp - 0x190]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x64], eax
jmp 0x47521a
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x68], edx
movzx ebx, word [edx]
lea edx, [esi + 0x5c]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x58]
lea edx, [edx + ebx*4]
mov ecx, dword [eax + ebx*4]
xor eax, eax
mov edi, dword [edi]
add edi, dword [ebp - 0x64]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], edx
mov eax, dword [eax]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
movzx eax, byte [edi]
mov dword [ebp - 0x84], eax
mov dword [edx], eax
mov eax, dword [ebp - 0x84]
cmp eax, 0x80
jae 0x47527a
movzx eax, al
inc edi
movzx eax, byte [eax + 0x6bfbf0]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [ebp - 0x50]
jmp 0x4752bc
lea edx, [ebp - 0x84]
mov ecx, edi
call fcn.00456a20
mov edx, dword [ebp - 0x50]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x84]
mov dword [edx], eax
mov eax, dword [ebp - 0x84]
cmp eax, 0x80
jb 0x4752ab
add eax, 0xfffffff4
shr eax, 1
jmp 0x4752b2
movzx eax, byte [eax + 0x6bfbf0]
mov ecx, dword [ebp - 0x4c]
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x2c]
inc ebx
mov dword [ebp - 0x50], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [ebp - 0x54]
ja 0x4752dc
cmp edi, dword [ebp - 0x5c]
jb 0x47524d
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], ebx
mov ebx, dword [ebp - 0x28]
mov dword [ebp - 0x70], esi
mov esi, dword [ebp - 0x44]
cmp edi, edx
jb 0x47532b
ja 0x475339
cmp ecx, dword [esi + 0x50]
jne 0x475339
xor ecx, ecx
cmp dword [ebp - 0x70], ecx
jne 0x475339
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x68]
sub edi, dword [ebp - 0x64]
mov word [edx], ax
mov eax, dword [ebp - 0x58]
mov dword [eax], edi
xor eax, eax
cmp dword [esi + 0x4c], eax
jne 0x475323
lea ecx, [ebp - 0x198]
call fcn.0046d313
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x84]
jmp 0x47537b
mov eax, dword [ebp - 0x70]
test eax, eax
jb 0x4752fd
ja 0x475339
cmp ecx, dword [esi + 0x50]
jbe 0x4752fd
mov ecx, dword [ebp - 0x2c]
xor eax, eax
cmp dword [ecx], eax
jne 0x475346
mov edi, edx
jmp 0x475300
cmp dword [esi + 0x4c], eax
jne 0x475356
lea ecx, [ebp - 0x198]
call fcn.0046d313
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4790b0
imul ebx, eax, 0x14
add ebx, 0xffffffec
add ebx, ecx
jmp 0x474016
xor eax, eax
mov ecx, eax
mov dword [ebp - 0x84], ecx
movzx eax, word [edx]
cmp eax, dword [ebp - 0x54]
ja 0x4753b8
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x24]
cmp byte [ebx + 1], 0xf6
jne 0x4753a4
mov edx, dword [ebx + 0x10]
mov eax, 0x2000
push eax
call fcn.0046d896
pop ecx
jmp 0x474016
call fcn.0046d701
jmp 0x474016
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [ebp - 0x84], ecx
imul edi, dword [ebx + 0xc], 0x28
mov eax, 0x9000
add edi, dword [ebp - 0x24]
test word [edi + 0x10], ax
je 0x4753d7
mov ecx, edi
call fcn.0046d701
mov ecx, dword [ebp - 0x84]
mov eax, dword [esi + 0x54]
mov esi, dword [ebp - 0x54]
mov edx, dword [ebp - 0x2c]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [ebp - 0x44]
jb 0x475488
mov eax, dword [esi + 0x4c]
mov esi, dword [ebp - 0x54]
add eax, dword [edx + esi*4]
mov dword [ebp - 0x34], eax
cmp ecx, 0xc
jae 0x47540a
mov edx, ecx
mov ecx, eax
push edi
call fcn.00470785
jmp 0x47539e
mov al, byte [ebp - 0x6c]
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 0x475448
mov eax, dword [ebp - 0x1c]
cmp esi, dword [eax + 0x78]
jg 0x4791a6
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 0x10], ax
xor eax, eax
push eax
call fcn.0046cf23
pop ecx
test eax, eax
jne 0x474062
jmp 0x47544e
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [ebp - 0x34]
push dword [edi + 8]
call fcn.00638b30
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 - 0x84]
and eax, ecx
mov ax, word [eax*2 + 0x6c1cc0]
mov word [edi + 0x10], ax
jmp 0x474016
mov al, byte [ebp - 0x6c]
mov byte [edi + 0x12], al
mov al, byte [ebx + 2]
mov edx, dword [ebp - 0x84]
and al, 0xc0
je 0x4754af
cmp al, 0x80
je 0x4754c0
cmp edx, 0xc
jb 0x4754af
xor ecx, ecx
inc ecx
test cl, dl
je 0x4754c0
cmp al, 0xc0
je 0x4754c0
mov ecx, edx
call fcn.004705bf
test eax, eax
jne 0x4754ca
mov edx, dword [ebp - 0x84]
mov ecx, 0x6bf5d8
jmp 0x475402
mov ecx, dword [ebp - 0x54]
xor eax, eax
push edi
push dword [ebp - 0xbc]
mov edi, dword [ebp - 0x14]
mov edx, ecx
push dword [edi + 0x1c]
push eax
mov eax, dword [ebp - 0x2c]
push dword [eax + ecx*4]
mov ecx, esi
push dword [ebp - 0x84]
call fcn.00473a3c
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x47423c
cmp ecx, 7
je 0x474065
cmp ecx, 0x12
je 0x4791a9
jmp 0x4775bd
imul eax, dword [ebx + 4], 0x28
xor edi, edi
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], edi
add eax, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x2c], eax
cmp di, word [ecx + 0x22]
jge 0x473f8d
add edx, 8
mov dword [ebp - 0x44], edx
movzx ecx, word [edx + 6]
test cl, 0x60
je 0x475561
test cl, 0x20
jne 0x475632
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
jne 0x47562c
push dword [ebp - 0x6c]
mov dl, byte [edx]
mov ecx, eax
call fcn.0047385b
pop ecx
mov ecx, dword [ebp - 0x2c]
xor eax, eax
inc eax
movzx ecx, word [ecx + 0x10]
mov dword [ebp - 0x50], ecx
movzx edx, cx
test al, cl
jne 0x475655
mov edi, dword [ebp - 0x44]
mov edi, dword [edi - 4]
shr edi, 4
and edi, 0xf
lea eax, [edi - 1]
sub eax, 1
je 0x475618
sub eax, 1
je 0x475614
sub eax, 1
je 0x475614
sub eax, 1
je 0x4755b2
sub eax, 1
jne 0x475623
push 2
jmp 0x47561a
push 4
pop eax
test al, cl
je 0x47560f
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
mov edx, edi
mov eax, dword [eax + 4]
add edx, 0
mov dword [ebp - 0x5c], eax
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4755e4
jb 0x4755dc
cmp edx, 0xffffffff
ja 0x4755e4
or ecx, 0x20
movzx ecx, cx
jmp 0x475600
mov edx, dword [ebp - 0x5c]
mov ecx, edi
call fcn.0066c350
mov eax, dword [ebp - 0x2c]
push 8
pop ecx
movsd qword [eax], xmm0
mov eax, dword [ebp - 0x50]
or eax, ecx
movzx ecx, ax
mov eax, dword [ebp - 0x2c]
and ecx, 0xfffb
mov word [eax + 0x10], cx
jmp 0x475626
test cl, 0x28
jmp 0x47561d
push 4
jmp 0x47561a
push 0x10
pop eax
test al, cl
je 0x4790c4
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x44]
add eax, 0x28
mov dword [ebp - 0x2c], eax
push 0x10
pop eax
add edx, eax
inc edi
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x44], edx
movsx eax, word [eax + 0x22]
cmp edi, eax
mov eax, dword [ebp - 0x2c]
jl 0x475544
jmp 0x473f8d
mov eax, dword [ebp - 0x2c]
jmp 0x475629
mov eax, dword [ebx + 0x10]
imul edi, dword [ebx + 4], 0x28
mov dword [ebp - 0x44], eax
mov al, byte [eax]
add edi, dword [ebp - 0x24]
push dword [ebp - 0x6c]
mov dl, al
mov ecx, edi
call fcn.0047385b
mov edx, dword [ebp - 0x44]
pop ecx
cmp byte [edx], 0x45
jne 0x4756dc
movzx ecx, word [edi + 0x10]
push 4
pop eax
mov dword [ebp - 0x5c], ecx
test al, cl
je 0x4756dc
mov eax, dword [edi]
add eax, 0
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4756ba
jb 0x4756ab
cmp dword [ebp - 0x34], 0xffffffff
ja 0x4756ba
and ecx, 0xfffb
or ecx, 0x20
mov word [edi + 0x10], cx
jmp 0x4756dc
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.0066c350
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x44]
and eax, 0xfff9
push 8
pop ecx
or eax, ecx
movsd qword [edi], xmm0
mov word [edi + 0x10], ax
inc edx
mov dword [ebp - 0x44], edx
mov al, byte [edx]
test al, al
je 0x473f8d
add edi, 0x28
jmp 0x475669
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov edi, dword [ebx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x2c], eax
imul eax, dword [ebx + 8], 0x28
movlpd qword [ebp - 0x60], xmm0
add ecx, dword [ebp - 0x24]
movlpd qword [ebp - 0x48], xmm0
mov dword [ebp - 0x50], ecx
add eax, ecx
mov dword [ebp - 0x34], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x58], eax
test edi, edi
je 0x475766
mov al, byte [edi]
lea esi, [ecx + 0x10]
mov ebx, dword [ebp - 0x6c]
push ebx
lea ecx, [esi - 0x10]
mov dl, al
call fcn.0047385b
cmp byte [edi], 0x45
pop ecx
jne 0x475756
movzx eax, word [esi]
push 4
pop ecx
test cl, al
je 0x475756
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
mov al, byte [edi]
test al, al
jne 0x475730
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x5c]
add eax, 0xfffffff4
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x70], ecx
movzx ecx, word [eax - 0xc]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x5c], ecx
test cl, 1
je 0x4757b5
mov eax, 0x400
and ecx, eax
movzx eax, cx
mov ecx, dword [ebp - 0x54]
neg eax
sbb eax, eax
and eax, 0xa
mov dword [ecx], eax
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
jmp 0x4759c5
test cl, 0x24
je 0x47590d
mov edx, dword [ebp - 0x54]
mov eax, dword [eax - 0x1c]
mov edx, dword [edx - 0x18]
mov dword [ebp - 0x44], edx
test edx, edx
jg 0x4757e1
jl 0x4757d6
xor edx, edx
cmp eax, edx
jae 0x4757e1
mov edx, eax
mov eax, dword [ebp - 0x44]
not edx
not eax
jmp 0x4757e6
mov edx, eax
mov eax, dword [ebp - 0x44]
inc dword [ebp - 0x2c]
test eax, eax
ja 0x47589c
jb 0x4757f8
cmp edx, 0x7f
ja 0x47583f
mov eax, dword [ebp - 0x54]
xor ecx, ecx
inc ecx
mov eax, dword [eax - 0x1c]
and eax, ecx
mov ecx, dword [ebp - 0x54]
cmp eax, dword [ecx - 0x1c]
jne 0x475827
mov eax, dword [ecx - 0x18]
cmp dword [ebp - 0x158], eax
jne 0x475827
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x95], 4
jb 0x475827
lea eax, [edx + 8]
jmp 0x475837
xor edx, edx
inc edx
add dword [ebp - 0x68], edx
push 0
pop eax
adc edi, eax
mov eax, edx
mov dword [ebp - 0x28], edi
mov edx, dword [ebp - 0x68]
jmp 0x4759c0
test eax, eax
ja 0x47589c
jb 0x47584d
cmp edx, 0x7fff
ja 0x475867
push 2
mov edx, dword [ebp - 0x68]
pop ecx
add edx, ecx
push 0
pop eax
adc edi, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x28], edi
mov eax, ecx
jmp 0x4759bd
test eax, eax
ja 0x47589c
jb 0x475875
cmp edx, 0x7fffff
ja 0x47588a
mov edx, dword [ebp - 0x68]
push 0
add edx, 3
pop eax
adc edi, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x28], edi
push 3
jmp 0x475907
test eax, eax
ja 0x47589c
jb 0x475898
cmp edx, 0x7fffffff
ja 0x47589c
push 4
jmp 0x47584f
cmp eax, 0x7fff
ja 0x4758bf
jb 0x4758aa
cmp edx, 0xffffffff
ja 0x4758bf
mov edx, dword [ebp - 0x68]
push 0
add edx, 6
pop eax
adc edi, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x28], edi
push 5
jmp 0x475907
mov edx, dword [ebp - 0x68]
push 8
pop eax
add edx, eax
push 0
pop eax
adc edi, eax
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x28], edi
test cl, 0x20
je 0x475905
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x44]
mov ecx, dword [eax - 0x1c]
call fcn.0066c350
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x5c]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edx - 0x1c], xmm0
or eax, ecx
mov word [edx - 0xc], ax
mov edx, dword [ebp - 0x68]
push 7
jmp 0x475907
push 6
pop eax
jmp 0x4759bd
test cl, 8
je 0x475930
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [eax], 7
add edx, 8
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x68], edx
adc edi, 0
mov dword [ebp - 0x28], edi
jmp 0x4759c8
mov edx, dword [eax - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [ebp - 0x5c], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [ebp - 0x64], eax
test ecx, 0x400
je 0x47598c
mov edi, dword [ebp - 0x54]
mov ecx, dword [edi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x68]
or eax, dword [ebp - 0x28]
je 0x47597a
lea ecx, [edi - 0x1c]
call fcn.0046d140
test eax, eax
jne 0x474062
mov edx, dword [ebp - 0x5c]
add edx, dword [edi - 0x1c]
jmp 0x475986
mov eax, ecx
cdq
add dword [ebp - 0x70], eax
adc dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x64]
add dword [ebp - 0x68], edx
push 0
pop edx
adc edi, edx
xor ecx, ecx
mov dword [ebp - 0x28], edi
lea edi, [ecx + 1]
mov ecx, eax
shr ecx, 7
jmp 0x4759ab
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x4759a3
add dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x64]
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x54]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x54]
add eax, 0xffffffe4
cmp eax, dword [ebp - 0x50]
je 0x4759db
mov eax, dword [ebp - 0x54]
sub eax, 0x28
jmp 0x475784
cmp ecx, 0x7e
jle 0x475a09
mov eax, ecx
cdq
push edx
push eax
call fcn.00456a85
mov esi, eax
mov eax, dword [ebp - 0x2c]
add eax, esi
mov dword [ebp - 0x2c], eax
cdq
push edx
push eax
call fcn.00456a85
mov ecx, dword [ebp - 0x2c]
add esp, 0x10
cmp esi, eax
mov esi, dword [ebp - 0x18]
jge 0x475a0d
inc ecx
mov dword [ebp - 0x2c], ecx
mov eax, ecx
cdq
mov dword [ebp - 0x64], eax
mov ecx, edx
add eax, dword [ebp - 0x68]
mov dword [ebp - 0x44], ecx
adc ecx, edi
mov dword [ebp - 0x5c], eax
mov edi, eax
mov eax, dword [ebp - 0x58]
add edi, dword [ebp - 0x70]
adc ecx, dword [ebp - 0x4c]
mov eax, dword [eax + 0x18]
cdq
cmp ecx, edx
jg 0x475a47
jl 0x475a39
cmp edi, eax
ja 0x475a47
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x475a78
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x4791a6
jl 0x475a60
cmp edi, eax
ja 0x4791a6
mov edx, dword [ebp - 0x5c]
mov edi, edx
mov ecx, dword [ebp - 0x58]
call fcn.0046d018
test eax, eax
jne 0x474062
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x70]
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [ebp - 0x4c]
mov dword [ecx + 0xc], edi
je 0x475a97
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov ecx, dword [ecx + 8]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
lea edi, [ecx + eax]
cmp eax, 0x80
jge 0x475aaf
mov byte [ecx], al
inc ecx
jmp 0x475ac1
push dword [ebp - 0x44]
push dword [ebp - 0x64]
call fcn.00456847
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x28], ecx
add eax, 0xc
mov dword [ebp - 0x2c], eax
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x5c], eax
cmp eax, 7
ja 0x475be4
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x28], ecx
test eax, eax
je 0x475c31
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff4
cmp eax, 7
jne 0x475b0b
push 8
pop eax
push eax
push edx
lea eax, [ebp - 0x78]
push eax
call fcn.00638b30
mov ecx, dword [ebp - 0x78]
add esp, 0xc
jmp 0x475b16
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x5c]
movzx edx, byte [eax + 0x6bfbf0]
mov eax, edx
sub eax, 1
je 0x475bde
sub eax, 1
je 0x475bc8
sub eax, 1
je 0x475bb2
sub eax, 1
je 0x475b9c
dec eax
sub eax, 1
je 0x475b70
mov byte [edi + 7], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], ecx
mov byte [edi + 6], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov byte [edi + 5], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], ecx
mov byte [edi + 4], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov byte [edi + 3], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov byte [edi + 2], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov byte [edi + 1], cl
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
shrd ecx, eax, 8
shr eax, 8
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
mov byte [edi], cl
add edi, edx
jmp 0x475c2e
cmp eax, 0x80
jae 0x475c00
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x28], ecx
cmp eax, 0xe
jb 0x475c31
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
jle 0x475c31
jmp 0x475c1b
xor edx, edx
push edx
push eax
call fcn.00456847
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
cmp dword [eax], 0
je 0x475c31
push dword [eax]
push dword [eax - 4]
push edi
call fcn.00638b30
mov eax, dword [ebp - 0x2c]
add esp, 0xc
add edi, dword [eax]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x34]
add eax, 0xffffffe4
cmp dword [ebp - 0x2c], eax
je 0x473f8d
mov eax, dword [ebp - 0x2c]
add eax, 0x28
jmp 0x475aca
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 0x475c73
mov ecx, edx
call fcn.00466c6f
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], edx
jmp 0x475c9d
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x110]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x110], xmm0
call fcn.0046b4d6
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov esi, eax
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x10c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x478ab2
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x34], esi
test eax, eax
jne 0x475d91
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp dword [eax + 0xc4], ecx
jg 0x479107
mov ecx, esi
call fcn.0045401e
mov edi, eax
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.004ab4f9
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
push ecx
mov ecx, dword [ebp - 0x1c]
lea eax, [edi + 0x21]
push eax
call fcn.004516f6
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x476031
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x34]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.00638b30
mov edx, dword [ebp - 0x1c]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x475d53
xor eax, eax
mov byte [edx + 0x55], al
inc eax
mov byte [edx + 0x5d], al
jmp 0x475d59
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x476031
xor eax, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x1ec]
jmp 0x475db4
mov ecx, dword [edi]
mov edx, esi
call fcn.0045436f
test eax, eax
je 0x475dd4
inc dword [ebp - 0x2c]
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x475da1
mov edi, dword [ebp - 0x14]
push esi
push str.no_such_savepoint:__s
push edi
call fcn.0046e181
add esp, 0xc
xor eax, eax
lea ecx, [eax + 1]
jmp 0x474980
mov ecx, dword [ebp - 0x1c]
xor eax, eax
mov edx, dword [ebp - 0x54]
cmp dword [ecx + 0xc4], eax
jle 0x475ded
inc eax
cmp edx, eax
je 0x47911b
lea eax, [edi + 0x18]
cmp dword [eax], 0
mov dword [ebp - 0x64], eax
jne 0x475e62
cmp byte [ecx + 0x5d], 0
je 0x475e62
xor eax, eax
inc eax
mov dword [ebp - 0x4c], eax
cmp edx, eax
jne 0x475e6d
mov ecx, dword [ebp - 0x14]
mov edx, eax
call fcn.0046fefc
mov esi, eax
test esi, esi
jne 0x479527
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov esi, dword [ebp - 0x14]
inc ecx
mov byte [eax + 0x55], cl
mov ecx, esi
call fcn.0046ff6a
push 5
pop ecx
cmp eax, ecx
je 0x479125
mov ecx, dword [esi + 0x24]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x475e4e
mov byte [eax + 0x55], dl
jmp 0x475e51
mov byte [eax + 0x5d], dl
xor edx, edx
lea esi, [eax + 0x1f8]
inc edx
mov dword [ebp - 0x4c], edx
jmp 0x475f76
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
lea eax, [ecx + 0x1f8]
mov dword [ebp - 0x5c], eax
mov eax, dword [eax]
sub eax, dword [ebp - 0x2c]
dec eax
push 2
mov dword [ebp - 0x2c], eax
pop eax
cmp edx, eax
jne 0x475ee4
mov eax, dword [ecx + 0x18]
and dword [ebp - 0x34], 0
and eax, 1
cmp dword [ecx + 0x14], 0
mov dword [ebp - 0x44], eax
jle 0x475ee9
xor edx, edx
inc edx
xor eax, edx
xor edx, edx
mov dword [ebp - 0x50], eax
mov esi, edx
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.00465a5b
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x34]
push 0x10
pop ecx
add esi, ecx
inc eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [ebp - 0x50]
jl 0x475ea5
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x54]
jmp 0x475ee9
xor eax, eax
mov dword [ebp - 0x44], eax
and dword [ebp - 0x34], 0
cmp dword [ecx + 0x14], 0
jle 0x475fdb
xor eax, eax
mov esi, eax
jmp 0x475f00
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x10]
push dword [ebp - 0x2c]
mov ecx, dword [esi + ecx + 4]
call fcn.00465bc1
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x34]
push 0x10
pop edx
add esi, edx
inc eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
cmp eax, dword [edx + 0x14]
mov edx, dword [ebp - 0x54]
jl 0x475efd
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x475f70
mov esi, dword [ebp - 0x1c]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x475f60
xor edx, edx
inc edx
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x475f48
mov ecx, esi
call fcn.0048a6be
mov ecx, dword [ebp - 0x18]
xor eax, eax
inc eax
or dword [esi + 0x18], eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x5c]
test ecx, ecx
jne 0x4775ba
mov ecx, dword [eax + 0x1ec]
cmp ecx, edi
je 0x475fac
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1ec], eax
call fcn.00451415
dec dword [esi]
mov ecx, dword [ebx + 0x1ec]
cmp ecx, edi
jne 0x475f8b
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
xor eax, eax
inc eax
cmp edx, eax
jne 0x475fe3
mov eax, dword [ebp - 0x64]
mov edx, edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ecx + 0x1ec], eax
call fcn.00451415
cmp dword [ebp - 0x4c], 0
jne 0x476031
dec dword [esi]
mov edx, dword [ebp - 0x54]
mov edi, dword [ebp - 0x1c]
jmp 0x476019
mov ecx, dword [ebp - 0x18]
jmp 0x475f37
cmp dword [ebp - 0x4c], 0
mov esi, dword [ebp - 0x1c]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x200], eax
mov dword [esi + 0x204], ecx
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov edi, esi
mov dword [edi + 0x208], eax
mov dword [edi + 0x20c], ecx
je 0x476019
push 2
pop eax
cmp edx, eax
jne 0x476031
push dword [ebp - 0x2c]
mov ecx, edi
call fcn.004ab4f9
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov edi, dword [ebp - 0x14]
cmp byte [edi + 0x97], 3
jne 0x47423c
push 0x65
pop esi
jmp 0x47952a
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebx + 8], eax
je 0x476070
mov ecx, dword [ebp - 0x1c]
mov esi, 0x100000
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, esi
and ecx, 2
or eax, ecx
jne 0x479148
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
mov edi, dword [esi + 4]
test edi, edi
je 0x476137
mov edx, dword [ebx + 8]
lea eax, [ebp - 0x44]
push eax
mov ecx, edi
call fcn.00465040
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x479165
mov ecx, dword [ebp - 0x14]
test byte [ecx + 0x98], 0x20
je 0x476142
cmp dword [ebx + 8], eax
je 0x476142
mov edx, dword [ebp - 0x1c]
cmp byte [edx + 0x55], al
je 0x4760cd
inc eax
cmp dword [edx + 0xc0], eax
jle 0x476142
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x4760e9
mov eax, dword [edx + 0x1f8]
inc dword [edx + 0x1fc]
add eax, dword [edx + 0x1fc]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x1c]
dec eax
push eax
xor edx, edx
call fcn.004ab4f9
mov dword [ebp - 0x18], eax
pop ecx
test eax, eax
jne 0x47610d
mov eax, dword [ebp - 0x14]
mov ecx, edi
mov edx, dword [eax + 0x30]
call fcn.00465b9a
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x200]
mov ecx, dword [edi + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [edi + 0x208]
mov ecx, dword [edi + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4775ba
xor eax, eax
cmp word [ebx + 2], ax
je 0x474016
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebx + 0xc]
jne 0x476165
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x474016
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
push dword [edi + 0x7c]
push esi
call fcn.004514af
pop ecx
pop ecx
mov edx, str.database_schema_has_changed
mov ecx, esi
call fcn.004518cf
mov dword [edi + 0x7c], eax
mov eax, esi
mov edx, dword [ebx + 4]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x44]
je 0x4761a3
mov ecx, esi
call fcn.0048a65a
mov eax, dword [edi + 0x98]
xor edx, edx
inc edx
and eax, 0xffffffed
push 0x11
or eax, edx
mov edx, esi
pop ecx
mov dword [ebp - 0x18], ecx
mov dword [edi + 0x98], eax
jmp 0x4775c0
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
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.0046b439
pop ecx
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, eax
mov eax, dword [ebp - 0x15c]
jmp 0x473e4f
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esi + 4]
call fcn.0046b47b
xor edx, edx
pop ecx
inc edx
mov ecx, eax
mov dword [ebp - 0x18], ecx
cmp dword [ebx + 8], edx
jne 0x476244
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 - 0x1c]
mov ecx, eax
or dword [eax + 0x18], edx
mov edx, dword [ebx + 4]
call fcn.0049449e
xor edx, edx
inc edx
jmp 0x476255
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x476258
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 0x18]
cmp dword [ebx + 4], edx
jne 0x474234
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 4]
jmp 0x47627e
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 0x476269
and dword [edi + 0x98], 0xfffffffc
jmp 0x474234
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4762b0
mov eax, dword [esi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4762b0
mov ecx, dword [esi + 0x2c]
call fcn.00462cf0
jmp 0x4763af
mov cl, byte [ebp - 0x39]
mov eax, dword [edi + 0x98]
xor edx, edx
and al, 3
inc edx
cmp al, dl
je 0x47918a
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x50], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [ebp - 0x34], edx
mov esi, dword [eax + 4]
mov dword [ebp - 0x4c], esi
cmp cl, 0x71
jne 0x476315
movzx edi, word [ebx + 2]
mov eax, dword [eax + 0xc]
push 8
pop ecx
and edi, ecx
mov al, byte [eax + 0x4c]
push 4
pop ecx
or edi, ecx
mov ecx, dword [ebp - 0x14]
cmp al, byte [ecx + 0x95]
jae 0x476319
mov byte [ecx + 0x95], al
jmp 0x476319
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x476333
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046d48e
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
mov al, byte [ebx + 1]
cmp al, 0xf8
jne 0x476346
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x44], eax
movzx eax, word [eax + 8]
jmp 0x476352
cmp al, 0xfd
jne 0x47634f
mov eax, dword [ebx + 0x10]
jmp 0x476352
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebx + 4]
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x14]
push eax
call fcn.004736bd
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x474062
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov byte [esi + 1], al
xor eax, eax
inc eax
push 4
mov byte [esi + 2], al
pop eax
push dword [esi + 0x2c]
or dword [esi + 8], eax
mov eax, dword [ebp - 0x34]
mov edx, eax
push dword [ebp - 0x44]
mov dword [esi + 0x38], eax
push edi
call fcn.00465cdf
mov edi, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x30], eax
cmp byte [ebx + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x18]
jmp 0x474234
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.004736bd
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x474062
mov edx, dword [esi + 8]
xor eax, eax
inc eax
or edx, eax
mov byte [esi + 2], al
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
push 4
pop eax
xor ecx, edx
and ecx, eax
xor ecx, edx
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x10]
push 8
mov dword [esi + 0x10], eax
pop eax
or ecx, eax
mov dword [esi + 8], ecx
or dword [edi + 8], eax
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
pop eax
push eax
call fcn.00465cdf
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x18], esi
jmp 0x473f8d
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47646c
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], 0x6c5bb9
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + edx*4]
test edi, edi
je 0x4764b9
push 8
pop eax
test byte [edi + 8], al
jne 0x4764b9
movsx eax, word [edi + 0x3c]
cmp dword [ebx + 8], eax
jg 0x4764b9
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.0046b1ef
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x4775ba
mov esi, eax
jmp 0x4765b3
mov ecx, dword [ebp - 0x14]
xor eax, eax
push eax
push dword [ebx + 8]
call fcn.004736bd
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
xor eax, eax
lea esi, [edi + 0x10]
push 0x41e
inc eax
mov dword [ebp - 0x5c], esi
or dword [edi + 8], eax
xor edx, edx
movzx eax, word [ebx + 2]
push 5
pop ecx
or eax, ecx
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
mov ecx, dword [eax]
call fcn.004640f2
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov ecx, dword [esi]
lea edx, [eax + 1]
push eax
call fcn.00465040
mov esi, eax
mov dword [ebp - 0x18], esi
pop ecx
test esi, esi
jne 0x476591
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
mov dword [edi + 0x30], eax
test eax, eax
je 0x47656e
movzx eax, word [ebx + 2]
push 2
pop edx
or eax, edx
lea edx, [edi + 0x38]
push eax
call fcn.0046b030
mov esi, eax
mov dword [ebp - 0x18], esi
pop ecx
test esi, esi
jne 0x47656a
push dword [edi + 0x2c]
mov edx, dword [edi + 0x38]
push dword [ebp - 0x34]
mov ecx, dword [edi + 0x10]
push 4
pop eax
push eax
call fcn.00465cdf
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x18], esi
xor eax, eax
jmp 0x47658e
push dword [edi + 0x2c]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
inc edx
push eax
mov dword [edi + 0x38], edx
call fcn.00465cdf
mov esi, eax
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x18], 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 0x479194
xor eax, eax
inc eax
mov byte [edi + 2], al
jmp 0x473f8d
mov edx, dword [ebx + 4]
xor eax, eax
inc eax
mov ecx, edi
push eax
push dword [ebx + 8]
call fcn.004736bd
pop ecx
pop ecx
test eax, eax
je 0x474065
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.0047a7fa
jmp 0x4749e7
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 - 0x18]
mov edi, dword [ebp - 0x14]
mov dword [edx + 0x1c], eax
jmp 0x474f2a
mov edx, dword [ebx + 4]
mov ecx, edi
push 3
push dword [ebx + 0xc]
call fcn.004736bd
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
xor eax, eax
inc eax
mov byte [edi + 2], al
mov ecx, dword [ebx + 8]
mov dword [edi + 0x24], ecx
mov byte [edi + 4], al
call fcn.00462e08
mov dword [edi + 0x2c], eax
jmp 0x473f8d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x476669
mov ecx, edi
call fcn.0046f6af
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x473f90
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x28], eax
mov word [ecx + 2], ax
mov dword [ecx + 0x20], eax
cmp byte [ecx + 4], al
je 0x4767e6
imul edi, dword [ebx + 0xc], 0x28
push 2
pop ecx
add edi, dword [ebp - 0x24]
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x5c], eax
and al, 0x2e
cmp al, cl
jne 0x4766ba
xor edx, edx
mov ecx, edi
call fcn.004737ac
mov ecx, edi
call fcn.0046d364
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x50], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x476774
push 8
pop eax
test al, cl
jne 0x476742
xor eax, eax
inc eax
test al, cl
jne 0x4769a2
push 0x17
pop ecx
cmp dword [ebp - 0x2c], ecx
jae 0x4769a2
mov edi, dword [ebp - 0x34]
lea edx, [ebp - 0x8c]
mov ecx, dword [edi + 0x2c]
call fcn.00466678
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
cmp dword [ebp - 0x8c], 0
jne 0x4769a2
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
test edx, edx
je 0x473f90
push 0x14
pop eax
add ebx, eax
jmp 0x473f90
push dword [ebp - 0x50]
movsd xmm1, qword [edi]
push dword [ebp - 0x44]
call fcn.00470bc7
pop ecx
pop ecx
test eax, eax
jle 0x476764
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
test cl, al
jne 0x476774
dec eax
jmp 0x476771
jns 0x476774
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
inc ecx
test cl, al
je 0x476774
inc eax
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x34]
lea eax, [ebp - 0x8c]
push eax
push dword [ebp - 0x50]
xor edx, edx
push dword [ebp - 0x44]
lea esi, [edi + 0x2c]
mov ecx, dword [esi]
call fcn.00466692
mov ecx, eax
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x44], eax
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [ebp - 0x8c]
jl 0x4768b9
test ecx, ecx
js 0x47687f
jne 0x4767d9
cmp eax, 0x18
je 0x47687f
xor eax, eax
mov dword [ebp - 0x8c], eax
jmp 0x47672a
lea esi, [ecx + 0x2c]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [ebp - 0x39], al
pop eax
setne al
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x30]
xor ecx, ecx
mov dword [ebp - 0xe8], eax
inc ecx
mov ax, word [ebx + 0x10]
mov word [ebp - 0xd4], ax
lea eax, [edx - 1]
and al, cl
lea edx, [ebp - 0xe8]
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xe4], eax
xor eax, eax
mov byte [ebp - 0xce], al
lea eax, [ebp - 0x8c]
mov ecx, dword [esi]
push eax
call fcn.004668ed
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
cmp byte [ebp - 0x39], al
je 0x4767af
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x28], edx
cmp byte [ebp - 0xce], al
jne 0x4767b2
mov esi, eax
jmp 0x47671d
xor eax, eax
xor edx, edx
mov dword [ebp - 0x8c], eax
mov ecx, dword [esi]
call fcn.00466daf
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x476717
cmp ecx, 0x65
jne 0x4775bd
xor eax, eax
mov esi, eax
inc eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x8c], eax
jmp 0x47671a
test ecx, ecx
jg 0x4768d6
jne 0x4768c4
cmp eax, 0x15
je 0x4768d6
mov ecx, dword [esi]
call fcn.00466c67
mov dword [ebp - 0x8c], eax
jmp 0x476717
xor eax, eax
xor edx, edx
mov dword [ebp - 0x8c], eax
mov ecx, dword [esi]
call fcn.00466ee2
jmp 0x476890
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 0x473f8d
mov eax, dword [edi + 0x30]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x24]
mov word [ebp - 0xd4], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [ebp - 0xd2], cl
mov dword [ebp - 0x114], ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0xe8]
mov edx, edi
push eax
call fcn.0047176d
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x114]
xor edx, edx
test eax, eax
jle 0x47696b
cmp word [ebx + 2], dx
je 0x47699a
test eax, eax
jns 0x47699f
test esi, esi
jle 0x474016
mov ecx, dword [edi + 0x2c]
dec esi
mov dword [edi + 0x20], edx
xor edx, edx
call fcn.00466daf
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x476930
cmp ecx, 0x65
jne 0x4775ba
xor eax, eax
mov dword [ebp - 0x18], eax
push 0x14
pop eax
add ebx, eax
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x20]
add ebx, 0xffffffec
jmp 0x47673b
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 0x4769d3
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x473f90
cmp eax, dword [ebx + 0xc]
jle 0x473f90
mov ax, word [ebx + 0xc]
jmp 0x4769ca
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x473cfb.9
cmp byte [eax + 2], 0
je 0x473f90
jmp case.0x473cfb.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 0x473f90
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add ecx, eax
movzx eax, word [ebx + 0x10]
mov dword [ebp - 0xe4], ecx
mov word [ebp - 0xd4], ax
test ax, ax
je 0x476a6b
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [ebp - 0xe8], eax
lea edx, [ebp - 0xe8]
xor eax, eax
mov byte [ebp - 0xd2], al
mov ecx, dword [esi + 0x2c]
push edi
call fcn.004668ed
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x476ad3
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x476a83
call fcn.0046d140
test eax, eax
jne 0x474065
mov ecx, dword [esi + 0x30]
call fcn.004708e1
mov edi, eax
test edi, edi
je 0x474062
mov edx, dword [ebp - 0xe4]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.00470937
xor eax, eax
mov edx, edi
mov byte [edi + 0x16], al
lea eax, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.004668ed
mov ecx, dword [ebp - 0x1c]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x18], eax
call fcn.00451415
mov ecx, dword [ebp - 0x18]
lea edi, [esi + 0x24]
test ecx, ecx
jne 0x4775ba
mov ecx, dword [edi]
test ecx, ecx
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [ebx]
cmp al, 0x1d
jne 0x476b00
mov esi, dword [ebp - 0x18]
test ecx, ecx
mov edi, dword [ebp - 0x14]
jmp 0x474f2a
test ecx, ecx
jne 0x47699f
cmp al, 0x1b
jne 0x476b3c
mov ecx, edx
movzx edx, word [ebp - 0xd4]
test edx, edx
je 0x474016
mov eax, dword [ebp - 0xe4]
add eax, 0x10
test byte [eax], 1
jne 0x47699f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x476b26
jmp 0x474016
mov edi, dword [ebp - 0x14]
cmp al, 0x1a
jne 0x47423c
mov ax, word [ebx + 0x10]
mov word [esi + 0xc], ax
jmp 0x47423c
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add esi, ecx
test byte [esi + 0x10], 0x24
jne 0x476b9f
push 0xa
pop ecx
push dword [ebp - 0x6c]
lea edi, [ebp - 0x150]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x150]
call fcn.0047385b
pop ecx
push 4
pop eax
test byte [ebp - 0x140], al
je 0x47699f
mov edi, dword [ebp - 0x150]
mov edx, dword [ebp - 0x14c]
jmp 0x476baa
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 - 0x34], 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 - 0x100], eax
lea eax, [ebp - 0x100]
push eax
push edx
push edi
xor edx, edx
call fcn.00466692
mov ecx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x34]
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 - 0x100]
mov dword [esi + 0x24], eax
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x100], edx
je 0x476c17
cmp dword [ebx + 8], edx
jne 0x47699f
mov ecx, 0x17f3e
call fcn.004c0832
mov ecx, eax
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp - 0x14]
jmp 0x474234
mov edx, ebx
mov ecx, edi
call fcn.0047399d
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 0x473f90
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [ebp - 0x48], xmm0
mov ecx, edi
mov dword [ebp - 0x58], eax
call fcn.0047399d
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
push 2
mov dword [ebp - 0x5c], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [ebp - 0x34], edi
test byte [edi + 8], al
jne 0x476cf5
mov ecx, dword [edi + 0x2c]
cmp byte [ecx], 0
jne 0x476cc0
push 8
pop eax
test byte [ecx + 1], al
je 0x476cc0
xor eax, eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x18], eax
mov ecx, dword [edi + 0x2c]
call fcn.00465de1
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
cmp edx, 0x7fffffff
jl 0x476ce5
jg 0x476cb8
cmp eax, 0xffffffff
jb 0x476ce5
push 2
pop eax
or dword [edi + 8], eax
jmp 0x476cf5
lea edx, [ebp - 0x58]
call fcn.0046662e
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp dword [ebp - 0x58], eax
je 0x476c9b
inc eax
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x44], eax
jmp 0x476cf5
xor ecx, ecx
inc ecx
add eax, ecx
push 0
pop ecx
adc edx, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x476d7a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x476d60
imul esi, edx, 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046d48e
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x476d2c
cmp edx, 0x7fffffff
je 0x476dd9
push 2
pop eax
test byte [edi + 8], al
jne 0x476dd9
mov edi, dword [ebp - 0x44]
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x476d6f
jl 0x476d52
mov eax, dword [ebp - 0x48]
cmp eax, ecx
jae 0x476d72
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edi
jmp 0x476d72
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x476d5e
imul esi, edx, 0x28
add esi, dword [eax + 0xc]
jmp 0x476d0f
mov eax, dword [ebp - 0x48]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x34]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x476de1
xor eax, eax
mov esi, eax
lea eax, [ebp - 0x48]
push eax
push 8
pop eax
push eax
call fcn.0045370b
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, dword [ebp - 0x48]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [ebp - 0x48], ecx
lea edx, [ebp - 0x58]
mov dword [ebp - 0x44], eax
push edx
push eax
push ecx
mov ecx, dword [edi + 0x2c]
xor edx, edx
call fcn.00466692
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp dword [ebp - 0x58], eax
jne 0x476de1
inc esi
cmp esi, 0x64
jl 0x476d86
push 0xd
pop ecx
jmp 0x4790bc
mov edx, dword [ebp - 0x5c]
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x474016
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x28
mov esi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0x24]
add edx, dword [ebp - 0x24]
cmp byte [ebx + 1], 0xfb
mov edi, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], eax
jne 0x476e55
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 0xfc], 0
je 0x476e55
mov eax, dword [ebp - 0x1c]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x44]
jmp 0x476e5a
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x34], ecx
xor ecx, ecx
inc ecx
test byte [ebx + 2], cl
je 0x476e7f
mov ecx, dword [ebp - 0x14]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [ebx + 2], 0x20
je 0x476e7f
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 8]
movzx ecx, word [ebx + 2]
mov dword [ebp - 0xe0], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [ebp - 0xd4], eax
pop eax
test al, cl
je 0x476ea1
mov edi, dword [esi + 0x24]
jmp 0x476ea5
xor eax, eax
mov edi, eax
mov eax, 0x400
test word [edx + 0x10], ax
push 0
pop eax
je 0x476ebf
mov eax, dword [edx]
mov dword [ebp - 0xd0], eax
xor eax, eax
jmp 0x476ec5
mov dword [ebp - 0xd0], eax
and ecx, 0x8a
mov dword [ebp - 0xf0], eax
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xf0]
call fcn.0046a30d
pop ecx
xor edx, edx
inc dword [ebp - 0xbc]
pop ecx
mov ecx, eax
mov byte [esi + 3], dl
mov dword [ebp - 0x18], ecx
mov dword [esi + 0x20], edx
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x474016
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [eax]
push dword [ebp - 0x5c]
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 - 0x1c]
push dword [eax + 0xf8]
call dword [eax + 0xfc]
add esp, 0x18
jmp 0x474016
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 0x476f6c
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 0x476f7a
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.0046a75d
pop ecx
jmp 0x4749e7
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x476fe4
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
lea edi, [eax + 0xfc]
cmp dword [edi], ecx
je 0x476fed
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
push 2
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x34], eax
pop eax
test byte [ebx + 2], al
je 0x476ff5
cmp byte [esi + 4], 0
je 0x476ff5
mov ecx, dword [esi + 0x2c]
call fcn.00465de1
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], edx
jmp 0x476ff5
mov edi, dword [ebp - 0x1c]
add edi, 0xfc
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x34], eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.0046aa6c
xor edx, edx
mov ecx, eax
inc dword [ebp - 0xbc]
mov dword [ebp - 0x18], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
test ecx, ecx
jne 0x4775ba
inc ecx
test byte [ebp - 0x44], cl
je 0x474016
mov eax, dword [ebp - 0x14]
add dword [eax + 0x28], ecx
adc dword [eax + 0x2c], edx
mov ecx, dword [edi]
test ecx, ecx
je 0x478dd2
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x474016
test byte [eax + 0x1c], 0x80
jne 0x474016
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
mov eax, dword [ebp - 0x1c]
push dword [ebp - 0x5c]
push 9
push dword [eax + 0xf8]
call ecx
jmp 0x476f39
mov edx, dword [ebp - 0x1c]
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
xor eax, eax
mov dword [edx + 0x6c], ecx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
jmp 0x473f90
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 - 0x124], eax
lea eax, [ebp - 0x124]
add edx, dword [ebp - 0x24]
push eax
push dword [ebx + 0x10]
call fcn.0047c10a
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
cmp dword [ebp - 0x124], eax
mov esi, eax
jmp 0x473d64
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.0047c0b4
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
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 0x47423c
mov edx, ebx
mov ecx, edi
call fcn.0047399d
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.00465dab
mov eax, dword [ebp - 0x1c]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x4791a6
push esi
mov ecx, edi
call fcn.0046dbe9
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp dword [ebx + 0xc], eax
jne 0x474016
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x474016
mov ecx, esi
call fcn.0046d0fa
mov edi, dword [ebp - 0x14]
test eax, eax
jne 0x474065
jmp 0x47423c
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x34], eax
mov edi, dword [ecx + edx*4]
cmp byte [edi + 2], 0
je 0x47719d
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
jmp 0x473f8d
cmp byte [edi + 3], 0
je 0x4771ab
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
jmp 0x477221
push 2
pop eax
cmp byte [edi], al
jne 0x4771f0
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xb8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
mov edi, dword [ebp - 0x14]
mov edx, esi
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0x18], eax
call fcn.004718fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4775bd
mov edx, dword [ebp - 0xb4]
mov esi, ecx
mov eax, dword [ebp - 0xb8]
jmp 0x477230
mov ecx, edi
call fcn.004705ab
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp byte [edi + 2], al
je 0x477216
mov ecx, dword [ebp - 0x34]
inc eax
mov word [ecx + 0x10], ax
jmp 0x474016
mov ecx, dword [edi + 0x2c]
call fcn.00465de1
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x34]
jmp 0x473e50
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + edx*4]
test edi, edi
jne 0x477276
mov ecx, dword [ebp - 0x14]
xor eax, eax
inc eax
push 3
push eax
call fcn.004736bd
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
xor eax, eax
mov dword [edi + 0x24], eax
inc eax
mov byte [edi + 4], al
push 8
pop eax
or dword [edi + 8], eax
call fcn.00462e08
mov dword [edi + 0x2c], eax
xor eax, eax
inc eax
mov byte [edi + 2], al
xor eax, eax
mov dword [edi + 0x20], eax
cmp byte [edi], al
jne 0x473f8d
mov ecx, dword [edi + 0x2c]
call fcn.00462cf0
jmp 0x473f8d
mov ecx, dword [ebx + 4]
xor edx, edx
cmp byte [ebp - 0x39], 0x89
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0xf8], edx
jne 0x4772fe
or dword [edi + 0x24], 0xffffffff
cmp byte [ecx], dl
je 0x473f8d
lea edx, [ebp - 0xf8]
call fcn.0046662e
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0xf8]
mov byte [edi + 2], al
mov byte [edi + 3], dl
mov dword [edi + 0x20], edx
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov esi, ecx
cmp dword [ebx + 8], edx
jle 0x473f90
cmp dword [ebp - 0xf8], ecx
jmp 0x473d64
cmp byte [ecx], dl
jne 0x4772bc
push 8
pop eax
test byte [ecx + 1], al
je 0x4772bc
mov eax, edx
mov ecx, edx
mov dword [ebp - 0xf8], eax
jmp 0x4772d1
mov ecx, dword [ebx + 4]
lea edx, [ebp - 0xa0]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00466602
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
cmp dword [ebp - 0xa0], eax
jne 0x478930
mov ecx, esi
call fcn.00466c6f
xor ecx, ecx
cmp edx, ecx
jl 0x477375
jg 0x47735b
cmp eax, ecx
jb 0x477375
push edx
push eax
call fcn.00456e25
cwde
pop ecx
pop ecx
cmp eax, dword [ebx + 0xc]
jge 0x477375
xor eax, eax
inc eax
mov dword [ebp - 0xa0], eax
jmp 0x47737b
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x18]
jmp 0x474f0b
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0xf4]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0xf4], eax
cmp byte [esi], al
jne 0x4773b0
mov ecx, esi
call fcn.0047bfaf
xor edx, edx
jmp 0x4773c0
mov ecx, dword [esi + 0x2c]
call fcn.00466602
xor edx, edx
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov al, byte [ebp - 0xf4]
mov byte [esi + 2], al
mov esi, ecx
cmp dword [ebx + 8], edx
jle 0x473f90
cmp dword [ebp - 0xf4], ecx
jmp 0x473d64
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
mov edx, edi
mov ecx, dword [ebp - 0x1c]
call fcn.0047bfff
jmp 0x47742b
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.00466ee2
jmp 0x47742b
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.00466daf
mov ecx, eax
mov dword [ebp - 0x18], ecx
xor edx, edx
mov dword [edi + 0x20], edx
test ecx, ecx
jne 0x47744f
mov byte [edi + 2], dl
movzx eax, word [ebx + 2]
mov edi, dword [ebp - 0x14]
inc dword [edi + eax*4 + 0xa4]
jmp 0x478a9b
cmp ecx, 0x65
jne 0x4775ba
xor eax, eax
mov esi, edx
inc eax
mov dword [ebp - 0x18], esi
mov byte [edi + 2], al
jmp 0x478aaf
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 0x47748c
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 0x4774ab
mov ecx, esi
call fcn.0046d140
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x150], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
pop ecx
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x13c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x138], ax
movzx eax, word [ebx + 2]
test cl, al
je 0x4774ec
mov ecx, dword [edi + 0x24]
jmp 0x4774ee
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0x150]
and eax, 0x8a
push eax
call fcn.0046a30d
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
mov dword [edi + 0x20], eax
jmp 0x476c14
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 0x47753c
mov ecx, esi
call fcn.0046d140
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
mov edx, esi
mov ecx, edi
call fcn.0047b3d9
jmp 0x476c12
mov eax, dword [edi + 0x60]
lea edx, [ebp - 0xe8]
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 - 0xe8], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0xd4], ax
xor eax, eax
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x160]
push eax
call fcn.004668ed
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp dword [ebp - 0x160], eax
jne 0x4775d1
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.0046aa6c
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x4775e9
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
cmp byte [edx + 0x57], 0
je 0x479447
push 7
jmp 0x47946f
xor edx, edx
cmp word [ebx + 2], dx
je 0x4775eb
mov ecx, dword [ebp - 0x1c]
call fcn.0048ab90
test eax, eax
je 0x4791be
xor edx, edx
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], edx
jmp 0x474016
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
je 0x47761f
mov ecx, edi
call fcn.00470571
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4790bc
mov esi, eax
jmp 0x477626
xor eax, eax
mov esi, eax
mov dword [ebp - 0x18], esi
cmp byte [edi + 2], 0
jne 0x4776be
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x120]
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
mov edx, dword [edi + 0x2c]
push eax
call fcn.00471687
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
cmp byte [ebx], 0x8d
jne 0x47769c
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x11c]
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], edi
jmp 0x474016
mov edi, dword [ebp - 0x14]
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x47423c
imul ecx, dword [ebx + 8], 0x28
add ecx, dword [ebp - 0x24]
jmp 0x474e32
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x473f90
call fcn.00470531
jmp 0x47422f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
cmp byte [ebp - 0x39], 0x2a
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0xe8], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xd4], ax
sbb al, al
mov byte [ebp - 0xd2], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0xe4], eax
mov esi, dword [ecx + 0x2c]
mov ecx, esi
call fcn.00465dab
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x4791d8
cmp edx, 0x7fffffff
ja 0x4791d8
xor eax, eax
mov ecx, esi
mov word [ebp - 0x140], ax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x13c], eax
xor eax, eax
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x150]
push eax
call fcn.0046dbe9
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775bd
mov edx, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x144]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00470ea6
pop ecx
pop ecx
lea ecx, [ebp - 0x150]
mov esi, eax
call fcn.0046d32c
xor eax, eax
lea ecx, [esi + 1]
neg esi
inc eax
test byte [ebx], al
cmovne esi, ecx
test esi, esi
mov esi, dword [ebp - 0x18]
jg 0x4769a5
jmp 0x473f90
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebp - 0x1c]
mov esi, eax
mov edx, dword [ebp - 0x1c]
xor eax, eax
inc eax
mov word [esi + 0x10], ax
mov ecx, dword [ecx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x4791fa
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov dword [ebp - 0xfc], ecx
lea ecx, [ebp - 0xfc]
push ecx
mov ecx, edx
mov dword [ebp - 0x34], eax
mov edx, dword [ebx + 4]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0046b40d
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
push 4
pop eax
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xfc]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne 0x4775bd
cmp dword [ebp - 0xfc], ecx
je 0x47423c
push dword [ebx + 4]
mov edx, dword [ebp - 0x34]
push dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x1c]
call fcn.0048d0b9
mov al, byte [ebp - 0x34]
pop ecx
inc al
pop ecx
mov byte [ebp - 0x85], al
jmp 0x47423c
mov ecx, dword [ebp - 0x1c]
lea eax, [ebp - 0x38]
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 - 0x38], xmm0
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0046b1ef
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x18], ecx
cmp dword [ebx + 0xc], eax
je 0x474234
mov edx, dword [ebp - 0x38]
add dword [edi + 0x28], edx
mov eax, dword [ebp - 0x34]
adc dword [edi + 0x2c], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x474234
imul ecx, eax, 0x28
mov eax, dword [ebp - 0x24]
add dword [ecx + eax], edx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x34]
adc dword [ecx + edx + 4], eax
jmp 0x4763bb
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 0x4778e2
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x1c]
call fcn.0047ab82
jmp 0x473f90
mov ecx, dword [ecx + 0x2c]
call fcn.0046b24e
jmp 0x47422f
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
mov edi, dword [ecx + edx*8 + 4]
mov ecx, edi
call fcn.00462983
push esi
lea edx, [ebp - 0x104]
mov ecx, edi
call fcn.0046adf2
pop ecx
mov ecx, edi
mov dword [ebp - 0x18], eax
call fcn.004629fc
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
test ecx, ecx
jne 0x4775bd
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x104]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x47423c
mov ecx, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x4c], edx
inc byte [ecx + 0x60]
mov al, byte [ecx + 0x5e]
mov esi, dword [ecx + 0x16c]
mov byte [ebp - 0x39], al
cmp dword [ebx + 4], edx
je 0x47797d
mov dword [ecx + 0x16c], edx
mov byte [ecx + 0x5e], dl
lea eax, [ebp - 0x4c]
push eax
push edx
push edx
push dword [ebx + 0x10]
push ecx
call fcn.00498643
mov edx, dword [ebp - 0x1c]
mov ecx, eax
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov dword [ebp - 0x18], ecx
dec byte [eax + 0x60]
cmp dword [ebp - 0x4c], 0
mov dword [eax + 0x16c], esi
mov al, byte [ebp - 0x39]
mov byte [edx + 0x5e], al
jne 0x4779b7
test ecx, ecx
je 0x47423c
push dword [ebp - 0x4c]
push 0x6c7474
push edi
call fcn.0046e181
add esp, 0xc
push dword [ebp - 0x4c]
call fcn.004513a7
pop ecx
mov ecx, dword [ebp - 0x18]
cmp ecx, 7
je 0x474065
jmp 0x4775bd
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
mov edx, dword [ebp - 0x1c]
jne 0x477a31
mov eax, dword [edx + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00490198
pop ecx
mov ecx, dword [ebp - 0x1c]
mov edx, esi
mov esi, ecx
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [ebx + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.0049caa9
pop ecx
pop ecx
mov ecx, eax
xor eax, eax
inc eax
mov dword [ebp - 0x18], ecx
or dword [esi + 0x18], eax
and dword [edi + 0x98], 0xfffffffc
jmp 0x477af7
mov ecx, dword [edx + 0x10]
lea eax, [edi + 0x7c]
push dword [ebx + 0x10]
mov dword [ebp - 0xdc], esi
add esi, esi
mov dword [ebp - 0xe0], eax
xor eax, eax
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ecx + esi*8 + 4]
push str.sqlite_master
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xcc], eax
push dword [ecx + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push edx
call fcn.00453174
mov esi, eax
add esp, 0x14
test esi, esi
je 0x47920e
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
inc ecx
mov byte [eax + 0xb1], cl
xor ecx, ecx
push ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd0], ecx
lea ecx, [ebp - 0xe4]
push ecx
push fcn.0049c8e5
push esi
push eax
call fcn.00498643
add esp, 0x14
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x477ae0
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x477ae0
cmp dword [ebp - 0xd0], eax
jne 0x477ae0
mov ecx, 0x1855d
call fcn.004c0832
mov dword [ebp - 0x18], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.00451415
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov byte [esi + 0xb1], al
test ecx, ecx
jne 0x479214
jmp 0x47423c
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x1c]
call fcn.00488f09
jmp 0x47422f
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x1c]
call fcn.0048aa1e
jmp 0x4741e4
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x1c]
call fcn.0048a550
jmp 0x4741e4
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, dword [ebp - 0x1c]
call fcn.004a7116
jmp 0x4741e4
imul eax, dword [ebx + 0xc], 0x28
lea edx, [ebp - 0x108]
imul edi, dword [ebx + 4], 0x28
mov ecx, dword [ebx + 0x10]
push edx
lea edx, [ebp - 0x164]
add eax, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
push edx
mov eax, dword [eax]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x1c]
push eax
movzx eax, word [ebx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.0046be9c
mov esi, eax
add esp, 0x14
mov eax, 0x9000
mov dword [ebp - 0x18], esi
test word [edi + 0x10], ax
je 0x477bab
mov ecx, edi
call fcn.0046d2b9
jmp 0x477bb2
xor eax, eax
inc eax
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x164]
test eax, eax
je 0x477beb
test esi, esi
jne 0x479221
mov ecx, dword [ebp - 0x34]
dec eax
cdq
push fcn.004513a7
sub dword [ecx], eax
sbb dword [ecx + 4], edx
xor eax, eax
mov edx, dword [ebp - 0x108]
inc eax
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, edi
call fcn.0046d976
add esp, 0x10
movzx edx, byte [ebp - 0x6c]
mov ecx, edi
call fcn.0046cf0a
jmp 0x478aaf
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 - 0x34], eax
test byte [edi + 0x10], cl
jne 0x477c26
mov ecx, edi
call fcn.0046d7e1
test eax, eax
jne 0x474062
mov eax, dword [ebp - 0x34]
push dword [eax + 4]
mov ecx, dword [edi + 8]
push dword [eax]
call fcn.0045bbbd
jmp 0x474e29
imul edi, dword [ebx + 4], 0x28
push 0x10
pop eax
add edi, dword [ebp - 0x24]
test byte [edi + 0x10], al
je 0x477c78
mov ecx, dword [edi + 8]
lea edx, [ebp - 0x170]
call fcn.0045bdd9
test eax, eax
je 0x477c78
imul ecx, dword [ebx + 0xc], 0x28
push dword [ebp - 0x16c]
push dword [ebp - 0x170]
add ecx, dword [ebp - 0x24]
call fcn.0046d76d
pop ecx
pop ecx
jmp 0x478aaf
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x477c8c
mov ecx, edi
call fcn.0046d2b9
jmp 0x477c93
xor eax, eax
inc eax
mov word [edi + 0x10], ax
mov edi, dword [ebp - 0x14]
jmp case.0x473cfb.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 - 0x5c], eax
mov dword [ebp - 0x34], ecx
test byte [edi + 0x10], dl
jne 0x477ccf
mov ecx, edi
call fcn.0046d7e1
test eax, eax
jne 0x474062
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x477cf1
push dword [eax + 4]
mov edx, ecx
mov ecx, dword [edi + 8]
push dword [eax]
call fcn.0045be27
pop ecx
pop ecx
test eax, eax
jne 0x4769a2
mov ecx, dword [ebp - 0x34]
test ecx, ecx
js 0x473f8d
mov eax, dword [ebp - 0x5c]
jmp 0x477c26
imul ecx, dword [ebx + 0xc], 0x28
xor eax, eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x28], edx
add ecx, dword [ebp - 0x24]
mov dword [ebp - 0x44], ecx
cmp word [ebx + 2], ax
je 0x477d35
mov edx, dword [edx + 0x14]
mov eax, dword [edi + 0xd0]
test eax, eax
je 0x477d32
cmp dword [eax + 0x18], edx
je 0x473f90
mov eax, dword [eax + 4]
jmp 0x477d20
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [edi + 0xd8]
cmp eax, dword [ecx + 0xa0]
mov ecx, dword [ebp - 0x44]
jge 0x479232
push 0x10
pop eax
test byte [ecx + 0x10], al
jne 0x477e43
mov edi, dword [ebp - 0x28]
mov edx, dword [edx + 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 - 0x5c], ecx
add eax, 7
imul ecx, ecx, 0xa
add ecx, edx
mov eax, eax
test eax, eax
jns 0x477d83
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
add eax, 0x58
mov dword [ebp - 0x34], eax
cdq
push edx
push eax
call fcn.00451699
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
mov ecx, dword [ebp - 0x44]
call fcn.0046d313
mov eax, dword [ebp - 0x44]
mov ecx, 0x1010
sub ebx, dword [ebp - 0x20]
push 0x14
mov word [eax + 0x10], cx
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [eax + 8], edi
mov dword [eax + 0x24], 0x46f00a
mov eax, dword [ebp - 0x14]
mov dword [edi], eax
mov eax, dword [ebp - 0x28]
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 ebx, dword [ebp - 0x14]
add ecx, 0x58
mov edx, dword [ebp - 0x28]
add ecx, edi
mov dword [edi + 0x30], eax
mov eax, dword [ebx + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x18], eax
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x477e49
mov edx, dword [ebp - 0x1c]
xor ebx, ebx
mov dword [eax + 0x14], edx
mov word [eax + 0x10], bx
add eax, 0x28
cmp eax, ecx
jne 0x477e2e
mov edx, dword [ebp - 0x28]
jmp 0x477e46
mov edi, dword [ecx + 8]
mov ebx, dword [ebp - 0x14]
inc dword [ebx + 0xd8]
mov eax, dword [ebx + 0xd0]
mov ecx, dword [ebp - 0x1c]
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 [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], ecx
mov eax, dword [ebx + 0xe4]
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [ebx + 0xe4], eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
lea eax, [edi + 0x58]
mov dword [ebx + 0x58], eax
mov dword [ebp - 0x24], eax
mov dword [ebx + 0xd0], edi
mov ecx, dword [edi + 0x3c]
mov dword [ebx + 0x14], ecx
movzx eax, word [edi + 0x40]
mov dword [ebx + 0x18], eax
lea eax, [edi + 0x58]
imul ecx, ecx, 0x28
add ecx, eax
mov dword [ebx + 0x60], ecx
mov eax, dword [edx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x14], ecx
mov eax, dword [edx + 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.006390b0
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov edi, dword [ebp - 0x14]
mov ecx, dword [eax]
mov dword [edi + 0x68], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov dword [edi + 0x6c], eax
lea ebx, [ecx - 0x14]
jmp 0x478ab2
mov edx, ebx
mov ecx, edi
call fcn.0047399d
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 + 0xc]
call fcn.0046d896
pop ecx
jmp 0x47423c
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [edx + 0x20]
and eax, 0x80000
or eax, ecx
mov eax, dword [ebx + 8]
cdq
je 0x477f5f
mov ecx, dword [ebp - 0x1c]
add dword [ecx + 0x208], eax
adc dword [ecx + 0x20c], edx
jmp 0x473f90
cmp dword [ebx + 4], ecx
je 0x477f78
mov ecx, dword [ebp - 0x1c]
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp 0x473f90
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x473f90
xor eax, eax
cmp dword [ebx + 4], eax
je 0x477fb2
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x473f90
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
jmp 0x474f2a
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x473f90
mov eax, dword [ebp - 0x1c]
mov ecx, eax
jmp 0x477fa1
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x47800f
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x24]
mov ecx, edi
call fcn.0046d48e
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0x24]
mov ecx, esi
call fcn.0046d48e
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x474016
jl 0x478003
cmp dword [edi], eax
jae 0x474016
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x474016
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x47800d
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0xc]
jmp 0x477fd6
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, dword [ebp - 0x24]
mov edi, dword [ecx]
cmp dword [ecx + 4], edx
jl 0x473f8d
jg 0x47803d
cmp edi, edx
jbe 0x473f8d
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 0x4769a2
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.0047399d
mov ecx, dword [esi]
xor edx, edx
mov esi, dword [esi + 4]
mov dword [ebp - 0x50], eax
cmp esi, edx
jl 0x4780c7
jg 0x47807e
cmp ecx, edx
jbe 0x4780c7
mov eax, dword [edi + 4]
mov edx, dword [edi]
mov dword [ebp - 0x44], eax
test eax, eax
jl 0x478092
jg 0x4780a3
xor eax, eax
cmp edx, eax
ja 0x4780a3
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x44], eax
or edi, 0xffffffff
mov eax, SysReAllocString
sub edi, ecx
sbb eax, esi
cmp eax, dword [ebp - 0x44]
jl 0x4780c4
jg 0x4780ba
cmp edi, edx
jb 0x4780c4
mov eax, dword [ebp - 0x50]
add ecx, edx
adc esi, dword [ebp - 0x44]
jmp 0x4780cc
mov eax, dword [ebp - 0x50]
or ecx, 0xffffffff
or esi, ecx
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp 0x474016
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 0x473f8d
xor eax, eax
cmp edi, eax
jl 0x4769a2
jg 0x478100
cmp edx, eax
jbe 0x4769a2
sub edx, 1
mov dword [ecx], edx
sbb edi, eax
mov dword [ecx + 4], edi
jmp 0x4769a2
imul edx, dword [ebx + 4], 0x28
add edx, dword [ebp - 0x24]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x478134
jg 0x478129
test eax, eax
je 0x478134
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x474f2a
movzx eax, word [ebx + 2]
xor ecx, ecx
mov dword [ebp - 0x34], eax
push ecx
mov ecx, dword [ebp - 0x1c]
lea eax, [eax*4 + 0x44]
push eax
call fcn.004516f6
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
mov eax, dword [ebp - 0x34]
xor edx, edx
add eax, 7
mov dword [edi + 8], edx
push 0x14
lea ecx, [edi + eax*4]
xor eax, eax
inc eax
mov dword [edi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebx + 0x10]
mov dword [edi + 4], eax
mov eax, ebx
sub eax, dword [ebp - 0x20]
cdq
pop ecx
idiv ecx
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 0xc], eax
xor eax, eax
mov byte [edi + 0x19], al
mov dword [edi + 0x14], eax
mov al, byte [ebp - 0x6c]
mov byte [edi + 0x18], al
mov eax, dword [ebp - 0x34]
mov byte [edi + 0x1a], al
mov word [ebx], 0xf1a3
mov dword [ebx + 0x10], edi
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x34], edx
cmp dword [edi + 8], edx
je 0x4781f8
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], edx
js 0x4781f8
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 0x4781de
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x34]
inc dword [edx + 0xc]
lea eax, [edi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [edi + 0x1a]
mov ecx, dword [edi + 4]
push eax
push edx
push edi
je 0x478213
call dword [ecx + 0x1c]
jmp 0x478216
call dword [ecx + 0x10]
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x473f8d
jle 0x478249
mov ecx, dword [edi]
xor eax, eax
lea edx, [eax + 1]
call fcn.0046dcc1
push eax
push 0x6c7474
push dword [ebp - 0x14]
call fcn.0046e181
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [edi + 0x19], 0
je 0x47828f
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x478275
imul eax, eax, 0x28
mov ecx, 0x9000
add eax, dword [ebp - 0x24]
test word [eax + 0x10], cx
je 0x47827c
xor ecx, ecx
push ecx
inc ecx
push ecx
mov ecx, eax
call fcn.0046d74b
pop ecx
pop ecx
xor edx, edx
mov byte [edi + 0x19], dl
jmp 0x478291
xor ecx, ecx
inc ecx
xor edx, edx
push 4
mov dword [eax], ecx
pop ecx
mov dword [eax + 4], edx
mov word [eax + 0x10], cx
jmp 0x478277
xor edx, edx
mov ecx, dword [edi]
mov eax, 0x9000
test word [ecx + 0x10], ax
jne 0x4782a3
cmp dword [ecx + 0x18], edx
je 0x4782aa
call fcn.0046d2e5
xor edx, edx
mov eax, dword [edi]
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
mov dword [edi + 0x14], edx
mov ecx, dword [ebp - 0x18]
jmp 0x476c17
imul edi, dword [ebx + 4], 0x28
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add edi, ecx
test eax, eax
je 0x4782e8
push edx
imul edx, eax, 0x28
add edx, ecx
mov ecx, edi
call fcn.0046d272
imul edi, dword [ebx + 0xc], 0x28
pop ecx
add edi, dword [ebp - 0x24]
jmp 0x4782ef
mov ecx, edi
call fcn.0046d1eb
mov esi, eax
mov ecx, edi
mov dword [ebp - 0x18], esi
test esi, esi
jne 0x47924d
movzx edx, byte [ebp - 0x6c]
call fcn.0046cf0a
jmp 0x473f8d
mov edx, dword [ebx + 4]
xor eax, eax
mov ecx, dword [ebp - 0x1c]
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.004bf6a4
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x478355
push 5
pop eax
cmp ecx, eax
jne 0x4775bd
xor eax, eax
xor ecx, ecx
mov esi, eax
inc ecx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], ecx
jmp 0x478357
xor eax, eax
imul edi, dword [ebx + 0xc], 0x28
mov esi, eax
push 4
pop ebx
mov ecx, 0x9000
add edi, dword [ebp - 0x24]
mov eax, dword [ebp + esi*4 - 0x10]
cdq
test word [edi + 0x10], cx
je 0x478385
push edx
push eax
mov ecx, edi
call fcn.0046d74b
pop ecx
pop ecx
mov ecx, 0x9000
jmp 0x47838e
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 0x10], bx
inc esi
add edi, 0x28
cmp esi, 3
jl 0x478368
jmp 0x474013
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov edx, dword [ebx + 4]
mov dword [ebp - 0x5c], eax
add edx, edx
mov eax, dword [ebp - 0x1c]
cmp dword [ebx + 0xc], 0xffffffff
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x34], eax
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [ebp - 0x64], ecx
movzx edx, byte [ecx + 5]
mov edi, edx
mov dword [ebp - 0x4c], edx
cmovne edi, dword [ebx + 0xc]
cmp byte [ecx + 0x11], 3
jae 0x4783ef
mov eax, dword [ecx + 0x44]
cmp dword [eax], 0
je 0x4783f1
xor eax, eax
cmp dword [ecx + 0x54], eax
jg 0x4783ef
jl 0x4783f1
cmp dword [ecx + 0x50], eax
jbe 0x4783f1
mov edi, edx
cmp byte [ecx + 0xf], 0
jne 0x478407
cmp dword [ecx], 0x710f00
je 0x478407
mov eax, dword [ecx + 0xb8]
jmp 0x47840c
mov eax, 0x6be9c0
cmp edi, 5
jne 0x478435
test eax, eax
je 0x478480
push eax
call fcn.00643470
pop ecx
test eax, 0x3fffffff
je 0x47847d
mov ecx, dword [ebp - 0x64]
call fcn.0045fcd0
mov edx, dword [ebp - 0x4c]
test eax, eax
je 0x478480
mov ecx, dword [ebp - 0x64]
cmp edi, edx
je 0x4784b1
push 5
pop eax
cmp edx, eax
je 0x478444
cmp edi, eax
jne 0x4784b1
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x55], 0
je 0x47926b
cmp dword [eax + 0xc0], 1
jg 0x47926b
cmp edx, 5
jne 0x478484
mov edx, eax
call fcn.0045fdae
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x4784b5
mov ecx, dword [ebp - 0x64]
mov edx, edi
call fcn.0045fb8f
jmp 0x478499
mov edx, dword [ebp - 0x4c]
mov edi, edx
jmp 0x4784b1
push 4
pop eax
cmp edx, eax
jne 0x478495
push 2
pop eax
mov edx, eax
call fcn.0045fb8f
test esi, esi
jne 0x4784b5
mov ecx, dword [ebp - 0x34]
xor edx, edx
push 5
pop eax
cmp edi, eax
sete dl
inc edx
call fcn.0046c380
mov esi, eax
mov dword [ebp - 0x18], esi
test esi, esi
je 0x4784b8
mov edi, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x64]
mov edx, edi
call fcn.0045fb8f
mov esi, dword [ebp - 0x5c]
mov ecx, 0x2202
mov word [esi + 0x10], cx
xor ecx, ecx
cmp eax, 6
jne 0x4784d9
mov eax, ecx
jmp 0x4784e0
mov eax, dword [eax*4 + 0x6bf068]
mov dword [esi + 8], eax
test eax, eax
jne 0x4784eb
mov eax, ecx
jmp 0x4784f7
push eax
call fcn.00643470
pop ecx
and eax, 0x3fffffff
movzx edx, byte [ebp - 0x6c]
mov ecx, esi
mov dword [esi + 0xc], eax
xor eax, eax
inc eax
mov byte [esi + 0x12], al
call fcn.0046cf0a
jmp 0x4782b6
mov eax, dword [ebx + 8]
test eax, eax
je 0x47851f
imul eax, eax, 0x28
add eax, dword [ebp - 0x24]
jmp 0x478521
xor eax, eax
mov edx, dword [ebp - 0x1c]
lea ecx, [edi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.004aa20f
jmp 0x476f87
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00465606
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x47423c
cmp ecx, 0x65
jne 0x4775bd
xor eax, eax
mov esi, eax
mov dword [ebp - 0x18], esi
jmp 0x4769a5
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x4785a7
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebx + 8]
mov edx, dword [edx + 4]
test edx, edx
je 0x473f90
lea edi, [eax + 1]
mov eax, dword [edx + 0x98]
mov ecx, edi
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edx + 0x98], ecx
mov edx, dword [edx + 8]
test edx, edx
jne 0x478586
jmp 0x473f8d
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edi + 0x98], ecx
jmp 0x473f90
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
jmp 0x473f90
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
jmp 0x473f90
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x168], al
test al, al
jne 0x47860f
mov eax, dword [ebp - 0x1c]
xor edx, edx
push 4
pop ecx
mov eax, dword [eax + 0x24]
and eax, ecx
cmp eax, edx
jne 0x473f90
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebx + 4]
push dword [ebp - 0x168]
mov edx, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0046c295
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x47423c
cmp cl, 6
jne 0x4775bd
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
jmp 0x479260
mov esi, dword [ebx + 0x10]
mov edx, esi
mov ecx, dword [ebp - 0x1c]
call fcn.004ab433
mov ecx, eax
mov dword [ebp - 0x18], ecx
test esi, esi
je 0x474234
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.004718fc
jmp 0x4763bb
xor eax, eax
push 0x28
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.006390b0
imul edx, dword [ebx + 8], 0x28
lea ecx, [ebp - 0x150]
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebp - 0x13c], eax
add edx, dword [ebp - 0x24]
call fcn.0046d8e9
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x150]
xor eax, eax
lea edx, [eax + 1]
call fcn.0046dcc1
test eax, eax
je 0x4786d4
mov edx, dword [ebx + 4]
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.004ab037
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
mov eax, 0x9000
test dword [ebp - 0x140], eax
jne 0x4786ee
cmp dword [ebp - 0x138], 0
je 0x4763bb
lea ecx, [ebp - 0x150]
call fcn.0046d2e5
jmp 0x4763bb
mov ecx, dword [ebp - 0x1c]
inc dword [ecx + 0xcc]
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.004ab334
mov edx, dword [ebp - 0x1c]
pop ecx
mov ecx, eax
mov dword [ebp - 0x18], ecx
dec dword [edx + 0xcc]
test ecx, ecx
jne 0x4775c0
jmp 0x47423c
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x47929a
mov edi, dword [esi]
test edi, edi
je 0x479297
lea eax, [ebp - 0x4c]
push eax
push esi
call dword [edi + 0x18]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov edx, esi
mov dword [ebp - 0x18], eax
call fcn.004718fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x14]
push 2
mov dword [eax], esi
mov edx, dword [ebx + 4]
pop eax
push eax
xor eax, eax
push eax
call fcn.004736bd
pop ecx
pop ecx
test eax, eax
je 0x47928b
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x474016
xor eax, eax
mov ecx, 0x9000
mov dword [ebp - 0x44], eax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x5c], eax
test word [eax + 0x10], cx
je 0x4787bf
mov ecx, eax
call fcn.0046d2b9
jmp 0x4787c6
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x34], eax
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x473f90
mov esi, dword [ecx + 8]
mov edi, dword [esi]
call fcn.004aa835
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x44]
push eax
push dword [ebx + 0xc]
mov eax, dword [ebp - 0x34]
add ecx, ecx
push dword [eax]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push esi
call dword [edi + 0x60]
mov esi, eax
add esp, 0x14
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], esi
mov ecx, dword [eax + 0x34]
call fcn.004aa84a
test esi, esi
jne 0x4792a1
mov edx, dword [ebp - 0x44]
test edx, edx
je 0x473f8d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
push fcn.004513a7
inc eax
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0046d976
add esp, 0x10
jmp 0x473f8d
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
call fcn.004bdbe8
test eax, eax
jne 0x474065
push eax
push 8
pop eax
push eax
call fcn.004512ae
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x474062
mov ecx, dword [ebp - 0x34]
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.0047399d
xor ecx, ecx
mov edx, edi
inc ecx
push 0x472473
mov word [eax + 0x10], cx
mov ecx, eax
push str.ValueList
call fcn.0046d7a0
jmp 0x474e29
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x50], eax
add edx, dword [ebp - 0x24]
mov esi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
xor eax, eax
test ecx, ecx
jle 0x4788eb
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x4788e0
push edi
mov edi, dword [ebp - 0x5c]
push ecx
push dword [ebx + 0x10]
push dword [ebp - 0x34]
push esi
call dword [edi + 0x20]
mov edx, dword [ebp - 0x44]
add esp, 0x14
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
call fcn.004718fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4775ba
push esi
call dword [edi + 0x28]
pop ecx
mov ecx, dword [ebp - 0x50]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x474016
jmp 0x47699f
mov esi, dword [ebp - 0x18]
jmp 0x4769a5
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
imul edi, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
add edi, dword [ebp - 0x24]
cmp byte [eax + 2], 0
je 0x478968
mov eax, 0x9000
test word [edi + 0x10], ax
jne 0x47427a
xor eax, eax
inc eax
jmp 0x473f89
mov eax, dword [eax + 0x2c]
push 0x20
mov esi, dword [eax]
mov eax, dword [esi]
mov dword [ebp - 0x5c], eax
xor eax, eax
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.006390b0
mov al, byte [ebp - 0x6c]
xor ecx, ecx
mov byte [ebp - 0xd0], al
inc ecx
xor eax, eax
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0x148], eax
add esp, 0xc
lea eax, [ebp - 0x150]
mov dword [ebp - 0x14c], 0x1000000
mov dword [ebp - 0xe4], eax
test byte [ebx + 2], cl
je 0x4789cd
mov ecx, edi
call fcn.0046d701
xor eax, eax
mov dword [edi], eax
mov eax, 0x401
jmp 0x4789df
mov ax, word [edi + 0x10]
mov edx, 0xf241
and ax, dx
or ax, cx
movzx eax, ax
mov word [edi + 0x10], ax
lea eax, [ebp - 0xe8]
push dword [ebx + 8]
push eax
mov eax, dword [ebp - 0x34]
push dword [eax + 0x2c]
mov eax, dword [ebp - 0x5c]
call dword [eax + 0x2c]
add esp, 0xc
mov dword [ebp - 0x18], eax
mov edx, esi
mov esi, dword [ebp - 0x14]
mov ecx, esi
call fcn.004718fc
cmp dword [ebp - 0xd4], 0
jle 0x478a33
push edi
call fcn.00471c73
pop ecx
push eax
push 0x6c7474
push esi
call fcn.0046e181
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov dword [ebp - 0x18], eax
movzx edx, byte [ebp - 0x6c]
mov ecx, edi
call fcn.0046cf0a
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x474016
mov edi, esi
jmp 0x4775bd
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x473f8d
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x34], ecx
call dword [ecx + 0x24]
pop ecx
mov ecx, dword [ebp - 0x14]
mov edx, esi
mov dword [ebp - 0x18], eax
call fcn.004718fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4775ba
mov eax, dword [ebp - 0x34]
push dword [edi + 0x2c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x478aac
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [ebp - 0x20]
add ebx, 0xffffffec
add ebx, eax
jmp 0x478ab2
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp dword [ecx + 0x128], eax
jne 0x4792b1
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x90]
jb 0x473f90
mov edx, dword [ebp - 0x7c]
jbe 0x478b25
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x473f90
add edx, dword [ecx + 0x17c]
push 0
mov dword [ebp - 0x7c], edx
pop edx
push dword [ecx + 0x178]
adc dword [ebp - 0x90], edx
call eax
pop ecx
test eax, eax
jne 0x4792a6
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x90]
ja 0x478ada
jb 0x473f90
cmp dword [ebp - 0x9c], edx
jae 0x478ada
jmp 0x473f90
mov ecx, dword [ebp - 0x1c]
mov edx, 0x4000000
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], edx
and eax, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebx + 0x10]
imul esi, dword [ebx + 4], 0x28
mov edi, dword [eax + 8]
xor eax, eax
add esi, dword [ebp - 0x24]
mov ecx, esi
lea edx, [eax + 1]
call fcn.0046cf0a
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4775ba
push dword [esi + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [ebp - 0x34], 0
pop ecx
pop ecx
mov dword [ebp - 0x18], eax
jne 0x478b95
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, edi
mov edi, dword [ebp - 0x14]
mov ecx, edi
call fcn.004718fc
and dword [edi + 0x98], 0xfffffffc
jmp 0x4763bb
mov ecx, dword [ebp - 0x1c]
xorps xmm0, xmm0
movlpd qword [ebp - 0x60], xmm0
cmp byte [ecx + 0x57], 0
jne 0x474068
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4792d2
mov eax, dword [edi]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x4792d2
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [eax + 0x34], ecx
je 0x473f8d
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + 0x5c]
mov byte [ebp - 0x39], 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 0x478c10
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x478c05
mov ecx, dword [ebp - 0x1c]
mov al, byte [ebx + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x34]
push esi
push edx
push edi
call dword [eax + 0x34]
mov ecx, dword [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x18], eax
mov edx, edi
mov al, byte [ebp - 0x39]
mov edi, dword [ebp - 0x14]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.004718fc
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x478c63
xor edx, edx
cmp dword [ebx + 4], edx
mov edx, dword [ebp - 0x1c]
je 0x478c90
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x60]
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0x28], eax
jmp 0x478c90
cmp cl, 0x13
jne 0x478c8d
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x478c8d
movzx edx, word [ebx + 2]
push 4
pop eax
cmp dx, ax
jne 0x4792b8
xor eax, eax
mov esi, eax
mov dword [ebp - 0x18], esi
jmp 0x473f90
mov edx, dword [ebp - 0x1c]
xor eax, eax
inc eax
add dword [edi + 0x28], eax
push 0
pop eax
adc dword [edi + 0x2c], eax
jmp 0x478721
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebx + 4]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
xor ecx, ecx
jmp 0x473e6d
mov edx, ebx
mov ecx, edi
call fcn.0047399d
mov edx, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x10]
xor eax, eax
mov ecx, dword [ecx + edx*8 + 4]
mov edx, eax
test edi, edi
je 0x478cf9
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x30]
cmp edx, edi
cmovb edx, edi
call fcn.004649ef
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x473f8d
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [ebx + 0x10]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x34], edx
cmp dword [edi], edx
je 0x478d55
mov eax, dword [ebp - 0x14]
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 0xc], eax
mov al, byte [ebp - 0x6c]
mov dword [edi], edx
mov byte [edi + 0x18], al
js 0x478d55
lea edx, [ecx + 7]
lea edx, [edi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, dword [ebp - 0x24]
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x478d3b
mov edx, dword [ebp - 0x34]
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 ecx, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
push edi
call dword [ecx + 0x10]
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x473f8d
jle 0x478daf
mov ecx, dword [ebp - 0x34]
xor eax, eax
lea edx, [eax + 1]
call fcn.0046dcc1
push eax
push 0x6c7474
push dword [ebp - 0x14]
call fcn.0046e181
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [ebp - 0x18], eax
push dword [ebx + 4]
mov edx, dword [ebp - 0x14]
push dword [edi + 0x10]
mov ecx, dword [ebp - 0x1c]
lea edx, [edx + 0xe4]
call fcn.004703df
pop ecx
xor eax, eax
pop ecx
mov dword [edi + 0x14], eax
jmp 0x4782b6
mov esi, dword [ebp - 0x18]
mov edi, eax
jmp 0x473f90
imul eax, dword [ebx + 4], 0x28
mov ecx, 0xf7ff
add eax, dword [ebp - 0x24]
and word [eax + 0x10], cx
jmp 0x473f90
imul eax, dword [ebx + 4], 0x28
mov edx, 0x800
imul ecx, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
test word [eax + 0x10], dx
je 0x478e15
movzx eax, byte [eax + 0x13]
cdq
push edx
jmp 0x474fd9
call fcn.0046d701
jmp 0x473f90
imul eax, dword [ebx + 4], 0x28
xor edx, edx
imul ecx, dword [ebx + 8], 0x28
inc edx
add eax, dword [ebp - 0x24]
add ecx, dword [ebp - 0x24]
test byte [eax + 0x10], dl
je 0x478e43
mov eax, 0xf7ff
and word [ecx + 0x10], ax
jmp 0x473f90
mov edx, 0x800
or word [ecx + 0x10], dx
mov al, byte [eax]
mov byte [ecx + 0x13], al
jmp 0x473f90
imul edi, dword [ebx + 4], 0x28
mov edx, ebx
mov ecx, dword [ebp - 0x24]
add edi, dword [ebp - 0x24]
call fcn.004739c2
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0066c1d0
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 0x474016
imul ebx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
add ebx, dword [ebp - 0x24]
call fcn.004739c2
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0066c1d0
mov ecx, dword [ebx + 8]
mov edi, eax
mov ebx, dword [ebp - 0x28]
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 - 0x18]
shl eax, cl
test eax, edx
jne 0x478eed
inc dword [edi + 0xc4]
jmp 0x4769a5
inc dword [edi + 0xc0]
jmp 0x473f90
mov ecx, dword [ebp - 0x1c]
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x478faa
cmp byte [edi + 0x95], 0xfe
je 0x478faa
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x478f29
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x478faa
test cl, 0x40
je 0x478f54
mov edx, eax
mov ecx, edi
call fcn.004733c6
mov esi, eax
mov eax, dword [ebp - 0x1c]
push esi
push dword [eax + 0xdc]
call dword [eax + 0xd8]
push esi
call fcn.004513a7
add esp, 0xc
jmp 0x478f94
mov ecx, dword [ebp - 0x1c]
xor edx, edx
inc edx
push eax
cmp dword [ecx + 0xc8], edx
jle 0x478f99
push str.____s
push ecx
call fcn.00453174
add esp, 0xc
mov esi, eax
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
inc ecx
push esi
push edi
push dword [eax + 0xdc]
push ecx
call dword [eax + 0xd8]
push esi
push dword [ebp - 0x1c]
call fcn.004514af
add esp, 0x18
mov esi, dword [ebp - 0x18]
jmp 0x478faa
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, dword [ebx + 4]
cmp eax, dword [0x70f224]
jl 0x478fe8
cmp byte [ebx], 0xb8
je 0x473f90
xor eax, eax
inc eax
mov ecx, eax
cmp dword [edi + 0x6c], eax
jle 0x478fe6
push 0x14
pop eax
push eax
pop esi
mov edx, dword [edi + 0x68]
cmp byte [eax + edx], 0xf
jne 0x478fdb
and dword [eax + edx + 4], 0
inc ecx
add eax, esi
cmp ecx, dword [edi + 0x6c]
jl 0x478fcd
mov esi, dword [ebp - 0x18]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [edi + 0xbc]
jmp 0x4769a5
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x479082
movzx eax, word [ebx + 2]
test ax, ax
je 0x47904c
push dword [eax*4 + 0x6be828]
push str._s_constraint_failed
push edi
call fcn.0046e181
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x47905d
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [ebp - 0x1c]
call fcn.00453174
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x47905d
push dword [ebx + 0x10]
push 0x6c7474
push edi
call fcn.0046e181
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.00453350
add esp, 0x14
mov ecx, edi
call fcn.0046ff6a
mov edx, dword [ebp - 0x1c]
mov esi, eax
push 5
pop eax
cmp esi, eax
jne 0x47909d
mov dword [edi + 0x24], eax
jmp 0x47952d
push 0x65
pop esi
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne esi, eax
jmp 0x47952d
mov ecx, 0x17676
call fcn.004c0832
mov ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x4775ba
mov eax, dword [ebp - 0x28]
and edx, 0x3f
mov ecx, dword [ebp - 0x4c]
add eax, eax
push dword [ecx + eax*8]
mov eax, dword [ebp - 0x34]
push dword [eax]
movzx eax, byte [edx + 0x6c2fa0]
push dword [edi*4 + 0x71019c]
mov edi, dword [ebp - 0x14]
push dword [eax*4 + 0x6c1ccc]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0046e181
add esp, 0x18
mov ecx, 0xc13
jmp 0x474980
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0046e181
pop ecx
pop ecx
push 5
jmp 0x47497d
mov edi, dword [ebp - 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x47910c
mov eax, ebx
mov edi, dword [ebp - 0x14]
sub eax, dword [ebp - 0x20]
push 0x14
cdq
pop esi
idiv esi
mov dword [edi + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x1c]
mov esi, ecx
mov byte [edx + 0x55], al
mov dword [edi + 0x24], ecx
jmp 0x47952d
and edx, esi
xor eax, eax
or edx, eax
mov edx, dword [ebp - 0x1c]
je 0x47915a
push 8
pop eax
mov ecx, eax
jmp 0x47915d
push 0xb
pop ecx
mov dword [ebp - 0x18], ecx
jmp 0x4775c0
mov edi, dword [ebp - 0x14]
cmp cl, 5
jne 0x4775bd
mov eax, ebx
mov dword [edi + 0x24], ecx
sub eax, dword [ebp - 0x20]
push 0x14
pop esi
cdq
idiv esi
mov esi, dword [ebp - 0x18]
mov dword [edi + 0x20], eax
jmp 0x47952a
mov ecx, 0x204
jmp 0x474980
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
call fcn.004647dc
mov ecx, dword [ebp - 0x18]
jmp 0x4775ba
mov edi, dword [ebp - 0x14]
push str.string_or_blob_too_big
push edi
call fcn.0046e181
pop ecx
pop ecx
push 0x12
pop ecx
jmp 0x474980
push str.index_corruption
mov edx, 0x18378
mov ecx, 0x30b
call fcn.004c0810
pop ecx
jmp 0x4790ba
push 0x6d9384
push 0x18445
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00453350
add esp, 0x14
push 0xb
jmp 0x4791b8
push 6
pop ecx
push 2
pop eax
mov dword [ebp - 0x18], ecx
mov byte [edi + 0x94], al
jmp 0x4775c0
push 7
pop eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x1c]
call fcn.0048a6be
jmp 0x4779d1
push dword [ebp - 0x108]
call fcn.004513a7
pop ecx
jmp 0x47919e
xor eax, eax
inc eax
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0x18], eax
call fcn.0046e181
pop ecx
pop ecx
mov ecx, dword [ebp - 0x18]
jmp 0x4775bd
xor eax, eax
lea edx, [eax + 1]
call fcn.0046dcc1
push eax
push 0x6c7474
mov edi, dword [ebp - 0x14]
push edi
call fcn.0046e181
add esp, 0xc
jmp 0x479245
xor eax, eax
mov ecx, str.out_of
push 5
inc eax
pop edx
mov dword [ebp - 0x18], eax
cmp edi, edx
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x47925d
push dword [ebp - 0x4c]
call dword [edi + 0x1c]
pop ecx
jmp 0x474062
mov edi, dword [ebp - 0x14]
push 6
jmp 0x4791b8
push dword [ebp - 0x44]
jmp 0x479227
or dword [ebp - 0x7c], 0xffffffff
or dword [ebp - 0x90], 0xffffffff
push 9
jmp 0x4791b8
push 5
pop esi
movzx eax, dl
cmp dx, si
push 2
pop edx
cmove eax, edx
mov byte [edi + 0x94], al
jmp 0x4775bd
push 6
jmp 0x476ddb
mov eax, dword [edi + 0x1c]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov ecx, dword [ebp - 0x1c]
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 0x474068
push 4
pop edx
test byte [ecx + 0x5e], dl
je 0x47931c
xor eax, eax
push eax
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
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 0x476043
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0xa0], edx
movzx eax, byte [ecx + 0x55]
cmp edx, eax
je 0x4793e6
test esi, esi
je 0x479362
mov edx, 0x204
call fcn.004beb62
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x47939c
test edx, edx
je 0x47937a
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x47937a
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x47910c
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.0046fefc
mov esi, eax
test esi, esi
jne 0x47952a
mov al, byte [ebp - 0xa0]
mov byte [ebp - 0xa0], al
mov esi, dword [ebp - 0x1c]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.0046ff6a
push 5
pop ecx
cmp eax, ecx
jne 0x4793cc
mov eax, ebx
sub eax, dword [ebp - 0x20]
cdq
push 0x14
pop esi
idiv esi
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
sub al, byte [ebp - 0xa0]
jmp 0x479138
mov ecx, esi
call fcn.004be691
push 0x65
pop esi
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne esi, eax
jmp 0x47952a
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.0046e181
pop ecx
pop ecx
jmp 0x475dca
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x9c], eax
jmp 0x4792b1
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x9c], eax
jmp 0x474068
cmp ecx, 0x210a
jne 0x479473
push 0x6d9384
push 0x18d49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00453350
add esp, 0x14
push 0xb
pop ecx
mov dword [ebp - 0x18], ecx
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x479496
cmp ecx, 0xc0a
je 0x479496
call fcn.004bec7c
push eax
push 0x6c7474
push edi
call fcn.0046e181
add esp, 0xc
mov esi, dword [ebp - 0x18]
mov edx, esi
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x24], esi
call fcn.004540a2
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.00453350
add esp, 0x14
push 2
pop ecx
cmp byte [edi + 0x97], cl
jne 0x4794de
mov ecx, edi
call fcn.0046ff6a
push 2
pop ecx
cmp esi, 0xc0a
jne 0x47950e
mov ecx, dword [ebp - 0x1c]
call fcn.004519d7
mov edx, dword [ebp - 0x1c]
xor eax, eax
lea esi, [eax + 1]
mov al, byte [ebp - 0x85]
test al, al
je 0x47952d
mov ecx, dword [ebp - 0x1c]
movzx edx, al
dec edx
call fcn.0048a65a
jmp 0x47952a
cmp esi, 0xb
jne 0x4794ee
mov edx, dword [ebp - 0x1c]
cmp byte [edx + 0x55], 0
jne 0x4794f1
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x4794f1
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x90]
jb 0x479586
mov ecx, dword [ebp - 0x7c]
ja 0x479548
cmp dword [ebp - 0x9c], ecx
jb 0x479586
mov eax, dword [edx + 0x174]
test eax, eax
je 0x479586
add ecx, dword [edx + 0x17c]
push 0
mov dword [ebp - 0x7c], ecx
pop ecx
push dword [edx + 0x178]
adc dword [ebp - 0x90], ecx
call eax
mov edx, dword [ebp - 0x1c]
pop ecx
test eax, eax
je 0x47952d
or dword [ebp - 0x7c], 0xffffffff
or dword [ebp - 0x90], 0xffffffff
push 9
jmp 0x47915c
mov ecx, dword [ebp - 0x9c]
xor eax, eax
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], eax
je 0x4795a3
mov ecx, edi
call fcn.0046ef1b
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006122f0
leave
ret