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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x860
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
mov dword [ebp - 8], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x61], 0
mov edx, dword [ebp - 0xc]
mov al, byte [edx + 0x54]
mov byte [ebp - 0x19], al
mov dword [ebp - 0x78], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x26c], xmm0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x60]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 8]
push eax
call fcn.00510720
add esp, 4
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x5108ca
mov edx, 4
shl edx, 2
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0xac]
mov dword [ebp - 0x61c], ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x61c]
xor edx, edx
div dword [ecx + 0x178]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x178]
sub ecx, edx
xor edx, edx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], edx
jmp 0x5108dd
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x28], 7
jne 0x5108eb
jmp 0x519818
mov edx, dword [ebp + 8]
mov dword [edx + 0x28], 0
mov eax, dword [ebp + 8]
xor ecx, ecx
xor edx, edx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x80], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x1c4], 0
mov edx, dword [ebp - 0xc]
cmp dword [edx + 0x128], 0
je 0x51092d
jmp 0x519841
mov eax, dword [ebp + 8]
imul ecx, dword [eax + 0x24], 0x14
add ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
jmp 0x510945
mov edx, dword [ebp - 4]
add edx, 0x14
mov dword [ebp - 4], edx
mov eax, 1
test eax, eax
je 0x51961c
mov ecx, dword [ebp - 0x26c]
add ecx, 1
mov edx, dword [ebp - 0x268]
adc edx, 0
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x268], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov dword [ebp - 0x4d4], ecx
cmp dword [ebp - 0x4d4], 0xb3
ja case.0x510992.88
mov edx, dword [ebp - 0x4d4]
jmp dword [edx*4 + 0x519854]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
sub ecx, 1
imul edx, ecx, 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x128], 0
je 0x5109bc
jmp 0x519841
mov ecx, dword [ebp - 0x268]
cmp ecx, dword [ebp - 0xd4]
jb 0x510a49
ja 0x5109da
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0xd8]
jb 0x510a49
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x170], 0
je 0x510a49
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x178]
xor eax, eax
add edx, dword [ebp - 0xd8]
adc eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x174]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x170]
call ecx
add esp, 4
test eax, eax
je 0x510a44
or edx, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], edx
mov dword [ebp - 8], 9
jmp 0x51961c
jmp 0x5109bc
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, 4
mov eax, dword [ebp - 0x14]
mov word [eax + 8], dx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
cdq
mov ecx, dword [ebp - 0x14]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
sub eax, 1
imul ecx, eax, 0x14
add ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
push 0
push 0x14
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
push eax
call fcn.00571080
add eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov ecx, 0x80
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
sub eax, 1
cdq
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
je 0x510b05
jmp 0x510a7e
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
push 0
push 0x14
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
push eax
call fcn.00571080
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x5dc], eax
mov ecx, dword [ebp - 0x5dc]
mov edx, dword [ecx + 8]
sub edx, 1
imul eax, edx, 0x14
add eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
mov ecx, 0x80
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, 4
mov eax, dword [ebp - 0x14]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov dword [ebp - 0x5e0], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
cdq
mov ecx, dword [ebp - 0x14]
mov dword [ecx], eax
mov dword [ecx + 4], edx
imul edx, dword [ebp - 0x5e0], 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 8]
and eax, 1
jne case.0x510992.70
jmp case.0x510992.88
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
jne 0x510c9e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x510c9e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x4d8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x4d8]
mov edx, dword [ecx + 4]
mov dword [eax + 0xd8], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe0]
sub ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0xe0], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
push ecx
mov edx, dword [eax + 0x30]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.0051e100
add esp, 0xc
mov ecx, dword [ebp - 0x4d8]
push ecx
call fcn.0051a250
add esp, 4
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 4
jne 0x510c7a
imul eax, dword [ebp - 0x148], 0x14
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax + 8]
sub eax, 1
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x70]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x60]
mov dword [ebp - 0x18], ecx
imul edx, dword [ebp - 0x148], 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp case.0x510992.88
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [eax + 0x28], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 8]
mov byte [eax + 0x9a], dl
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x148]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
je 0x510d7a
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
test ecx, ecx
je 0x510d33
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
mov ecx, dword [eax*4 + 0x5b9564]
push ecx
push str._s_constraint_failed
mov edx, dword [ebp + 8]
push edx
call fcn.005107b0
add esp, 0xc
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x510d31
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x84]
push ecx
push str._z:__s
mov edx, dword [ebp - 0xc]
push edx
call fcn.004fa890
add esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x84], eax
jmp 0x510d4b
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
push 0x5eb0cc
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x84]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd0]
push edx
mov eax, dword [ebp - 0x148]
push eax
push str.abort_at__d_in___s_:__s
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
call fcn.0049d410
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.0051a490
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x510d9b
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x28], 5
jmp 0x510dc3
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
je 0x510db0
mov dword [ebp - 0x4dc], 1
jmp 0x510dba
mov dword [ebp - 0x4dc], 0x65
mov eax, dword [ebp - 0x4dc]
mov dword [ebp - 8], eax
jmp 0x519733
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cdq
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, 8
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x10]
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.0050b7f0
add esp, 4
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
movzx eax, byte [ebp - 0x19]
cmp eax, 1
je 0x510f23
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c140
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x510ead
jmp 0x5197fb
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0050fb80
add esp, 8
test eax, eax
je 0x510ec7
jmp 0x519818
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
or edx, 0x800
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff9
jne 0x510f04
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8000
add esp, 8
mov eax, dword [ebp - 4]
mov byte [eax + 1], 0xf9
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + edx + 0x78]
jle 0x510f3f
jmp 0x5197fb
mov ecx, dword [ebp - 4]
mov byte [ecx], 0x49
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 0xa02
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x10]
mov cl, byte [ebp - 0x19]
mov byte [eax + 0xa], cl
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
jle 0x510fe5
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
cdq
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x4e0], ecx
mov dword [ebp - 0x654], eax
mov dword [ebp - 0x650], edx
mov edx, dword [ebp - 0x4e0]
mov eax, dword [edx]
cmp eax, dword [ebp - 0x654]
jne 0x510fe5
mov ecx, dword [ebp - 0x4e0]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x650]
jne 0x510fe5
mov eax, 0xa10
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 0xc]
sub eax, dword [edx + 8]
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
je 0x511024
mov dword [ebp - 0x4e4], 0x101
jmp 0x51102e
mov dword [ebp - 0x4e4], 1
mov dx, word [ebp - 0x4e4]
mov word [ebp - 0x1b4], dx
mov eax, dword [ebp - 0x10]
mov cx, word [ebp - 0x1b4]
mov word [eax + 8], cx
mov edx, dword [ebp - 0x10]
mov dword [edx + 0xc], 0
cmp dword [ebp - 0x300], 0
jle 0x51109b
mov eax, dword [ebp - 0x10]
add eax, 0x28
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c040
add esp, 4
mov edx, dword [ebp - 0x10]
mov ax, word [ebp - 0x1b4]
mov word [edx + 8], ax
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0x300]
sub edx, 1
mov dword [ebp - 0x300], edx
jmp 0x511054
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0xffffff40
or eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
jne 0x51110e
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c450
add esp, 8
mov edx, dword [ebp - 0x10]
push edx
call fcn.0051b7a0
add esp, 4
test eax, eax
je 0x51110c
jmp 0x519818
jmp 0x51112e
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cdq
push edx
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c140
add esp, 0x18
mov ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x19]
mov byte [ecx + 0xa], dl
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
sub ecx, 1
imul edx, ecx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x6c]
mov dword [ebp - 0x4e8], edx
mov ecx, dword [ebp - 0x4e8]
push ecx
call fcn.0051c5c0
add esp, 4
test eax, eax
je 0x51116c
jmp 0x5197fb
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x2400
je 0x511194
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c040
add esp, 4
push 0x14
mov ecx, dword [ebp - 0x4e8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00571df0
add esp, 0xc
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
and ecx, 0xffffebff
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
or ecx, 0x840
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x304], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ebp - 0x5e4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x5e8], edx
imul eax, dword [ebp - 0x5e4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
imul ecx, dword [ebp - 0x5e8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051bde0
add esp, 8
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x511248
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051bd50
add esp, 4
test eax, eax
je 0x511248
jmp 0x519818
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
add edx, 0x28
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x304]
sub eax, 1
mov dword [ebp - 0x304], eax
jne 0x511214
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x308], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov ecx, 1
test ecx, ecx
je 0x511312
push 0x1000
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c4a0
add esp, 0xc
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x5112d8
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051bd50
add esp, 4
test eax, eax
je 0x5112d8
jmp 0x519818
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x5ec], ecx
mov edx, dword [ebp - 0x308]
sub edx, 1
mov dword [ebp - 0x308], edx
cmp dword [ebp - 0x5ec], 0
jne 0x5112fe
jmp 0x511312
mov eax, dword [ebp - 0x10]
add eax, 0x28
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x511296
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
push 0x1000
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c4a0
add esp, 0xc
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051bff0
add esp, 0xc
jmp case.0x510992.88
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050fda0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51139c
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
add eax, 2
or eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x20], eax
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x4ec], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x4ec]
mov dword [edx + 0x80], eax
mov ecx, dword [ebp - 0x4ec]
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 0x14c], 0
jmp 0x5113fb
mov edx, dword [ebp - 0x14c]
add edx, 1
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14c]
cmp ecx, dword [eax + 8]
jge 0x51145a
imul edx, dword [ebp - 0x14c], 0x28
mov eax, dword [ebp - 0x30c]
movzx ecx, word [eax + edx + 8]
and ecx, 0x1000
je 0x511442
imul edx, dword [ebp - 0x14c], 0x28
add edx, dword [ebp - 0x30c]
push edx
call fcn.0051bd50
add esp, 4
test eax, eax
je 0x511442
jmp 0x519818
imul eax, dword [ebp - 0x14c], 0x28
add eax, dword [ebp - 0x30c]
push eax
call fcn.0051be20
add esp, 4
jmp 0x5113ec
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x57]
test edx, edx
je 0x51146a
jmp 0x519818
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 4
je 0x511496
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xdc]
push ecx
push 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xd8]
call eax
add esp, 0x10
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
add eax, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov dword [ebp - 8], 0x64
jmp 0x519733
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
mov cx, word [eax + 8]
mov word [ebp - 0x90], cx
movzx edx, word [ebp - 0x90]
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 8]
or edx, ecx
and edx, 1
je 0x511514
mov edx, dword [ebp - 0x10]
push edx
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
movzx eax, word [ebp - 0x90]
and eax, 0x12
jne 0x51154f
push 0
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0051c510
add esp, 0xc
test eax, eax
je 0x51153c
jmp 0x519818
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffd
mov word [ebp - 0x90], cx
jmp 0x511584
movzx edx, word [ebp - 0x90]
and edx, 0x4000
je 0x511584
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051b7a0
add esp, 4
test eax, eax
je 0x511573
jmp 0x519818
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0xfffffffd
mov word [ebp - 0x90], dx
mov eax, dword [ebp - 0x2c]
mov cx, word [eax + 8]
mov word [ebp - 0xa4], cx
movzx edx, word [ebp - 0xa4]
and edx, 0x12
jne 0x5115cd
push 0
movzx eax, byte [ebp - 0x19]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051c510
add esp, 0xc
test eax, eax
je 0x5115ba
jmp 0x519818
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx + 8]
and eax, 0xfffffffd
mov word [ebp - 0xa4], ax
jmp 0x511602
movzx ecx, word [ebp - 0xa4]
and ecx, 0x4000
je 0x511602
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0051b7a0
add esp, 4
test eax, eax
je 0x5115f1
jmp 0x519818
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffd
mov word [ebp - 0xa4], cx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x2c]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1cc], edx
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + eax + 0x78]
cdq
mov dword [ebp - 0x65c], eax
mov dword [ebp - 0x658], edx
mov edx, dword [ebp - 0x1cc]
cmp edx, dword [ebp - 0x658]
jl 0x51165a
jg 0x511655
mov eax, dword [ebp - 0x1d0]
cmp eax, dword [ebp - 0x65c]
jbe 0x51165a
jmp 0x5197fb
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x2c]
jne 0x51166e
mov dword [ebp - 0x4f0], 1
jmp 0x511678
mov dword [ebp - 0x4f0], 0
mov edx, dword [ebp - 0x4f0]
push edx
mov eax, dword [ebp - 0x1d0]
add eax, 3
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051ba20
add esp, 0xc
test eax, eax
je 0x51169e
jmp 0x519818
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 2
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x2c]
je 0x5116e7
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00571df0
add esp, 0xc
mov eax, dword [ebp - 0x2c]
mov cx, word [ebp - 0xa4]
mov word [eax + 8], cx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x2c]
add ecx, dword [edx + 0xc]
push ecx
call fcn.00571df0
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov cx, word [ebp - 0x90]
mov word [eax + 8], cx
push 0
push 1
mov edx, dword [ebp - 0x1cc]
push edx
mov eax, dword [ebp - 0x1d0]
push eax
call fcn.00571080
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x10]
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x1d0]
add eax, 1
mov ecx, dword [ebp - 0x1cc]
adc ecx, 0
push 0
push 1
push ecx
push eax
call fcn.00571080
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x10]
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x1d0]
add edx, 2
mov eax, dword [ebp - 0x1cc]
adc eax, 0
push 0
push 1
push eax
push edx
call fcn.00571080
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x10]
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
or ecx, 0x200
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x10]
mov al, byte [ebp - 0x19]
mov byte [edx + 0xa], al
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.004cc4d0
add esp, 4
mov word [ebp - 0x2fc], ax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004cc4d0
add esp, 4
mov word [ebp - 0x2f8], ax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx + 8]
or ecx, eax
mov word [ebp - 0x2f4], cx
movzx ecx, word [ebp - 0x2fc]
movzx edx, word [ebp - 0x2f8]
and ecx, edx
and ecx, 4
je 0x5119cd
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov dword [ebp - 0x238], ecx
mov edx, dword [ebp - 0x238]
sub edx, 0x6a
mov dword [ebp - 0x238], edx
cmp dword [ebp - 0x238], 3
ja case.default.0x511882
mov eax, dword [ebp - 0x238]
jmp dword [eax*4 + 0x519b24]
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.004dbae0
add esp, 0xc
test eax, eax
je 0x5118a9
jmp 0x5119e3
jmp 0x51199e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.0050b810
add esp, 0xc
test eax, eax
je 0x5118ce
jmp 0x5119e3
jmp 0x51199e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.004fb180
add esp, 0xc
test eax, eax
je 0x5118f3
jmp 0x5119e3
jmp 0x51199e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x511905
jmp 0x511b89
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x51192a
cmp dword [ebp - 0xc0], 0
jne 0x51192a
cmp dword [ebp - 0xbc], 0x80000000
jne 0x51192a
jmp 0x5119e3
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.00570fd0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x51199e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x511960
jmp 0x511b89
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x511977
xor eax, eax
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
mov eax, dword [ebp - 0xbc]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
call fcn.005710c0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 4
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp 0x511b84
movzx edx, word [ebp - 0x2f4]
and edx, 1
je 0x5119e3
jmp 0x511b89
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051d2d0
add esp, 4
fstp qword [ebp - 0x534]
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051d2d0
add esp, 4
fstp qword [ebp - 0x1d8]
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x23c]
sub ecx, 0x6a
mov dword [ebp - 0x23c], ecx
cmp dword [ebp - 0x23c], 3
ja case.default.0x511a35
mov edx, dword [ebp - 0x23c]
jmp dword [edx*4 + 0x519b34]
movsd xmm0, qword [ebp - 0x1d8]
addsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x511b40
movsd xmm0, qword [ebp - 0x1d8]
subsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x511b40
movsd xmm0, qword [ebp - 0x1d8]
mulsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x511b40
movsd xmm0, qword [ebp - 0x534]
ucomisd xmm0, qword [0x5b0418]
lahf
test ah, 0x44
jp 0x511aae
jmp 0x511b89
movsd xmm0, qword [ebp - 0x1d8]
divsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x511b40
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051ac40
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051ac40
add esp, 4
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
jne 0x511aff
jmp 0x511b89
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
cmp eax, 0xffffffff
jne 0x511b16
xor ecx, ecx
mov dword [ebp - 0x6c], 1
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
call fcn.005710c0
mov ecx, eax
call fcn.005713f0
movsd qword [ebp - 0x1d8], xmm0
sub esp, 8
movsd xmm0, qword [ebp - 0x1d8]
movsd qword [esp], xmm0
call fcn.004f90f0
add esp, 8
test eax, eax
je 0x511b5e
jmp 0x511b89
mov eax, dword [ebp - 0x10]
movsd xmm0, qword [ebp - 0x1d8]
movsd qword [eax], xmm0
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0xffff3e40
or edx, 8
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
jmp case.0x510992.88
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x511bba
push 0
push 0
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.0051bff0
add esp, 0xc
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
mov ecx, dword [ebp - 0x2c]
movzx edx, word [ecx + 8]
or eax, edx
and eax, 1
je 0x511c0c
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051ac40
add esp, 4
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0051ac40
add esp, 4
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 4]
mov cl, byte [eax]
mov byte [ebp - 0x3d], cl
movzx edx, byte [ebp - 0x3d]
cmp edx, 0x66
jne 0x511c76
mov eax, dword [ebp - 0xd0]
and eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
and ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x511e5d
movzx edx, byte [ebp - 0x3d]
cmp edx, 0x67
jne 0x511ca8
mov eax, dword [ebp - 0xd0]
or eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
or ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x511e5d
mov edx, dword [ebp - 0xc8]
or edx, dword [ebp - 0xc4]
je 0x511e5d
cmp dword [ebp - 0xc4], 0
jg 0x511d3b
jl 0x511cce
cmp dword [ebp - 0xc8], 0
jae 0x511d3b
movzx eax, byte [ebp - 0x3d]
mov ecx, 0xd1
sub ecx, eax
mov byte [ebp - 0x3d], cl
cmp dword [ebp - 0xc4], 0xffffffff
jl 0x511d11
jg 0x511cf0
cmp dword [ebp - 0xc8], 0xffffffc0
jbe 0x511d11
mov edx, dword [ebp - 0xc8]
neg edx
mov eax, dword [ebp - 0xc4]
adc eax, 0
neg eax
mov dword [ebp - 0x53c], edx
mov dword [ebp - 0x538], eax
jmp 0x511d23
xor ecx, ecx
mov dword [ebp - 0x53c], 0x40
mov dword [ebp - 0x538], ecx
mov edx, dword [ebp - 0x53c]
mov eax, dword [ebp - 0x538]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jl 0x511d9a
jg 0x511d4f
cmp dword [ebp - 0xc8], 0x40
jb 0x511d9a
cmp dword [ebp - 0xcc], 0
jg 0x511d78
jl 0x511d63
cmp dword [ebp - 0xd0], 0
jae 0x511d78
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
je 0x511d78
mov dword [ebp - 0x4f4], 0xffffffff
jmp 0x511d82
mov dword [ebp - 0x4f4], 0
mov eax, dword [ebp - 0x4f4]
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x511e5d
push 8
lea edx, [ebp - 0xd0]
push edx
lea eax, [ebp - 0x178]
push eax
call fcn.00571df0
add esp, 0xc
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
jne 0x511de0
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.00571180
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
jmp 0x511e45
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.00571290
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
cmp dword [ebp - 0xcc], 0
jg 0x511e45
jl 0x511e17
cmp dword [ebp - 0xd0], 0
jae 0x511e45
mov ecx, 0x40
sub ecx, dword [ebp - 0xc8]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00571180
or eax, dword [ebp - 0x178]
or edx, dword [ebp - 0x174]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
push 8
lea edx, [ebp - 0x178]
push edx
lea eax, [ebp - 0xd0]
push eax
call fcn.00571df0
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0xffff3e40
or edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051bd10
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 8]
cdq
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx]
adc edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
jne 0x511f16
movzx eax, byte [ebp - 0x19]
push eax
push 0x43
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.004adff0
add esp, 0xc
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 4
jne 0x511f16
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
jne 0x511f11
mov dword [ebp - 8], 0x14
jmp 0x51961c
jmp 0x510a7e
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 4
mov ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0x24
je 0x511f56
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051bf50
add esp, 4
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0x4000
je 0x511f8b
mov edx, dword [ebp - 0x14]
push edx
call fcn.0051b7a0
add esp, 4
mov dword [ebp - 0x4f8], eax
jmp 0x511f95
mov dword [ebp - 0x4f8], 0
mov eax, dword [ebp - 0x4f8]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511fa9
jmp 0x51961c
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0051b580
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511fd0
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x14]
mov cx, word [eax + 8]
mov word [ebp - 0x48], cx
mov edx, dword [ebp - 0x28]
mov ax, word [edx + 8]
mov word [ebp - 0x34], ax
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x34]
and ecx, edx
and ecx, 4
je 0x5120f5
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x500], ecx
mov edx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x500]
mov ecx, dword [edx + 4]
cmp ecx, dword [eax + 4]
jl 0x512074
jg 0x512052
mov edx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x500]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jbe 0x512074
mov dword [ebp - 0x78], 1
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e9c98]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x512072
jmp 0x510a7e
jmp 0x5120f0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x504], eax
mov dword [ebp - 0x508], ecx
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x508]
mov ecx, dword [edx + 4]
cmp ecx, dword [eax + 4]
jg 0x5120d0
jl 0x5120ae
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x508]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jae 0x5120d0
mov dword [ebp - 0x78], 0xffffffff
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e9c90]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x5120ce
jmp 0x510a7e
jmp 0x5120f0
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5e9c94]
movzx eax, byte [edx + ecx]
test eax, eax
je 0x5120f0
jmp 0x510a7e
jmp case.0x510992.88
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x34]
or ecx, edx
and ecx, 1
je 0x51218d
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 0x80
je 0x51216b
movzx edx, word [ebp - 0x48]
movzx eax, word [ebp - 0x34]
and edx, eax
and edx, 1
je 0x51213e
movzx ecx, word [ebp - 0x34]
and ecx, 0x100
jne 0x51213e
mov dword [ebp - 0x1a4], 0
jmp 0x512169
movzx edx, word [ebp - 0x34]
and edx, 1
je 0x512153
mov dword [ebp - 0x50c], 0xffffffff
jmp 0x51215d
mov dword [ebp - 0x50c], 1
mov eax, dword [ebp - 0x50c]
mov dword [ebp - 0x1a4], eax
jmp 0x512188
mov dword [ebp - 0x78], 1
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x512183
jmp 0x510a7e
jmp case.0x510992.88
jmp 0x5122be
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 0x47
mov byte [ebp - 0x9e], cl
movsx edx, byte [ebp - 0x9e]
cmp edx, 0x43
jl 0x5121fc
movzx eax, word [ebp - 0x48]
movzx ecx, word [ebp - 0x34]
or eax, ecx
and eax, 2
je 0x5121f7
movzx edx, word [ebp - 0x48]
and edx, 0x2e
cmp edx, 2
jne 0x5121dd
push 0
mov eax, dword [ebp - 0x14]
push eax
call fcn.004ae090
add esp, 8
mov ecx, dword [ebp - 0x28]
mov dx, word [ecx + 8]
mov word [ebp - 0x34], dx
movzx eax, word [ebp - 0x34]
and eax, 0x2e
cmp eax, 2
jne 0x5121f7
push 0
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004ae090
add esp, 8
jmp 0x5122a1
movsx edx, byte [ebp - 0x9e]
cmp edx, 0x42
jne 0x5122a1
movzx eax, word [ebp - 0x48]
and eax, 2
jne 0x512260
movzx ecx, word [ebp - 0x48]
and ecx, 0x2c
je 0x512260
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051c510
add esp, 0xc
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0xffff3e40
movzx eax, word [ebp - 0x48]
and eax, 0xc1bf
or edx, eax
mov word [ebp - 0x48], dx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x28]
jne 0x512260
movzx edx, word [ebp - 0x48]
or edx, 2
mov word [ebp - 0x34], dx
movzx eax, word [ebp - 0x34]
and eax, 2
jne 0x5122a1
movzx ecx, word [ebp - 0x34]
and ecx, 0x2c
je 0x5122a1
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.0051c510
add esp, 0xc
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 8]
and edx, 0xffff3e40
movzx eax, word [ebp - 0x34]
and eax, 0xc1bf
or edx, eax
mov word [ebp - 0x34], dx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004fae50
add esp, 0xc
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jge 0x5122df
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e9c90]
movzx edx, byte [ecx + eax]
mov dword [ebp - 0x310], edx
jmp 0x512315
cmp dword [ebp - 0x1a4], 0
jne 0x512300
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5e9c94]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x310], eax
jmp 0x512315
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
mov eax, dword [0x5e9c98]
movzx ecx, byte [eax + edx]
mov dword [ebp - 0x310], ecx
mov edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x78], edx
mov eax, dword [ebp - 0x28]
mov cx, word [ebp - 0x34]
mov word [eax + 8], cx
mov edx, dword [ebp - 0x14]
mov ax, word [ebp - 0x48]
mov word [edx + 8], ax
cmp dword [ebp - 0x310], 0
je 0x512342
jmp 0x510a7e
jmp case.0x510992.88
cmp dword [ebp - 0x78], 0
jne 0x512352
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 1
jne 0x512374
mov dword [ebp - 0x314], 0
jmp 0x51238c
mov eax, 0x14
imul ecx, eax, 0xffffffff
mov edx, dword [ebp - 4]
mov eax, dword [edx + ecx + 0x10]
add eax, 4
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x5f0], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ebp - 0x514], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x518], edx
mov dword [ebp - 0x124], 0
jmp 0x5123d7
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0x5f0]
jge 0x512501
cmp dword [ebp - 0x314], 0
je 0x512409
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x314]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x510], ecx
jmp 0x512415
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x510], edx
mov eax, dword [ebp - 0x510]
mov dword [ebp - 0x240], eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x318]
mov eax, dword [edx + ecx*4 + 0x14]
mov dword [ebp - 0x5f4], eax
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [edx + eax]
and ecx, 1
mov dword [ebp - 0x620], ecx
mov edx, dword [ebp - 0x5f4]
push edx
mov eax, dword [ebp - 0x518]
add eax, dword [ebp - 0x240]
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x514]
add edx, dword [ebp - 0x240]
imul eax, edx, 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.004fae50
add esp, 0xc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x5124fc
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [edx + eax]
and ecx, 2
je 0x5124e9
mov edx, dword [ebp - 0x514]
add edx, dword [ebp - 0x240]
imul eax, edx, 0x28
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + eax + 8]
and edx, 1
jne 0x5124e1
mov eax, dword [ebp - 0x518]
add eax, dword [ebp - 0x240]
imul ecx, eax, 0x28
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + ecx + 8]
and eax, 1
je 0x5124e9
mov ecx, dword [ebp - 0x78]
neg ecx
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x620], 0
je 0x5124fa
mov edx, dword [ebp - 0x78]
neg edx
mov dword [ebp - 0x78], edx
jmp 0x512501
jmp 0x5123c8
jmp case.0x510992.88
cmp dword [ebp - 0x78], 0
jge 0x512520
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
sub ecx, 1
imul edx, ecx, 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp 0x51254c
cmp dword [ebp - 0x78], 0
jne 0x51253a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
sub ecx, 1
imul edx, ecx, 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp 0x51254c
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
sub ecx, 1
imul edx, ecx, 0x14
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp case.0x510992.88
push 2
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.0050faf0
add esp, 8
mov dword [ebp - 0x150], eax
push 2
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.0050faf0
add esp, 8
mov dword [ebp - 0x51c], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x2c
jne 0x5125af
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5b95d4]
mov dword [ebp - 0x150], edx
jmp 0x5125ca
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5b95e0]
mov dword [ebp - 0x150], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x150], 2
jne 0x5125f8
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp 0x51261d
mov eax, dword [ebp - 0x150]
cdq
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 4
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.0050faf0
add esp, 8
mov ecx, dword [ebp - 4]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.0051bff0
add esp, 0xc
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 1
jne 0x5126c2
push 0
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0050faf0
add esp, 8
test eax, eax
jne 0x5126a1
mov dword [ebp - 0x520], 1
jmp 0x5126ab
mov dword [ebp - 0x520], 0
mov eax, dword [ebp - 0x520]
cdq
push edx
push eax
mov edx, dword [ebp - 0x10]
push edx
call fcn.0051bff0
add esp, 0xc
jmp 0x5126ce
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0051c040
add esp, 4
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne 0x512729
mov edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0051ac40
add esp, 4
not eax
not edx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x510992.88
mov edx, dword [ebp + 8]
cmp dword [edx + 0xd8], 0
je 0x5127ce
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
sub ecx, dword [eax + 0x70]
mov eax, ecx
cdq
mov ecx, 0x14
idiv ecx
mov dword [ebp - 0x1b8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov ecx, dword [ebp - 0x1b8]
shr ecx, 3
mov edx, dword [eax + 0x18]
movzx eax, byte [edx + ecx]
mov ecx, dword [ebp - 0x1b8]
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
je 0x512789
jmp 0x510a7e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd8]
mov edx, dword [ebp - 0x1b8]
shr edx, 3
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x1b8]
and ecx, 7
mov esi, 1
shl esi, cl
movzx ecx, byte [eax + edx]
or ecx, esi
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov edx, dword [ebp - 0x1b8]
shr edx, 3
mov eax, dword [eax + 0x18]
mov byte [eax + edx], cl
jmp 0x5127ed
mov ecx, 0x14
imul edx, ecx, 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov eax, dword [ebp - 4]
mov ecx, dword [ecx + edx + 4]
cmp ecx, dword [eax + 4]
jne 0x5127ed
jmp 0x510a7e
mov edx, 0x14
imul eax, edx, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ebp - 4]
mov edx, dword [edx + eax + 4]
mov dword [ecx + 4], edx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.0050faf0
add esp, 8
mov dword [ebp - 0x5f8], eax
cmp dword [ebp - 0x5f8], 0
je 0x512838
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
jne 0x512852
mov dword [ebp - 0x524], 1
jmp 0x51285c
mov dword [ebp - 0x524], 0
mov edx, dword [ebp - 0x524]
push edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.0050faf0
add esp, 8
test eax, eax
jne 0x512886
mov dword [ebp - 0x528], 1
jmp 0x512890
mov dword [ebp - 0x528], 0
mov edx, dword [ebp - 0x528]
mov dword [ebp - 0x5fc], edx
cmp dword [ebp - 0x5fc], 0
je 0x5128aa
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 1
je 0x5128cd
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne 0x51290b
mov edx, dword [ebp - 0x14]
push edx
call fcn.004a9e40
add esp, 4
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
je 0x51290b
mov dword [ebp - 0x52c], 0
jmp 0x512915
mov dword [ebp - 0x52c], 1
mov edx, dword [ebp - 0x52c]
mov dword [ebp - 0x600], edx
cmp dword [ebp - 0x600], 0
je 0x51292f
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + ecx + 8]
and eax, 1
jne 0x51295c
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + edx + 8]
and ecx, 1
je 0x512971
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.0051c040
add esp, 4
jmp 0x512988
push 0
push 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.0051bff0
add esp, 0xc
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 1
jne 0x5129ab
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
movzx eax, byte [edx + 2]
test eax, eax
je 0x5129df
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.0051c040
add esp, 4
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x100], eax
lea ecx, [ebp - 0x100]
push ecx
lea edx, [ebp - 0x24]
push edx
call fcn.00510070
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512a23
jmp 0x51961c
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x7c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
cmp eax, dword [edx + 0x20]
je 0x512bef
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x512ab0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 3
jne 0x512a9d
mov edx, dword [ebp - 0x24]
imul eax, dword [edx + 0x24], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x368]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x54]
mov dword [ecx + 0x50], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x368]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x4c], eax
jmp 0x512aae
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.0051c040
add esp, 4
jmp 0x513130
jmp 0x512b09
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp - 0x36c]
push ecx
call fcn.004e2e70
add esp, 4
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x50], eax
mov eax, dword [ebp - 0x24]
add eax, 0x54
push eax
mov ecx, dword [ebp - 0x36c]
push ecx
call fcn.004e2e50
add esp, 8
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x4c], eax
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xc]
mov edx, dword [edx + 0x50]
cmp edx, dword [eax + ecx + 0x78]
jbe 0x512b09
jmp 0x5197fb
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x20]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x4c]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x512b49
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x4c]
movzx edx, byte [ecx]
mov eax, 4
imul ecx, eax, 0
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx], edx
mov dword [ebp - 0x370], 1
jmp 0x512b6d
mov ecx, 4
imul edx, ecx, 0
add edx, dword [ebp - 0x7c]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x4c]
push ecx
call fcn.004f6350
add esp, 8
movzx edx, al
mov dword [ebp - 0x370], edx
movzx eax, byte [ebp - 0x370]
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x34], eax
xor edx, edx
mov eax, dword [ebp - 0x24]
mov word [eax + 0x3e], dx
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [eax + 0x54]
cmp eax, dword [ecx + edx]
jae 0x512bde
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x4c], 0
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x54], 0
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x7c]
cmp dword [edx + ecx], 0x18003
ja 0x512bd7
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [edx + ecx]
cmp ecx, dword [eax + 0x50]
jbe 0x512bdc
jmp 0x513135
jmp 0x512bef
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x128], eax
jmp 0x512c85
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx + 0x3e]
cmp edx, dword [ebp - 0x100]
ja 0x512f26
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x7c]
mov edx, dword [edx + 0x34]
cmp edx, dword [eax + ecx]
jae 0x512ed7
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x512c79
push 0x28
push 0
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.00572370
add esp, 0xc
lea edx, [ebp - 0x7e8]
push edx
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx + ecx]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.0051b9b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512c6b
jmp 0x51961c
mov eax, dword [ebp - 0x7d8]
mov dword [ebp - 0x128], eax
jmp 0x512c85
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 0x3e]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + edx*4]
xor edx, edx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x128]
add ecx, dword [eax + 0x34]
mov dword [ebp - 0xa8], ecx
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x128]
add edx, dword [ecx + eax]
mov dword [ebp - 0x244], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0xa8]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x5c]
mov dword [edx + ecx*4 + 0x58], eax
cmp dword [ebp - 0x5c], 0x80
jae 0x512d40
mov ecx, dword [ebp - 0xa8]
add ecx, 1
mov dword [ebp - 0xa8], ecx
movzx edx, byte [ebp - 0x5c]
push edx
call fcn.0051d280
add esp, 4
movzx eax, al
cdq
add eax, dword [ebp - 0x13c]
adc edx, dword [ebp - 0x138]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
jmp 0x512d98
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call fcn.004f6350
add esp, 8
movzx edx, al
add edx, dword [ebp - 0xa8]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x5c]
mov dword [ecx + eax*4 + 0x58], edx
mov eax, dword [ebp - 0x5c]
push eax
call fcn.0051e0d0
add esp, 4
xor ecx, ecx
add eax, dword [ebp - 0x13c]
adc ecx, dword [ebp - 0x138]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0xdc]
add edx, 1
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x7c]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xdc]
cmp eax, dword [ebp - 0x100]
ja 0x512dd9
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x244]
jb 0x512cd8
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0x244]
jb 0x512e25
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x244]
ja 0x512e57
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x50]
xor eax, eax
mov dword [ebp - 0x664], edx
mov dword [ebp - 0x660], eax
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x664]
jne 0x512e57
mov edx, dword [ebp - 0x138]
cmp edx, dword [ebp - 0x660]
jne 0x512e57
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x50]
xor edx, edx
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x668], edx
mov eax, dword [ebp - 0x138]
cmp eax, dword [ebp - 0x668]
jb 0x512e9d
ja 0x512e57
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x66c]
jbe 0x512e9d
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x7c]
cmp dword [ecx + eax], 0
jne 0x512e80
mov dword [ebp - 0xdc], 0
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0xa8], edx
jmp 0x512e9d
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x512e98
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.0051bf80
add esp, 4
jmp 0x513135
mov edx, dword [ebp - 0x24]
mov ax, word [ebp - 0xdc]
mov word [edx + 0x3e], ax
mov ecx, dword [ebp - 0xa8]
sub ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x512ed5
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.0051bf80
add esp, 4
jmp 0x512ede
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x24]
movzx eax, word [edx + 0x3e]
cmp eax, dword [ebp - 0x100]
ja 0x512f24
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff5
jne 0x512f13
push 0x800
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.0051c4a0
add esp, 0xc
jmp 0x512f1f
mov eax, dword [ebp - 0x44]
push eax
call fcn.0051c040
add esp, 4
jmp 0x513130
jmp 0x512f36
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + ecx*4 + 0x58]
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x44]
movzx edx, word [ecx + 8]
and edx, 0x2400
je 0x512f51
mov eax, dword [ebp - 0x44]
push eax
call fcn.0051c040
add esp, 4
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ecx + 0x54]
cmp ecx, dword [eax + edx*4 + 4]
jb 0x51306b
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x4c]
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x7c]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x5c], 0xc
jae 0x512fa4
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov edx, dword [ebp - 0x128]
push edx
call fcn.0051dd70
add esp, 0xc
jmp 0x513066
mov eax, dword [ebp - 0x5c]
sub eax, 0xc
shr eax, 1
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0xe0]
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x44]
mov cl, byte [ebp - 0x19]
mov byte [eax + 0xa], cl
mov edx, dword [ebp - 0xe0]
add edx, 2
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x18], edx
jge 0x513007
mov ecx, 1
mov edx, dword [ebp - 0x44]
mov word [edx + 8], cx
push 0
mov eax, dword [ebp - 0xe0]
add eax, 2
push eax
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.0051ba20
add esp, 0xc
test eax, eax
je 0x513005
jmp 0x519818
jmp 0x513013
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x10], ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00571df0
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xe0]
mov byte [ecx + edx], 0
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xe0]
mov byte [ecx + edx + 1], 0
mov eax, dword [ebp - 0x5c]
and eax, 1
mov ecx, dword [ebp - 0x44]
mov dx, word [eax*2 + 0x5b95ec]
mov word [ecx + 8], dx
jmp 0x513130
mov eax, dword [ebp - 0x44]
mov cl, byte [ebp - 0x19]
mov byte [eax + 0xa], cl
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0xc0
je 0x51309e
cmp dword [ebp - 0x5c], 0xc
jb 0x513090
mov ecx, dword [ebp - 0x5c]
and ecx, 1
je 0x5130b9
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x80
jne 0x5130b9
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.0051e0d0
add esp, 4
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
jne 0x5130d0
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x5c]
push eax
push 0x5b91e0
call fcn.0051dd70
add esp, 0xc
jmp 0x513130
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx + eax*4]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.0051b8e0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513105
jmp 0x51961c
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x10]
push edx
call fcn.0051dd70
add esp, 0xc
mov eax, dword [ebp - 0x44]
movzx ecx, word [eax + 8]
and ecx, 0xffffefff
mov edx, dword [ebp - 0x44]
mov word [edx + 8], cx
jmp case.0x510992.88
mov eax, 0x14
imul ecx, eax, 0
mov edx, dword [ebp - 0x38]
cmp dword [edx + ecx + 0xc], 0
jle 0x513169
mov eax, 0x14
imul ecx, eax, 0
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + ecx + 0xc]
sub eax, 1
imul ecx, eax, 0x14
add ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
jmp case.0x510992.88
push 0x160d3
call fcn.004e6390
add esp, 4
mov dword [ebp - 8], eax
jmp 0x51961c
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp - 0x334]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x154], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xe4], 0
jmp 0x5131c1
mov edx, dword [ebp - 0xe4]
add edx, 1
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x334]
movsx ecx, word [eax + 0x22]
cmp dword [ebp - 0xe4], ecx
jge 0x5133b1
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x60
je 0x51321f
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x20
je 0x51320b
jmp 0x5131b2
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x51321f
mov eax, dword [ebp - 0x14]
add eax, 0x28
mov dword [ebp - 0x14], eax
jmp 0x5131b2
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, byte [eax + edx + 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.004adff0
add esp, 0xc
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne case.default.0x513296
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
mov ecx, dword [eax + edx + 4]
shr ecx, 4
and ecx, 0xf
mov dword [ebp - 0x248], ecx
mov edx, dword [ebp - 0x248]
sub edx, 2
mov dword [ebp - 0x248], edx
cmp dword [ebp - 0x248], 4
ja case.default.0x513296
mov eax, dword [ebp - 0x248]
jmp dword [eax*4 + 0x519b44]
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0x10
jne 0x5132ae
jmp 0x5133b6
jmp case.default.0x513296
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 4
jne 0x5132c4
jmp 0x5133b6
jmp case.default.0x513296
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 2
jne 0x5132da
jmp 0x5133b6
jmp case.default.0x513296
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x513395
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
cmp dword [ecx + 4], 0x7fff
jg 0x51335d
jl 0x513314
mov edx, dword [ebp - 0x374]
cmp dword [edx], 0xffffffff
ja 0x51335d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x378]
cmp dword [ecx + 4], 0xffff8000
jl 0x51335d
jg 0x513339
mov edx, dword [ebp - 0x378]
cmp dword [edx], 0
jb 0x51335d
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
or ecx, 0x20
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffb
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
jmp 0x513393
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.005713f0
mov ecx, dword [ebp - 0x14]
movsd qword [ecx], xmm0
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
or eax, 8
mov ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0xfffffffb
mov ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
jmp case.default.0x513296
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0x28
jne case.default.0x513296
jmp 0x5133b6
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x5131b2
jmp case.0x510992.88
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
mov ecx, dword [eax + edx]
push ecx
mov edx, dword [ebp - 0x334]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xe4]
shl ecx, 4
mov edx, dword [ebp - 0x154]
mov eax, dword [edx + ecx + 4]
shr eax, 4
and eax, 0xf
mov ecx, dword [eax*4 + 0x5e9c9c]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0052d890
add esp, 4
push eax
push str.cannot_store__s_value_in__s_column__s._s
mov eax, dword [ebp + 8]
push eax
call fcn.005107b0
add esp, 0x18
mov dword [ebp - 8], 0xc13
jmp 0x51961c
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x1bc], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, 1
test edx, edx
je 0x51356b
movzx eax, byte [ebp - 0x19]
push eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x1bc]
movzx ecx, byte [eax + edx]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.004adff0
add esp, 0xc
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x1bc]
movsx eax, byte [edx + ecx]
cmp eax, 0x45
jne 0x513536
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x513536
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x37c]
cmp dword [ecx + 4], 0x7fff
jg 0x513500
jl 0x5134b7
mov edx, dword [ebp - 0x37c]
cmp dword [edx], 0xffffffff
ja 0x513500
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
cmp dword [ecx + 4], 0xffff8000
jl 0x513500
jg 0x5134dc
mov edx, dword [ebp - 0x380]
cmp dword [edx], 0
jb 0x513500
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
or ecx, 0x20
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffb
mov edx, dword [ebp - 0x14]
mov word [edx + 8], cx
jmp 0x513536
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.005713f0
mov ecx, dword [ebp - 0x14]
movsd qword [ecx], xmm0
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
or eax, 8
mov ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0xfffffffb
mov ecx, dword [ebp - 0x14]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x1bc]
add edx, 1
mov dword [ebp - 0x1bc], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x1bc]
movsx eax, byte [edx + ecx]
test eax, eax
jne 0x51355d
jmp 0x51356b
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x513436
jmp case.0x510992.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x58], xmm0
mov dword [ebp - 0x4c], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x1e0], xmm0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ebp - 0x320], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x158], edx
imul eax, dword [ebp - 0x320], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x320], edx
mov eax, dword [ebp - 0x320]
sub eax, 1
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x250]
mov dword [ebp - 0x394], ecx
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0x9b]
mov dword [ebp - 0x604], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x158], 0
je 0x5136a4
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x20], eax
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x158]
movzx edx, byte [ecx + eax]
push edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.004adff0
add esp, 0xc
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x158]
movsx ecx, byte [eax + edx]
cmp ecx, 0x45
jne 0x513672
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 4
je 0x513672
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
or edx, 0x20
mov eax, dword [ebp - 0x20]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0xfffffffb
mov eax, dword [ebp - 0x20]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x158]
add ecx, 1
mov dword [ebp - 0x158], ecx
mov edx, dword [ebp - 0x20]
add edx, 0x28
mov dword [ebp - 0x20], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x158]
movsx eax, byte [edx + ecx]
test eax, eax
jne 0x513609
mov ecx, dword [ebp - 0x394]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 1
je 0x5136ec
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0x4000
je 0x5136d4
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 0xa
jmp 0x5136de
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1c], 0
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
jmp 0x513a5f
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 0x24
je 0x51393c
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], ecx
cmp dword [ebp - 0x1a8], 0
jg 0x513742
jl 0x513724
cmp dword [ebp - 0x1ac], 0
jae 0x513742
mov edx, dword [ebp - 0x1ac]
not edx
mov eax, dword [ebp - 0x1a8]
not eax
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x140], eax
jmp 0x51375a
mov ecx, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x1a8]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x140], 0
ja 0x5137f0
jb 0x51377b
cmp dword [ebp - 0x144], 0x7f
ja 0x5137f0
mov ecx, dword [ebp - 0x1ac]
and ecx, 1
mov edx, dword [ebp - 0x1a8]
and edx, 0
mov dword [ebp - 0x674], ecx
mov dword [ebp - 0x670], edx
mov eax, dword [ebp - 0x674]
cmp eax, dword [ebp - 0x1ac]
jne 0x5137cf
mov ecx, dword [ebp - 0x670]
cmp ecx, dword [ebp - 0x1a8]
jne 0x5137cf
cmp dword [ebp - 0x604], 4
jl 0x5137cf
mov edx, dword [ebp - 0x144]
add edx, 8
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
jmp 0x5137eb
mov ecx, dword [ebp - 0x58]
add ecx, 1
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 1
jmp 0x513937
cmp dword [ebp - 0x140], 0
ja 0x513828
jb 0x513807
cmp dword [ebp - 0x144], 0x7fff
ja 0x513828
mov ecx, dword [ebp - 0x58]
add ecx, 2
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 2
jmp 0x513937
cmp dword [ebp - 0x140], 0
ja 0x513860
jb 0x51383f
cmp dword [ebp - 0x144], 0x7fffff
ja 0x513860
mov ecx, dword [ebp - 0x58]
add ecx, 3
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 3
jmp 0x513937
cmp dword [ebp - 0x140], 0
ja 0x513898
jb 0x513877
cmp dword [ebp - 0x144], 0x7fffffff
ja 0x513898
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 4
jmp 0x513937
cmp dword [ebp - 0x140], 0x7fff
ja 0x5138cd
jb 0x5138af
cmp dword [ebp - 0x144], 0xffffffff
ja 0x5138cd
mov ecx, dword [ebp - 0x58]
add ecx, 6
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 5
jmp 0x513937
mov ecx, dword [ebp - 0x58]
add ecx, 8
mov edx, dword [ebp - 0x54]
adc edx, 0
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 0x20
je 0x51392d
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
call fcn.005713f0
mov eax, dword [ebp - 0x20]
movsd qword [eax], xmm0
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0xffffffdf
mov eax, dword [ebp - 0x20]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
or edx, 8
mov eax, dword [ebp - 0x20]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1c], 7
jmp 0x513937
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], 6
jmp 0x513a5f
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 8
je 0x513972
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x58]
add eax, 8
mov ecx, dword [ebp - 0x54]
adc ecx, 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], 7
jmp 0x513a5f
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x24c], ecx
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 2
je 0x513996
mov dword [ebp - 0x384], 1
jmp 0x5139a0
mov dword [ebp - 0x384], 0
mov ecx, dword [ebp - 0x24c]
mov edx, dword [ebp - 0x384]
lea eax, [edx + ecx*2 + 0xc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0x4000
je 0x513a27
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xec]
lea eax, [edx + ecx*2]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x58]
or ecx, dword [ebp - 0x54]
je 0x513a09
mov edx, dword [ebp - 0x20]
push edx
call fcn.0051b7a0
add esp, 4
test eax, eax
je 0x5139f6
jmp 0x519818
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24c]
add ecx, dword [eax]
mov dword [ebp - 0x24c], ecx
jmp 0x513a27
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
cdq
add eax, dword [ebp - 0x1e0]
adc edx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0x24c]
xor ecx, ecx
add eax, dword [ebp - 0x58]
adc ecx, dword [ebp - 0x54]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xec]
xor eax, eax
push eax
push edx
call fcn.0050f550
add esp, 8
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xec]
mov dword [ecx + 0x1c], edx
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x250]
jne 0x513a6c
jmp 0x513a82
mov ecx, dword [ebp - 0x20]
sub ecx, 0x28
mov dword [ebp - 0x20], ecx
mov edx, 1
test edx, edx
jne 0x5136ad
cmp dword [ebp - 0x4c], 0x7e
jg 0x513a93
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x513ad2
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
call fcn.0050f550
add esp, 8
mov dword [ebp - 0x388], eax
mov ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x388]
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
call fcn.0050f550
add esp, 8
cmp dword [ebp - 0x388], eax
jge 0x513ad2
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
cdq
add eax, dword [ebp - 0x58]
adc edx, dword [ebp - 0x54]
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x338], edx
mov ecx, dword [ebp - 0x33c]
add ecx, dword [ebp - 0x1e0]
mov esi, dword [ebp - 0x338]
adc esi, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x18]
cdq
mov dword [ebp - 0x67c], ecx
mov dword [ebp - 0x678], esi
mov dword [ebp - 0x684], eax
mov dword [ebp - 0x680], edx
mov eax, dword [ebp - 0x678]
cmp eax, dword [ebp - 0x680]
jg 0x513b4b
jl 0x513b3d
mov ecx, dword [ebp - 0x67c]
cmp ecx, dword [ebp - 0x684]
ja 0x513b4b
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x10], ecx
jmp 0x513bca
mov ecx, dword [ebp - 0x33c]
add ecx, dword [ebp - 0x1e0]
mov esi, dword [ebp - 0x338]
adc esi, dword [ebp - 0x1dc]
mov edx, 4
imul eax, edx, 0
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + eax + 0x78]
cdq
mov dword [ebp - 0x68c], ecx
mov dword [ebp - 0x688], esi
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x690], edx
mov eax, dword [ebp - 0x688]
cmp eax, dword [ebp - 0x690]
jl 0x513bae
jg 0x513ba9
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [ebp - 0x694]
jbe 0x513bae
jmp 0x5197fb
mov edx, dword [ebp - 0x33c]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051b6c0
add esp, 8
test eax, eax
je 0x513bca
jmp 0x519818
mov ecx, dword [ebp - 0x33c]
mov edx, dword [ebp - 0x10]
mov dword [edx + 0xc], ecx
mov eax, 0x10
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x1e0]
or edx, dword [ebp - 0x1dc]
je 0x513c0e
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
or eax, 0x4000
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe8]
add ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x324], ecx
cmp dword [ebp - 0x4c], 0x80
jae 0x513c49
mov edx, dword [ebp - 0xe8]
mov al, byte [ebp - 0x4c]
mov byte [edx], al
mov dword [ebp - 0x38c], 1
jmp 0x513c64
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.00504300
add esp, 0xc
mov dword [ebp - 0x38c], eax
movzx edx, byte [ebp - 0x38c]
add edx, dword [ebp - 0xe8]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + 0x1c]
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xec], 0x80
jae 0x513cb2
mov eax, dword [ebp - 0xe8]
mov cl, byte [ebp - 0xec]
mov byte [eax], cl
mov dword [ebp - 0x390], 1
jmp 0x513cd1
mov edx, dword [ebp - 0xec]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.00504300
add esp, 0xc
mov dword [ebp - 0x390], eax
movzx edx, byte [ebp - 0x390]
add edx, dword [ebp - 0xe8]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xec]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0x324]
push edx
call fcn.0051e010
add esp, 0xc
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x20]
add eax, 0x28
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x394]
jbe 0x513c80
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x398], ecx
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x513d65
mov eax, dword [ebp - 0x398]
push eax
call fcn.004e30b0
add esp, 4
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x540], edx
jmp 0x513d98
xorps xmm0, xmm0
movlpd qword [ebp - 0x544], xmm0
lea ecx, [ebp - 0x544]
push ecx
mov edx, dword [ebp - 0x398]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e0680
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513d98
jmp 0x51961c
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x544]
mov edx, dword [ebp - 0x540]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x5109ab
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x108], 0
jne 0x513f46
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x513e12
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 5
jmp 0x513f41
mov eax, dword [ebp - 0x254]
push eax
call fcn.0050b7f0
add esp, 4
mov dword [ebp - 0x39c], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1f8]
mov eax, dword [ebp - 0xc]
add edx, dword [eax + 0x1f4]
push edx
push 0
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00520430
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513e56
jmp 0x51961c
mov edx, dword [ebp - 0x39c]
add edx, 0x21
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e8170
add esp, 0xc
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x513f41
mov edx, 0x20
shl edx, 0
add edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0x104]
mov dword [eax], edx
mov ecx, dword [ebp - 0x39c]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x254]
push edx
mov eax, dword [ebp - 0x104]
mov ecx, dword [eax]
push ecx
call fcn.00571df0
add esp, 0xc
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x513ed5
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x55], 0
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x5d], 1
jmp 0x513eea
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f4]
add ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1f4], ecx
mov eax, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1e8]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x104]
mov dword [eax + 0x1e8], ecx
mov edx, dword [ebp - 0x104]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x200]
mov eax, dword [eax + 0x204]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], eax
mov ecx, dword [ebp - 0x104]
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x208]
mov edx, dword [edx + 0x20c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x514378
mov dword [ebp - 0x15c], 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1e8]
mov dword [ebp - 0xac], ecx
jmp 0x513f70
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x513fa6
mov ecx, dword [ebp - 0x254]
push ecx
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
push eax
call fcn.0050b6e0
add esp, 8
test eax, eax
je 0x513fa6
mov ecx, dword [ebp - 0x15c]
add ecx, 1
mov dword [ebp - 0x15c], ecx
jmp 0x513f61
cmp dword [ebp - 0xac], 0
jne 0x513fd3
mov edx, dword [ebp - 0x254]
push edx
push str.no_such_savepoint:__s
mov eax, dword [ebp + 8]
push eax
call fcn.005107b0
add esp, 0xc
mov dword [ebp - 8], 1
jmp 0x514378
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x514005
cmp dword [ebp - 0x108], 1
jne 0x514005
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 5
jmp 0x514378
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x18], 0
jne 0x514028
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x5d]
test edx, edx
je 0x514028
mov dword [ebp - 0x3a0], 1
jmp 0x514032
mov dword [ebp - 0x3a0], 0
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
je 0x5140e0
cmp dword [ebp - 0x108], 1
jne 0x5140e0
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050fda0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514074
jmp 0x519733
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
mov eax, dword [ebp + 8]
push eax
call fcn.0051a490
add esp, 4
cmp eax, 5
jne 0x5140bc
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x55], 0
mov dword [ebp - 8], 5
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x28], edx
jmp 0x519733
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x5140d4
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 0
jmp 0x5140db
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x5d], 0
jmp 0x514253
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1f4]
sub edx, dword [ebp - 0x15c]
sub edx, 1
mov dword [ebp - 0x15c], edx
cmp dword [ebp - 0x108], 2
jne 0x5141b4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
and ecx, 1
je 0x51411c
mov dword [ebp - 0x3a4], 1
jmp 0x514126
mov dword [ebp - 0x3a4], 0
mov edx, dword [ebp - 0x3a4]
mov dword [ebp - 0x328], edx
mov dword [ebp - 0xf0], 0
jmp 0x51414d
mov eax, dword [ebp - 0xf0]
add eax, 1
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xf0]
cmp edx, dword [ecx + 0x14]
jge 0x5141b2
cmp dword [ebp - 0x328], 0
jne 0x514170
mov dword [ebp - 0x3a8], 1
jmp 0x51417a
mov dword [ebp - 0x3a8], 0
mov eax, dword [ebp - 0x3a8]
push eax
push 0x204
mov ecx, dword [ebp - 0xf0]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.004e3e80
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5141b0
jmp 0x51961c
jmp 0x51413e
jmp 0x5141be
mov dword [ebp - 0x328], 0
mov dword [ebp - 0xf0], 0
jmp 0x5141d9
mov edx, dword [ebp - 0xf0]
add edx, 1
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [eax + 0x14]
jge 0x514221
mov edx, dword [ebp - 0x15c]
push edx
mov eax, dword [ebp - 0x108]
push eax
mov ecx, dword [ebp - 0xf0]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.004e3140
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51421f
jmp 0x51961c
jmp 0x5141ca
cmp dword [ebp - 0x328], 0
je 0x514253
push 0
mov edx, dword [ebp - 0xc]
push edx
call fcn.004eb1c0
add esp, 8
mov eax, dword [ebp - 0xc]
push eax
call fcn.005054b0
add esp, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x18]
or edx, 1
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], edx
cmp dword [ebp - 8], 0
je 0x51425e
jmp 0x51961c
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1e8]
cmp edx, dword [ebp - 0xac]
je 0x5142ba
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1e8]
mov dword [ebp - 0x3ac], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x3ac]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x1e8], ecx
mov edx, dword [ebp - 0x3ac]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e8000
add esp, 8
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1f4]
sub edx, 1
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x1f4], edx
jmp 0x51425e
cmp dword [ebp - 0x108], 1
jne 0x514308
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e8], eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8000
add esp, 8
cmp dword [ebp - 0x32c], 0
jne 0x514306
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f4]
sub ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1f4], ecx
jmp 0x51433e
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0x200], edx
mov dword [eax + 0x204], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x208], ecx
mov dword [edx + 0x20c], eax
cmp dword [ebp - 0x32c], 0
je 0x514350
cmp dword [ebp - 0x108], 2
jne 0x514378
mov ecx, dword [ebp - 0x15c]
push ecx
mov edx, dword [ebp - 0x108]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.00520430
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514378
jmp 0x51961c
cmp dword [ebp - 8], 0
je 0x514383
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x1c4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x3b4], ecx
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
cmp dword [ebp - 0x1c4], eax
je 0x5144ab
cmp dword [ebp - 0x3b4], 0
je 0x5143d6
push 0x204
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00505d60
add esp, 8
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
jmp 0x514434
cmp dword [ebp - 0x1c4], 0
je 0x51440a
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc4], 0
jle 0x51440a
push str.cannot_commit_transaction___SQL_statements_in_progress
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 5
jmp 0x51961c
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.0050fda0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514428
jmp 0x519733
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp - 0x1c4]
mov byte [eax + 0x55], cl
mov edx, dword [ebp + 8]
push edx
call fcn.0051a490
add esp, 4
cmp eax, 5
jne 0x51447f
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov eax, 1
sub eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x55], al
mov dword [ebp - 8], 5
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [edx + 0x28], eax
jmp 0x519733
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e44d0
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
jne 0x51449d
mov dword [ebp - 8], 0x65
jmp 0x5144a4
mov dword [ebp - 8], 1
jmp 0x519733
cmp dword [ebp - 0x1c4], 0
jne 0x5144c0
mov dword [ebp - 0x3b0], 1
jmp 0x5144ca
mov dword [ebp - 0x3b0], 0
cmp dword [ebp - 0x3b0], 0
je 0x5144df
mov dword [ebp - 0x3bc], str.cannot_start_a_transaction_within_a_transaction
jmp 0x51450a
cmp dword [ebp - 0x3b4], 0
je 0x5144f4
mov dword [ebp - 0x3b8], str.cannot_rollback___no_transaction_is_active
jmp 0x5144fe
mov dword [ebp - 0x3b8], str.cannot_commit___no_transaction_is_active
mov eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x3bc], eax
mov ecx, dword [ebp - 0x3bc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 1
jmp 0x51961c
mov dword [ebp - 0x31c], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
je 0x5145a8
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x20]
and edx, 0x100000
mov eax, dword [ecx + 0x24]
and eax, 2
mov dword [ebp - 0x69c], edx
mov dword [ebp - 0x698], eax
mov ecx, dword [ebp - 0x69c]
or ecx, dword [ebp - 0x698]
je 0x5145a8
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x20]
and eax, 0x100000
mov ecx, dword [edx + 0x24]
and ecx, 0
mov dword [ebp - 0x6a4], eax
mov dword [ebp - 0x6a0], ecx
mov edx, dword [ebp - 0x6a4]
or edx, dword [ebp - 0x6a0]
je 0x51459c
mov dword [ebp - 8], 8
jmp 0x5145a3
mov dword [ebp - 8], 0xb
jmp 0x51961c
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
mov dword [ebp - 0x330], ecx
cmp dword [ebp - 0x330], 0
je 0x514705
lea edx, [ebp - 0x31c]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x330]
push edx
call fcn.004dfc40
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514628
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 5
jne 0x514623
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x28], ecx
jmp 0x519733
jmp 0x51961c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
shr eax, 6
and eax, 1
je 0x514705
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
je 0x514705
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x514665
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc0], 1
jle 0x514705
mov edx, dword [ebp + 8]
cmp dword [edx + 0x38], 0
jne 0x51469b
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f8]
add ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1f8], ecx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f4]
mov edx, dword [ebp - 0xc]
add ecx, dword [edx + 0x1f8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
sub edx, 1
push edx
push 0
mov eax, dword [ebp - 0xc]
push eax
call fcn.00520430
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x5146d5
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
push edx
mov eax, dword [ebp - 0x330]
push eax
call fcn.004dfbf0
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x200]
mov edx, dword [edx + 0x204]
mov dword [ecx + 0x50], eax
mov dword [ecx + 0x54], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x208]
mov ecx, dword [ecx + 0x20c]
mov dword [eax + 0x58], edx
mov dword [eax + 0x5c], ecx
cmp dword [ebp - 8], 0
jne 0x5147c9
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
test eax, eax
je 0x5147c9
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x31c]
cmp edx, dword [ecx + 0xc]
jne 0x51474a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 0xc]
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0x10]
je 0x5147c9
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x84]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e8000
add esp, 8
push str.database_schema_has_changed
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e8600
add esp, 8
mov edx, dword [ebp + 8]
mov dword [edx + 0x84], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 0xc]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x31c]
je 0x5147aa
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.00505580
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa0]
and ecx, 0xfffffffc
or ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0xa0], ecx
mov dword [ebp - 8], 0x11
cmp dword [ebp - 8], 0
je 0x5147d4
jmp 0x51961c
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x610], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x60c], eax
lea ecx, [ebp - 0x614]
push ecx
mov edx, dword [ebp - 0x60c]
push edx
mov eax, dword [ebp - 0x610]
shl eax, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + eax + 4]
push eax
call fcn.004e1130
add esp, 0xc
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x614]
cdq
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 0xc]
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x278], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x278]
mov ecx, dword [eax + 4]
push ecx
call fcn.004e3f90
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 1
jne 0x5148c1
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
sub eax, ecx
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
or ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004f25b0
add esp, 8
jmp 0x5148dc
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 2
jne 0x5148dc
mov ecx, dword [ebp - 0x278]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xc]
mov byte [edx + 0x4c], cl
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 1
jne 0x514908
push 0
mov eax, dword [ebp - 0xc]
push eax
call fcn.004eb1c0
add esp, 8
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa0]
and edx, 0xfffffffc
mov eax, dword [ebp + 8]
mov dword [eax + 0xa0], edx
cmp dword [ebp - 8], 0
je 0x514913
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x80], edx
cmp dword [ebp - 0x80], 0
je case.0x510992.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 8]
jne case.0x510992.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e00b0
add esp, 4
jmp 0x514b4b
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
and eax, 3
cmp eax, 1
jne 0x51496f
mov dword [ebp - 8], 0x204
jmp 0x51961c
mov dword [ebp - 0x280], 0
mov dword [ebp - 0x25c], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x3c0], ecx
mov edx, dword [ebp - 0x3c0]
shl edx, 4
mov eax, dword [ebp - 0xc]
add edx, dword [eax + 0x10]
mov dword [ebp - 0x27c], edx
mov ecx, dword [ebp - 0x27c]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x618], edx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x70
jne 0x514a0f
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 8
or eax, 4
mov dword [ebp - 0x3c4], eax
mov ecx, dword [ebp - 0x27c]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx + 0x4c]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x9b]
cmp eax, edx
jge 0x514a0d
mov eax, dword [ebp - 0x27c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x4c]
mov byte [edx + 0x9b], al
jmp 0x514a19
mov dword [ebp - 0x3c4], 0
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x514a49
imul eax, dword [ebp - 0x258], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051bd10
add esp, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx]
mov dword [ebp - 0x258], eax
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff7
jne 0x514a73
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x25c], ecx
mov edx, dword [ebp - 0x25c]
movzx eax, word [edx + 8]
mov dword [ebp - 0x280], eax
jmp 0x514a8b
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffffd
jne 0x514a8b
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x280], ecx
push 0
mov edx, dword [ebp - 0x280]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x514ab5
jmp 0x519818
mov eax, dword [ebp - 0x80]
mov cl, byte [ebp - 0x3c0]
mov byte [eax + 1], cl
mov edx, dword [ebp - 0x80]
mov byte [edx + 2], 1
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 8]
or ecx, 4
mov edx, dword [ebp - 0x80]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x258]
mov dword [eax + 0x38], ecx
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0x25c]
push ecx
mov edx, dword [ebp - 0x3c4]
push edx
mov eax, dword [ebp - 0x258]
push eax
mov ecx, dword [ebp - 0x618]
push ecx
call fcn.004e0840
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x25c]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff7
je 0x514b35
mov dword [ebp - 0x3c8], 1
jmp 0x514b3f
mov dword [ebp - 0x3c8], 0
mov eax, dword [ebp - 0x80]
mov cl, byte [ebp - 0x3c8]
mov byte [eax + 4], cl
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 3
push eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e08f0
add esp, 8
cmp dword [ebp - 8], 0
je 0x514b70
jmp 0x51961c
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x10c], ecx
push 0
mov edx, dword [ebp - 0x10c]
movsx eax, word [edx + 0x3c]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jne 0x514bb8
jmp 0x519818
mov ecx, dword [ebp - 0x60]
mov byte [ecx + 2], 1
mov edx, dword [ebp - 0x60]
mov eax, dword [edx + 8]
or eax, 1
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10c]
mov cl, byte [eax + 4]
mov byte [edx + 4], cl
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 8]
shr eax, 2
and eax, 1
and eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 8]
and edx, 0xfffffffb
or edx, eax
mov eax, dword [ebp - 0x60]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 8]
or edx, 8
mov eax, dword [ebp - 0x60]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx + 8]
or edx, 8
mov eax, dword [ebp - 0x10c]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 0x2c]
push edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x30]
push ecx
push 4
mov edx, dword [ebp - 0x60]
mov eax, dword [edx + 0x38]
push eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004e0840
add esp, 0x14
mov dword [ebp - 8], eax
jmp case.0x510992.88
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jle 0x514caf
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
mov eax, dword [ebp - 0x18]
mov dword [eax + edx + 0xc], 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
mov eax, dword [ebp - 0x18]
mov dword [eax + edx + 0x10], 0x5fd913
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
je 0x514d1b
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 8]
shr ecx, 3
and ecx, 1
jne 0x514d1b
mov edx, dword [ebp - 0x3c]
movsx eax, word [edx + 0x3c]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], eax
jg 0x514d1b
mov edx, dword [ebp - 0x3c]
xor eax, eax
xor ecx, ecx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov edx, dword [ebp - 0x3c]
mov dword [edx + 0x20], 0
push 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004e00e0
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x514eae
push 0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x514d45
jmp 0x519818
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 8]
or ecx, 1
mov edx, dword [ebp - 0x3c]
mov dword [edx + 8], ecx
mov eax, dword [0x5b9650]
push eax
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
or edx, 5
push edx
mov eax, dword [ebp - 0x3c]
add eax, 0x10
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 0
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
push eax
call fcn.004e25e0
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x514eae
push 0
push 1
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004dfc40
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x514e5a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x284], ecx
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x284]
mov dword [edx + 0x30], eax
cmp dword [ebp - 0x284], 0
je 0x514e2a
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
or edx, 2
push edx
mov eax, dword [ebp - 0x3c]
add eax, 0x38
push eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004e0800
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x514e21
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 0x284]
push edx
push 4
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x38]
push ecx
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004e0840
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 4], 0
jmp 0x514e5a
mov edx, dword [ebp - 0x3c]
mov dword [edx + 0x38], 1
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x2c]
push ecx
push 0
push 4
push 1
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004e0840
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 4], 1
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
cmp eax, 8
je 0x514e72
mov dword [ebp - 0x3cc], 1
jmp 0x514e7c
mov dword [ebp - 0x3cc], 0
mov ecx, dword [ebp - 0x3cc]
and ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 8]
and eax, 0xfffffffb
or eax, ecx
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 8], eax
cmp dword [ebp - 8], 0
je 0x514eae
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004e0190
add esp, 4
cmp dword [ebp - 8], 0
je 0x514eb9
jmp 0x51961c
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 2], 1
jmp case.0x510992.88
push 1
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jne 0x514ef5
jmp 0x519818
mov ecx, dword [ebp - 0x288]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x288]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0051e470
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514f2c
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x28c], eax
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x18]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x6ac], edx
mov dword [ebp - 0x6a8], eax
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x18]
add edx, 1
mov eax, dword [ecx + 0x1c]
adc eax, 0
mov ecx, dword [ebp - 0x28c]
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0x6ac]
or edx, dword [ebp - 0x6a8]
jne 0x514f8f
jmp 0x510a7e
jmp case.0x510992.88
push 3
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jne 0x514fc4
jmp 0x519818
mov edx, dword [ebp - 0x1c8]
mov byte [edx + 2], 1
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x1c8]
mov byte [eax + 4], 1
call fcn.004e0ff0
mov ecx, dword [ebp - 0x1c8]
mov dword [ecx + 0x2c], eax
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0051a330
add esp, 8
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov dword [edx + eax*4], 0
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x290], 0
mov ecx, dword [ebp - 0x94]
mov byte [ecx + 2], 0
mov edx, dword [ebp - 0x94]
mov byte [edx + 3], 0
mov eax, dword [ebp - 0x94]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp - 0x94]
movzx edx, byte [ecx + 4]
test edx, edx
je 0x515223
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
mov ax, word [edx + 8]
mov word [ebp - 0x1b0], ax
movzx ecx, word [ebp - 0x1b0]
and ecx, 0x2e
cmp ecx, 2
jne 0x5150c4
push 0
mov edx, dword [ebp - 0x28]
push edx
call fcn.004ae090
add esp, 8
mov eax, dword [ebp - 0x28]
push eax
call fcn.0051ac40
add esp, 4
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], edx
mov ecx, dword [ebp - 0x28]
mov dx, word [ecx + 8]
mov word [ebp - 0x12c], dx
mov eax, dword [ebp - 0x28]
mov cx, word [ebp - 0x1b0]
mov word [eax + 8], cx
movzx edx, word [ebp - 0x12c]
and edx, 0x24
jne 0x5151cf
movzx eax, word [ebp - 0x12c]
and eax, 8
jne 0x51515c
movzx ecx, word [ebp - 0x12c]
and ecx, 1
jne 0x515129
cmp dword [ebp - 0xb0], 0x19
jl 0x515130
jmp 0x510a7e
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e22c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x515157
jmp 0x51961c
jmp 0x5153ed
mov edx, dword [ebp - 0x28]
sub esp, 8
movsd xmm0, qword [edx]
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x340]
push eax
mov ecx, dword [ebp - 0x344]
push ecx
call fcn.004f8d60
add esp, 0x10
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0
jle 0x5151ac
mov edx, dword [ebp - 0xb0]
and edx, 1
jne 0x5151aa
mov eax, dword [ebp - 0xb0]
sub eax, 1
mov dword [ebp - 0xb0], eax
jmp 0x5151cf
cmp dword [ebp - 0x3d0], 0
jge 0x5151cf
mov ecx, dword [ebp - 0xb0]
and ecx, 1
je 0x5151cf
mov edx, dword [ebp - 0xb0]
add edx, 1
mov dword [ebp - 0xb0], edx
lea eax, [ebp - 0x8c]
push eax
push 0
mov ecx, dword [ebp - 0x340]
push ecx
mov edx, dword [ebp - 0x344]
push edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e3730
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x340]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
cmp dword [ebp - 8], 0
je 0x51521e
jmp 0x51961c
jmp 0x5152fc
push 2
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e0890
add esp, 8
test eax, eax
je 0x515245
mov dword [ebp - 0x290], 1
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x608], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x6e8], ecx
mov dx, word [ebp - 0x608]
mov word [ebp - 0x6e0], dx
mov eax, dword [ebp - 0xb0]
sub eax, 0x17
and eax, 1
je 0x515288
mov dword [ebp - 0x3d4], 0xffffffff
jmp 0x515292
mov dword [ebp - 0x3d4], 1
mov cl, byte [ebp - 0x3d4]
mov byte [ebp - 0x6de], cl
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x6e4], eax
mov byte [ebp - 0x6da], 0
lea ecx, [ebp - 0x8c]
push ecx
lea edx, [ebp - 0x6e8]
push edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e1390
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5152e3
jmp 0x51961c
cmp dword [ebp - 0x290], 0
je 0x5152fc
movzx edx, byte [ebp - 0x6da]
test edx, edx
jne 0x5152fc
jmp 0x5153ed
cmp dword [ebp - 0xb0], 0x19
jl 0x515373
cmp dword [ebp - 0x8c], 0
jl 0x515320
cmp dword [ebp - 0x8c], 0
jne 0x515367
cmp dword [ebp - 0xb0], 0x1a
jne 0x515367
mov dword [ebp - 0x8c], 0
push 0
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e2530
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x515365
cmp dword [ebp - 8], 0x65
jne 0x515360
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x515365
jmp 0x51961c
jmp 0x515371
mov dword [ebp - 0x8c], 0
jmp 0x5153ed
cmp dword [ebp - 0x8c], 0
jg 0x51538e
cmp dword [ebp - 0x8c], 0
jne 0x5153d5
cmp dword [ebp - 0xb0], 0x17
jne 0x5153d5
mov dword [ebp - 0x8c], 0
push 0
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e2e90
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5153d3
cmp dword [ebp - 8], 0x65
jne 0x5153ce
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x5153d3
jmp 0x51961c
jmp 0x5153ed
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e08c0
add esp, 4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x5153fd
jmp 0x510a7e
cmp dword [ebp - 0x290], 0
je 0x51540f
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp case.0x510992.88
mov ecx, 0x14
shl ecx, 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + ecx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x260], eax
mov ecx, dword [ebp - 0x260]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e0900
add esp, 4
test eax, eax
jne 0x51544d
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x298], ecx
mov edx, dword [ebp - 0x260]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x72c], eax
mov ecx, 0x14
shl ecx, 0
mov edx, dword [ebp - 4]
mov ax, word [edx + ecx + 0x10]
mov word [ebp - 0x724], ax
mov byte [ebp - 0x722], 0
mov ecx, 0x14
shl ecx, 0
mov edx, dword [ebp - 4]
imul eax, dword [edx + ecx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x728], eax
mov dword [ebp - 0x294], 0
mov ecx, 1
test ecx, ecx
je 0x51555e
lea edx, [ebp - 0x294]
push edx
lea eax, [ebp - 0x72c]
push eax
mov ecx, dword [ebp - 0x260]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0051aa30
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5154e5
jmp 0x51961c
cmp dword [ebp - 0x294], 0
jle 0x5154fc
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp 0x510a7e
cmp dword [ebp - 0x294], 0
jne 0x51550c
jmp 0x510a7e
cmp dword [ebp - 0x298], 0
jg 0x515517
jmp 0x51555e
mov ecx, dword [ebp - 0x298]
sub ecx, 1
mov dword [ebp - 0x298], ecx
push 0
mov edx, dword [ebp - 0x260]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e2530
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x515559
cmp dword [ebp - 8], 0x65
jne 0x515554
mov dword [ebp - 8], 0
jmp 0x5154ee
jmp 0x51961c
jmp 0x5154a9
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x264], edx
mov eax, dword [ebp - 0x264]
movzx ecx, word [eax + 0xc]
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 8]
jge 0x51559d
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 8]
mov word [eax + 0xc], dx
jmp 0x5155c0
mov eax, dword [ebp - 0x264]
movzx ecx, word [eax + 0xc]
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 0xc]
jle 0x5155c0
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 0xc]
mov word [eax + 0xc], dx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
cmp dword [eax + ecx*4], 0
jne 0x5155dc
jmp case.0x510992.11
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x64c], edx
mov eax, dword [ebp - 0x64c]
movzx ecx, word [eax + 0xc]
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 0x10]
jl case.0x510992.29
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
jle 0x515679
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x778], eax
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 0x10]
mov word [ebp - 0x770], dx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x774], eax
lea ecx, [ebp - 0x778]
mov dword [ebp - 0xfc], ecx
mov dword [ebp - 0x29c], 0
jmp 0x515712
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 8]
and eax, 0x4000
je 0x51569b
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.0051b7a0
add esp, 4
mov dword [ebp - 0x3d8], eax
jmp 0x5156a5
mov dword [ebp - 0x3d8], 0
mov edx, dword [ebp - 0x3d8]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x5156b9
jmp 0x519818
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x30]
push ecx
call fcn.0050fa20
add esp, 4
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x29c], edx
cmp dword [ebp - 0xfc], 0
jne 0x5156eb
jmp 0x519818
mov eax, dword [ebp - 0xfc]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0xf4]
mov eax, dword [edx + 0x30]
push eax
call fcn.0051d9a0
add esp, 0x10
mov ecx, dword [ebp - 0xfc]
mov byte [ecx + 0xa], 0
mov dword [ebp - 0x3e4], 0
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1d
jne 0x515786
mov dword [ebp - 0x1ec], 0
jmp 0x51574c
mov ecx, dword [ebp - 0x1ec]
add ecx, 1
mov dword [ebp - 0x1ec], ecx
mov edx, dword [ebp - 0xfc]
movzx eax, word [edx + 8]
cmp dword [ebp - 0x1ec], eax
jge 0x515786
imul ecx, dword [ebp - 0x1ec], 0x28
mov edx, dword [ebp - 0xfc]
mov eax, dword [edx + 4]
movzx ecx, word [eax + ecx + 8]
and ecx, 1
je 0x515784
mov dword [ebp - 0x3e4], 1
jmp 0x515786
jmp 0x51573d
lea edx, [ebp - 0x3dc]
push edx
mov eax, dword [ebp - 0xfc]
push eax
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e1390
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 0x29c], 0
je 0x5157c5
mov eax, dword [ebp - 0x29c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e8020
add esp, 8
cmp dword [ebp - 8], 0
je 0x5157d0
jmp 0x51961c
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x3dc]
mov dword [edx + 0x24], eax
cmp dword [ebp - 0x3dc], 0
jne 0x5157f4
mov dword [ebp - 0x3e0], 1
jmp 0x5157fe
mov dword [ebp - 0x3e0], 0
mov ecx, dword [ebp - 0x3e0]
mov dword [ebp - 0x2a0], ecx
mov edx, 1
sub edx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0xf4]
mov byte [eax + 2], dl
mov ecx, dword [ebp - 0xf4]
mov byte [ecx + 3], 0
mov edx, dword [ebp - 0xf4]
mov dword [edx + 0x20], 0
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x1f
jne 0x515850
cmp dword [ebp - 0x2a0], 0
je 0x51584e
jmp 0x510a7e
jmp 0x515883
cmp dword [ebp - 0x3e4], 0
jne 0x515862
cmp dword [ebp - 0x2a0], 0
jne 0x515867
jmp 0x510a7e
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1c
jne 0x515883
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 4]
mov ax, word [edx + 0x10]
mov word [ecx + 0xc], ax
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 8]
and ecx, 0x24
jne case.0x510992.33
mov edx, 0x28
imul esi, edx, 0
add esi, dword [ebp - 0x28]
mov ecx, 0xa
lea edi, [ebp - 0x810]
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [ebp - 0x19]
push eax
push 0x43
lea ecx, [ebp - 0x810]
push ecx
call fcn.004adff0
add esp, 0xc
movzx edx, word [ebp - 0x808]
and edx, 4
jne 0x5158e0
jmp 0x510a7e
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], ecx
jmp 0x51591b
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x34c], edx
mov dword [ebp - 0x348], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x160], edx
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x624], ecx
mov dword [ebp - 0x2a4], 0
lea edx, [ebp - 0x2a4]
push edx
push 0
mov eax, dword [ebp - 0x348]
push eax
mov ecx, dword [ebp - 0x34c]
push ecx
mov edx, dword [ebp - 0x624]
push edx
call fcn.004e3730
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x34c]
mov edx, dword [ebp - 0x348]
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
mov eax, dword [ebp - 0x160]
mov byte [eax + 2], 0
mov ecx, dword [ebp - 0x160]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0x160]
mov byte [edx + 3], 0
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x2a4]
mov dword [eax + 0x24], ecx
cmp dword [ebp - 0x2a4], 0
je 0x5159e3
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jne 0x5159de
push 0x16936
call fcn.004e6390
add esp, 4
mov dword [ebp - 8], eax
jmp 0x5159e3
jmp 0x510a7e
cmp dword [ebp - 8], 0
je 0x5159ee
jmp 0x51961c
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov ecx, dword [ebp - 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov eax, dword [edx + 0x18]
add eax, 1
mov ecx, dword [edx + 0x1c]
adc ecx, 0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 4]
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x68]
mov edx, dword [esi + edx*4]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
jmp case.0x510992.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x74], xmm0
mov dword [ebp - 0x17c], 0
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 8]
shr edx, 1
and edx, 1
jne 0x515b36
lea eax, [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e22c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x515acd
jmp 0x51961c
cmp dword [ebp - 0x17c], 0
je 0x515ae4
xor eax, eax
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], eax
jmp 0x515b36
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e1dd0
add esp, 4
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp dword [ebp - 0x70], 0x7fffffff
jl 0x515b24
jg 0x515b0d
cmp dword [ebp - 0x74], 0xffffffff
jb 0x515b24
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
or ecx, 2
mov edx, dword [ebp - 0xb8]
mov dword [edx + 8], ecx
jmp 0x515b36
mov eax, dword [ebp - 0x74]
add eax, 1
mov ecx, dword [ebp - 0x70]
adc ecx, 0
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x515c53
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x515b95
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x1f0], edx
jmp 0x515b6f
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x1f0], ecx
mov edx, dword [ebp - 0x1f0]
cmp dword [edx + 4], 0
je 0x515b7d
jmp 0x515b60
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
mov edx, dword [ebp - 0x1f0]
add ecx, dword [edx + 0x10]
mov dword [ebp - 0x164], ecx
jmp 0x515ba5
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x164], ecx
mov edx, dword [ebp - 0x164]
push edx
call fcn.0051bd10
add esp, 4
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x3e8], eax
mov ecx, dword [ebp - 0x3e8]
cmp dword [ecx], 0xffffffff
jne 0x515bda
mov edx, dword [ebp - 0x3e8]
cmp dword [edx + 4], 0x7fffffff
je 0x515bea
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
shr ecx, 1
and ecx, 1
je 0x515bf6
mov dword [ebp - 8], 0xd
jmp 0x51961c
mov edx, dword [ebp - 0x164]
mov eax, dword [edx]
add eax, 1
mov ecx, dword [edx + 4]
adc ecx, 0
mov dword [ebp - 0x6b4], eax
mov dword [ebp - 0x6b0], ecx
mov edx, dword [ebp - 0x70]
cmp edx, dword [ebp - 0x6b0]
jg 0x515c42
jl 0x515c2b
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x6b4]
jae 0x515c42
mov ecx, dword [ebp - 0x164]
mov edx, dword [ecx]
add edx, 1
mov eax, dword [ecx + 4]
adc eax, 0
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 8]
shr edx, 1
and edx, 1
je 0x515d10
mov dword [ebp - 0x2a8], 0
lea eax, [ebp - 0x74]
push eax
push 8
call fcn.004a75d0
add esp, 8
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x70]
and edx, 0x3fffffff
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x74]
add eax, 1
mov ecx, dword [ebp - 0x70]
adc ecx, 0
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
lea edx, [ebp - 0x17c]
push edx
push 0
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x74]
push ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e3730
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x515cf0
cmp dword [ebp - 0x17c], 0
jne 0x515cf0
mov ecx, dword [ebp - 0x2a8]
add ecx, 1
mov dword [ebp - 0x2a8], ecx
cmp dword [ebp - 0x2a8], 0x64
jl 0x515c71
cmp dword [ebp - 8], 0
je 0x515cfb
jmp 0x51961c
cmp dword [ebp - 0x17c], 0
jne 0x515d10
mov dword [ebp - 8], 0xd
jmp 0x51961c
mov edx, dword [ebp - 0xb8]
mov byte [edx + 3], 0
mov eax, dword [ebp - 0xb8]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x1f4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x628], eax
mov ecx, dword [ebp - 0x628]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x75c], edx
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffffa
jne 0x515dc8
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xfc], 0
je 0x515dc8
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ecx + 1]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx]
mov dword [ebp - 0x3f0], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x2ac], ecx
jmp 0x515ddc
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x3f0], 0
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 1
je 0x515e00
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ecx + 0x34]
adc eax, 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x30], edx
mov dword [ecx + 0x34], eax
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x20
je 0x515e21
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x75c]
mov eax, dword [ebp - 0x758]
mov dword [ecx + 0x28], edx
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x754], edx
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x748], ecx
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x10
je 0x515e5c
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x3ec], edx
jmp 0x515e66
mov dword [ebp - 0x3ec], 0
mov eax, dword [ebp - 0x3ec]
mov dword [ebp - 0x62c], eax
mov ecx, dword [ebp - 0x1f4]
movzx edx, word [ecx + 8]
and edx, 0x4000
je 0x515e94
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [eax]
mov dword [ebp - 0x744], ecx
jmp 0x515e9e
mov dword [ebp - 0x744], 0
mov dword [ebp - 0x764], 0
mov edx, dword [ebp - 0x62c]
push edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 0x8a
push ecx
lea edx, [ebp - 0x764]
push edx
mov eax, dword [ebp - 0x180]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e1720
add esp, 0x10
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x180]
mov byte [edx + 3], 0
mov eax, dword [ebp - 0x180]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
je 0x515efb
jmp 0x51961c
cmp dword [ebp - 0x2ac], 0
je 0x515f63
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 4
je 0x515f1c
mov dword [ebp - 0x3f4], 0x17
jmp 0x515f26
mov dword [ebp - 0x3f4], 0x12
mov eax, dword [ebp - 0x758]
push eax
mov ecx, dword [ebp - 0x75c]
push ecx
mov edx, dword [ebp - 0x2ac]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x3f0]
push ecx
mov edx, dword [ebp - 0x3f4]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xf8]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xfc]
call eax
add esp, 0x18
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x634], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x630], ecx
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x515fba
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + ecx]
mov ecx, dword [edx + ecx + 4]
mov dword [ebp - 0x564], eax
mov dword [ebp - 0x560], ecx
jmp 0x515fc5
xorps xmm0, xmm0
movlpd qword [ebp - 0x564], xmm0
mov edx, dword [ebp - 0x564]
mov eax, dword [ebp - 0x560]
mov dword [ebp - 0x6bc], edx
mov dword [ebp - 0x6b8], eax
mov ecx, dword [ebp - 0x6b8]
push ecx
mov edx, dword [ebp - 0x6bc]
push edx
mov eax, dword [ebp - 0x630]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 0x634]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e3ab0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516015
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x638], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 4]
movsx eax, byte [edx + 1]
cmp eax, 0xfffffffa
jne 0x5160b5
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xfc], 0
je 0x5160b5
mov edx, dword [ebp - 0x110]
movsx eax, byte [edx + 1]
shl eax, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + eax]
mov dword [ebp - 0x3f8], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x1f8], edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 2
je 0x5160b3
mov edx, dword [ebp - 0x110]
movzx eax, byte [edx + 4]
test eax, eax
je 0x5160b3
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e1dd0
add esp, 4
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
jmp 0x5160c9
mov dword [ebp - 0x3f8], 0
mov dword [ebp - 0x1f8], 0
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 2]
push eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e0a10
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x110]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x24], 0
cmp dword [ebp - 8], 0
je 0x51610b
jmp 0x51961c
mov edx, dword [ebp - 0x638]
and edx, 1
je 0x51618b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
add ecx, 1
mov edx, dword [eax + 0x34]
adc edx, 0
mov eax, dword [ebp + 8]
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xfc], 0
je 0x51618b
cmp dword [ebp - 0x1f8], 0
je 0x51618b
mov edx, dword [ebp - 0x1f8]
mov eax, dword [edx + 0x1c]
and eax, 0x80
jne 0x51618b
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ecx + 0x40]
push eax
mov ecx, dword [ebp - 0x1f8]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x3f8]
push eax
push 9
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0xf8]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xfc]
call ecx
add esp, 0x18
jmp case.0x510992.88
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
push eax
mov ecx, dword [edx + 0x30]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0051e100
add esp, 0xc
mov eax, dword [ebp + 8]
xor ecx, ecx
xor edx, edx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x640], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x63c], edx
mov dword [ebp - 0x3fc], 0
lea eax, [ebp - 0x3fc]
push eax
mov ecx, dword [ebp - 0x63c]
push ecx
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x640]
push eax
call fcn.0051e380
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516220
jmp 0x51961c
cmp dword [ebp - 0x3fc], 0
je 0x51622e
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x644], ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x644]
push eax
call fcn.0051ea50
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516276
jmp 0x51961c
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [edx + 0x20], 0
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x648], eax
mov ecx, dword [ebp - 0x648]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x404], edx
mov eax, dword [ebp - 0x404]
push eax
call fcn.004e2e70
add esp, 4
mov dword [ebp - 0x400], eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x400]
cmp ecx, dword [eax + edx + 0x78]
jbe 0x5162f9
jmp 0x5197fb
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x400]
push eax
mov ecx, dword [ebp - 0x404]
push ecx
call fcn.0051b9b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516321
jmp 0x51961c
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
jne 0x51634e
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
and ecx, 0x1000
je 0x51634e
mov edx, dword [ebp - 0x10]
push edx
call fcn.0051bd50
add esp, 4
test eax, eax
je 0x51634e
jmp 0x519818
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x51639f
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
test eax, eax
je 0x5163ca
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x40]
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0x35c], edx
mov dword [ebp - 0x358], eax
jmp 0x516493
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 2
jne 0x516439
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x408], edx
mov eax, dword [ebp - 0x408]
mov ecx, dword [eax]
mov dword [ebp - 0x6d8], ecx
lea edx, [ebp - 0x35c]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 0x6d8]
mov eax, dword [edx + 0x30]
call eax
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x516437
jmp 0x51961c
jmp 0x516493
mov eax, dword [ebp - 0xf8]
push eax
call fcn.00510110
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516456
jmp 0x51961c
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x516475
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x510992.88
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e1dd0
add esp, 4
mov dword [ebp - 0x35c], eax
mov dword [ebp - 0x358], edx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x35c]
mov eax, dword [ebp - 0x358]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x1fc], edx
mov eax, dword [ebp - 0x1fc]
mov byte [eax + 2], 1
mov ecx, dword [ebp - 0x1fc]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0x1fc]
movzx eax, byte [edx]
test eax, eax
jne 0x5164f7
mov ecx, dword [ebp - 0x1fc]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e00b0
add esp, 4
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x184]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x2b0], 0
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x88
jne 0x51655d
mov eax, dword [ebp - 0x184]
mov dword [eax + 0x24], 0xffffffff
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.004e0900
add esp, 4
test eax, eax
je 0x51655d
jmp case.0x510992.88
lea edx, [ebp - 0x2b0]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.004e22c0
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x184]
mov dl, byte [ebp - 0x2b0]
mov byte [ecx + 2], dl
mov eax, dword [ebp - 0x184]
mov byte [eax + 3], 0
mov ecx, dword [ebp - 0x184]
mov dword [ecx + 0x20], 0
cmp dword [ebp - 8], 0
je 0x5165a7
jmp 0x51961c
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jle 0x5165be
cmp dword [ebp - 0x2b0], 0
je 0x5165be
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x57c], ecx
mov edx, dword [ebp - 0x57c]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x410], eax
lea ecx, [ebp - 0x2b4]
push ecx
mov edx, dword [ebp - 0x410]
push edx
call fcn.004e1000
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51660b
jmp 0x51961c
cmp dword [ebp - 0x2b4], 0
jne 0x51666c
mov eax, dword [ebp - 0x410]
push eax
call fcn.004e30b0
add esp, 4
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x548], edx
cmp dword [ebp - 0x548], 0
jl 0x51666c
jg 0x516643
cmp dword [ebp - 0x54c], 0
jb 0x51666c
mov ecx, dword [ebp - 0x548]
push ecx
mov edx, dword [ebp - 0x54c]
push edx
call fcn.004fa4b0
add esp, 8
cwde
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
jge 0x51666c
mov dword [ebp - 0x2b4], 1
cmp dword [ebp - 0x2b4], 0
je 0x51667a
jmp 0x510a7e
jmp case.0x510992.88
mov edx, 4
shl edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0xac]
add ecx, 1
mov edx, 4
shl edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + edx + 0xac], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x200], 1
mov eax, dword [ebp - 0x168]
movzx ecx, byte [eax]
cmp ecx, 1
jne 0x5166ec
lea edx, [ebp - 0x200]
push edx
mov eax, dword [ebp - 0x168]
push eax
call fcn.0051e9a0
add esp, 8
mov dword [ebp - 8], eax
jmp 0x51672b
mov ecx, dword [ebp - 0x168]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x580], edx
lea eax, [ebp - 0x200]
push eax
mov ecx, dword [ebp - 0x580]
push ecx
call fcn.004e1000
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x168]
mov byte [edx + 3], 0
mov eax, dword [ebp - 0x168]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
je 0x516736
jmp 0x51961c
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x200]
mov byte [ecx + 2], dl
cmp dword [ebp - 0x200], 0
je 0x516753
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x16c]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.0051e790
add esp, 8
mov dword [ebp - 8], eax
jmp 0x5167b9
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x16c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x16c]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
call edx
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x16c]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
jne 0x516800
mov ecx, dword [ebp - 0x16c]
mov byte [ecx + 2], 0
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + eax*4 + 0xac]
add edx, 1
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
mov eax, dword [ebp + 8]
mov dword [eax + ecx*4 + 0xac], edx
jmp case.0x510992.11
cmp dword [ebp - 8], 0x65
je 0x51680b
jmp 0x51961c
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x16c]
mov byte [ecx + 2], 1
jmp 0x5109ab
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x2b8], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 1
je 0x516867
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
add eax, 1
mov ecx, dword [edx + 0x34]
adc ecx, 0
mov edx, dword [ebp + 8]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax + 8]
and ecx, 0x4000
je 0x51688a
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0051b7a0
add esp, 4
mov dword [ebp - 0x414], eax
jmp 0x516894
mov dword [ebp - 0x414], 0
mov eax, dword [ebp - 0x414]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5168a8
jmp 0x51961c
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x7b8], eax
mov dword [ebp - 0x7b4], edx
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x7c0], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x7ac], edx
mov eax, dword [ebp - 4]
mov cx, word [eax + 0x10]
mov word [ebp - 0x7a8], cx
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x10
je 0x516902
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x418], edx
jmp 0x51690c
mov dword [ebp - 0x418], 0
mov eax, dword [ebp - 0x418]
push eax
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x8a
push edx
lea eax, [ebp - 0x7c0]
push eax
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e1720
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2b8]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
je 0x516955
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x584], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx + 8]
and eax, 0x4000
je 0x51699e
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051b7a0
add esp, 4
mov dword [ebp - 0x41c], eax
jmp 0x5169a8
mov dword [ebp - 0x41c], 0
mov edx, dword [ebp - 0x41c]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x5169bc
jmp 0x51961c
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x584]
push ecx
call fcn.0051ead0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5169dd
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x204]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x420], edx
mov eax, dword [ebp - 0x204]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 4]
mov ax, word [edx + 0xc]
mov word [ebp - 0x734], ax
mov byte [ebp - 0x732], 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x738], edx
lea eax, [ebp - 0x588]
push eax
lea ecx, [ebp - 0x73c]
push ecx
mov edx, dword [ebp - 0x420]
push edx
call fcn.004e1390
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516a65
jmp 0x51961c
cmp dword [ebp - 0x588], 0
jne 0x516a8f
push 4
mov eax, dword [ebp - 0x420]
push eax
call fcn.004e0a10
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516a8d
jmp 0x51961c
jmp 0x516ac9
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
test edx, edx
je 0x516ac9
mov eax, dword [ebp - 0xc]
push eax
call fcn.00528d60
add esp, 4
test eax, eax
jne 0x516ac9
push str.index_corruption
push 0x16d56
push 0x30b
call fcn.005053c0
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x51961c
mov ecx, dword [ebp - 0x204]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0x204]
mov dword [edx + 0x24], 0
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
push edx
call fcn.00510110
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516b1a
jmp 0x51961c
mov eax, dword [ebp - 0x208]
movzx ecx, byte [eax + 2]
test ecx, ecx
jne 0x516bfa
xorps xmm0, xmm0
movlpd qword [ebp - 0x554], xmm0
lea edx, [ebp - 0x554]
push edx
mov eax, dword [ebp - 0x208]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0051ab00
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516b62
jmp 0x51961c
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x8c
jne 0x516bd1
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x188]
mov byte [ecx + 2], 0
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x554]
mov ecx, dword [ebp - 0x550]
mov dword [edx + 0x40], eax
mov dword [edx + 0x44], ecx
mov edx, dword [ebp - 0x188]
mov byte [edx + 3], 1
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x208]
mov dword [eax + 0x28], ecx
jmp 0x516bf8
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x554]
mov eax, dword [ebp - 0x550]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp 0x516c0d
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x424], ecx
mov edx, dword [ebp - 0x424]
movzx eax, byte [edx + 3]
test eax, eax
je 0x516c52
mov ecx, dword [ebp - 0x424]
push ecx
call fcn.0051a120
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516c52
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x428], eax
mov ecx, dword [ebp - 0x428]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x700], edx
mov eax, dword [ebp - 4]
mov cx, word [eax + 0x10]
mov word [ebp - 0x6f8], cx
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x29
jge 0x516c9d
mov byte [ebp - 0x6f6], 0xff
jmp 0x516ca4
mov byte [ebp - 0x6f6], 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x6fc], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0x354], xmm0
mov eax, dword [ebp - 0x428]
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x42c], ecx
mov edx, dword [ebp - 0x42c]
push edx
call fcn.004e2e70
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x350], ecx
cmp dword [ebp - 0x350], 0
jl 0x516d16
jg 0x516cff
cmp dword [ebp - 0x354], 0
jbe 0x516d16
cmp dword [ebp - 0x350], 0
jl 0x516d2b
jg 0x516d16
cmp dword [ebp - 0x354], 0x7fffffff
jbe 0x516d2b
push 0x16e22
call fcn.004e6390
add esp, 4
mov dword [ebp - 8], eax
jmp 0x51961c
push 0
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x838]
push eax
call fcn.0051bce0
add esp, 0xc
lea ecx, [ebp - 0x838]
push ecx
mov edx, dword [ebp - 0x354]
push edx
mov eax, dword [ebp - 0x42c]
push eax
call fcn.0051b9b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516d6b
jmp 0x51961c
push 0
lea ecx, [ebp - 0x700]
push ecx
mov edx, dword [ebp - 0x828]
push edx
mov eax, dword [ebp - 0x82c]
push eax
call fcn.0051d360
add esp, 0x10
mov dword [ebp - 0x18c], eax
lea ecx, [ebp - 0x838]
push ecx
call fcn.0051bf80
add esp, 4
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
and eax, 1
je 0x516dba
mov ecx, dword [ebp - 0x18c]
neg ecx
mov dword [ebp - 0x18c], ecx
jmp 0x516dc9
mov edx, dword [ebp - 0x18c]
add edx, 1
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 0
jle 0x516dd7
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, 1
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0xcc]
add edx, 1
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc0], edx
jle 0x516e2d
mov dword [ebp - 8], 6
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x9a], 2
jmp 0x51961c
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x2bc], eax
mov dword [ebp - 0x20c], 0
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x2bc]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.004e0f30
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov eax, dword [ebp - 0x20c]
cdq
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
cmp dword [ebp - 8], 0
je 0x516e96
jmp 0x51961c
cmp dword [ebp - 0x20c], 0
je 0x516ecc
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x2bc]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.00505ee0
add esp, 0x10
mov ecx, dword [ebp - 0x2bc]
add ecx, 1
mov byte [ebp - 0x61], cl
jmp case.0x510992.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x55c], xmm0
lea edx, [ebp - 0x55c]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
shl eax, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + eax + 4]
push eax
call fcn.004e00e0
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x516f67
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
add eax, dword [ebp - 0x55c]
mov ecx, dword [edx + 0x34]
adc ecx, dword [ebp - 0x558]
mov edx, dword [ebp + 8]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jle 0x516f67
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + edx]
add ecx, dword [ebp - 0x55c]
mov edx, dword [eax + edx + 4]
adc edx, dword [ebp - 0x558]
mov eax, dword [ebp - 4]
imul eax, dword [eax + 0xc], 0x28
mov esi, dword [ebp - 0x18]
mov dword [esi + eax], ecx
mov dword [esi + eax + 4], edx
cmp dword [ebp - 8], 0
je 0x516f72
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x2c0], edx
mov eax, dword [ebp - 0x2c0]
movzx ecx, byte [eax]
cmp ecx, 1
jne 0x516fb2
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0051e880
add esp, 8
jmp 0x516fd2
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e0170
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x516fd2
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x430], 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 0xc]
add ecx, dword [edx + 0x10]
mov dword [ebp - 0x58c], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x430]
push edx
mov eax, dword [ebp - 0x58c]
mov ecx, dword [eax + 4]
push ecx
call fcn.004e0800
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x517037
jmp 0x51961c
mov edx, dword [ebp - 0x430]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x510992.88
mov edx, dword [ebp - 0xc]
mov al, byte [edx + 0x60]
add al, 1
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x60], al
push 0
push 0
push 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004a6250
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
mov al, byte [edx + 0x60]
sub al, 1
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x60], al
cmp dword [ebp - 8], 0
je 0x51708f
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
jne 0x517125
mov edx, dword [ebp - 0x190]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx + 0xc]
push edx
call fcn.00506f80
add esp, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
and ecx, 0xffffffef
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x84
push edx
mov eax, dword [ebp - 0x190]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f7220
add esp, 0x10
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x18]
or eax, 1
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
and eax, 0xfffffffc
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa0], eax
jmp 0x517259
mov dword [ebp - 0x590], 0x5eb288
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x190]
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp + 8]
add ecx, 0x84
mov dword [ebp - 0x718], ecx
mov dword [ebp - 0x70c], 0
mov edx, dword [ebp - 0x190]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.004e2360
add esp, 4
mov dword [ebp - 0x704], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x590]
push edx
mov eax, dword [ebp - 0x190]
shl eax, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + eax]
push eax
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004fa890
add esp, 0x14
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0
jne 0x5171cc
mov dword [ebp - 8], 7
jmp 0x517259
mov edx, dword [ebp - 0xc]
mov byte [edx + 0xb1], 1
mov dword [ebp - 0x710], 0
mov dword [ebp - 0x708], 0
push 0
lea eax, [ebp - 0x71c]
push eax
push fcn.004f6ea0
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004a6250
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51721d
mov eax, dword [ebp - 0x710]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51723c
cmp dword [ebp - 0x708], 0
jne 0x51723c
push 0x16f1e
call fcn.004e6390
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8020
add esp, 8
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xb1], 0
cmp dword [ebp - 8], 0
je 0x51727b
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.005054b0
add esp, 4
cmp dword [ebp - 8], 7
jne 0x517276
jmp 0x519818
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004dd630
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5172a1
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.0050c8a0
add esp, 0xc
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0050c7e0
add esp, 0xc
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0050c900
add esp, 0xc
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x594], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x598], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2c8], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x434]
push ecx
mov edx, dword [ebp - 0x2c8]
mov eax, dword [edx]
add eax, 1
push eax
mov ecx, dword [ebp - 0x594]
push ecx
mov edx, 4
shl edx, 0
add edx, dword [ebp - 0x598]
push edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e1df0
add esp, 0x18
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051c040
add esp, 4
cmp dword [ebp - 0x434], 0
jne 0x51739f
jmp 0x5173f1
cmp dword [ebp - 0x438], 0
jne 0x5173af
jmp 0x519818
mov eax, dword [ebp - 0x434]
sub eax, 1
cdq
mov ecx, dword [ebp - 0x2c8]
mov esi, dword [ecx]
sub esi, eax
mov eax, dword [ecx + 4]
sbb eax, edx
mov ecx, dword [ebp - 0x2c8]
mov dword [ecx], esi
mov dword [ecx + 4], eax
push fcn.004a74c0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, dword [ebp - 0x438]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051c140
add esp, 0x18
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0050fb80
add esp, 8
jmp 0x5109ab
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0x10
jne 0x517442
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051c0e0
add esp, 4
test eax, eax
je 0x517442
jmp 0x519818
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
push edx
call fcn.005060e0
add esp, 0xc
jmp case.0x510992.88
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0x10
je 0x517493
lea ecx, [ebp - 0x6f0]
push ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
push eax
call fcn.00506180
add esp, 8
test eax, eax
jne 0x5174a6
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0051c040
add esp, 4
jmp case.0x510992.11
mov edx, dword [ebp - 0x6ec]
push edx
mov eax, dword [ebp - 0x6f0]
push eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.0051bff0
add esp, 0xc
jmp 0x5109ab
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x2cc], edx
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0x10
jne 0x517513
mov edx, dword [ebp - 0x14]
push edx
call fcn.0051c0e0
add esp, 4
test eax, eax
je 0x517513
jmp 0x519818
cmp dword [ebp - 0x2cc], 0
je 0x517550
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x2cc]
push eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00506210
add esp, 0x10
mov dword [ebp - 0x59c], eax
cmp dword [ebp - 0x59c], 0
je 0x517550
jmp 0x510a7e
cmp dword [ebp - 0x2cc], 0
jl 0x517572
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.005060e0
add esp, 0xc
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
test ecx, ecx
je 0x5175e5
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x5a0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x30], edx
jmp 0x5175c4
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0
je 0x5175da
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x1c]
cmp eax, dword [ebp - 0x5a0]
je 0x5175da
jmp 0x5175bb
cmp dword [ebp - 0x30], 0
je 0x5175e5
jmp case.0x510992.88
mov ecx, 4
imul edx, ecx, 0xa
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax + 0xe0]
cmp eax, dword [ecx + edx + 0x78]
jl 0x51761c
mov dword [ebp - 8], 1
push str.too_many_levels_of_trigger_recursion
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 8
jmp 0x51961c
mov edx, dword [ebp - 0x134]
movzx eax, word [edx + 8]
and eax, 0x10
jne 0x5177f3
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x98]
add edx, dword [eax + 0xc]
mov dword [ebp - 0x210], edx
mov ecx, dword [ebp - 0x98]
cmp dword [ecx + 0xc], 0
jne 0x517662
mov edx, dword [ebp - 0x210]
add edx, 1
mov dword [ebp - 0x210], edx
imul eax, dword [ebp - 0x210], 0x28
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx + 0xc]
lea ecx, [eax + edx*4 + 0x58]
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
add ecx, eax
mov dword [ebp - 0x43c], ecx
mov eax, dword [ebp - 0x43c]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e83f0
add esp, 0xc
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x5176b6
jmp 0x519818
mov ecx, dword [ebp - 0x134]
push ecx
call fcn.0051bf80
add esp, 4
mov edx, 0x410
mov eax, dword [ebp - 0x134]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x30]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x43c]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x134]
mov dword [edx + 0x24], 0x51a220
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x210]
mov dword [edx + 0x3c], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x60]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x18]
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1c]
mov dword [eax + 0x2c], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x70]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x74]
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x98]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x1c], edx
mov eax, 1
imul ecx, eax, 0x58
add ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
imul eax, dword [edx + 0x3c], 0x28
add ecx, eax
mov dword [ebp - 0x5a4], ecx
mov ecx, 1
imul edx, ecx, 0x58
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x194], edx
jmp 0x5177c6
mov eax, dword [ebp - 0x194]
add eax, 0x28
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x194]
cmp ecx, dword [ebp - 0x5a4]
je 0x5177f1
mov edx, 0x80
mov eax, dword [ebp - 0x194]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0xc]
mov dword [ecx + 0x20], edx
jmp 0x5177b7
jmp 0x5177ff
mov eax, dword [ebp - 0x134]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe0]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe0], eax
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd8]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov edx, dword [edx + 0x34]
mov dword [ecx + 0x48], eax
mov dword [ecx + 0x4c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x68]
mov ecx, dword [ecx + 0x6c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xec]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0xec], 0
mov eax, dword [ebp + 8]
xor ecx, ecx
xor edx, edx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0xd8], ecx
mov edx, 1
imul eax, edx, 0x58
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx + 0x60], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x3c]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
movzx ecx, word [eax + 0x40]
mov edx, dword [ebp + 8]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebp + 8]
imul ecx, dword [eax + 0x18], 0x28
add ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
mov dword [edx + 0x68], ecx
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
lea ecx, [eax + ecx*4]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x18]
push edx
call fcn.00572370
add esp, 0xc
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x38]
mov dword [edx + 0x70], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x98]
mov eax, dword [edx + 4]
mov dword [ecx + 0x74], eax
mov ecx, 0x14
imul edx, ecx, 0xffffffff
add edx, dword [ebp - 0x38]
mov dword [ebp - 4], edx
jmp 0x5109ab
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov dword [ebp - 0x2d0], eax
mov ecx, dword [ebp - 0x2d0]
imul edx, dword [ecx + 0x30], 0x14
mov eax, dword [ebp - 0x2d0]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
add eax, dword [ecx + edx + 4]
imul ecx, eax, 0x28
mov edx, dword [ebp - 0x2d0]
add ecx, dword [edx + 0x10]
mov dword [ebp - 0x5a8], ecx
push 0x1000
mov eax, dword [ebp - 0x5a8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c4a0
add esp, 0xc
jmp case.0x510992.88
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x20]
and eax, 0x80000
mov ecx, dword [edx + 0x24]
and ecx, 0
mov dword [ebp - 0x6c4], eax
mov dword [ebp - 0x6c0], ecx
mov edx, dword [ebp - 0x6c4]
or edx, dword [ebp - 0x6c0]
je 0x517a05
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cdq
mov ecx, dword [ebp - 0xc]
add eax, dword [ecx + 0x208]
adc edx, dword [ecx + 0x20c]
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x208], eax
mov dword [ecx + 0x20c], edx
jmp 0x517a4e
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x517a35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
cdq
mov ecx, dword [ebp - 0xc]
add eax, dword [ecx + 0x200]
adc edx, dword [ecx + 0x204]
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x200], eax
mov dword [ecx + 0x204], edx
jmp 0x517a4e
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
cdq
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x48]
adc edx, dword [ecx + 0x4c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x48], eax
mov dword [ecx + 0x4c], edx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x517aa9
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x440]
mov edx, dword [ebp - 0x440]
mov eax, dword [ecx + 0x200]
or eax, dword [edx + 0x204]
jne 0x517aa7
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x444], ecx
mov edx, dword [ebp - 0x444]
mov eax, dword [ebp - 0x444]
mov ecx, dword [edx + 0x208]
or ecx, dword [eax + 0x20c]
jne 0x517aa7
jmp 0x510a7e
jmp 0x517aee
mov edx, dword [ebp + 8]
mov dword [ebp - 0x448], edx
mov eax, dword [ebp - 0x448]
mov ecx, dword [ebp - 0x448]
mov edx, dword [eax + 0x48]
or edx, dword [ecx + 0x4c]
jne 0x517aee
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x44c], eax
mov ecx, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x44c]
mov eax, dword [ecx + 0x208]
or eax, dword [edx + 0x20c]
jne 0x517aee
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xd8], 0
je 0x517b42
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov dword [ebp - 0x214], eax
jmp 0x517b1f
mov ecx, dword [ebp - 0x214]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x214], edx
mov eax, dword [ebp - 0x214]
cmp dword [eax + 4], 0
je 0x517b2d
jmp 0x517b10
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
mov eax, dword [ebp - 0x214]
add edx, dword [eax + 0x10]
mov dword [ebp - 0x14], edx
jmp 0x517b4f
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051bd10
add esp, 4
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.0051bd10
add esp, 4
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x450], ecx
mov dword [ebp - 0x454], edx
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x454]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jg 0x517bbe
jl 0x517bae
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x454]
mov edx, dword [eax]
cmp edx, dword [ecx]
jae 0x517bbe
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x458], ecx
mov edx, dword [ebp - 0x458]
cmp dword [edx + 4], 0
jl 0x517c12
jg 0x517bf2
mov eax, dword [ebp - 0x458]
cmp dword [eax], 0
jbe 0x517c12
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0xc]
cdq
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx]
sub esi, eax
mov eax, dword [ecx + 4]
sbb eax, edx
mov ecx, dword [ebp - 0x14]
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x510a7e
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x364], eax
mov dword [ebp - 0x360], ecx
cmp dword [ebp - 0x360], 0
jl 0x517cd0
jg 0x517c6c
cmp dword [ebp - 0x364], 0
jbe 0x517cd0
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
cmp dword [eax + 4], 0
jl 0x517ca4
jg 0x517c8e
mov ecx, dword [ebp - 0x45c]
cmp dword [ecx], 0
jbe 0x517ca4
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], ecx
jmp 0x517caf
xorps xmm0, xmm0
movlpd qword [ebp - 0x56c], xmm0
mov edx, dword [ebp - 0x568]
push edx
mov eax, dword [ebp - 0x56c]
push eax
lea ecx, [ebp - 0x364]
push ecx
call fcn.004dbae0
add esp, 0xc
test eax, eax
je 0x517ce1
mov edx, dword [ebp - 0x10]
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov dword [edx + 4], eax
jmp 0x517cf5
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x364]
mov eax, dword [ebp - 0x360]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
mov edx, dword [ebp - 0x460]
mov eax, dword [ecx]
or eax, dword [edx + 4]
je 0x517d60
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x464], ecx
mov edx, dword [ebp - 0x464]
cmp dword [edx + 4], 0
jl 0x517d5b
jg 0x517d45
mov eax, dword [ebp - 0x464]
cmp dword [eax], 0
jbe 0x517d5b
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
sub edx, 1
mov eax, dword [ecx + 4]
sbb eax, 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp 0x510a7e
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x468], ecx
mov edx, dword [ebp - 0x468]
cmp dword [edx + 4], 0x80000000
jl 0x517dad
jg 0x517d97
mov eax, dword [ebp - 0x468]
cmp dword [eax], 0
jbe 0x517dad
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
sub edx, 1
mov eax, dword [ecx + 4]
sbb eax, 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x46c]
mov ecx, dword [ebp - 0x46c]
mov edx, dword [eax]
or edx, dword [ecx + 4]
jne 0x517dce
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
mov dword [ebp - 0x2d4], ecx
mov edx, dword [ebp - 0x2d4]
lea eax, [edx*4 + 0x44]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8170
add esp, 0xc
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x517e11
jmp 0x519818
mov eax, dword [ebp - 0x9c]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x9c]
lea eax, [edx + ecx*4 + 0x1c]
mov ecx, dword [ebp - 0x9c]
mov dword [ecx], eax
push 1
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax]
push ecx
call fcn.0051bce0
add esp, 0xc
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
mov edx, dword [ebp - 0x9c]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp + 8]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x9c]
mov byte [edx + 0x18], 0
mov eax, dword [ebp - 0x9c]
mov dword [eax + 0x14], 0
mov ecx, dword [ebp - 0x9c]
mov dl, byte [ebp - 0x2d4]
mov byte [ecx + 0x19], dl
mov eax, dword [ebp - 4]
mov byte [eax + 1], 0xf0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x9c]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 4]
mov byte [eax], 0xa2
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 8]
cmp eax, dword [ebp - 0x218]
je 0x517f3c
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x218]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 0x50]
movzx ecx, byte [eax + 0x19]
sub ecx, 1
mov dword [ebp - 0x114], ecx
jmp 0x517f12
mov edx, dword [ebp - 0x114]
sub edx, 1
mov dword [ebp - 0x114], edx
cmp dword [ebp - 0x114], 0
jl 0x517f3c
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
add ecx, dword [ebp - 0x114]
imul edx, ecx, 0x28
add edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + eax*4 + 0x1c], edx
jmp 0x517f03
mov edx, dword [ebp - 0x218]
mov eax, dword [edx + 0xc]
add eax, 1
mov ecx, dword [ebp - 0x218]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x517f7d
mov eax, dword [ebp - 0x50]
add eax, 0x1c
push eax
mov ecx, dword [ebp - 0x50]
movzx edx, byte [ecx + 0x19]
push edx
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x1c]
call eax
add esp, 0xc
jmp 0x517f9e
mov ecx, dword [ebp - 0x50]
add ecx, 0x1c
push ecx
mov edx, dword [ebp - 0x50]
movzx eax, byte [edx + 0x19]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x10]
call ecx
add esp, 0xc
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x14], 0
je 0x518055
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x14], 0
jle 0x517fdd
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.004a9da0
add esp, 4
push eax
push 0x5eb2ec
mov eax, dword [ebp + 8]
push eax
call fcn.005107b0
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x50]
movzx ecx, byte [eax + 0x18]
test ecx, ecx
je 0x518024
mov edx, 0x14
imul eax, edx, 0xffffffff
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + eax + 4]
mov dword [ebp - 0x114], edx
cmp dword [ebp - 0x114], 0
je 0x51801d
push 0
push 1
imul eax, dword [ebp - 0x114], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.0051bff0
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov byte [ecx + 0x18], 0
mov edx, dword [ebp - 0x50]
mov eax, dword [edx]
push eax
call fcn.0051bf80
add esp, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov eax, 1
mov word [edx + 8], ax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x14], 0
cmp dword [ebp - 8], 0
je 0x518055
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x5180a9
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x170]
push eax
call fcn.0051b530
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x170], edx
jmp 0x5180c2
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x170]
push edx
call fcn.0051b840
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5180ee
mov eax, dword [ebp - 0x170]
push eax
call fcn.004a9da0
add esp, 4
push eax
push 0x5eb2f0
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 0xc
jmp 0x51961c
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x170]
push eax
call fcn.0050fb80
add esp, 8
mov ecx, dword [ebp - 0x170]
push ecx
call fcn.0051c5c0
add esp, 4
test eax, eax
je 0x51811a
jmp 0x5197fb
jmp case.0x510992.88
mov edx, 4
imul eax, edx, 0
mov dword [ebp + eax - 0x578], 0
mov ecx, 4
shl ecx, 1
mov dword [ebp + ecx - 0x578], 0xffffffff
mov edx, 4
shl edx, 0
mov dword [ebp + edx - 0x578], 0xffffffff
mov eax, 4
shl eax, 1
lea ecx, [ebp + eax - 0x578]
push ecx
mov edx, 4
shl edx, 0
lea eax, [ebp + edx - 0x578]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e4220
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5181be
cmp dword [ebp - 8], 5
je 0x5181a4
jmp 0x51961c
mov dword [ebp - 8], 0
mov eax, 4
imul ecx, eax, 0
mov dword [ebp + ecx - 0x578], 1
mov dword [ebp - 0x21c], 0
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x2d8], eax
jmp 0x5181f8
mov ecx, dword [ebp - 0x21c]
add ecx, 1
mov dword [ebp - 0x21c], ecx
mov edx, dword [ebp - 0x2d8]
add edx, 0x28
mov dword [ebp - 0x2d8], edx
cmp dword [ebp - 0x21c], 3
jge 0x518222
mov eax, dword [ebp - 0x21c]
mov eax, dword [ebp + eax*4 - 0x578]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x2d8]
push ecx
call fcn.0051bff0
add esp, 0xc
jmp 0x5181da
jmp case.0x510992.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + ecx + 4]
mov dword [ebp - 0x478], ecx
mov edx, dword [ebp - 0x478]
push edx
call fcn.004e2dd0
add esp, 4
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fcee0
add esp, 4
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x51829e
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004fd2f0
add esp, 4
test eax, eax
jne 0x5182bd
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x84], eax
push 1
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004fcdd0
add esp, 8
mov dword [ebp - 0x5ac], eax
cmp dword [ebp - 0x84], 5
jne 0x51830f
mov edx, dword [ebp - 0x5ac]
push edx
call fcn.0050b7f0
add esp, 4
test eax, eax
je 0x518303
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fe8c0
add esp, 4
test eax, eax
jne 0x51830f
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x118]
je 0x51842b
cmp dword [ebp - 0x118], 5
je 0x518337
cmp dword [ebp - 0x84], 5
jne 0x51842b
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x55]
test ecx, ecx
je 0x51834e
mov edx, dword [ebp - 0xc]
cmp dword [edx + 0xc0], 1
jle 0x518396
mov dword [ebp - 8], 1
cmp dword [ebp - 0x84], 5
jne 0x51836a
mov dword [ebp - 0x470], str.into
jmp 0x518374
mov dword [ebp - 0x470], str.out_of
mov eax, dword [ebp - 0x470]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 0xc
jmp 0x51961c
cmp dword [ebp - 0x118], 5
jne 0x5183d3
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fc8e0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x5183d1
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004fe0e0
add esp, 8
jmp 0x5183ed
cmp dword [ebp - 0x118], 4
jne 0x5183ed
push 2
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fe0e0
add esp, 8
cmp dword [ebp - 8], 0
jne 0x51842b
cmp dword [ebp - 0x84], 5
jne 0x518408
mov dword [ebp - 0x474], 2
jmp 0x518412
mov dword [ebp - 0x474], 1
mov ecx, dword [ebp - 0x474]
push ecx
mov edx, dword [ebp - 0x478]
push edx
call fcn.004e3620
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51843d
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004fe0e0
add esp, 8
mov dword [ebp - 0x84], eax
mov eax, 0xa02
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
mov edx, dword [ebp - 0x84]
push edx
call fcn.004f9500
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x10]
push eax
call fcn.0050b7f0
add esp, 4
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x10]
mov byte [edx + 0xa], 1
movzx eax, byte [ebp - 0x19]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0050fb80
add esp, 8
cmp dword [ebp - 8], 0
je 0x5184b2
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
je 0x5184d2
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x47c], ecx
jmp 0x5184dc
mov dword [ebp - 0x47c], 0
mov edx, dword [ebp - 0x47c]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 8]
add eax, 0x84
push eax
call fcn.00506810
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51850d
jmp 0x51961c
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0x5b0], edx
mov eax, dword [ebp - 0x5b0]
push eax
call fcn.004e1230
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51855a
cmp dword [ebp - 8], 0x65
je 0x51854e
jmp 0x51961c
mov dword [ebp - 8], 0
jmp 0x510a7e
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
jne 0x51857d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004eb1c0
add esp, 8
jmp 0x5185a0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
add eax, 1
and eax, 3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xa0]
and edx, 0xfffffffc
or edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0xa0], edx
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x5b4], edx
mov eax, dword [ebp - 0x5b4]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e0930
add esp, 4
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x5b8], eax
mov ecx, dword [ebp - 0x5b8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e09d0
add esp, 4
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x9d], cl
movzx edx, byte [ebp - 0x9d]
test edx, edx
jne 0x518644
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x20]
and ecx, 0x400
mov edx, dword [eax + 0x24]
and edx, 0
mov dword [ebp - 0x6cc], ecx
mov dword [ebp - 0x6c8], edx
cmp dword [ebp - 0x6cc], 0
jne 0x5186ba
cmp dword [ebp - 0x6c8], 0
jne 0x5186ba
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x5bc], ecx
movzx edx, byte [ebp - 0x9d]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x5bc]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.004e2400
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5186ba
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 6
jne 0x5186b5
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x5c0], edx
mov eax, dword [ebp - 0x5c0]
push eax
push str.database_table_is_locked:__s
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 0xc
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2dc]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0051f4d0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x2dc], 0
je 0x518700
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x51870b
jmp 0x51961c
jmp case.0x510992.88
push 0x28
push 0
lea eax, [ebp - 0x860]
push eax
call fcn.00572370
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x840], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x860]
push ecx
call fcn.0051b710
add esp, 8
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.004a9da0
add esp, 4
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0
je 0x51878d
mov eax, dword [ebp + 8]
add eax, 0x84
push eax
mov ecx, dword [ebp - 0x480]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0051f820
add esp, 0x10
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.0051bf80
add esp, 4
cmp dword [ebp - 8], 0
je 0x5187a7
jmp 0x51961c
jmp case.0x510992.88
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xcc]
add ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0xcc], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0051f940
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xcc]
sub eax, 1
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0xcc], eax
cmp dword [ebp - 8], 0
je 0x5187fe
jmp 0x51961c
jmp case.0x510992.88
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x220], 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x120], ecx
cmp dword [ebp - 0x120], 0
je 0x51883a
mov edx, dword [ebp - 0x120]
cmp dword [edx], 0
jne 0x518846
mov dword [ebp - 8], 6
jmp 0x51961c
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax]
mov dword [ebp - 0x484], ecx
lea edx, [ebp - 0x220]
push edx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp - 0x484]
mov edx, dword [ecx + 0x18]
call edx
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x518891
jmp 0x51961c
mov edx, dword [ebp - 0x220]
mov eax, dword [ebp - 0x120]
mov dword [edx], eax
push 2
push 0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ac4a0
add esp, 0x10
mov dword [ebp - 0x2e0], eax
cmp dword [ebp - 0x2e0], 0
je 0x5188eb
mov ecx, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x220]
mov dword [ecx + 0x2c], edx
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax + 4]
add ecx, 1
mov edx, dword [ebp - 0x120]
mov dword [edx + 4], ecx
jmp 0x518905
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x484]
mov edx, dword [ecx + 0x1c]
call edx
add esp, 4
jmp 0x519818
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x5c4], ecx
push 0
push 8
call fcn.004a7420
add esp, 8
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
jne 0x51893f
jmp 0x519818
mov edx, dword [ebp - 0x224]
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [eax + 0x2c]
mov dword [edx], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x224]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 1
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
push fcn.004a74c0
push str.ValueList
mov eax, dword [ebp - 0x224]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0051c070
add esp, 0x10
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x488], eax
mov ecx, 0x28
shl ecx, 0
add ecx, dword [ebp - 0x488]
mov dword [ebp - 0x48c], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x4a0], eax
mov ecx, dword [ebp - 0x4a0]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0x2e4], edx
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [eax]
mov dword [ebp - 0x498], ecx
mov edx, dword [ebp - 0x498]
mov eax, dword [edx]
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x48c]
mov edx, dword [ecx]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x488]
mov ecx, dword [eax]
mov dword [ebp - 0x5c8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x490], eax
mov dword [ebp - 0x198], 0
jmp 0x518a4b
mov ecx, dword [ebp - 0x198]
add ecx, 1
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x198]
cmp edx, dword [ebp - 0x494]
jge 0x518a7c
mov eax, dword [ebp - 0x198]
add eax, 1
imul ecx, eax, 0x28
add ecx, dword [ebp - 0x48c]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x490]
mov dword [eax + edx*4], ecx
jmp 0x518a3c
mov ecx, dword [ebp - 0x490]
push ecx
mov edx, dword [ebp - 0x494]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x5c8]
push edx
mov eax, dword [ebp - 0x2e4]
push eax
mov ecx, dword [ebp - 0x49c]
mov edx, dword [ecx + 0x20]
call edx
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x498]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x518ace
jmp 0x51961c
mov edx, dword [ebp - 0x2e4]
push edx
mov eax, dword [ebp - 0x49c]
mov ecx, dword [eax + 0x28]
call ecx
add esp, 4
mov dword [ebp - 0x5cc], eax
mov edx, dword [ebp - 0x4a0]
mov byte [edx + 2], 0
cmp dword [ebp - 0x5cc], 0
je 0x518b01
jmp 0x510a7e
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x68]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x2e8], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0x2e8]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x518b4d
mov eax, dword [ebp - 0xb4]
push eax
call fcn.0051c040
add esp, 4
jmp case.0x510992.88
mov ecx, dword [ebp - 0x2e8]
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
mov dword [ebp - 0x4a4], eax
mov ecx, dword [ebp - 0x4a4]
mov edx, dword [ecx]
mov dword [ebp - 0x5d0], edx
push 0x20
push 0
lea eax, [ebp - 0x798]
push eax
call fcn.00572370
add esp, 0xc
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0x798], ecx
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 1
je 0x518bc3
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.0051c040
add esp, 4
mov edx, 0x4001
mov eax, dword [ebp - 0xb4]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], 0
jmp 0x518bdf
mov edx, dword [ebp - 0xb4]
movzx eax, word [edx + 8]
and eax, 0xffff3e40
or eax, 1
mov ecx, dword [ebp - 0xb4]
mov word [ecx + 8], ax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
lea ecx, [ebp - 0x798]
push ecx
mov edx, dword [ebp - 0x2e8]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0x5d0]
mov edx, dword [ecx + 0x2c]
call edx
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x4a4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 0x784], 0
jle 0x518c4e
mov edx, dword [ebp - 0xb4]
push edx
call fcn.004a9da0
add esp, 4
push eax
push 0x5eb364
mov eax, dword [ebp + 8]
push eax
call fcn.005107b0
add esp, 0xc
mov ecx, dword [ebp - 0x784]
mov dword [ebp - 8], ecx
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0xb4]
push eax
call fcn.0050fb80
add esp, 8
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.0051c5c0
add esp, 4
test eax, eax
je 0x518c7a
jmp 0x5197fb
cmp dword [ebp - 8], 0
je 0x518c85
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x228]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x518cb2
jmp case.0x510992.88
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx]
mov dword [ebp - 0x4a8], edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax]
mov dword [ebp - 0x4ac], ecx
mov edx, dword [ebp - 0x228]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0x4ac]
mov edx, dword [ecx + 0x24]
call edx
add esp, 4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x4a8]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x518d0a
jmp 0x51961c
mov edx, dword [ebp - 0x228]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0x4ac]
mov edx, dword [ecx + 0x28]
call edx
add esp, 4
mov dword [ebp - 0x5d4], eax
cmp dword [ebp - 0x5d4], 0
jne 0x518d36
jmp case.0x510992.11
jmp 0x5109ab
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x20]
and ecx, 0x4000000
mov dword [ebp - 0x5d8], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x20]
or eax, 0x4000000
mov ecx, dword [edx + 0x24]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x2ec], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x4b0], ecx
push 1
mov edx, dword [ebp - 0x4b0]
push edx
call fcn.0050fb80
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x518da2
jmp 0x51961c
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x2ec]
push edx
mov eax, dword [ebp - 0x2ec]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x4c]
call edx
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x5d8], 0
jne 0x518de7
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x20]
and ecx, 0xfbffffff
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], edx
mov ecx, dword [ebp - 0x2ec]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005200d0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xa0]
and ecx, 0xfffffffc
mov edx, dword [ebp + 8]
mov dword [edx + 0xa0], ecx
cmp dword [ebp - 8], 0
je 0x518e1a
jmp 0x51961c
jmp case.0x510992.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d4], xmm0
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x57]
test ecx, ecx
je 0x518e3a
jmp 0x519818
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x19c], ecx
cmp dword [ebp - 0x19c], 0
je 0x518e5d
mov edx, dword [ebp - 0x19c]
cmp dword [edx], 0
jne 0x518e69
mov dword [ebp - 8], 6
jmp 0x51961c
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
mov dword [ebp - 0x4bc], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0x4bc]
cmp dword [ecx + 0x34], 0
je 0x519010
mov edx, dword [ebp - 0xc]
mov al, byte [edx + 0x5c]
mov byte [ebp - 0x12d], al
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x64]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 0xc], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2f0], ecx
mov dword [ebp - 0x22c], 0
jmp 0x518ed6
mov edx, dword [ebp - 0x22c]
add edx, 1
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x4b8]
jge 0x518f0a
mov ecx, dword [ebp - 0x22c]
mov edx, dword [ebp - 0x4b4]
mov eax, dword [ebp - 0x2f0]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x28
mov dword [ebp - 0x2f0], ecx
jmp 0x518ec7
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov cl, byte [eax + 2]
mov byte [edx + 0x5c], cl
lea edx, [ebp - 0x6d4]
push edx
mov eax, dword [ebp - 0x4b4]
push eax
mov ecx, dword [ebp - 0x4b8]
push ecx
mov edx, dword [ebp - 0x19c]
push edx
mov eax, dword [ebp - 0x4bc]
mov ecx, dword [eax + 0x34]
call ecx
add esp, 0x10
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc]
mov al, byte [ebp - 0x12d]
mov byte [edx + 0x5c], al
mov ecx, dword [ebp - 0x19c]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005200d0
add esp, 8
cmp dword [ebp - 8], 0
jne 0x518f86
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x518f86
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x6d4]
mov eax, dword [ebp - 0x6d0]
mov dword [ecx + 0x28], edx
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 8]
and ecx, 0xff
cmp ecx, 0x13
jne 0x518fed
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
movzx ecx, byte [eax + 0x10]
test ecx, ecx
je 0x518fed
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
cmp eax, 4
jne 0x518fb7
mov dword [ebp - 8], 0
jmp 0x518feb
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
cmp edx, 5
jne 0x518fcf
mov dword [ebp - 0x4c0], 2
jmp 0x518fdc
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
mov dword [ebp - 0x4c0], ecx
mov edx, dword [ebp + 8]
mov al, byte [ebp - 0x4c0]
mov byte [edx + 0x9a], al
jmp 0x519005
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ecx + 0x34]
adc eax, 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x30], edx
mov dword [ecx + 0x34], eax
cmp dword [ebp - 8], 0
je 0x519010
jmp 0x51961c
jmp case.0x510992.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
shl edx, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.004e2360
add esp, 4
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ccde0
add esp, 8
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0x4c4], eax
mov dword [ebp - 0x230], 0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x5190c1
mov edx, dword [ebp - 0x4c4]
push edx
call fcn.004e2360
add esp, 4
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [eax + 0xc]
jae 0x5190c1
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x230]
push ecx
mov edx, dword [ebp - 0x4c4]
push edx
call fcn.004e2480
add esp, 8
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x510992.88
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 4]
imul eax, dword [edx + 0xc], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x10]
je 0x519174
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp + 8]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x10]
mov dword [edx], eax
mov ecx, dword [ebp - 0x88]
movzx edx, byte [ecx + 0x19]
sub edx, 1
mov dword [ebp - 0x1a0], edx
jmp 0x519147
mov eax, dword [ebp - 0x1a0]
sub eax, 1
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jl 0x519174
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
add edx, dword [ebp - 0x1a0]
imul eax, edx, 0x28
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1a0]
mov edx, dword [ebp - 0x88]
mov dword [edx + ecx*4 + 0x1c], eax
jmp 0x519138
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
and ecx, 0xffff3e40
or ecx, 1
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
mov eax, dword [ebp - 0x88]
add eax, 0x1c
push eax
mov ecx, dword [ebp - 0x88]
movzx edx, byte [ecx + 0x19]
push edx
mov eax, dword [ebp - 0x88]
push eax
mov ecx, dword [ebp - 0x88]
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x10]
call eax
add esp, 0xc
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + 0x14], 0
je 0x519239
mov edx, dword [ebp - 0x88]
cmp dword [edx + 0x14], 0
jle 0x5191fa
mov eax, dword [ebp - 0x10]
push eax
call fcn.004a9da0
add esp, 4
push eax
push 0x5eb368
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 0xc
mov edx, dword [ebp - 0x88]
mov eax, dword [edx + 0x14]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp + 8]
add edx, 0xec
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.005101d0
add esp, 0x10
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x14], 0
cmp dword [ebp - 8], 0
je 0x519239
jmp 0x51961c
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0x12
je 0x51926b
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0050fb80
add esp, 8
mov eax, dword [ebp - 0x10]
push eax
call fcn.0051c5c0
add esp, 4
test eax, eax
je 0x51926b
jmp 0x5197fb
jmp case.0x510992.88
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.004be470
add esp, 8
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], edx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
cdq
push edx
push eax
mov eax, dword [ebp - 0x1e4]
push eax
mov ecx, dword [ebp - 0x1e8]
push ecx
call fcn.00571210
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], edx
push 0
push 8
mov edx, dword [ebp - 0x1e4]
push edx
mov eax, dword [ebp - 0x1e8]
push eax
call fcn.005711a0
push 0
push 1
push edx
push eax
call fcn.00571080
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x1e8]
and ecx, 7
mov esi, 1
shl esi, cl
movsx ebx, byte [edx + eax]
or ebx, esi
push 0
push 8
mov eax, dword [ebp - 0x1e4]
push eax
mov ecx, dword [ebp - 0x1e8]
push ecx
call fcn.005711a0
push 0
push 1
push edx
push eax
call fcn.00571080
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x10]
mov byte [eax + ecx], bl
jmp case.0x510992.88
mov edx, dword [ebp - 4]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.004be470
add esp, 8
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x270]
push ecx
mov edx, dword [ebp - 0x274]
push edx
call fcn.00571210
mov dword [ebp - 0x274], eax
mov dword [ebp - 0x270], edx
push 0
push 8
mov eax, dword [ebp - 0x270]
push eax
mov ecx, dword [ebp - 0x274]
push ecx
call fcn.005711a0
push 0
push 1
push edx
push eax
call fcn.00571080
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x10]
movsx edx, byte [ecx + eax]
mov ecx, dword [ebp - 0x274]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
jne 0x5193ee
mov ecx, 4
shl ecx, 3
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0xac]
add eax, 1
mov ecx, 4
shl ecx, 3
mov edx, dword [ebp + 8]
mov dword [edx + ecx + 0xac], eax
jmp 0x510a7e
mov eax, 4
imul ecx, eax, 7
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0xac]
add eax, 1
mov ecx, 4
imul edx, ecx, 7
mov ecx, dword [ebp + 8]
mov dword [ecx + edx + 0xac], eax
jmp case.0x510992.88
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x5e]
and eax, 0x41
je 0x51955c
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x9d]
test edx, edx
jne 0x51955c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x519453
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x4c8], edx
jmp 0x519462
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xd0]
mov dword [ebp - 0x4c8], ecx
mov edx, dword [ebp - 0x4c8]
mov dword [ebp - 0x234], edx
cmp dword [ebp - 0x234], 0
je 0x51955c
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 0x40
je 0x5194d3
mov edx, dword [ebp - 0x234]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00519b60
add esp, 8
mov dword [ebp - 0x4cc], eax
mov ecx, dword [ebp - 0x4cc]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xdc]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0xd8]
call edx
add esp, 8
mov eax, dword [ebp - 0x4cc]
push eax
call fcn.004a74c0
add esp, 4
jmp 0x51955c
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc8], 1
jle 0x519537
mov edx, dword [ebp - 0x234]
push edx
push 0x5eb36c
mov eax, dword [ebp - 0xc]
push eax
call fcn.004fa890
add esp, 0xc
mov dword [ebp - 0x4d0], eax
mov ecx, dword [ebp - 0x4d0]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0xdc]
push ecx
push 1
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xd8]
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x4d0]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8000
add esp, 8
jmp 0x51955c
mov eax, dword [ebp - 0x234]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0xdc]
push eax
push 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0xd8]
call edx
add esp, 0x10
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
cmp ecx, dword [0x5e8c4c]
jl 0x5195dc
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0xb3
jne 0x51957c
jmp case.0x510992.88
mov dword [ebp - 0x1c0], 1
jmp 0x519597
mov ecx, dword [ebp - 0x1c0]
add ecx, 1
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c0]
cmp eax, dword [edx + 0x74]
jge 0x5195d2
imul ecx, dword [ebp - 0x1c0], 0x14
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x70]
movzx ecx, byte [eax + ecx]
cmp ecx, 0x11
jne 0x5195d0
imul edx, dword [ebp - 0x1c0], 0x14
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov dword [ecx + edx + 4], 0
jmp 0x519588
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
add ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx + 4], ecx
mov eax, 4
imul ecx, eax, 6
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx + 0xac]
add eax, 1
mov ecx, 4
imul edx, ecx, 6
mov ecx, dword [ebp + 8]
mov dword [ecx + edx + 0xac], eax
jmp 0x510a7e
jmp 0x51093c
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x57]
test eax, eax
je 0x519630
mov dword [ebp - 8], 7
jmp 0x519649
cmp dword [ebp - 8], 0x210a
jne 0x519649
push 0x176af
call fcn.004e6390
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x84], 0
jne 0x51967c
cmp dword [ebp - 8], 0xc0a
je 0x51967c
mov edx, dword [ebp - 8]
push edx
call fcn.004eab90
add esp, 4
push eax
push 0x5eb374
mov eax, dword [ebp + 8]
push eax
call fcn.005107b0
add esp, 0xc
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x28], edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0050b8b0
add esp, 8
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x84]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd0]
push edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x38]
cdq
mov ecx, 0x14
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
mov edx, dword [ebp - 8]
push edx
call fcn.0049d410
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.0051a490
add esp, 4
cmp dword [ebp - 8], 0xc0a
jne 0x5196ea
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004fb730
add esp, 4
cmp dword [ebp - 8], 0xb
jne 0x519710
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
jne 0x519710
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x20]
mov eax, dword [ecx + 0x24]
or eax, 2
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], eax
mov dword [ebp - 8], 1
movzx edx, byte [ebp - 0x61]
test edx, edx
jle 0x519733
movzx eax, byte [ebp - 0x61]
sub eax, 1
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00505580
add esp, 8
mov edx, dword [ebp - 0x268]
cmp edx, dword [ebp - 0xd4]
jb 0x5197c0
ja 0x519751
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0xd8]
jb 0x5197c0
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x5197c0
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x178]
xor ecx, ecx
add eax, dword [ebp - 0xd8]
adc ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x174]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x170]
call edx
add esp, 4
test eax, eax
je 0x5197bb
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov dword [ebp - 8], 9
jmp 0x51961c
jmp 0x519733
mov ecx, 4
shl ecx, 2
mov edx, dword [ebp - 0x26c]
mov eax, dword [ebp + 8]
add edx, dword [eax + ecx + 0xac]
mov ecx, 4
shl ecx, 2
mov eax, dword [ebp + 8]
mov dword [eax + ecx + 0xac], edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0051ada0
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x51984d
push str.string_or_blob_too_big
mov edx, dword [ebp + 8]
push edx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 0x12
jmp 0x51961c
mov eax, dword [ebp - 0xc]
push eax
call fcn.004fb730
add esp, 4
push 0x5eb3b0
mov ecx, dword [ebp + 8]
push ecx
call fcn.005107b0
add esp, 8
mov dword [ebp - 8], 7
jmp 0x51961c
mov dword [ebp - 8], 9
jmp 0x51961c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret