Function at 0x510e20
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x694240]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ecx + 4]
push ebx
mov ebx, dword [ecx]
mov dword [ebp - 0xd4], eax
push esi
push edi
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0x105], 0
mov dword [ebp - 0x11c], 0
mov al, byte [eax + 0x4d]
mov byte [ebp - 0xf4], al
mov eax, dword [ecx + 8]
mov dword [ebp - 0xec], eax
xor eax, eax
mov dword [ebp - 0x114], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x110], eax
call fcn.0050bed0
mov edi, dword [ebp - 0xd8]
cmp dword [edi + 0x5c], 7
je 0x517909
mov dword [edi + 0x5c], 0
mov dword [edi + 0x14], 0
cmp dword [ebx + 0xe0], 0
mov dword [ebx + 0x1b4], 0
jne 0x5178b6
mov esi, dword [edi + 0x58]
xor edx, edx
cmp dword [ebx + 0x114], edx
setne dl
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], esi
cmp byte [ebx + 0x38], 0
jne 0x517909
lea edi, [esi + esi*4]
test edx, edx
je 0x510f57
mov eax, dword [ebp - 0x11c]
cmp dword [ebx + 0x11c], eax
jne 0x510f4a
push dword [ebx + 0x118]
mov eax, dword [ebx + 0x114]
call eax
add esp, 4
test eax, eax
jne 0x5173ba
mov ecx, dword [ebp - 0xd4]
inc eax
mov dword [ebp - 0x11c], eax
test byte [ecx + edi*4 + 2], 2
je 0x510f9d
mov eax, dword [ecx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, 0x2460
mov dword [ebp - 0xf0], edx
test word [edx + 0x1c], ax
je 0x510f92
mov ecx, edx
call fcn.0050a0b0
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xd4]
mov eax, 4
mov word [edx + 0x1c], ax
jmp 0x510fa3
mov edx, dword [ebp - 0xf0]
movzx eax, byte [ecx + edi*4]
dec eax
cmp eax, 0x93
ja case.default.0x510fb3
jmp dword [eax*4 + 0x517930]
cmp dword [ebx + 0xe0], 0
jne 0x5178b0
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f0c
mov ecx, dword [ecx + edi*4 + 4]
mov eax, 4
mov esi, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
mov word [esi + ecx*8 + 0x1c], ax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [esi + ecx*8 + 0x10], eax
mov dword [esi + ecx*8 + 0x14], edx
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xd8]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8 + 0x10]
mov edx, dword [ebp - 0xe4]
inc esi
jmp 0x510f0c
mov eax, dword [ecx + edi*4 + 4]
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xd8]
lea ecx, [eax + eax*4]
mov eax, 4
mov word [esi + ecx*8 + 0x1c], ax
mov eax, dword [esi + ecx*8 + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xe0]
cdq
mov dword [esi + ecx*8 + 0x14], edx
mov edx, dword [ebp - 0xe4]
mov dword [esi + ecx*8 + 0x10], eax
mov esi, dword [ebp - 0xd0]
inc esi
jmp 0x510f06
mov eax, dword [ecx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
je case.default.0x510fb3
cmp dword [ecx + edi*4 + 4], 0
mov edx, dword [ebp - 0xd8]
jne 0x5173d0
mov ecx, dword [edx + 0xa8]
test ecx, ecx
je 0x5173ca
mov eax, dword [ecx + 4]
dec dword [edx + 0xb0]
mov dword [edx + 0xa8], eax
mov eax, dword [edx + 0x68]
add dword [ebx + 0x4c], eax
mov dword [ebx + 0x48], eax
call fcn.0050c8f0
mov esi, eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], esi
cmp dword [eax + edi*4 + 8], 4
jne 0x51111c
mov eax, dword [ebp - 0xd8]
mov edi, esi
mov eax, dword [eax + 4]
lea ecx, [edi + edi*4]
mov esi, dword [eax + ecx*4 + 8]
dec esi
mov ecx, dword [ebp - 0xd8]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 8]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xec], eax
jmp 0x510f0c
mov eax, dword [ecx + edi*4 + 4]
inc esi
mov ecx, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xd8]
cdq
mov dword [ecx + 0x14], edx
mov edx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
jmp 0x510f06
mov ecx, dword [ecx + edi*4 + 0x10]
inc esi
mov edi, dword [ebp - 0xd8]
mov eax, dword [ecx]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x14], eax
mov edx, dword [ebp - 0xe4]
jmp 0x510f06
mov eax, 8
inc esi
mov word [edx + 0x1c], ax
mov eax, dword [ecx + edi*4 + 0x10]
mov edi, dword [ebp - 0xd8]
movsd xmm0, qword [eax]
movsd qword [edx + 8], xmm0
mov edx, dword [ebp - 0xe4]
jmp 0x510f0c
mov byte [ecx + edi*4], 9
mov ecx, dword [ecx + edi*4 + 0x10]
call fcn.004f1660
cmp byte [ebp - 0xf4], 1
mov ebx, dword [ebp - 0xd4]
mov dword [ebx + edi*4 + 4], eax
mov ebx, dword [ebp - 0xe8]
je 0x511275
push 0
push 1
mov edx, ecx
mov ecx, dword [ebp - 0xf0]
push 0xffffffffffffffff
call fcn.0050a860
add esp, 0xc
mov dword [ebp - 0xdc], eax
cmp eax, 0x12
je 0x517760
movzx edx, byte [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
call fcn.00509d00
test eax, eax
jne 0x517903
mov edx, dword [ebp - 0xf0]
mov ecx, 0xfbff
mov dword [edx + 0x24], eax
mov ax, word [edx + 0x1c]
and ax, cx
mov ecx, 0x800
or ax, cx
mov ecx, dword [ebp - 0xd4]
mov word [edx + 0x1c], ax
cmp byte [ecx + edi*4 + 1], 0xff
jne 0x511260
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, ebx
call fcn.004ef4c0
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xd4]
mov byte [ecx + edi*4 + 1], 0xff
mov eax, dword [edx + 4]
mov dword [ecx + edi*4 + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + edi*4 + 4], eax
jmp 0x51127b
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 4]
cmp eax, dword [ebx + 0x50]
jg 0x517760
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [edx + 4], eax
mov eax, dword [ecx + edi*4 + 4]
mov dword [edx + 0x18], eax
mov al, byte [ebp - 0xf4]
mov byte [edx + 0x1f], al
jmp case.default.0x510fb3
mov eax, dword [ecx + edi*4 + 0xc]
mov edx, 0x101
sub eax, dword [ecx + edi*4 + 8]
mov dword [ebp - 0xd0], eax
mov eax, 1
cmp dword [ecx + edi*4 + 4], 0
mov edi, dword [ebp - 0xf0]
cmovne eax, edx
mov word [ebp - 0xcc], ax
mov word [edi + 0x1c], ax
cmp dword [ebp - 0xd0], 0
jle 0x51132e
mov ebx, 0x2460
lea esp, [esp]
add edi, 0x28
test word [edi + 0x1c], bx
je 0x511300
mov ecx, edi
call fcn.0050a0b0
mov ax, word [ebp - 0xcc]
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xd0]
dec eax
mov dword [ebp - 0xd0], eax
test eax, eax
jg 0x5112f0
mov ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xf0], edi
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
jmp 0x510f0c
mov edx, dword [ecx + edi*4 + 0x10]
push 0
push 0
push dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0xf0]
mov ecx, edi
call fcn.0050a860
mov al, byte [ebp - 0xf4]
add esp, 0xc
mov edx, dword [ebp - 0xe4]
inc esi
mov byte [edi + 0x1f], al
mov edi, dword [ebp - 0xd8]
jmp 0x510f06
mov eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd8]
lea ecx, [ecx - 5]
mov eax, dword [eax + 0x48]
lea esi, [eax + ecx*8]
mov ecx, esi
mov dword [ebp - 0xd0], esi
call fcn.0050a6d0
test eax, eax
jne 0x517760
mov ecx, dword [ebp - 0xf0]
mov edx, esi
push 0x800
call fcn.0050a700
add esp, 4
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov edx, dword [ecx + edi*4 + 0xc]
inc edx
mov dword [ebp - 0xcc], edx
mov eax, dword [ecx + edi*4 + 4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xec]
lea eax, [eax + eax*4]
mov dword [ebp - 0xc4], ecx
lea esi, [edi + eax*8]
lea eax, [ecx + ecx*4]
lea edi, [edi + eax*8]
mov dword [ebp - 0xf0], edi
je 0x511453
dec edx
mov ecx, edi
mov dword [ebp - 0xcc], edx
mov edx, esi
mov eax, dword [edi + 0x24]
mov dword [ebp - 0xd0], eax
mov dword [edi + 0x24], 0
call fcn.0050a7e0
mov eax, dword [ebp - 0xd0]
add edi, 0x28
mov dword [esi + 0x24], eax
add esi, 0x28
mov edx, dword [ebp - 0xcc]
test edx, edx
jne 0x511414
mov dword [ebp - 0xf0], edi
dec edx
mov dword [ebp - 0xcc], edx
jmp 0x5113b7
mov eax, dword [ecx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
push 0x1000
mov edx, esi
mov dword [ebp - 0xf0], edi
mov ecx, edi
call fcn.0050a700
mov eax, 0x1000
add esp, 4
test word [edi + 0x1c], ax
je 0x5114b4
mov ecx, edi
call fcn.00509e40
test eax, eax
jne 0x517903
mov eax, dword [ebp - 0xd0]
mov ecx, eax
dec eax
mov dword [ebp - 0xd0], eax
test ecx, ecx
je 0x5113b7
add edi, 0x28
add esi, 0x28
jmp 0x511483
mov eax, dword [ecx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
push 0x1000
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xf0], ecx
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.0050a700
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov ecx, dword [ebp - 0xd8]
xor edx, edx
call fcn.0050d440
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51316c
mov ecx, dword [ebp - 0xd8]
lea edx, [eax + 1]
call fcn.0050d320
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51316c
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xec]
mov eax, dword [ecx + 0x54]
add eax, 2
or eax, 1
mov dword [ecx + 0x54], eax
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ecx + 0x14], edx
xor ecx, ecx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], ecx
cmp dword [esi + edi*4 + 8], ecx
jle 0x517495
lea eax, [ecx + ecx*4]
mov ebx, 0x1000
test word [edx + eax*8 + 0x1c], bx
lea eax, [edx + eax*8]
mov ebx, dword [ebp - 0xe8]
je 0x5115d5
mov ecx, eax
call fcn.00509e40
test eax, eax
jne 0x517903
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd0]
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
call fcn.00509f00
mov eax, dword [ebp - 0xcc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd0]
lea ecx, [eax + ecx*8]
call fcn.00510b20
mov ecx, dword [ebp - 0xcc]
inc ecx
mov dword [ebp - 0xcc], ecx
cmp ecx, dword [esi + edi*4 + 8]
jge 0x517495
mov edx, dword [ebp - 0xd0]
jmp 0x5115a2
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
movzx ecx, word [ebx + 0x1c]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi + 0x1c]
or al, cl
mov dword [ebp - 0xf0], edi
test al, 1
je 0x51167d
mov ecx, edi
call fcn.0050a480
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
test ecx, 0x4000
je 0x511694
mov ecx, ebx
call fcn.00509ea0
test eax, eax
jne 0x5178fd
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x5116ae
mov ecx, esi
call fcn.00509ea0
test eax, eax
jne 0x5178fd
test byte [ebx + 0x1c], 0x12
jne 0x5116ca
movzx edx, byte [ebp - 0xf4]
mov ecx, ebx
call fcn.00509f50
test eax, eax
jne 0x5178fd
test byte [esi + 0x1c], 0x12
jne 0x5116e6
movzx edx, byte [ebp - 0xf4]
mov ecx, esi
call fcn.00509f50
test eax, eax
jne 0x5178fd
mov eax, dword [ebx + 0x18]
add eax, dword [esi + 0x18]
cdq
mov ecx, edx
mov edi, eax
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], ecx
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
jg 0x51775a
jl 0x511719
cmp edi, eax
ja 0x51775a
mov edi, dword [ebp - 0xf0]
mov ecx, 0xbe02
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, edi
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
mov edx, dword [ebp - 0xd0]
cmp edi, esi
sete al
push eax
lea edx, [edx + 2]
call fcn.00509d20
add esp, 4
test eax, eax
jne 0x5178fd
cmp edi, esi
je 0x51176b
push dword [esi + 0x18]
push dword [esi + 4]
push dword [edi + 4]
call fcn.005766c0
add esp, 0xc
push dword [ebx + 0x18]
mov eax, dword [edi + 4]
push dword [ebx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.005766c0
mov eax, dword [ebp - 0xd0]
add esp, 0xc
mov ecx, dword [edi + 4]
mov ebx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edi + 4]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [ebp - 0xd0]
inc dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov dword [edi + 0x18], eax
mov al, byte [ebp - 0xf4]
mov byte [edi + 0x1f], al
mov edi, dword [ebp - 0xd8]
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ebx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00510c60
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov ecx, ebx
call fcn.00510c60
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
mov dword [ebp - 0xf0], eax
movzx eax, word [ebx + 0x1c]
or ecx, eax
mov dword [ebp - 0xcc], ecx
test cl, 1
jne 0x511b46
mov al, byte [esi + 0x1c]
and al, byte [ebx + 0x1c]
test al, 4
je 0x5119d3
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xd4]
mov byte [ebp - 0xd0], 1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x51189d
jmp dword [eax*4 + 0x517b80]
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004f2650
add esp, 8
test eax, eax
jne 0x5119da
jmp 0x51197e
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004f26f0
add esp, 8
test eax, eax
jne 0x5119da
jmp 0x51197e
push edx
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004f2740
add esp, 8
test eax, eax
jne 0x5119da
jmp 0x51197e
mov eax, ecx
or eax, edx
je 0x511b46
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
mov eax, dword [ebp - 0xfc]
jne 0x511928
test eax, eax
jne 0x511928
cmp dword [ebp - 0x104], 0x80000000
je 0x5119da
push edx
push ecx
push dword [ebp - 0x104]
push eax
call fcn.0057c360
jmp 0x511972
mov eax, ecx
or eax, edx
je 0x511b46
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x51195e
mov ecx, 1
xor edx, edx
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xfc]
push edx
push ecx
push dword [ebp - 0x104]
push eax
call fcn.0057c410
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xf0]
mov edx, 0xbe04
mov eax, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x14], eax
mov ax, word [ecx + 0x1c]
and ax, dx
mov edx, dword [ebp - 0xe4]
or ax, 4
inc dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe0]
mov word [ecx + 0x1c], ax
mov ecx, dword [ebp - 0xd4]
jmp 0x510f12
mov byte [ebp - 0xd0], 0
mov ecx, esi
call fcn.0050a200
mov ecx, ebx
movsd qword [ebp - 0xb8], xmm0
call fcn.0050a200
mov eax, dword [ebp - 0xd4]
movsd qword [ebp - 0xb0], xmm0
movsd qword [ebp - 0x100], xmm0
movzx eax, byte [eax + edi*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x511a12
jmp dword [eax*4 + 0x517b90]
addsd xmm0, qword [ebp - 0xb8]
jmp 0x511acc
subsd xmm0, qword [ebp - 0xb8]
jmp 0x511acc
mulsd xmm0, qword [ebp - 0xb8]
jmp 0x511acc
movsd xmm1, qword [ebp - 0xb8]
ucomisd xmm1, qword [0x66b5c0]
lahf
test ah, 0x44
jnp 0x511b46
divsd xmm0, xmm1
jmp 0x511acc
movsd xmm0, qword [ebp - 0xb8]
call fcn.005948cf
movsd xmm0, qword [ebp - 0x100]
mov esi, eax
mov edi, edx
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], edi
call fcn.005948cf
mov ecx, esi
mov dword [ebp - 0xc0], eax
or ecx, edi
mov dword [ebp - 0xbc], edx
je 0x511b46
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x511abc
mov esi, 1
xor edi, edi
mov dword [ebp - 0xc8], esi
mov dword [ebp - 0xc4], edi
push edi
push esi
push edx
push eax
call fcn.0057c410
mov ecx, eax
call fcn.00594a6f
movsd qword [ebp - 0xb0], xmm0
call fcn.004f1620
test eax, eax
jne 0x511b46
mov edi, dword [ebp - 0xf0]
mov ecx, 0xbe08
movsd xmm0, qword [ebp - 0xb0]
mov ax, word [edi + 0x1c]
and ax, cx
movsd qword [edi + 8], xmm0
or ax, 8
mov word [edi + 0x1c], ax
test byte [ebp - 0xcc], 8
jne 0x511b1d
cmp byte [ebp - 0xd0], 0
jne 0x511b1d
mov ecx, edi
call fcn.0050a260
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov ecx, dword [ebp - 0xf0]
call fcn.0050a480
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
test eax, eax
je 0x511ba0
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.0050a4d0
mov ecx, dword [ebp - 0xd4]
add esp, 8
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
movzx ecx, byte [ecx + edi*4 + 3]
mov edx, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xec]
mov esi, dword [eax + 0xc]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x88], esi
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xf0], eax
mov eax, dword [edx + edi*4 + 8]
mov edx, ebx
mov ebx, dword [ebp - 0xe8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
xor eax, eax
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], eax
test ecx, ecx
jle 0x511c6a
mov dword [esi + eax*4], edx
mov eax, 0x1000
mov ecx, dword [ebp - 0xcc]
test word [ecx + 0x1c], ax
je 0x511c39
call fcn.00509e40
test eax, eax
jne 0x517903
mov ecx, dword [ebp - 0xcc]
call fcn.00510b20
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
inc eax
add edx, 0x28
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
cmp eax, dword [ebp - 0x84]
jge 0x511c6a
mov esi, dword [ebp - 0x88]
jmp 0x511c12
mov eax, dword [ebp - 0xd4]
cmp byte [eax + edi*4 + 1], 0xfb
mov eax, dword [eax + edi*4 + 0x10]
jne 0x511c87
mov dword [ebp - 0xc4], 0
jmp 0x511c8f
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov esi, dword [ebp - 0xf0]
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xc8], eax
mov edx, esi
mov eax, 1
mov dword [ebp - 0xc0], ebx
mov word [ebp - 0xa4], ax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
call fcn.0050a7e0
mov eax, dword [ebp - 0xa4]
and eax, 0xbe01
mov dword [ebp - 0x90], 0
or eax, 1
mov word [ebp - 0xa4], ax
mov eax, dword [ebp - 0xc8]
test byte [eax + 3], 8
je 0x511d09
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 - 4]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x110]
mov dword [ebx + 0x24], eax
lea eax, [ebp - 0xc8]
push dword [ebp - 0x88]
push dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xc8]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [ebx + 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x110], eax
test ecx, ecx
je 0x511d7c
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + edi*4 + 4]
call fcn.0050da60
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xc4]
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], 0xf9
cmp byte [ebx + 0x38], 0
jne 0x5174b9
cmp dword [ebp - 0x90], 0
je 0x511dc1
mov dl, 1
lea ecx, [ebp - 0xc0]
call fcn.0050ae80
push eax
mov eax, dword [ebp - 0xd8]
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov eax, dword [ebp - 0x90]
add esp, 0x10
mov dword [ebp - 0xdc], eax
movzx edx, byte [ebp - 0xf4]
lea ecx, [ebp - 0xc0]
call fcn.00509d00
lea edx, [ebp - 0xc0]
mov ecx, esi
call fcn.0050a7e0
mov ecx, esi
call fcn.0050a6d0
test eax, eax
jne 0x517760
jmp 0x513166
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
mov dword [ebp - 0xf0], edx
test al, 1
je 0x511e3a
mov ecx, edx
call fcn.0050a480
jmp 0x5113b7
call fcn.0050a150
mov ecx, esi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.0050a150
mov esi, eax
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xc0], esi
mov cl, byte [eax + edi*4]
mov byte [ebp - 0xb8], cl
cmp cl, 0x52
jne 0x511e8d
mov ecx, dword [ebp - 0xd0]
and ecx, esi
and dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ecx
jmp 0x511fe6
cmp cl, 0x53
jne 0x511eab
mov ecx, dword [ebp - 0xd0]
or ecx, esi
or dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ecx
jmp 0x511fe6
mov eax, esi
or eax, edx
je 0x511fe0
test edx, edx
jg 0x511ef5
jl 0x511ebf
test esi, esi
jae 0x511eea
mov al, 0xa9
sub al, cl
mov cl, al
mov byte [ebp - 0xb8], cl
cmp edx, 0xffffffff
jl 0x511f25
jg 0x511ed7
cmp esi, 0xffffffc0
jbe 0x511f25
neg esi
mov dword [ebp - 0xc0], esi
adc edx, 0
neg edx
mov dword [ebp - 0xbc], edx
test edx, edx
jl 0x511f51
jg 0x511ef5
cmp esi, 0x40
jb 0x511f51
cmp dword [ebp - 0xcc], 0
jg 0x511f3b
jl 0x511f09
cmp dword [ebp - 0xd0], 0
jae 0x511f3b
cmp cl, 0x54
je 0x511f3b
or eax, 0xffffffff
cdq
mov ecx, eax
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ecx
jmp 0x511fe6
mov dword [ebp - 0xc0], 0x40
mov dword [ebp - 0xbc], 0
jmp 0x511ef5
xor eax, eax
cdq
mov ecx, eax
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ecx
jmp 0x511fe6
movq xmm1, qword [ebp - 0xd0]
movd xmm0, esi
cmp cl, 0x54
jne 0x511f88
psllq xmm1, xmm0
movq qword [ebp - 0xc8], xmm1
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
jmp 0x511fe6
cmp dword [ebp - 0xcc], 0
psrlq xmm1, xmm0
movq qword [ebp - 0xc8], xmm1
jg 0x511fc6
jl 0x511fa8
cmp dword [ebp - 0xd0], 0
jae 0x511fc6
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.005946b0
or dword [ebp - 0xc8], eax
or dword [ebp - 0xc4], edx
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], eax
jmp 0x511fe6
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xf0]
mov dword [edx + 0x10], ecx
mov ecx, 0xbe04
mov eax, dword [ebp - 0xcc]
mov dword [edx + 0x14], eax
mov ax, word [edx + 0x1c]
and ax, cx
or ax, 4
mov word [edx + 0x1c], ax
jmp 0x5113b7
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050a300
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00510c60
test byte [esi + 0x1c], 8
je 0x51207b
mov ecx, esi
call fcn.0050a260
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x5120ae
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 8]
test eax, eax
je 0x5174c9
mov edi, dword [ebp - 0xd8]
mov esi, eax
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
jmp 0x5113b7
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 4
lea ecx, [ecx + eax*8]
je 0x51375a
call fcn.0050a330
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x513166
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [esi + 0x1c], ax
test al, 2
jne 0x51213e
test al, 0xc
je 0x51213e
movzx edx, byte [ebp - 0xf4]
mov ecx, esi
call fcn.00509f50
mov eax, 0xfff3
and word [esi + 0x1c], ax
movzx eax, word [esi + 0x1c]
test eax, 0x4000
je 0x51216d
mov ecx, esi
call fcn.00509ea0
mov dword [ebp - 0xdc], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x513166
mov eax, 0xbfe3
mov dword [ebp - 0xdc], 0
and word [esi + 0x1c], ax
jmp 0x513166
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x51429b
test al, 0x10
jne 0x5121f3
test al, 2
jne 0x5121c1
test al, 0xc
je 0x5121c1
movzx edx, byte [ebp - 0xf4]
mov ecx, esi
call fcn.00509f50
mov ecx, dword [ebp - 0xd4]
mov ax, word [esi + 0x1c]
mov edx, 0xbe10
mov edi, dword [ebp - 0xd8]
and ax, dx
mov edx, dword [ebp - 0xe4]
or ax, 0x10
mov word [esi + 0x1c], ax
mov esi, dword [ebp - 0xe0]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov edi, dword [ebp - 0xd8]
and eax, 0xfe10
mov edx, dword [ebp - 0xe4]
mov word [esi + 0x1c], ax
mov esi, dword [ebp - 0xe0]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0050a3b0
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
jne 0x51375a
call fcn.0050a300
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
jne 0x51375a
call fcn.0050a330
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
movzx eax, word [esi + 0x1c]
mov word [ebp - 0xca], ax
movzx eax, word [ebx + 0x1c]
mov cl, byte [ebp - 0xca]
mov dl, al
mov word [ebp - 0xc8], ax
or al, cl
test al, 1
mov eax, dword [ebp - 0xd4]
je 0x5123fa
mov al, byte [eax + edi*4 + 3]
test al, al
jns 0x512340
test cl, 1
je 0x512336
test dl, 1
je 0x512336
test dword [ebp - 0xc8], 0x100
jne 0x512336
xor edx, edx
jmp 0x51247b
mov edx, 1
jmp 0x51247b
test al, 0x10
je 0x51239d
mov eax, dword [ebp - 0xd4]
mov edx, 0xbe01
mov ecx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [eax + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [ebp - 0xf0], ecx
mov edx, dword [ebp - 0xe4]
or ax, 1
inc dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe0]
mov word [ecx + 0x1c], ax
mov ecx, dword [ebp - 0xd4]
jmp 0x510f12
mov ecx, dword [ebp - 0xd4]
test al, 8
je 0x5123d0
mov ebx, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec ebx
mov edx, dword [ebp - 0xe4]
inc ebx
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp 0x510f12
mov ebx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd8]
inc ebx
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp 0x510f12
mov dl, byte [eax + edi*4 + 3]
and dl, 0x67
mov byte [ebp - 0xcc], dl
je 0x51243f
push dword [ebp - 0xf4]
mov ecx, esi
call fcn.00510cf0
mov dl, byte [ebp - 0xcc]
add esp, 4
mov ecx, ebx
push dword [ebp - 0xf4]
call fcn.00510cf0
mov edx, dword [ebp - 0xe8]
add esp, 4
cmp byte [edx + 0x38], 0
jne 0x5178f9
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x512456
mov ecx, esi
call fcn.00509ea0
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x512463
mov ecx, ebx
call fcn.00509ea0
mov eax, dword [ebp - 0xd4]
mov edx, esi
mov ecx, ebx
push dword [eax + edi*4 + 0x10]
call fcn.0050aa20
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], edx
movzx ecx, byte [eax + edi*4]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x512493
jmp dword [ecx*4 + 0x517ba0]
xor eax, eax
test edx, edx
sete al
jmp 0x5124ce
xor eax, eax
test edx, edx
setne al
jmp 0x5124ce
xor eax, eax
test edx, edx
sets al
jmp 0x5124ce
xor eax, eax
test edx, edx
setle al
jmp 0x5124ce
xor eax, eax
test edx, edx
setg al
jmp 0x5124ce
xor eax, eax
test edx, edx
setns al
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], eax
test byte [ecx + edi*4 + 3], 0x10
je 0x512520
mov eax, dword [ecx + edi*4 + 8]
mov edx, 0xbe04
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [ebp - 0xf0], ecx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 0xd4]
jmp 0x51252f
test eax, eax
je 0x51252f
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [ebp - 0xe0], eax
movzx eax, word [esi + 0x1c]
mov edx, 0x1ff
xor ax, word [ebp - 0xca]
mov edi, dword [ebp - 0xd8]
and ax, dx
xor word [esi + 0x1c], ax
movzx eax, word [ebx + 0x1c]
xor ax, word [ebp - 0xc8]
and ax, dx
mov edx, dword [ebp - 0xe4]
xor word [ebx + 0x1c], ax
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 0x10]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xe0], esi
jmp 0x510f12
test byte [ecx + edi*4 + 3], 1
mov eax, 0
mov esi, dword [ebp - 0x114]
cmove esi, eax
mov eax, dword [ecx + edi*4 + 0xc]
mov dword [ebp - 0xd0], eax
xor edx, edx
mov ebx, dword [ecx + edi*4 + 0x10]
mov dword [ebp - 0xc0], ebx
mov ecx, dword [ecx + edi*4 + 4]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x114], esi
mov edi, dword [ecx + edi*4 + 8]
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xcc], edx
test eax, eax
jle 0x5126a7
lea ebx, [ebx]
test esi, esi
je 0x512609
mov esi, dword [esi + edx*4]
jmp 0x51260b
mov esi, edx
mov dword [ebp - 0xbc], esi
mov ecx, dword [ebx + edx*4 + 0xc]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebx + 8]
push ecx
mov ecx, dword [ebp - 0xec]
movzx eax, byte [eax + edx]
mov dword [ebp - 0xb4], eax
lea eax, [esi + edi]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xfc]
add eax, esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0050aa20
add esp, 4
mov dword [ebp - 0x118], eax
test eax, eax
jne 0x512690
mov edx, dword [ebp - 0xcc]
inc edx
mov dword [ebp - 0xcc], edx
cmp edx, dword [ebp - 0xd0]
jge 0x5126a1
mov ecx, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xc4]
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0xfc], ecx
jmp 0x512600
cmp dword [ebp - 0xb4], 0
je 0x5126a1
neg eax
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xe8]
xor eax, eax
inc dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x114], eax
jmp 0x510f12
mov eax, dword [ebp - 0x118]
test eax, eax
jns 0x5126f7
mov esi, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
jne 0x512714
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov esi, dword [ecx + edi*4 + 0xc]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x51274d
mov ecx, 2
jmp 0x51275f
call fcn.0050a150
or eax, edx
je 0x51275d
mov ecx, 1
jmp 0x51275f
xor ecx, ecx
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], ecx
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea eax, [edx + eax*8]
je 0x512789
mov eax, 2
jmp 0x5127a3
mov ecx, eax
call fcn.0050a150
or eax, edx
mov ecx, dword [ebp - 0xd0]
je 0x5127a1
mov eax, 1
jmp 0x5127a3
xor eax, eax
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
lea eax, [eax + ecx*2]
cmp byte [edx + edi*4], 0x45
jne 0x5127c2
movzx ecx, byte [ecx + eax + 0x6600fc]
jmp 0x5127ca
movzx ecx, byte [ecx + eax + 0x6631fc]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xf0], edi
cmp ecx, 2
jne 0x512823
mov ax, word [edi + 0x1c]
mov ecx, 0xbe01
mov edx, dword [ebp - 0xe4]
and ax, cx
mov ecx, dword [ebp - 0xd4]
or ax, 1
inc esi
mov word [edi + 0x1c], ax
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, ecx
mov ecx, 0xbe04
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 0x14], edx
mov ecx, dword [ebp - 0xd4]
or ax, 4
mov edx, dword [ebp - 0xe4]
inc esi
mov word [edi + 0x1c], ax
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xf0], edi
je 0x5128b0
mov ecx, edi
call fcn.0050a480
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
call fcn.0050a150
or eax, edx
jne 0x5128e9
mov eax, 1
mov ecx, edi
cdq
push edx
push eax
call fcn.0050a4d0
mov ecx, dword [ebp - 0xd4]
add esp, 8
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
xor eax, eax
mov ecx, edi
cdq
push edx
push eax
call fcn.0050a4d0
mov ecx, dword [ebp - 0xd4]
add esp, 8
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xf0], edi
je 0x512968
mov ecx, edi
call fcn.0050a480
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
call fcn.0050a150
not edx
not eax
push edx
push eax
mov ecx, edi
call fcn.0050a4d0
mov ecx, dword [ebp - 0xd4]
add esp, 8
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0xc0]
cmp byte [eax + ecx], 0
jne 0x511002
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov byte [eax + ecx], 1
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea ecx, [ecx + eax*8]
je 0x5129fa
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + edi*4 + 0xc]
jmp 0x512a31
call fcn.0050a200
ucomisd xmm0, qword [0x66b5c0]
lahf
test ah, 0x44
jnp 0x512a14
mov ecx, 1
jmp 0x512a16
xor ecx, ecx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], ecx
cmp byte [eax + edi*4], 0x1c
jne 0x512a37
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
mov dword [ebp - 0xd0], ecx
test ecx, ecx
je 0x512a5e
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
je 0x512a95
mov esi, dword [ecx + edi*4 + 8]
dec esi
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
jne 0x512a95
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov ecx, dword [ecx + edi*4 + 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xc0], ecx
mov ebx, dword [eax + edi*4 + 8]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], ebx
movdqu xmmword [ebp - 0x90], xmm0
movdqu xmmword [ebp - 0x80], xmm0
movq qword [ebp - 0x70], xmm0
mov eax, dword [eax + edi*4 + 0xc]
mov dword [ebp - 0xb4], 0
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x94], esi
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xb8], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x512c23
call fcn.0050dcd0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x517594
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1c], al
je 0x512bc6
mov esi, dword [ebp - 0x94]
mov dword [ebp - 0xd0], 0
mov ax, word [esi + 0x1c]
mov ecx, 0xbe01
mov ebx, dword [ebp - 0xe8]
and ax, cx
mov ecx, dword [ebp - 0xd4]
or ax, 1
inc dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov word [esi + 0x1c], ax
mov esi, dword [ebp - 0xe0]
jmp 0x510f12
mov edx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edx + 0x54]
jne 0x512beb
mov edx, dword [ecx + 0x54]
mov dword [ebp - 0xd0], edx
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0xb4], eax
jmp 0x512cd4
cmp byte [ecx + 0x1f], 0
mov ecx, dword [ebp - 0xb0]
je 0x512c13
lea edx, [ebp - 0xc8]
call fcn.005031d0
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], edx
jmp 0x512cce
lea edx, [ebp - 0xd0]
call fcn.00503260
jmp 0x512cc8
mov eax, dword [ecx + 0x10]
test eax, eax
jle 0x512b7f
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ebp - 0x4c], edx
cmp byte [ecx + 0x22], 0
je 0x512c99
lea eax, [ebx + ebx*4]
mov ecx, esi
push 0x1000
lea edx, [edx + eax*8]
call fcn.0050a700
mov ecx, dword [ebp - 0x94]
mov eax, 0x1000
add esp, 4
test word [ecx + 0x1c], ax
je 0x512c70
call fcn.00509e40
test eax, eax
jne 0x5178fd
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xd0], eax
mov eax, dword [edx + 4]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xd4]
test byte [eax + edi*4 + 3], 0x20
je 0x512cbc
xor eax, eax
jmp 0x512cc5
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x54]
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xb8]
test edx, edx
je 0x513198
mov ebx, dword [ebp - 0xe8]
cmp edx, dword [ebx + 0x50]
ja 0x517760
mov esi, dword [ecx + 0x14]
mov ebx, dword [ebp - 0xd8]
mov dword [ebp - 0xa4], esi
mov edx, dword [ecx + 0x58]
mov dword [ebp - 0xac], edx
mov eax, dword [ecx + 0x50]
cmp eax, dword [ebx + 0x54]
mov ebx, dword [ebp - 0xe8]
jne 0x512d1f
mov ecx, dword [ecx + 0x5c]
mov dword [ebp - 0xa8], ecx
jmp 0x512f79
lea eax, [edx + esi*4]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0xa8], eax
mov dword [ecx + 0x5c], eax
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x54], eax
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x54]
mov eax, dword [ebp - 0xb8]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x512d68
mov dword [ebp - 0x98], ecx
jmp 0x512dd2
mov edx, dword [ebp - 0xb8]
cmp byte [edx + 0x1f], 0
je 0x512d84
mov ecx, dword [ebp - 0xb0]
lea edx, [ebp - 0x54]
call fcn.005038a0
jmp 0x512da1
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
cmp byte [eax + 0x5b], 1
jne 0x512da9
push 1
lea edx, [ebp - 0x54]
mov ecx, eax
call fcn.00503810
add esp, 4
mov edx, dword [ebp - 0xb8]
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x98], ecx
cmp eax, dword [ebp - 0x54]
ja 0x512dc5
mov dword [ebp - 0xb4], ecx
mov dword [edx + 0x60], ecx
jmp 0x512dcc
mov dword [edx + 0x60], 0
mov ecx, dword [ebp - 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x512de5
movzx edx, al
mov eax, 1
mov dword [ebp - 0x60], edx
jmp 0x512df9
lea edx, [ebp - 0x60]
call fcn.004f2480
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x98]
movzx eax, al
movzx eax, al
mov dword [ebp - 0x58], eax
cmp edx, 0x18003
jbe 0x512e1c
mov ecx, 0x1037e
call fcn.005558f0
mov dword [ebp - 0xdc], eax
jmp 0x513166
mov ebx, dword [ebp - 0xa4]
lea esi, [ebx*4 + 3]
add esi, ebx
cmp esi, edx
cmovg esi, edx
cmp dword [ebp - 0xb4], 0
mov dword [ebp - 0xa0], esi
jne 0x512e9e
cmp dword [ebp - 0x54], esi
jge 0x512e9e
mov ecx, dword [ebp - 0xb0]
xor eax, eax
mov word [ebp - 0x74], ax
xor edx, edx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x1f]
push eax
push esi
call fcn.0050ad10
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x513160
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0xa4]
mov dword [ebp - 0x98], ecx
lea eax, [ecx + esi]
mov esi, dword [ebp - 0x58]
add esi, ecx
mov dword [ebp - 0x64], eax
xor ecx, ecx
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x9c], ecx
test ebx, ebx
jle 0x512f28
jmp 0x512ec0
cmp esi, eax
mov eax, dword [ebp - 0xa8]
jae 0x512fd4
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x512ee6
movzx edx, al
inc ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x68], ecx
jmp 0x512ef7
lea edx, [ebp - 0x50]
call fcn.004f2480
mov edx, dword [ebp - 0x50]
movzx eax, al
add dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x50]
call fcn.0050de80
mov edx, dword [ebp - 0x60]
add edx, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], edx
cmp edx, eax
jae 0x512fde
mov eax, dword [ebp - 0x64]
inc eax
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x90]
call fcn.0050a110
mov edx, dword [ebp - 0x68]
mov eax, 1
mov esi, dword [ebp - 0x64]
mov word [ebp - 0x74], ax
cmp edx, esi
ja 0x513150
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xd0]
cmp eax, ecx
ja 0x513150
cmp edx, esi
jne 0x512f67
cmp eax, ecx
jne 0x513150
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xbc]
cmp dword [ecx + eax*4], 0
je 0x5130c4
cmp dword [ebp - 0xb4], 0
je 0x513002
mov esi, dword [ebp - 0x94]
mov edi, 0x2460
test word [esi + 0x1c], di
je 0x512fc2
mov ecx, esi
call fcn.0050a0b0
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ecx + eax*4]
add ecx, dword [ebp - 0xb4]
mov edx, dword [edx + eax*4]
push esi
jmp 0x5130ab
mov dword [eax + ecx*4], 0
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x9c]
inc ecx
mov dword [ebp - 0x9c], ecx
cmp ecx, dword [ebp - 0xa4]
jge 0x512f28
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x68]
jmp 0x512ec0
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x50], edx
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x513033
cmp edx, 0xc
jb 0x513020
test dl, 1
je 0x513024
test al, al
jns 0x513033
cmp edx, 0xc
lea eax, [ebp - 0xc8]
sbb ecx, ecx
and ecx, eax
jmp 0x51309f
mov ecx, edx
call fcn.0050de80
mov edx, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0xa0], eax
call fcn.0050a7e0
mov edx, dword [ebp - 0xbc]
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0xb0]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0xa0]
mov edx, dword [eax + edx*4]
call fcn.0050ad10
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x513166
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x50]
push dword [ebp - 0x94]
mov dword [ebp - 0x98], ecx
call fcn.0050df60
mov eax, dword [ebp - 0x94]
add esp, 4
mov cl, byte [ebp - 0xf4]
mov byte [eax + 0x1f], cl
jmp 0x5130fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x94]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x5130ea
mov edx, dword [eax + edi*4 + 0x10]
push 0x800
call fcn.0050a700
add esp, 4
jmp 0x5130fe
mov ax, word [ecx + 0x1c]
mov edx, 0xbe01
and ax, dx
or ax, 1
mov word [ecx + 0x1c], ax
cmp dword [ebp - 0x6c], 0
je 0x51313d
mov eax, dword [ebp - 0x94]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [ebp - 0x94]
or word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x8c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x94]
call fcn.00509e40
mov dword [ebp - 0xdc], eax
jmp 0x513166
mov ecx, 0x103ce
call fcn.005558f0
mov dword [ebp - 0xdc], eax
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
inc esi
mov dword [ebp - 0xe0], esi
test eax, eax
jne 0x517612
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov esi, dword [ebp - 0x94]
jmp 0x512b89
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ecx + edi*4 + 0x10]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], ecx
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [ecx]
mov byte [ebp - 0xcc], al
test al, al
je 0x51321b
mov ebx, 0x4000
inc ecx
mov dword [ebp - 0xd0], ecx
test word [esi + 0x1c], bx
je 0x5131ee
mov ecx, esi
call fcn.00509ea0
mov al, byte [ebp - 0xcc]
push dword [ebp - 0xf4]
mov dl, al
mov ecx, esi
call fcn.00510cf0
mov ecx, dword [ebp - 0xd0]
add esp, 4
add esi, 0x28
mov al, byte [ecx]
mov byte [ebp - 0xcc], al
test al, al
jne 0x5131d4
mov ebx, dword [ebp - 0xe8]
inc ecx
mov dword [ebp - 0xd0], ecx
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov esi, dword [ebp - 0xd4]
xor edx, edx
mov dword [ebp - 0xc0], edx
xor ebx, ebx
mov dword [ebp - 0xb0], ebx
xorps xmm0, xmm0
movlpd qword [ebp - 0xc8], xmm0
mov eax, dword [ecx + edi*4 + 4]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [ebp - 0x98], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0xfc], ecx
mov ecx, dword [ebp - 0xec]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xa4], ecx
mov eax, dword [esi + edi*4 + 8]
mov dword [ebp - 0x9c], eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
add ecx, 0xffffffd8
mov dword [ebp - 0xa0], ecx
movzx eax, byte [eax + 0x61]
mov dword [ebp - 0x94], eax
mov eax, dword [esi + edi*4 + 0xc]
mov esi, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xa4]
mov esi, eax
mov dword [ebp - 0xcc], esi
cmp eax, ecx
ja 0x5133ea
jmp 0x5132f0
mov edi, dword [ebp - 0xfc]
test edi, edi
je 0x51333a
push dword [ebp - 0xf4]
mov ecx, esi
sub ecx, eax
mov eax, 0x66666667
imul ecx
mov ecx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [eax + edi]
call fcn.00510cf0
mov ecx, dword [ebp - 0x98]
add esp, 4
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xfc], ecx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x51336a
cmp dword [esi + 0x18], 0
jle 0x51336a
mov ecx, esi
call fcn.00509ea0
mov ecx, dword [ebp - 0x98]
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp - 0x94]
mov ecx, esi
call fcn.0050dd70
mov ecx, eax
mov dword [ebp - 0xa8], ecx
call fcn.0050de80
mov edi, eax
cdq
add dword [ebp - 0xc8], eax
push 0
adc dword [ebp - 0xc4], edx
push ecx
mov dword [ebp - 0x8c], edi
call fcn.004f2500
mov edx, dword [ebp - 0xc0]
add esp, 8
add edx, eax
mov eax, 0x4000
mov dword [ebp - 0xc0], edx
test word [esi + 0x1c], ax
je 0x5133c2
add ebx, dword [esi + 0x10]
jmp 0x5133c9
xor eax, eax
test edi, edi
cmovne ebx, eax
mov eax, dword [ebp - 0xa4]
add esi, 0x28
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xcc], esi
cmp esi, dword [ebp - 0xa0]
jbe 0x5132f0
mov eax, edx
cdq
push edx
push eax
call fcn.004f2500
mov edi, dword [ebp - 0xc0]
mov esi, eax
add edi, esi
mov dword [ebp - 0xac], esi
mov eax, edi
mov dword [ebp - 0xc0], edi
cdq
push edx
push eax
call fcn.004f2500
add esp, 0x10
cmp esi, eax
jge 0x513422
inc edi
mov dword [ebp - 0xc0], edi
mov eax, ebx
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
mov ebx, eax
mov edi, edx
mov edx, dword [ebp - 0xe8]
sub ebx, ecx
sbb edi, esi
add ebx, dword [ebp - 0xc8]
mov dword [ebp - 0xb8], ebx
adc edi, dword [ebp - 0xc4]
mov dword [ebp - 0xb4], edi
mov eax, dword [edx + 0x50]
cdq
cmp edi, edx
jg 0x51775a
jl 0x513468
cmp ebx, eax
ja 0x51775a
mov edi, dword [ebp - 0xf0]
mov edx, ebx
push 0
mov ecx, edi
call fcn.00509d20
add esp, 4
test eax, eax
jne 0x5178fd
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi + 4]
mov dword [ebp - 0xd0], ecx
cmp edx, 0x80
jae 0x5134a6
mov al, dl
mov byte [ecx], al
mov eax, 1
jmp 0x5134ab
call fcn.004f22d0
mov ecx, dword [ebp - 0xa0]
movzx esi, al
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x51353d
lea ebx, [ebx]
mov edx, dword [ebp - 0x94]
mov ecx, eax
call fcn.0050dd70
mov edx, eax
mov dword [ebp - 0xa8], edx
cmp edx, 0x80
jae 0x5134ff
mov cl, al
mov eax, dword [ebp - 0xd0]
mov byte [esi + eax], cl
mov eax, 1
jmp 0x51350d
mov ecx, dword [ebp - 0xd0]
lea ecx, [esi + ecx]
call fcn.004f22d0
mov esi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xa0]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, 0x28
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, ecx
jbe 0x5134d0
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, ecx
ja 0x513595
jmp 0x513550
mov ecx, dword [ebp - 0xd0]
push dword [ebp - 0x94]
mov edx, dword [ebp - 0xb8]
push eax
sub edx, esi
lea ecx, [esi + ecx]
call fcn.0050dea0
mov esi, dword [ebp - 0x90]
add esp, 8
add esi, eax
mov eax, dword [ebp - 0xcc]
add eax, 0x28
mov dword [ebp - 0x90], esi
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
jbe 0x513550
mov eax, dword [ebp - 0xb8]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x5135c4
mov dword [edi + 0x10], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov byte [edi + 0x1f], 1
mov edi, dword [ebp - 0xd8]
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x51363b
lea edx, [ebp - 0xd0]
call fcn.00507880
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp 0x51316c
mov ecx, dword [ebp - 0xf0]
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp 0x51316c
mov ebx, dword [ecx + edi*4 + 4]
mov dword [ebp - 0xd0], ebx
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xcc], eax
test ebx, ebx
jne 0x51376c
mov ebx, dword [ebp - 0xe8]
cmp dword [ebx + 0x88], 0
jg 0x5174d9
mov ecx, eax
call fcn.004f1660
mov dword [ebp - 0xc8], eax
xor edx, edx
mov eax, dword [ebx + 0x1e4]
mov ecx, ebx
add eax, dword [ebx + 0x1e0]
push eax
call fcn.00547c40
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov edx, dword [ebp - 0xc8]
mov ecx, ebx
lea edx, [edx + 0x19]
call fcn.004ef720
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x51375a
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc8]
inc eax
push eax
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xcc]
push dword [eax]
call fcn.005766c0
add esp, 0xc
cmp byte [ebx + 0x36], 0
je 0x51371b
mov byte [ebx + 0x36], 0
mov byte [ebx + 0x3d], 1
jmp 0x513721
inc dword [ebx + 0x1e0]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebx + 0x1d8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebx + 0x1e8]
mov dword [ebx + 0x1d8], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebx + 0x1ec]
mov dword [eax + 0xc], ecx
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
jmp 0x510f06
mov edx, dword [ebp - 0xe8]
xor edi, edi
mov dword [ebp - 0xb8], edi
mov esi, dword [edx + 0x1d8]
mov dword [ebp - 0xc0], esi
push eax
test esi, esi
je 0x517531
push dword [esi]
call fcn.004f1860
add esp, 8
test eax, eax
je 0x5137af
mov eax, dword [ebp - 0xfc]
inc edi
mov dword [ebp - 0xb8], edi
mov esi, dword [esi + 0x10]
jmp 0x513780
mov eax, dword [ebp - 0xe8]
cmp dword [eax + 0x88], 0
jle 0x5137c7
cmp ebx, 1
je 0x517508
cmp dword [esi + 0x10], 0
jne 0x51382d
cmp byte [eax + 0x3d], 0
je 0x51382d
mov dword [ebp - 0xfc], 1
cmp ebx, 1
jne 0x513837
mov ecx, dword [ebp - 0xd8]
mov edx, ebx
call fcn.0050d440
mov ebx, dword [ebp - 0xe8]
mov edi, eax
test edi, edi
jne 0x517692
mov edi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [ebx + 0x36], 1
call fcn.0050d4a0
cmp eax, 5
je 0x517511
mov byte [ebx + 0x3d], 0
mov eax, dword [edi + 0x5c]
mov edi, ebx
mov dword [ebp - 0xdc], eax
jmp 0x513900
mov dword [ebp - 0xfc], 0
mov eax, dword [eax + 0x1e0]
sub eax, edi
mov edi, dword [ebp - 0xe8]
dec eax
mov dword [ebp - 0xb8], eax
cmp ebx, 2
jne 0x513891
xor eax, eax
mov dword [ebp - 0xb4], eax
cmp dword [edi + 0x14], eax
jle 0x513891
mov edi, edi
mov ecx, dword [edi + 0x10]
add eax, eax
mov edx, 4
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00502c50
mov eax, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [edi + 0x14]
jl 0x513860
mov esi, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0xd0]
xor eax, eax
mov dword [ebp - 0xb4], eax
cmp dword [edi + 0x14], eax
jle 0x5138e7
mov edi, edi
mov ecx, dword [edi + 0x10]
add eax, eax
push dword [ebp - 0xb8]
mov edx, ebx
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00502f10
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x517594
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, dword [edi + 0x14]
jl 0x5138a0
mov esi, dword [ebp - 0xc0]
cmp ebx, 2
jne 0x51390c
test byte [edi + 0x18], bl
je 0x51390c
mov ecx, edi
call fcn.0050e7a0
call fcn.00525390
or dword [edi + 0x18], ebx
mov ebx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xc0]
cmp dword [edi + 0x1d8], esi
je 0x51395c
jmp 0x513920
mov eax, dword [edi + 0x1d8]
mov ecx, edi
mov dword [ebp - 0xbc], eax
mov eax, dword [eax + 0x10]
mov dword [edi + 0x1d8], eax
mov edx, dword [ebp - 0xbc]
call fcn.004ef4c0
dec dword [edi + 0x1e0]
mov esi, dword [ebp - 0xc0]
cmp dword [edi + 0x1d8], esi
jne 0x513920
mov ebx, dword [ebp - 0xd0]
cmp ebx, 1
mov ebx, dword [ebp - 0xe8]
jne 0x513992
mov eax, dword [esi + 0x10]
mov ecx, ebx
mov dword [ebx + 0x1d8], eax
mov edx, dword [ebp - 0xc0]
call fcn.004ef4c0
cmp dword [ebp - 0xfc], 0
jne 0x513166
dec dword [ebx + 0x1e0]
jmp 0x5139b1
cmp dword [ebp - 0xfc], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1e8], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x1ec], eax
jne 0x513166
push dword [ebp - 0xb8]
mov edx, dword [ebp - 0xd0]
mov ecx, ebx
call fcn.00547c40
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
jmp 0x513166
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
test ecx, ecx
je 0x51316c
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + edi*4 + 8]
call fcn.00501cf0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
cmp ecx, 5
je 0x517566
test ecx, ecx
jne 0x51759a
mov ecx, dword [ebp - 0xd4]
cmp dword [ecx + edi*4 + 8], eax
je case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
test byte [eax + 0x64], 0x80
je case.default.0x510fb3
cmp byte [ebx + 0x36], 0
je 0x513a52
cmp dword [ebx + 0x84], 1
jle case.default.0x510fb3
mov ecx, eax
cmp dword [ecx + 0x74], 0
jne 0x513a6f
mov eax, dword [ebx + 0x1e0]
inc dword [ebx + 0x1e4]
add eax, dword [ebx + 0x1e4]
mov dword [ecx + 0x74], eax
mov eax, dword [ecx + 0x74]
xor edx, edx
dec eax
mov ecx, ebx
push eax
call fcn.00547c40
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x513aa6
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [eax + 0x74]
call fcn.00502ec0
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebx + 0x1e8]
mov dword [ecx + 0x98], eax
mov eax, dword [ebx + 0x1ec]
mov dword [ecx + 0x9c], eax
jmp 0x51316c
mov eax, dword [ecx + edi*4 + 4]
mov dword [ebp - 0xcc], eax
add eax, eax
mov edx, dword [ecx + edi*4 + 0xc]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xc8], edx
push ecx
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00507770
mov ecx, dword [ebp - 0xf0]
add esp, 4
mov eax, dword [ebp - 0xd0]
inc esi
mov edi, dword [ebp - 0xd8]
cdq
mov dword [ecx + 0x14], edx
mov edx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
shl eax, 4
add eax, dword [ebx + 0x10]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050a300
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
push dword [esi + 0x10]
mov edx, dword [eax + edi*4 + 8]
mov ecx, dword [ecx + 4]
call fcn.005077e0
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, dword [ecx + edi*4 + 8]
cmp eax, 1
jne 0x513b94
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x513ba8
cmp eax, 2
jne 0x513bae
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 0xd4]
cmp dword [ecx + edi*4 + 4], 1
jne 0x51429b
mov ecx, ebx
call fcn.0050e7a0
mov eax, dword [ebp - 0xd8]
and dword [eax + 0x64], 0xffffffdf
jmp 0x513166
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x513c18
lea eax, [ebp - 0xd0]
mov edx, 1
push eax
call fcn.00507770
mov eax, dword [ebp - 0xd4]
add esp, 4
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax + 4]
jmp 0x513c22
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], eax
cmp ecx, dword [edx + edi*4 + 8]
jne 0x513c40
mov ecx, edx
cmp eax, dword [ecx + edi*4 + 0xc]
je case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
mov ecx, ebx
mov edx, dword [eax + 0x38]
call fcn.004ef4c0
mov edx, str.database_schema_has_changed
mov ecx, ebx
call fcn.004ef830
mov ecx, dword [ebp - 0xd8]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd0]
je 0x513c8b
mov ecx, ebx
call fcn.00525350
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xdc], 0x11
or dword [eax + 0x64], 0x20
mov eax, 0x11
jmp 0x513178
mov ecx, dword [ebp - 0xd8]
test byte [ecx + 0x64], 0x20
jne 0x5175b7
mov eax, dword [ebp - 0xd4]
xor ecx, ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov ebx, dword [eax + edi*4 + 8]
mov dword [ebp - 0xc8], ebx
mov esi, dword [eax + edi*4 + 0xc]
mov edx, esi
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xc4], esi
shl edx, 4
add edx, dword [eax + 0x10]
mov dword [ebp - 0xb4], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xd4]
cmp byte [eax + edi*4], 0x28
jne 0x513d30
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0xd8]
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x61]
jae 0x513d36
mov byte [edx + 0x61], al
jmp 0x513d36
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xd4]
test byte [edx + edi*4 + 3], 2
je 0x513d74
mov ecx, dword [ebp - 0xec]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050a300
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xc8], eax
cmp eax, 2
jl 0x517582
mov esi, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd4]
mov al, byte [ebx + edi*4 + 1]
cmp al, 0xfa
jne 0x513db3
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebx + edi*4 + 0x10]
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xc4]
movzx ecx, word [eax + 6]
inc ecx
jmp 0x513dbb
cmp al, 0xf2
jne 0x513dc1
mov ecx, dword [ebx + edi*4 + 0x10]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebx + edi*4 + 4]
push 1
push esi
push ecx
mov ecx, dword [ebp - 0xd8]
call fcn.00510b50
add esp, 0xc
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x5178fd
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x20], 1
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
push dword [eax]
push dword [ebp - 0xcc]
push dword [ebp - 0xc0]
call fcn.00503040
mov ecx, dword [ebp - 0xb8]
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0xb8]
mov cl, byte [ebx + edi*4 + 3]
and cl, 1
mov eax, dword [eax]
mov byte [eax + 0x5d], cl
cmp byte [ebx + edi*4 + 1], 0xfa
mov eax, dword [ebp - 0xb8]
setne cl
mov byte [eax + 0x1e], cl
mov ecx, dword [ebp - 0xb8]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp 0x513160
mov edx, dword [ecx + edi*4 + 4]
push 1
push 0xffffffffffffffff
push dword [ecx + edi*4 + 8]
mov ecx, dword [ebp - 0xd8]
call fcn.00510b50
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x517903
mov byte [eax + 0x1c], 1
xor edx, edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebx]
push 0x41e
movzx eax, byte [eax + edi*4 + 3]
or eax, 5
push eax
mov eax, dword [ebp - 0xd0]
add eax, 4
push eax
push ebx
call fcn.00500df0
add esp, 0x10
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x513fb4
mov ecx, dword [ebp - 0xd0]
lea edx, [eax + 1]
mov ecx, dword [ecx + 4]
call fcn.00501cf0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x513fb4
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd0]
cmp dword [eax + edi*4 + 0x10], 0
je 0x513f8e
movzx eax, byte [eax + edi*4 + 3]
lea edx, [ebp - 0x124]
mov ecx, dword [ecx + 4]
or eax, 2
push eax
call fcn.00507290
add esp, 4
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x513f82
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x124]
push dword [ecx]
mov ecx, dword [ecx + 4]
push dword [eax + edi*4 + 0x10]
push 1
call fcn.00503040
mov dword [ebp - 0xdc], eax
add esp, 0xc
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + edi*4 + 0x10]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 0
jmp 0x513fb4
push dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, 1
push 0
push 1
call fcn.00503040
mov dword [ebp - 0xdc], eax
add esp, 0xc
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0xd4]
cmp byte [eax + edi*4 + 3], 8
mov eax, dword [ebp - 0xd0]
setne cl
mov byte [eax + 0x20], cl
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
jmp 0x51316c
mov edx, dword [ecx + edi*4 + 4]
push 1
push 0xffffffffffffffff
push dword [ecx + edi*4 + 8]
mov ecx, dword [ebp - 0xd8]
call fcn.00510b50
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x517903
mov ecx, dword [ebp - 0xd4]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov ecx, ebx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x21], 1
mov edx, dword [ebp - 0xd0]
call fcn.00518ce0
mov dword [ebp - 0xdc], eax
jmp 0x51316c
mov edx, dword [ecx + edi*4 + 4]
push 0
push 0xffffffffffffffff
push dword [ecx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xd8]
call fcn.00510b50
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x517903
mov edx, dword [ebp - 0xd4]
inc esi
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe0], esi
mov ecx, dword [edx + edi*4 + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1f], 0
mov cl, byte [edx + edi*4 + 3]
mov eax, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xd8]
mov byte [eax + 0x22], cl
mov ecx, edx
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x44]
mov edx, dword [edx + eax*4]
call fcn.0050c890
mov eax, dword [ebp - 0xd4]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0xd4]
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc8], ecx
cmp dword [ecx], 0
je 0x511002
mov edx, dword [ebp - 0xd4]
movzx eax, byte [edx + edi*4]
mov dword [ebp - 0xcc], eax
mov byte [ecx + 0x1c], 0
mov ecx, dword [ebp - 0xc8]
cmp byte [ecx + 0x1e], 0
je 0x51438c
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
mov dword [ebp - 0x104], ebx
call fcn.00510c60
mov ecx, ebx
call fcn.0050a150
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], edx
mov byte [eax + 0x19], 0
movzx eax, word [ebx + 0x1c]
test al, 4
jne 0x51430e
test al, 8
jne 0x5141d5
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov ebx, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp 0x510f12
mov ebx, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x9c]
test ebx, ebx
jne 0x5142a6
cmp esi, 0x80000000
jne 0x5142a6
mov edx, esi
xor ecx, ecx
call fcn.00594a6f
mov eax, dword [ebp - 0x104]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x51421c
comisd xmm1, xmm0
jbe 0x5142a6
mov dword [ebp - 0xd0], 1
comisd xmm0, xmmword [eax + 8]
jbe 0x51424b
cmp dword [ebp - 0xcc], 0x30
jl 0x514284
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.00503c90
jmp 0x514267
cmp dword [ebp - 0xcc], 0x2f
jg 0x514284
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.00503cc0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x517594
cmp dword [ebp - 0xd0], 0
je 0x513160
mov ecx, dword [ebp - 0xd4]
mov ebx, dword [ecx + edi*4 + 8]
dec ebx
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xcc]
cmp eax, 0x2e
je 0x5142e0
cmp eax, 0x30
je 0x5142e0
mov edx, esi
mov ecx, ebx
call fcn.00594a6f
mov eax, dword [ebp - 0x104]
comisd xmm0, xmmword [eax + 8]
jbe 0x51431a
add ebx, 0xffffffff
mov dword [ebp - 0xa0], ebx
adc esi, 0xffffffff
mov dword [ebp - 0x9c], esi
jmp 0x51431a
mov edx, esi
mov ecx, ebx
call fcn.00594a6f
mov eax, dword [ebp - 0x104]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x51431a
add ebx, 1
mov dword [ebp - 0xa0], ebx
adc esi, 0
mov dword [ebp - 0x9c], esi
jmp 0x51431a
mov esi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0xd0]
push eax
push 0
push esi
mov ecx, dword [ecx]
xor edx, edx
push ebx
call fcn.00503d10
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x517594
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
cmp dword [ebp - 0xd0], eax
jne 0x51441f
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 1
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xa0]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x44], ecx
jmp 0x51441f
mov eax, dword [edx + edi*4 + 0x10]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc0], eax
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov al, byte [ebp - 0xcc]
and al, 1
mov byte [ebp - 0xba], al
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x4000
mov dword [ebp - 0xb0], eax
test word [eax + 0x1c], dx
je 0x5143e9
mov ecx, eax
call fcn.00509ea0
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx]
lea eax, [ebp - 0xd0]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0xc0]
call fcn.00503d10
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], 0
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
cmp eax, 0x30
jl 0x51448a
test ecx, ecx
js 0x514474
jne 0x514452
cmp eax, 0x31
je 0x514474
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xd0], 0
jmp 0x510f0c
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.005040d0
jmp 0x5144c2
test ecx, ecx
jg 0x5144ae
jne 0x514495
cmp eax, 0x2e
je 0x5144ae
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x5b], 1
setne cl
mov dword [ebp - 0xd0], ecx
jmp 0x5144df
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00504270
mov ecx, eax
add esp, 8
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x19], 0
cmp dword [ebp - 0xd0], 0
je 0x511328
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
inc esi
jmp 0x510f0c
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
cmp dword [eax], 0
je 0x514569
mov ecx, dword [ebp - 0xec]
mov byte [eax + 0x1c], 0
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0050a150
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 1
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
xor edx, edx
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
cmp dword [ecx], edx
je 0x5146d2
mov edx, dword [ebp - 0xd4]
cmp dword [edx + edi*4 + 0x10], 0
jle 0x514600
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb8], eax
mov ax, word [edx + edi*4 + 0x10]
lea edx, [ebp - 0xb8]
mov word [ebp - 0xb4], ax
mov dword [ebp - 0xa8], esi
mov byte [ebp - 0xb2], 2
mov dword [ebp - 0xc0], edx
jmp 0x514659
mov ecx, dword [ecx + 8]
lea eax, [ebp - 0xc4]
push eax
push 0x97
lea edx, [ebp - 0xa0]
call fcn.0050e1b0
add esp, 8
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x517903
mov ecx, dword [ebp - 0xcc]
mov edx, dword [esi + 0x18]
push eax
push dword [esi + 4]
mov ecx, dword [ecx + 8]
call fcn.0050e210
mov eax, dword [ebp - 0xc0]
add esp, 8
or byte [eax + 6], 2
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx]
lea eax, [ebp - 0xc8]
push eax
push 0
push 0
push 0
call fcn.00503d10
mov ecx, dword [ebp - 0xd4]
add esp, 0x10
mov dword [ebp - 0xdc], eax
cmp dword [ecx + edi*4 + 0x10], 0
jne 0x514696
mov edx, dword [ebp - 0xc4]
mov ecx, ebx
call fcn.004ef4c0
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
test eax, eax
jne 0x5172a9
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], 0
mov edx, dword [ebp - 0xd0]
jmp 0x5146d8
mov ecx, dword [ebp - 0xd4]
cmp byte [ecx + edi*4], 0x34
jne 0x5146fd
test edx, edx
je 0x517260
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
jmp 0x510f0c
test edx, edx
jne 0x517260
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
jmp 0x510f0c
mov eax, dword [ecx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0x10]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x50], 0
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xc0]
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0xfc], ecx
xor ecx, ecx
mov dx, word [eax + 6]
xor eax, eax
mov word [ebp - 0xc4], dx
mov word [ebp - 0xd0], cx
cmp ax, dx
jae 0x5147bf
mov edi, edi
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x514877
inc cx
mov word [ebp - 0xd0], cx
cmp cx, dx
jb 0x5147a0
cmp dword [ebp - 0xfc], 0
je 0x513160
mov eax, dword [ebp - 0xcc]
mov ecx, ebx
mov eax, dword [eax + 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
inc eax
mov byte [ebp - 0xb2], 4
mov word [ebp - 0xb4], ax
mov dword [ebp - 0xa8], esi
call fcn.0050a300
mov eax, dword [ebx + 0x10]
lea edx, [ebp - 0xb8]
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x4c
push eax
push 0
push 0
push 0
call fcn.00503d10
add esp, 0x10
mov dword [ebp - 0xdc], eax
test byte [ebp - 0xb2], 4
jne 0x514284
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 0xa0]
jne 0x514866
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x9c]
je 0x514284
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp - 0xac]
mov dword [ebx + 0x14], eax
jmp 0x513160
mov ecx, dword [ebp - 0xd4]
mov ebx, dword [ecx + edi*4 + 8]
dec ebx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp case.default.0x510fb3
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea ebx, [eax + eax*4]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov esi, dword [eax]
mov dword [ebp - 0xcc], esi
test esi, esi
je 0x51498e
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0xc8]
push edx
mov dword [ebp - 0xc8], 0
xor edx, edx
push 0
mov ecx, dword [eax + ebx*8 + 0x10]
mov dword [ebp - 0xc0], ecx
mov eax, dword [eax + ebx*8 + 0x14]
push eax
push ecx
mov ecx, esi
mov dword [ebp - 0xbc], eax
call fcn.00503d10
mov edx, dword [ebp - 0xec]
add esp, 0x10
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + ebx*8 + 0x10]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx + ebx*8 + 0x14]
mov dword [eax + 0x44], ecx
cmp dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1c], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 0
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
je 0x514980
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], ecx
jmp 0x513160
mov ecx, dword [ebp - 0xd4]
mov ebx, dword [ecx + edi*4 + 8]
dec ebx
mov dword [eax + 0x4c], 0
mov dword [ebp - 0xe0], ebx
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
jmp case.default.0x510fb3
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xd4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc4], 0
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xc8], esi
mov edx, dword [esi]
test edx, edx
je 0x514d53
cmp byte [esi + 0x1b], 0
jne 0x514c30
mov ecx, dword [edx + 0x20]
mov eax, ecx
mov dword [ebp - 0xd0], ecx
mov edx, dword [edx + 0x24]
or eax, edx
mov dword [ebp - 0xcc], edx
jne 0x514afa
mov ecx, dword [esi]
lea edx, [ebp - 0xc4]
call fcn.00503cc0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
cmp dword [ebp - 0xc4], eax
je 0x514a96
lea ecx, [eax + 1]
xor edx, edx
jmp 0x514ae8
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xd0]
mov ecx, dword [ecx]
call fcn.005031d0
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xdc], eax
cmp edx, 0x7fffffff
jl 0x514ae2
jg 0x514aca
cmp ecx, 0xffffffff
jb 0x514ae2
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1b], 1
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
jmp 0x514af4
add ecx, 1
adc edx, 0
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xd0], ecx
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
je 0x514be6
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0xa8]
test edx, edx
je 0x514b54
mov dword [ebp - 0xb8], edx
mov eax, dword [edx + 4]
test eax, eax
je 0x514b3f
lea esp, [esp]
mov edx, eax
mov dword [ebp - 0xb8], edx
mov eax, dword [edx + 4]
test eax, eax
jne 0x514b30
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
jmp 0x514b60
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xbc], ecx
call fcn.0050a300
mov esi, dword [ebp - 0xbc]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp edx, 0xffffffff
jne 0x514b88
cmp ecx, 0x7fffffff
je 0x5175cb
mov eax, dword [ebp - 0xc8]
cmp byte [eax + 0x1b], 0
jne 0x5175cb
add edx, 1
adc ecx, 0
cmp dword [ebp - 0xcc], ecx
jg 0x514bc2
jl 0x514bb2
mov eax, dword [ebp - 0xd0]
cmp eax, edx
jae 0x514bc8
mov eax, edx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xd0], eax
jmp 0x514bc8
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [esi + 0x14], eax
mov esi, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
cmp edx, 0x7fffffff
jg 0x514bfd
jl 0x514bf5
cmp ecx, 0xffffffff
jae 0x514bfd
add ecx, 1
adc edx, 0
jmp 0x514c14
xorps xmm0, xmm0
movlpd qword [ebp - 0x100], xmm0
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x100]
push edx
push ecx
mov ecx, dword [esi]
call fcn.00503090
mov esi, dword [ebp - 0xc8]
add esp, 8
cmp byte [esi + 0x1b], 0
je 0x514d38
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0xc4]
mov ecx, dword [ebp - 0x10c]
and eax, 0x3fffffff
add ecx, 1
mov dword [ebp - 0xc0], 0
push edx
adc eax, 0
mov dword [ebp - 0xd0], ecx
push 0
push eax
mov dword [ebp - 0xcc], eax
xor edx, edx
push ecx
mov ecx, dword [esi]
call fcn.00503d10
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xdc], edx
test edx, edx
jne 0x514d32
jmp 0x514c90
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
jne 0x514d26
mov eax, dword [ebp - 0xc0]
inc eax
mov dword [ebp - 0xc0], eax
cmp eax, 0x64
jge 0x514d26
lea eax, [ebp - 0xd0]
push eax
push 8
call fcn.004f0ef0
mov eax, dword [ebp - 0xd0]
add esp, 8
cmp dword [ebp - 0xc0], 5
jge 0x514cd9
and eax, 0xffffff
xor ecx, ecx
jmp 0x514ce5
mov ecx, dword [ebp - 0xcc]
and ecx, 0x3fffffff
add eax, 1
lea edx, [ebp - 0xc4]
push edx
adc ecx, 0
mov dword [ebp - 0xd0], eax
push 0
push ecx
mov dword [ebp - 0xcc], ecx
xor edx, edx
mov ecx, dword [ebp - 0xc8]
push eax
mov ecx, dword [ecx]
call fcn.00503d10
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xdc], edx
test edx, edx
je 0x514c90
jmp 0x514d32
test edx, edx
jne 0x514d32
test ecx, ecx
je 0x5175cb
mov esi, dword [ebp - 0xc8]
mov byte [esi + 0x19], 0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x50], 0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], eax
jmp 0x513166
mov eax, dword [ecx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd0], esi
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xc0], ebx
cmp byte [eax + edi*4], 0x39
mov eax, dword [eax + edi*4 + 0xc]
jne 0x514dc6
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xcc], eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc8], ecx
mov edx, dword [eax + 0x14]
jmp 0x514dcf
cdq
mov ecx, eax
mov dword [ebp - 0xc8], ecx
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xc4], edx
test byte [eax + edi*4 + 3], 1
je 0x514df1
mov eax, dword [ebp - 0xd8]
inc dword [eax + 0x68]
mov eax, dword [ebp - 0xd4]
test byte [eax + edi*4 + 3], 2
je 0x514e22
mov dword [ebp - 0x110], edx
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0x10c], ecx
mov dword [edx + 0x20], ecx
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x24], eax
mov ebx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
test byte [esi + 0x1c], 1
je 0x514e48
mov dword [esi + 4], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x18], 0
mov ebx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
test byte [eax + edi*4 + 3], 0x10
je 0x514e60
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0xb8], eax
jmp 0x514e6a
mov dword [ebp - 0xb8], 0
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x514e80
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xbc], eax
jmp 0x514e8a
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebx]
push 0
push 0
call fcn.00503090
push dword [ebp - 0xb8]
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov ecx, dword [ebp - 0xc0]
movzx eax, byte [eax + edi*4 + 3]
mov ecx, dword [ecx]
and eax, 8
push eax
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x18]
push dword [eax + 4]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
call fcn.00506b80
mov ebx, dword [ebp - 0xe8]
mov ecx, eax
mov eax, dword [ebp - 0xc0]
add esp, 0x24
mov dword [ebp - 0xdc], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd4]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x50], 0
jne 0x51429b
cmp dword [ebx + 0xbc], 0
je 0x51429b
cmp dword [ecx + edi*4 + 0x10], 0
je 0x51429b
mov eax, dword [ebp - 0xc0]
mov esi, 0x17
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xb4], edx
mov ecx, dword [eax + edi*4 + 0x10]
mov dword [ebp - 0xb0], ecx
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
push ecx
cmovne eax, esi
push edx
push eax
mov dword [ebp - 0xac], eax
push dword [ebx + 0xb8]
mov eax, dword [ebx + 0xbc]
call eax
add esp, 0x18
jmp 0x513166
mov eax, dword [ebp - 0xd8]
xorps xmm0, xmm0
movlpd qword [ebp - 0xd0], xmm0
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc8], ecx
cmp dword [ebx + 0xbc], 0
je 0x514fdc
mov eax, dword [ebp - 0xd4]
cmp dword [eax + edi*4 + 0x10], 0
je 0x514fdc
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xcc], eax
call fcn.0050dcd0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov ecx, dword [ebp - 0xc8]
push eax
push eax
mov ecx, dword [ecx]
call fcn.00503090
mov ecx, dword [ebp - 0xc8]
add esp, 8
mov ecx, dword [ecx]
call fcn.00506d90
mov ecx, eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xdc], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 0x50], 0
jne 0x515072
mov edx, dword [ebx + 0xbc]
test edx, edx
je 0x515072
mov eax, dword [ecx + edi*4 + 0x10]
test eax, eax
je 0x515072
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [ebx + 0xb8]
call edx
mov ecx, dword [ebp - 0xd4]
add esp, 0x18
test byte [ecx + edi*4 + 8], 1
je case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
inc dword [eax + 0x68]
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov eax, dword [eax + 0x68]
add dword [ebx + 0x4c], eax
inc esi
mov dword [ebx + 0x48], eax
mov dword [edi + 0x68], 0
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0xcc]
push eax
call fcn.005199a0
mov ecx, dword [ebp - 0xd4]
add esp, 4
cmp dword [ebp - 0xcc], 0
mov dword [ebp - 0xdc], eax
je 0x513178
mov esi, dword [ecx + edi*4 + 8]
dec esi
jmp 0x513178
mov eax, dword [ecx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xf0], edx
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
call fcn.00519930
mov dword [ebp - 0xdc], eax
jmp 0x51316c
mov eax, dword [ecx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
call fcn.0050dcd0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
cmp byte [eax + 0x1f], 0
je 0x5151e1
lea edx, [ebp - 0xc0]
call fcn.005031d0
mov eax, dword [ebx + 0x50]
cdq
cmp dword [ebp - 0xbc], edx
jg 0x517760
mov edx, dword [ebp - 0xc0]
jl 0x5151d9
cmp edx, eax
ja 0x517760
mov dword [ebp - 0xc8], edx
jmp 0x5151fb
lea edx, [ebp - 0xc8]
call fcn.00503260
mov edx, dword [ebp - 0xc8]
cmp edx, dword [ebx + 0x50]
ja 0x517760
mov edi, dword [ebp - 0xf0]
mov ecx, edi
push 0
call fcn.00509d20
add esp, 4
test eax, eax
jne 0x517903
mov eax, dword [ebp - 0xc8]
mov ecx, 0xbe10
mov dword [edi + 0x18], eax
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x1f], 0
je 0x515268
mov ecx, dword [ebp - 0xcc]
xor edx, edx
push 0
push dword [edi + 4]
push dword [ebp - 0xc8]
call fcn.00503460
add esp, 0xc
mov dword [ebp - 0xdc], eax
mov byte [edi + 0x1f], 1
jmp 0x51316c
push dword [edi + 4]
push dword [ebp - 0xc8]
push 0
push dword [ebp - 0xcc]
call fcn.005037d0
add esp, 0x10
mov dword [ebp - 0xdc], eax
mov byte [edi + 0x1f], 1
jmp 0x51316c
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp byte [ecx + 0x1c], 0
je 0x5152d3
mov ecx, dword [ebp - 0xd4]
mov eax, 1
mov edi, dword [ebp - 0xd8]
inc esi
mov word [edx + 0x1c], ax
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
cmp byte [ecx + 0x1d], 0
je 0x515308
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x14], eax
jmp 0x51316c
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x515365
mov eax, dword [eax]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xc0], eax
push edx
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
push dword [ecx + 0x24]
mov eax, dword [eax + 0x30]
call eax
mov edx, dword [ebp - 0xc0]
add esp, 8
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
call fcn.00510da0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x14], eax
jmp 0x51316c
call fcn.0050dcd0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov ecx, dword [ebp - 0xd0]
cmp byte [ecx + 0x19], al
je 0x5153b4
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x44]
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x14], eax
jmp 0x51316c
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
call fcn.005031d0
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x14], eax
jmp 0x51316c
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
test ecx, ecx
je 0x51375a
call fcn.004ffb30
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], 0
test eax, eax
je 0x515480
lea edx, [ebp - 0xc8]
mov ecx, eax
call fcn.00503cc0
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xdc], eax
mov al, byte [ebp - 0xc8]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd4]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], 0
mov eax, dword [ecx + edi*4 + 8]
test eax, eax
jle case.default.0x510fb3
cmp dword [ebp - 0xc8], 0
je case.default.0x510fb3
lea esi, [eax - 1]
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
inc dword [eax + 0x7c]
jmp 0x5154e2
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xc8], 1
cmp dword [ecx + 0x48], 0
je 0x51551d
lea eax, [ebp - 0xc8]
mov edx, ecx
push eax
mov ecx, ebx
call fcn.005195b0
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x51556a
mov ecx, dword [ecx]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xcc], ecx
call fcn.00503c90
cmp dword [ebp - 0xc8], 0
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x1a], cl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1c], cl
cmp dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xdc]
je 0x513178
mov esi, dword [ecx + edi*4 + 8]
dec esi
jmp 0x513178
cmp dword [ebx + 0xe0], 0
jne 0x5178b0
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x51316c
cmp dword [eax + 0x48], 0
lea ecx, [ebp - 0xcc]
push ecx
je 0x5155e2
mov edx, eax
mov ecx, ebx
call fcn.00519880
add esp, 4
jmp 0x5155fd
mov dword [ebp - 0xcc], 1
push dword [eax]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 0x10]
call eax
add esp, 8
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xdc], eax
mov al, byte [ebp - 0xcc]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 0x50], 0
cmp dword [ebp - 0xcc], 0
jne 0x515654
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov al, byte [ecx + edi*4 + 3]
test al, al
je 0x51564e
mov esi, dword [ebp - 0xd8]
movzx eax, al
inc dword [esi + eax*4 + 0x74]
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x19], 0
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], ecx
mov ebx, dword [ecx]
mov eax, dword [eax + edi*4 + 8]
mov dword [ebp - 0xcc], ebx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
test ebx, ebx
je 0x513160
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x5156cd
mov ecx, esi
call fcn.00509ea0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x513160
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
cmp dword [ecx + 0x48], 0
je 0x5156f1
mov ebx, dword [ebp - 0xe8]
mov edx, ecx
push esi
mov ecx, ebx
call fcn.00519450
add esp, 4
mov dword [ebp - 0xdc], eax
jmp 0x513166
mov edx, dword [esi + 0x18]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xc8], edx
mov esi, dword [esi + 4]
mov dword [ebp - 0xc4], esi
test byte [eax + edi*4 + 3], 0x10
je 0x515715
mov eax, dword [ecx + 0x4c]
jmp 0x515717
xor eax, eax
push eax
mov eax, dword [ebp - 0xd4]
mov ecx, ebx
push dword [eax + edi*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x5dcfc0
push edx
push eax
mov edx, esi
call fcn.00506b80
mov dword [ebp - 0xdc], eax
add esp, 0x1c
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], 0
jmp 0x513160
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
test ecx, ecx
je 0x51316c
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xc0], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [ebp - 0xbc], ax
mov byte [ebp - 0xba], 0
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xb0], eax
lea edx, [ebp - 0xc0]
lea eax, [ebp - 0xc8]
push eax
push 0
push 0
push 0
call fcn.00503d10
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x5157f2
cmp dword [ebp - 0xc8], eax
jne 0x5157f2
mov ecx, dword [ebp - 0xcc]
call fcn.00506d90
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x50], 0
jmp 0x51316c
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov edi, dword [ebp - 0xf0]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, 1
mov word [edi + 0x1c], ax
cmp dword [ebp - 0xd0], 0
je 0x5158a0
mov ecx, dword [ebp - 0xcc]
call fcn.0050dcd0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x1c], cl
jne 0x5158a0
mov edx, dword [ebp - 0xd0]
lea eax, [ebp - 0xc8]
push eax
call fcn.0050e550
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51759a
mov eax, dword [ebp - 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0xc4]
mov dword [edi + 0x14], eax
mov eax, 4
mov word [edi + 0x1c], ax
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
cmp dword [ecx], 0
je 0x51316c
mov eax, dword [ecx + 8]
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xc8], eax
mov ax, word [edx + edi*4 + 0x10]
mov word [ebp - 0xc4], ax
cmp byte [edx + edi*4 + 3], 0
setne al
add al, 2
mov byte [ebp - 0xc2], al
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xb8], eax
lea edx, [ebp - 0xc8]
lea eax, [ebp - 0xcc]
push eax
call fcn.0050e6d0
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xcc]
cmp byte [ecx + edi*4], 0x64
jne 0x51594f
neg eax
jmp 0x515950
inc eax
mov dword [ebp - 0xcc], eax
test eax, eax
mov eax, dword [ebp - 0xdc]
jle 0x513178
mov esi, dword [ecx + edi*4 + 8]
dec esi
jmp 0x513178
xor edx, edx
mov dword [ebp - 0xcc], edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x5159af
cmp dword [ecx + 0x34], 0xbdf20da3
jne 0x5159a2
mov eax, dword [ecx + 0x64]
and al, 0xc
cmp al, 8
jae 0x5159a2
cmp dword [ecx + 0x58], 0
jl 0x5159a2
inc edx
mov dword [ebp - 0xcc], edx
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0xc8], ecx
test ecx, ecx
jne 0x515983
mov eax, dword [ebp - 0xf0]
mov ecx, 1
mov word [eax + 0x1c], cx
cmp dword [ebp - 0xcc], ecx
jg 0x5176c2
mov edx, dword [ebp - 0xd4]
lea ecx, [ebp - 0xd0]
push ecx
mov eax, dword [edx + edi*4 + 0xc]
mov dword [ebp - 0xc4], eax
add eax, eax
mov ecx, dword [ebx + 0x10]
mov edx, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00507720
mov ecx, dword [ebp - 0xf0]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, 4
cmp dword [ebp - 0xdc], 0
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 0xd4]
jne case.default.0x510fb3
mov eax, dword [ebp - 0xd0]
test eax, eax
je case.default.0x510fb3
push dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xc4]
mov ecx, ebx
push eax
call fcn.00527080
mov al, byte [ebp - 0xc4]
add esp, 8
inc al
mov byte [ebp - 0x105], al
jmp 0x51316c
mov dword [ebp - 0xd0], 0
lea eax, [ebp - 0xd0]
xor edx, edx
cmp dword [ecx + edi*4 + 0xc], edx
cmove eax, edx
mov edx, dword [ebp - 0xd4]
push eax
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ebx + 0x10]
add eax, eax
mov edx, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00507460
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov dword [ebp - 0xdc], eax
cmp dword [ecx + edi*4 + 0xc], 0
je case.default.0x510fb3
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd0]
add dword [edx + 0x68], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x51316c
mov edi, dword [ebp - 0xec]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
adc dword [edi + ecx*8 + 0x14], edx
jmp 0x51316c
mov edx, dword [ebp - 0xd4]
xor eax, eax
mov dword [ebp - 0xd0], 0
mov ecx, dword [ecx + edi*4 + 4]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0xc8], ecx
cmp byte [edx + edi*4], 0x69
lea edx, [ebp - 0xd0]
setne al
inc eax
mov dword [ebp - 0xcc], eax
mov ecx, dword [ecx + 4]
push eax
call fcn.00507290
mov ecx, dword [ebp - 0xf0]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x51316c
mov edx, dword [ecx + edi*4 + 4]
mov eax, str.sqlite_master
cmp edx, 1
mov dword [ebp - 0xd0], edx
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0xc4], ebx
cmovne ecx, eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], ecx
add edx, edx
mov eax, dword [eax + edi*4 + 4]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0xd8]
add eax, 0x38
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xd4]
push dword [eax + edi*4 + 0x10]
mov eax, dword [ebx + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.004f0b10
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x515bbf
mov dword [ebp - 0xdc], 7
jmp 0x515c1a
push 0
lea eax, [ebp - 0xc4]
mov byte [ebx + 0x81], 1
push eax
push fcn.00538530
push dword [ebp - 0xc8]
mov dword [ebp - 0xb8], 0
push ebx
call fcn.00534e40
mov edx, dword [ebp - 0xc8]
add esp, 0x14
test eax, eax
mov ecx, ebx
cmove eax, dword [ebp - 0xb8]
mov dword [ebp - 0xdc], eax
call fcn.004ef4c0
mov ecx, dword [ebp - 0xdc]
mov byte [ebx + 0x81], 0
test ecx, ecx
je 0x515c27
mov ecx, ebx
call fcn.00525390
mov ecx, dword [ebp - 0xdc]
cmp ecx, 7
je 0x517903
jmp 0x51316c
mov edx, dword [ecx + edi*4 + 4]
mov ecx, ebx
call fcn.005238d0
mov dword [ebp - 0xdc], eax
jmp 0x51316c
push dword [ecx + edi*4 + 0x10]
mov edx, dword [ecx + edi*4 + 4]
mov ecx, ebx
call fcn.00525620
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
push dword [ecx + edi*4 + 0x10]
mov edx, dword [ecx + edi*4 + 4]
mov ecx, ebx
call fcn.00525150
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
push dword [ecx + edi*4 + 0x10]
mov edx, dword [ecx + edi*4 + 4]
mov ecx, ebx
call fcn.00543320
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov edx, dword [ecx + edi*4 + 8]
mov ecx, ebx
mov dword [ebp - 0xd0], edx
lea edx, [edx*4 + 4]
call fcn.004ef720
mov edx, eax
mov dword [ebp - 0xcc], edx
test edx, edx
je 0x517903
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xec]
mov ecx, dword [eax + edi*4 + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*8]
mov dword [ebp - 0xbc], ecx
mov ecx, dword [eax + edi*4 + 4]
lea eax, [ecx + ecx*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xd0], eax
jle 0x515d75
lea esp, [esp]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0050a150
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [ebp - 0xc8], eax
cmp eax, dword [ebp - 0xd0]
jl 0x515d40
mov edx, dword [ebp - 0xcc]
mov dword [edx + eax*4], 0
lea eax, [ebp - 0xc4]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax + 0x10]
mov eax, dword [ebp - 0xd4]
push dword [ebp - 0xd0]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00508690
mov edx, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, ebx
mov dword [ebp - 0xc0], eax
call fcn.004ef4c0
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc4]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov ecx, esi
call fcn.0050a480
cmp dword [ebp - 0xc4], 0
je 0x515e0b
mov edx, dword [ebp - 0xc0]
test edx, edx
je 0x517903
push fcn.004ef420
push 1
push 0xffffffffffffffff
mov ecx, esi
call fcn.0050a860
add esp, 0xc
movzx edx, byte [ebp - 0xf4]
mov ecx, esi
call fcn.00509d00
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x515e6c
mov ecx, esi
call fcn.0050a600
test byte [esi + 0x1c], 0x20
je 0x517903
mov eax, dword [ebp - 0xec]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
call fcn.004f7700
mov esi, dword [ebp - 0xe0]
add esp, 8
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
cmp dword [ebx + 0xe0], 0
jne 0x5178b0
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea esi, [ecx + eax*8]
je 0x515f2d
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0xd0]
call fcn.004f7b10
test eax, eax
je 0x515f2d
mov eax, dword [ebp - 0xd4]
push dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xec]
push dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0050a4d0
mov esi, dword [ebp - 0xe0]
add esp, 8
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov ecx, esi
call fcn.0050a480
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [ebp - 0xd0], eax
test byte [esi + 0x1c], 0x20
jne 0x515f9b
mov ecx, esi
call fcn.0050a600
test byte [esi + 0x1c], 0x20
je 0x5178fd
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xec]
test eax, eax
je 0x515fd6
js 0x515fa6
and eax, 0xf
jmp 0x515fab
mov eax, 0xff
push dword [edx + ebx*8 + 0x14]
mov ecx, dword [esi + 0x10]
push dword [edx + ebx*8 + 0x10]
mov dl, al
call fcn.004f7b70
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5141a8
mov eax, dword [ebp - 0xd0]
test eax, eax
js 0x515ff1
mov eax, dword [ebp - 0xec]
mov ecx, dword [esi + 0x10]
push dword [eax + ebx*8 + 0x14]
push dword [eax + ebx*8 + 0x10]
call fcn.004f7700
add esp, 8
inc dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov edx, dword [ecx + edi*4 + 0x10]
mov esi, dword [ebp - 0xec]
mov dword [ebp - 0xb8], edx
mov eax, dword [ecx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [ebp - 0xc8], esi
cmp byte [ecx + edi*4 + 3], 0
je 0x516076
mov eax, dword [ebp - 0xd8]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xb4], ecx
mov eax, dword [eax + 0xa8]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x516076
cmp dword [eax + 0x18], ecx
je 0x513222
mov eax, dword [eax + 4]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x516060
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0xb0]
cmp eax, dword [ebx + 0x78]
jge 0x5176e3
test byte [esi + 0x1c], 0x40
jne 0x516211
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
mov dword [ebp - 0xd0], eax
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*2]
mov eax, dword [edx + 0x10]
lea ecx, [ecx + 0x12]
lea edx, [eax + ecx*4]
mov ecx, ebx
mov dword [ebp - 0xcc], edx
call fcn.004ef6f0
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x517903
mov ecx, dword [ebp - 0xc8]
call fcn.0050a110
mov eax, dword [ebp - 0xc8]
mov ecx, 0x40
mov esi, dword [ebp - 0xd8]
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov dword [eax], esi
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xe0]
mov dword [eax + 0x2c], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 8]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x34], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x30]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0xc0]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0xbc]
mov dword [eax + 0x38], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx + 0x3c]
lea ecx, [edx + 0x48]
mov dword [ebp - 0xc4], ecx
lea eax, [eax + eax*4]
lea eax, [eax + 9]
lea eax, [edx + eax*8]
mov dword [ebp - 0xc0], eax
cmp ecx, eax
je 0x51621c
mov esi, 0x80
jmp 0x5161e0
mov word [ecx + 0x1c], si
mov eax, dword [ebp - 0xc4]
mov dword [eax], ebx
mov ecx, dword [ebp - 0xc4]
add ecx, 0x28
mov dword [ebp - 0xc4], ecx
cmp ecx, dword [ebp - 0xc0]
jne 0x5161e0
mov esi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xbc]
jmp 0x51621c
mov edx, dword [esi + 0x10]
mov esi, ecx
mov dword [ebp - 0xbc], edx
inc dword [esi + 0xb0]
mov eax, dword [esi + 0xa8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0x20], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x110]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x68]
mov dword [eax + 0x44], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [esi + 0xa8], ecx
mov dword [esi + 0x68], 0
lea edx, [ecx + 0x20]
mov dword [esi + 8], edx
mov eax, dword [ecx + 0x3c]
mov dword [esi + 0x18], eax
movzx eax, word [ecx + 0x40]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
inc eax
mov dword [ebp - 0xec], edx
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov edx, dword [ebp - 0xb8]
mov dword [esi + 0x44], ecx
mov eax, dword [edx]
mov dword [ebp - 0xd4], eax
mov dword [esi + 4], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x30]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc0], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
push ecx
mov dword [esi + 0xbc], eax
call fcn.00572db0
mov ecx, dword [ebp - 0xd4]
or esi, 0xffffffff
mov edi, dword [ebp - 0xd8]
add esp, 0xc
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
push 0x1000
mov edx, dword [eax + 0xa8]
mov dword [ebp - 0xd0], edx
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [ebp - 0xd4]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xcc], edx
call fcn.0050a700
mov ecx, dword [ebp - 0xd4]
add esp, 4
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
cmp dword [ecx + edi*4 + 4], 0
mov eax, dword [ecx + edi*4 + 8]
cdq
je 0x516380
add dword [ebx + 0x1e8], eax
mov edi, dword [ebp - 0xd8]
adc dword [ebx + 0x1ec], edx
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov edi, dword [ebp - 0xd8]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
inc esi
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
cmp dword [ecx + edi*4 + 4], 0
je 0x5163da
mov eax, dword [ebx + 0x1e8]
or eax, dword [ebx + 0x1ec]
jne 0x512a95
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd8]
mov eax, dword [eax + 0x90]
or eax, dword [edx + 0x94]
jne 0x5163f9
mov esi, dword [ecx + edi*4 + 8]
dec esi
inc esi
mov edi, edx
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x51644e
mov dword [ebp - 0xcc], edx
mov eax, dword [edx + 4]
test eax, eax
je 0x51643f
lea ebx, [ebx]
mov edx, eax
mov dword [ebp - 0xcc], edx
mov eax, dword [edx + 4]
test eax, eax
jne 0x516430
mov eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
jmp 0x51645e
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xd0], ecx
call fcn.0050a300
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0050a300
mov eax, dword [ebp - 0xd0]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x14], edx
jg 0x5164a4
jl 0x51649e
cmp dword [eax + 0x10], ecx
jae 0x5164a4
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jl 0x512a95
jg 0x512a90
cmp dword [edx + eax*8 + 0x10], 0
jbe 0x512a95
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jg 0x512a95
jl 0x512a90
cmp dword [edx + eax*8 + 0x10], 0
jae 0x512a95
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
mov edx, dword [ebp - 0xe4]
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [ecx + edi*4 + 4]
mov ebx, dword [ebp - 0xec]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 0xc]
cdq
add dword [ebx + ecx*8 + 0x10], eax
mov eax, ebx
adc dword [eax + ecx*8 + 0x14], edx
mov edx, ebx
mov eax, dword [eax + ecx*8 + 0x10]
mov ebx, dword [ebp - 0xe8]
or eax, dword [edx + ecx*8 + 0x14]
jne 0x512a5e
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe4]
mov esi, dword [ecx + edi*4 + 8]
mov edi, dword [ebp - 0xd8]
dec esi
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
movzx ecx, byte [ecx + edi*4 + 3]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], ecx
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc4], edx
mov esi, dword [eax + 0xc]
xor eax, eax
mov dword [ebp - 0x80], esi
mov dword [ebp - 0xcc], eax
test ecx, ecx
jle 0x516627
mov edi, edi
mov dword [esi + eax*4], edx
mov ecx, dword [ebp - 0xc4]
call fcn.00510b20
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xc4]
inc eax
add edx, 0x28
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], edx
cmp eax, dword [ebp - 0xd0]
jge 0x516627
mov esi, dword [ebp - 0x80]
jmp 0x5165f0
mov esi, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xec]
mov eax, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [ebp - 0xc0]
mov word [ebp - 0x9c], ax
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x84], 0
test byte [ecx + 3], 8
je 0x5166ba
mov eax, dword [esi + edi*4 - 4]
mov dword [ebp - 0x8c], eax
push dword [ebp - 0x80]
lea eax, [ebp - 0xc0]
push dword [ebp - 0xd0]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x88], 0
je 0x51670d
mov dl, 1
lea ecx, [ebp - 0xb8]
call fcn.0050ae80
push eax
mov eax, dword [ebp - 0xd8]
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov eax, dword [ebp - 0x88]
add esp, 0x10
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0x84], 0
je 0x51673c
mov eax, dword [esi + edi*4 - 0x10]
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x51673c
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.0050a4d0
add esp, 8
lea ecx, [ebp - 0xb8]
call fcn.0050a110
jmp 0x513166
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd0], ecx
mov edx, dword [eax + edi*4 + 0x10]
call fcn.0050a000
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x5167a1
mov ecx, dword [ebp - 0xd0]
mov dl, 1
call fcn.0050ae80
push eax
mov eax, dword [ebp - 0xd8]
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
add esp, 0x10
movzx edx, byte [ebp - 0xf4]
mov ecx, dword [ebp - 0xd0]
call fcn.00509d00
mov ecx, dword [ebp - 0xd0]
call fcn.0050a6d0
test eax, eax
jne 0x517760
jmp 0x51316c
lea eax, [ebp - 0xc4]
mov dword [ebp - 0xcc], 0
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0xc8], 0xffffffff
mov edx, dword [ecx + edi*4 + 4]
push eax
push dword [ecx + edi*4 + 8]
mov ecx, ebx
call fcn.00554460
mov edx, eax
add esp, 0xc
mov dword [ebp - 0xdc], edx
cmp edx, 5
jne 0x51682a
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xcc], 1
mov ecx, dword [ebp - 0xd4]
xor eax, eax
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ecx + edi*4 + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [ebp - 0xc0], ecx
mov edi, edi
mov eax, dword [ebp + eax*4 - 0xcc]
cdq
push edx
push eax
call fcn.0050a4d0
mov eax, dword [ebp - 0xd0]
add esp, 8
mov ecx, dword [ebp - 0xc0]
inc eax
add ecx, 0x28
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xc0], ecx
cmp eax, 3
jl 0x516850
jmp 0x51316c
mov esi, dword [ecx + edi*4 + 0xc]
mov dword [ebp - 0xc8], esi
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
mov dword [ebp - 0xcc], ebx
movzx edx, byte [ebx + 5]
cmove esi, edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], esi
cmp byte [ebx + 0xf], 3
jae 0x5168e8
mov eax, dword [ebx + 0x40]
cmp dword [eax], 0
je 0x5168f0
cmp dword [ebx + 0x4c], 0
jl 0x5168f0
jg 0x5168e8
cmp dword [ebx + 0x48], 0
jbe 0x5168f0
mov esi, edx
mov dword [ebp - 0xc8], esi
cmp byte [ebx + 0xe], 0
mov ecx, 0x5dcfc0
jne 0x516901
mov ecx, dword [ebx + 0x90]
mov dword [ebp - 0xc0], ecx
cmp esi, 5
jne 0x51692d
call fcn.004f1660
test eax, eax
je 0x516920
mov ecx, ebx
call fcn.004fc690
test eax, eax
jne 0x51692d
mov esi, edx
mov dword [ebp - 0xc8], esi
jmp 0x5169ec
cmp esi, edx
je 0x5169ec
cmp edx, 5
je 0x516943
cmp esi, 5
jne 0x5169ec
mov eax, dword [ebp - 0xe8]
cmp byte [eax + 0x36], 0
je 0x517710
cmp dword [eax + 0x84], 1
jg 0x517710
cmp edx, 5
jne 0x516995
mov ecx, ebx
call fcn.004fc7c0
mov dword [ebp - 0xdc], eax
test eax, eax
jne 0x5169d2
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
call fcn.004fc550
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd0]
jmp 0x5169ba
cmp edx, 4
jne 0x5169b4
mov edx, 2
mov ecx, ebx
call fcn.004fc550
mov esi, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd0]
jmp 0x5169ba
mov ecx, dword [ebp - 0xfc]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00508d70
mov dword [ebp - 0xdc], eax
test eax, eax
je 0x5169e0
mov esi, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], esi
jmp 0x5169e6
mov esi, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xcc]
mov edx, esi
mov ecx, ebx
call fcn.004fc550
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xf0], edi
cmp ecx, 6
jne 0x516a2f
xor ecx, ecx
jmp 0x516a36
mov ecx, dword [ecx*4 + 0x662cb8]
mov dword [edi + 4], ecx
call fcn.004f1660
movzx edx, byte [ebp - 0xf4]
mov ecx, edi
mov dword [edi + 0x18], eax
mov byte [edi + 0x1f], 1
call fcn.00509d00
jmp 0x513160
mov ecx, dword [ebp - 0xd8]
mov edx, ebx
lea ecx, [ecx + 0x38]
call fcn.005467c0
mov dword [ebp - 0xdc], eax
jmp 0x51316c
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xd0], ecx
call fcn.00502740
mov ecx, eax
mov dword [ebp - 0xdc], ecx
cmp ecx, 0x65
mov ecx, dword [ebp - 0xd4]
jne case.default.0x510fb3
mov esi, dword [ecx + edi*4 + 8]
dec esi
xor eax, eax
mov dword [ebp - 0xdc], eax
jmp 0x513178
cmp dword [ecx + edi*4 + 4], 0
jne 0x516ae0
mov ecx, ebx
call fcn.0050e7a0
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
or dword [edi + 0x64], 0x20
inc esi
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov al, byte [ecx + edi*4 + 0xc]
mov byte [ebp - 0x120], al
test al, al
jne 0x516b17
test dword [ebx + 0x18], 0x800
jne case.default.0x510fb3
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebx + 0x10]
add eax, eax
mov edx, dword [ebp - 0xd4]
push dword [ebp - 0x120]
mov ecx, dword [ecx + eax*8 + 4]
mov edx, dword [edx + edi*4 + 8]
call fcn.00508c50
mov ecx, eax
add esp, 4
mov dword [ebp - 0xdc], ecx
cmp cl, 6
jne 0x51316c
mov eax, dword [ebp - 0xd4]
push dword [eax + edi*4 + 0x10]
mov eax, dword [ebp - 0xd8]
push str.database_table_is_locked:__s
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
add esp, 0x10
jmp 0x51316c
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, ebx
mov dword [ebp - 0xd0], edx
call fcn.00547ba0
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xdc], eax
test edx, edx
je 0x51316c
mov edx, dword [edx + 8]
mov ecx, dword [ebp - 0xd8]
call fcn.00510da0
jmp 0x51316c
mov eax, dword [ebp - 0xd8]
mov edx, dword [ecx + edi*4 + 4]
add eax, 0x38
push eax
push dword [ecx + edi*4 + 0x10]
mov ecx, ebx
call fcn.005476c0
add esp, 8
mov dword [ebp - 0xdc], eax
jmp 0x51316c
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 0x64]
and eax, 0xfffffffb
or eax, 8
mov dword [edx + 0x64], eax
push dword [ecx + edi*4 + 0x10]
mov edx, dword [ecx + edi*4 + 4]
mov ecx, ebx
call fcn.00547980
mov dword [ebp - 0xdc], eax
add esp, 4
mov eax, dword [ebp - 0xd8]
and dword [eax + 0x64], 0xfffffff3
jmp 0x51316c
mov dword [ebp - 0xd0], 0
lea edx, [ebp - 0xcc]
mov dword [ebp - 0xcc], 0
mov eax, dword [ecx + edi*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
push ecx
mov eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [eax + 0x18]
call eax
mov edx, dword [ebp - 0xc8]
add esp, 8
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
call fcn.00510da0
cmp dword [ebp - 0xdc], 0
jne 0x51316c
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
push 0
push 0xffffffffffffffff
mov dword [eax], ecx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd8]
push 0
mov edx, dword [eax + edi*4 + 4]
call fcn.00510b50
add esp, 0xc
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x516ccd
mov ecx, dword [ebp - 0xcc]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x28], ecx
jmp 0x510f06
mov byte [ebx + 0x38], 1
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xcc]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x51316c
mov eax, dword [ecx + edi*4 + 0xc]
mov edx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc4], edx
lea esi, [edx + 0x28]
mov dword [ebp - 0xc0], esi
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0xb4], eax
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x104], eax
mov eax, dword [eax]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov ebx, dword [esi + 0x10]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd0], ebx
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], ecx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0xa8], edx
test ebx, ebx
jle 0x516dec
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
mov ecx, dword [ecx + eax*4]
call fcn.00510b20
mov ecx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xd0]
inc ecx
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], ecx
cmp ecx, ebx
jge 0x516dc6
mov esi, dword [ebp - 0xc0]
jmp 0x516d81
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xc8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x104], ecx
jmp 0x516df2
mov esi, dword [ebp - 0xdc]
mov eax, dword [eax + 0x64]
mov ecx, dword [ebp - 0xd8]
and eax, 0xfffffff7
or eax, 4
push edx
push ebx
mov dword [ecx + 0x64], eax
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x104]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esi + 0x20]
push dword [ebp - 0xfc]
push ecx
call eax
mov edx, dword [ebp - 0xb8]
mov ebx, eax
mov eax, dword [ebp - 0xd8]
add esp, 0x14
mov ecx, eax
mov dword [ebp - 0xdc], ebx
and dword [eax + 0x64], 0xfffffff3
call fcn.00510da0
test ebx, ebx
jne 0x516e64
mov eax, dword [ebp - 0xc8]
push dword [ebp - 0xbc]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [ebp - 0xb0], eax
jmp 0x516e6a
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xd4]
test eax, eax
je 0x516e7f
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xe8]
mov esi, dword [ebp - 0xe0]
mov byte [eax + 0x1c], 0
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xec]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xc8], ecx
cmp byte [esi + 0x1c], 0
je 0x516ef5
call fcn.0050a480
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
inc esi
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
mov eax, dword [esi + 0x24]
push 0x40
push 0
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00572db0
mov edx, dword [ebp - 0xc8]
lea ecx, [ebp - 0xb8]
add esp, 0xc
call fcn.0050a7e0
mov eax, dword [ebp - 0x9c]
and eax, 0xbe01
or eax, 1
mov word [ebp - 0x9c], ax
mov eax, dword [ebp - 0xd4]
push dword [eax + edi*4 + 8]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xcc]
push dword [esi + 0x24]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [ebp - 0xd0]
add esp, 0xc
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
call fcn.00510da0
mov eax, dword [ebp - 0x88]
test eax, eax
mov ecx, dword [ebp - 0xdc]
movzx edx, byte [ebp - 0xf4]
cmovne ecx, eax
mov dword [ebp - 0xdc], ecx
lea ecx, [ebp - 0xb8]
call fcn.00509d00
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0xb8]
call fcn.0050a7e0
mov ecx, dword [ebp - 0xc8]
jmp 0x511de2
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], 0
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], edx
cmp byte [edx + 0x1c], 0
jne 0x51316c
mov eax, dword [edx + 0x24]
mov ebx, dword [ebp - 0xd8]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x64]
and eax, 0xfffffff7
or eax, 4
mov dword [ebx + 0x64], eax
push dword [edx + 0x24]
mov eax, dword [ecx + 0x24]
call eax
mov edx, dword [ebp - 0xd0]
add esp, 4
mov dword [ebp - 0xdc], eax
mov eax, ebx
mov ecx, eax
and dword [eax + 0x64], 0xfffffff3
call fcn.00510da0
cmp dword [ebp - 0xdc], 0
mov ebx, dword [ebp - 0xe8]
jne 0x517066
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [ebp - 0xc8], eax
jmp 0x51706c
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd4]
test eax, eax
mov eax, dword [ebp - 0xdc]
jne 0x513178
mov esi, dword [ecx + edi*4 + 8]
dec esi
jmp 0x513178
mov eax, dword [ecx + edi*4 + 0x10]
mov edx, 1
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + edi*4 + 4]
mov ecx, dword [ebp - 0xec]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xcc], ecx
call fcn.00509d00
mov ecx, eax
mov dword [ebp - 0xdc], ecx
test ecx, ecx
jne 0x51316c
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
mov edx, dword [ecx]
push dword [eax + 4]
push ecx
mov eax, dword [edx + 0x4c]
call eax
mov edx, dword [ebp - 0xd0]
add esp, 8
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xdc], eax
call fcn.00510da0
mov eax, dword [ebp - 0xd8]
and dword [eax + 0x64], 0xffffffdf
jmp 0x51316c
mov eax, dword [ecx + edi*4 + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov edx, dword [ecx + edi*4 + 8]
mov dword [ebp - 0xc8], edx
cmp dword [eax + 0x34], 0
je case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
mov bl, byte [ebx + 0x3c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xb8], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xc4], 0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xb4], ecx
test edx, edx
jle 0x5171a4
call fcn.00510b20
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xb4]
inc eax
add ecx, 0x28
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xb4], ecx
cmp eax, dword [ebp - 0xc8]
jl 0x517166
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xe8]
mov al, byte [eax + edi*4 + 3]
mov byte [esi + 0x3c], al
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb8]
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0xc8]
push dword [ebp - 0xd0]
mov eax, dword [eax + 0x34]
call eax
mov byte [esi + 0x3c], bl
add esp, 0x10
mov esi, dword [ebp - 0xd8]
mov ecx, esi
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xdc], eax
call fcn.00510da0
cmp dword [ebp - 0xdc], 0
mov ecx, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xe8]
jne 0x51723a
cmp dword [ecx + edi*4 + 4], 0
je 0x51723a
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x110], eax
mov dword [ebx + 0x20], edx
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x10c], edx
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0xdc]
cmp al, 0x13
jne 0x5172a6
mov eax, dword [ecx + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x5172a0
mov al, byte [ecx + edi*4 + 3]
cmp al, 4
jne 0x517278
mov dword [ebp - 0xdc], 0
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd8]
inc esi
mov edx, dword [ebp - 0xe4]
jmp 0x510f0c
cmp al, 5
jne 0x51728f
mov eax, 2
mov byte [esi + 0x60], al
mov esi, dword [ebp - 0xe0]
jmp case.default.0x510fb3
movzx eax, al
mov byte [esi + 0x60], al
mov esi, dword [ebp - 0xe0]
jmp case.default.0x510fb3
mov eax, dword [ebp - 0xdc]
inc dword [esi + 0x68]
mov esi, dword [ebp - 0xe0]
jmp 0x513178
mov ecx, dword [ecx + edi*4 + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov edi, dword [ebp - 0xd8]
inc esi
mov dword [ebp - 0xe0], esi
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], 0
mov edx, dword [ebp - 0xe4]
jmp 0x510f12
mov ecx, dword [ecx + edi*4 + 4]
xor edx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 0xd4]
mov esi, dword [eax + edi*4 + 0xc]
test esi, esi
je 0x517317
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, esi
cmovb edx, esi
call fcn.00501810
mov ecx, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xd8]
inc esi
cdq
mov dword [ecx + 0x14], edx
mov edx, dword [ebp - 0xe4]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xe0], esi
jmp 0x510f12
cmp dword [ebx + 0x98], 0
je case.default.0x510fb3
mov eax, dword [ebp - 0xd8]
test dword [eax + 0x64], 0x400
jne case.default.0x510fb3
mov edx, dword [ecx + edi*4 + 0x10]
test edx, edx
jne 0x51737b
mov edx, dword [eax + 0xa0]
mov dword [ebp - 0xd0], edx
test edx, edx
je case.default.0x510fb3
mov ecx, eax
call fcn.005107a0
push eax
mov dword [ebp - 0xcc], eax
push dword [ebx + 0x9c]
mov eax, dword [ebx + 0x98]
call eax
mov edx, dword [ebp - 0xcc]
add esp, 8
mov ecx, ebx
call fcn.004ef4c0
jmp 0x51316c
mov ecx, 9
mov dword [ebp - 0xdc], ecx
jmp 0x517618
mov ecx, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xd4]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [edx + 0x5c], ecx
mov al, byte [esi + edi*4 + 8]
mov byte [edx + 0x60], al
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe0]
mov dword [eax + 0x58], edx
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x51743a
push eax
mov eax, dword [ebp - 0xd8]
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
push dword [esi + edi*4 + 0x10]
mov eax, dword [ebp - 0xd8]
push dword [eax + 0xa0]
push dword [ebp - 0xe0]
push str.abort_at__d_in___s_:__s
push dword [esi + edi*4 + 4]
call fcn.004f0da0
add esp, 0x24
jmp 0x51745c
test ecx, ecx
je 0x51745c
mov eax, dword [ebp - 0xd8]
push dword [eax + 0xa0]
push edx
push str.constraint_failed_at__d_in___s_
push dword [esi + edi*4 + 4]
call fcn.004f0da0
add esp, 0x10
mov ecx, dword [ebp - 0xd8]
call fcn.0050d4a0
cmp eax, 5
mov eax, dword [ebp - 0xd8]
jne 0x51747f
mov edi, 5
mov dword [eax + 0x5c], edi
jmp 0x517692
cmp dword [eax + 0x5c], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x517692
cmp byte [ebx + 0x38], 0
jne 0x517903
mov ecx, dword [ebp - 0xd8]
mov edi, 0x64
mov eax, dword [ebp - 0xe0]
inc eax
mov dword [ecx + 0x58], eax
jmp 0x517692
lea ecx, [ebp - 0xc0]
call fcn.0050a110
jmp 0x517903
mov ecx, 0x14
mov dword [ebp - 0xdc], ecx
jmp 0x51759a
push str.cannot_open_savepoint___SQL_statements_in_progress
mov eax, dword [ebp - 0xd8]
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov edi, dword [ebp - 0xe0]
mov ecx, 5
add esp, 0xc
mov dword [ebp - 0xdc], ecx
inc edi
jmp 0x51761e
push str.cannot_release_savepoint___SQL_statements_in_progress
mov ebx, eax
jmp 0x5174de
mov eax, dword [ebp - 0xe0]
mov dword [edi + 0x58], eax
mov edi, 5
mov eax, dword [ebp - 0xd8]
mov byte [ebx + 0x36], 0
mov dword [eax + 0x5c], edi
jmp 0x517692
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xe8]
add eax, 0x38
push str.no_such_savepoint:__s
push ebx
push eax
call fcn.004ef8c0
mov edi, dword [ebp - 0xe0]
mov ecx, 1
add esp, 0x10
mov dword [ebp - 0xdc], ecx
inc edi
jmp 0x51761e
mov ecx, dword [ebp - 0xd8]
mov edi, 5
mov eax, dword [ebp - 0xe0]
mov dword [ecx + 0x58], eax
mov dword [ecx + 0x5c], edi
jmp 0x517692
mov ecx, 0x106fa
call fcn.005558f0
mov ecx, eax
mov dword [ebp - 0xdc], ecx
mov ebx, dword [ebp - 0xe8]
cmp byte [ebx + 0x38], 0
je 0x5175d8
mov ecx, 7
mov edx, str.unknown_error
mov dword [ebp - 0xdc], ecx
call fcn.005539e0
jmp 0x5175f9
mov edi, dword [ebp - 0xe0]
mov ecx, 4
mov dword [ebp - 0xdc], ecx
inc edi
jmp 0x51761e
mov ecx, 0xd
mov dword [ebp - 0xdc], ecx
jmp 0x51759a
cmp ecx, 0xc0a
je 0x517618
cmp ecx, 0x204
je 0x5175f4
mov edx, str.unknown_error
call fcn.005539e0
jmp 0x5175f9
mov eax, str.abort_due_to_ROLLBACK
push eax
mov eax, dword [ebp - 0xd8]
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
add esp, 0x10
mov ecx, dword [ebp - 0xdc]
mov edi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xd8]
push dword [eax + 0x38]
mov dword [eax + 0x5c], ecx
push dword [eax + 0xa0]
push edi
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.004f0da0
mov ecx, dword [ebp - 0xd8]
add esp, 0x14
call fcn.0050d4a0
cmp dword [ebp - 0xdc], 0xc0a
jne 0x51765a
mov byte [ebx + 0x38], 1
mov al, byte [ebp - 0x105]
mov edi, 1
test al, al
je 0x517692
movzx esi, al
mov eax, dword [ebx + 0x10]
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0052a450
add esp, 4
cmp esi, edi
je 0x517692
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0052a450
add esp, 4
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xd8]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x110]
mov dword [ebx + 0x24], eax
call fcn.0050bf30
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005712ac
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0xd8]
mov ecx, 6
mov dword [ebp - 0xdc], ecx
mov byte [edi + 0x60], 2
mov edi, dword [ebp - 0xe0]
inc edi
jmp 0x51761e
push str.too_many_levels_of_trigger_recursion
lea eax, [ecx + 0x38]
mov dword [ebp - 0xdc], 1
push ebx
push eax
call fcn.004ef8c0
mov edi, dword [ebp - 0xe0]
add esp, 0xc
inc edi
mov ecx, 1
jmp 0x51761e
mov ebx, dword [ebp - 0xe8]
mov ecx, str.out_of
cmp esi, 5
mov dword [ebp - 0xdc], 1
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xd8]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov edi, dword [ebp - 0xe0]
add esp, 0x10
inc edi
mov ecx, 1
jmp 0x51761e
mov ebx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xd8]
push str.string_or_blob_too_big
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov ecx, 0x12
add esp, 0xc
mov dword [ebp - 0xdc], ecx
jmp 0x517618
mov edx, dword [ecx + edi*4 + 4]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ecx + edi*4 + 8]
mov dword [ebp - 0xcc], ecx
test edx, edx
je 0x5177c6
cmp byte [ebx + 0x36], 0
jne 0x5177c6
mov dword [ebp - 0xc8], 1
test ecx, ecx
jne 0x5177d0
cmp dword [ebx + 0x88], ecx
jle 0x5177d0
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x5174de
mov dword [ebp - 0xc8], 0
movzx eax, byte [ebx + 0x36]
cmp edx, eax
jne 0x51781d
test edx, edx
jne 0x5177e3
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x5177f2
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
push eax
mov eax, dword [ebp - 0xd8]
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
mov edi, dword [ebp - 0xe0]
mov ecx, 1
add esp, 0xc
mov dword [ebp - 0xdc], ecx
inc edi
jmp 0x51761e
test ecx, ecx
je 0x517854
mov edx, 0x204
mov ecx, ebx
call fcn.005538f0
mov byte [ebx + 0x36], 1
mov ecx, ebx
call fcn.00553140
mov eax, dword [ebp - 0xd8]
mov edi, 1
mov ecx, 0x65
cmp dword [eax + 0x5c], 0
cmove edi, ecx
jmp 0x517692
mov ecx, dword [ebp - 0xd8]
mov edx, 1
call fcn.0050d440
mov edi, eax
test edi, edi
jne 0x517692
mov al, byte [ebp - 0xd0]
mov edi, dword [ebp - 0xd8]
mov ecx, edi
mov byte [ebx + 0x36], al
call fcn.0050d4a0
cmp eax, 5
jne 0x517831
mov eax, dword [ebp - 0xe0]
mov dword [edi + 0x58], eax
mov al, 1
sub al, byte [ebp - 0xd0]
mov edi, 5
mov byte [ebx + 0x36], al
mov eax, dword [ebp - 0xd8]
mov dword [eax + 0x5c], edi
jmp 0x517692
mov edi, dword [ebp - 0xd8]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [ebp - 0xdc], 9
mov dword [edi + 0x5c], 9
cmovne ecx, eax
mov eax, dword [ebp - 0xd8]
push ecx
push 0x666544
add eax, 0x38
push ebx
push eax
call fcn.004ef8c0
add esp, 0x10
mov ecx, 9
jmp 0x517618
mov ebx, edx
jmp 0x517903
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xd8]
push str.out_of_memory
lea eax, [edi + 0x38]
mov byte [ebx + 0x38], 1
push ebx
push eax
call fcn.004ef8c0
mov ecx, 7
add esp, 0xc
mov dword [ebp - 0xdc], ecx
jmp 0x517618