Function at 0x518a90
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.005189b0
add esp, 4
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x518b5a
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 0x518b6d
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x28], 7
jne 0x518b7b
jmp 0x521aa8
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 0x518bbd
jmp 0x521ad1
mov eax, dword [ebp + 8]
imul ecx, dword [eax + 0x24], 0x14
add ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
jmp 0x518bd5
mov edx, dword [ebp - 4]
add edx, 0x14
mov dword [ebp - 4], edx
mov eax, 1
test eax, eax
je 0x5218ac
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.0x518c22.88
mov edx, dword [ebp - 0x4d4]
jmp dword [edx*4 + 0x521ae4]
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 0x518c4c
jmp 0x521ad1
mov ecx, dword [ebp - 0x268]
cmp ecx, dword [ebp - 0xd4]
jb 0x518cd9
ja 0x518c6a
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0xd8]
jb 0x518cd9
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x170], 0
je 0x518cd9
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 0x518cd4
or edx, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], edx
mov dword [ebp - 8], 9
jmp 0x5218ac
jmp 0x518c4c
jmp case.0x518c22.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.0x518c22.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.0057b9e0
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.0x518c22.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 0x518d95
jmp 0x518d0e
jmp case.0x518c22.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.0057b9e0
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.0x518c22.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.0x518c22.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.0x518c22.70
jmp case.0x518c22.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 0x518f2e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x518f2e
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.00526390
add esp, 0xc
mov ecx, dword [ebp - 0x4d8]
push ecx
call fcn.005224e0
add esp, 4
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 4
jne 0x518f0a
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.0x518c22.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 0x51900a
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
test ecx, ecx
je 0x518fc3
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
mov ecx, dword [eax*4 + 0x5bf174]
push ecx
push str._s_constraint_failed
mov edx, dword [ebp + 8]
push edx
call fcn.00518a40
add esp, 0xc
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x518fc1
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.00502b20
add esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x84], eax
jmp 0x518fdb
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
push 0x5f10cc
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
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.004a56a0
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.00522720
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x51902b
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x28], 5
jmp 0x519053
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
je 0x519040
mov dword [ebp - 0x4dc], 1
jmp 0x51904a
mov dword [ebp - 0x4dc], 0x65
mov eax, dword [ebp - 0x4dc]
mov dword [ebp - 8], eax
jmp 0x5219c3
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d5090
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.0x518c22.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
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.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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.0x518c22.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d5090
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.00513a80
add esp, 4
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
movzx eax, byte [ebp - 0x19]
cmp eax, 1
je 0x5191b3
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.005243d0
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51913d
jmp 0x521a8b
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00517e10
add esp, 8
test eax, eax
je 0x519157
jmp 0x521aa8
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 0x519194
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004f0290
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 0x5191cf
jmp 0x521a8b
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.004d5090
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 0x519275
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 0x519275
mov ecx, dword [ebp - 0x4e0]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x650]
jne 0x519275
mov eax, 0xa10
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
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 0x5192b4
mov dword [ebp - 0x4e4], 0x101
jmp 0x5192be
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 0x51932b
mov eax, dword [ebp - 0x10]
add eax, 0x28
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.005242d0
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 0x5192e4
jmp case.0x518c22.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.0x518c22.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
jne 0x51939e
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.005246e0
add esp, 8
mov edx, dword [ebp - 0x10]
push edx
call fcn.00523a30
add esp, 4
test eax, eax
je 0x51939c
jmp 0x521aa8
jmp 0x5193be
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.005243d0
add esp, 0x18
mov ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x19]
mov byte [ecx + 0xa], dl
jmp case.0x518c22.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.00524850
add esp, 4
test eax, eax
je 0x5193fc
jmp 0x521a8b
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 0x519424
mov eax, dword [ebp - 0x10]
push eax
call fcn.005242d0
add esp, 4
push 0x14
mov ecx, dword [ebp - 0x4e8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0057c750
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.0x518c22.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.00524070
add esp, 8
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x5194d8
mov eax, dword [ebp - 0x10]
push eax
call fcn.00523fe0
add esp, 4
test eax, eax
je 0x5194d8
jmp 0x521aa8
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 0x5194a4
jmp case.0x518c22.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 0x5195a2
push 0x1000
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00524730
add esp, 0xc
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x519568
mov eax, dword [ebp - 0x10]
push eax
call fcn.00523fe0
add esp, 4
test eax, eax
je 0x519568
jmp 0x521aa8
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 0x51958e
jmp 0x5195a2
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 0x519526
jmp case.0x518c22.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.00524730
add esp, 0xc
jmp case.0x518c22.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.00524280
add esp, 0xc
jmp case.0x518c22.88
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518030
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51962c
jmp 0x5218ac
jmp case.0x518c22.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 0x51968b
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 0x5196ea
imul edx, dword [ebp - 0x14c], 0x28
mov eax, dword [ebp - 0x30c]
movzx ecx, word [eax + edx + 8]
and ecx, 0x1000
je 0x5196d2
imul edx, dword [ebp - 0x14c], 0x28
add edx, dword [ebp - 0x30c]
push edx
call fcn.00523fe0
add esp, 4
test eax, eax
je 0x5196d2
jmp 0x521aa8
imul eax, dword [ebp - 0x14c], 0x28
add eax, dword [ebp - 0x30c]
push eax
call fcn.005240b0
add esp, 4
jmp 0x51967c
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x57]
test edx, edx
je 0x5196fa
jmp 0x521aa8
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 4
je 0x519726
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 0x5219c3
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 0x5197a4
mov edx, dword [ebp - 0x10]
push edx
call fcn.005242d0
add esp, 4
jmp case.0x518c22.88
movzx eax, word [ebp - 0x90]
and eax, 0x12
jne 0x5197df
push 0
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.005247a0
add esp, 0xc
test eax, eax
je 0x5197cc
jmp 0x521aa8
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffd
mov word [ebp - 0x90], cx
jmp 0x519814
movzx edx, word [ebp - 0x90]
and edx, 0x4000
je 0x519814
mov eax, dword [ebp - 0x14]
push eax
call fcn.00523a30
add esp, 4
test eax, eax
je 0x519803
jmp 0x521aa8
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 0x51985d
push 0
movzx eax, byte [ebp - 0x19]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.005247a0
add esp, 0xc
test eax, eax
je 0x51984a
jmp 0x521aa8
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx + 8]
and eax, 0xfffffffd
mov word [ebp - 0xa4], ax
jmp 0x519892
movzx ecx, word [ebp - 0xa4]
and ecx, 0x4000
je 0x519892
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00523a30
add esp, 4
test eax, eax
je 0x519881
jmp 0x521aa8
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 0x5198ea
jg 0x5198e5
mov eax, dword [ebp - 0x1d0]
cmp eax, dword [ebp - 0x65c]
jbe 0x5198ea
jmp 0x521a8b
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x2c]
jne 0x5198fe
mov dword [ebp - 0x4f0], 1
jmp 0x519908
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.00523cb0
add esp, 0xc
test eax, eax
je 0x51992e
jmp 0x521aa8
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 0x519977
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.0057c750
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.0057c750
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.0057b9e0
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.0057b9e0
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.0057b9e0
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.0x518c22.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.004d4780
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.004d4780
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 0x519c5d
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.0x519b12
mov eax, dword [ebp - 0x238]
jmp dword [eax*4 + 0x521db4]
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.004e3d70
add esp, 0xc
test eax, eax
je 0x519b39
jmp 0x519c73
jmp 0x519c2e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.00513aa0
add esp, 0xc
test eax, eax
je 0x519b5e
jmp 0x519c73
jmp 0x519c2e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.00503410
add esp, 0xc
test eax, eax
je 0x519b83
jmp 0x519c73
jmp 0x519c2e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x519b95
jmp 0x519e19
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x519bba
cmp dword [ebp - 0xc0], 0
jne 0x519bba
cmp dword [ebp - 0xbc], 0x80000000
jne 0x519bba
jmp 0x519c73
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.0057b930
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x519c2e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x519bf0
jmp 0x519e19
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x519c07
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.0057ba20
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 0x519e14
movzx edx, word [ebp - 0x2f4]
and edx, 1
je 0x519c73
jmp 0x519e19
mov eax, dword [ebp - 0x14]
push eax
call fcn.00525560
add esp, 4
fstp qword [ebp - 0x534]
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00525560
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.0x519cc5
mov edx, dword [ebp - 0x23c]
jmp dword [edx*4 + 0x521dc4]
movsd xmm0, qword [ebp - 0x1d8]
addsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x519dd0
movsd xmm0, qword [ebp - 0x1d8]
subsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x519dd0
movsd xmm0, qword [ebp - 0x1d8]
mulsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x519dd0
movsd xmm0, qword [ebp - 0x534]
ucomisd xmm0, qword [0x5b80c0]
lahf
test ah, 0x44
jp 0x519d3e
jmp 0x519e19
movsd xmm0, qword [ebp - 0x1d8]
divsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x519dd0
mov eax, dword [ebp - 0x14]
push eax
call fcn.00522ed0
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00522ed0
add esp, 4
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
jne 0x519d8f
jmp 0x519e19
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
cmp eax, 0xffffffff
jne 0x519da6
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.0057ba20
mov ecx, eax
call fcn.0057bd50
movsd qword [ebp - 0x1d8], xmm0
sub esp, 8
movsd xmm0, qword [ebp - 0x1d8]
movsd qword [esp], xmm0
call fcn.00501380
add esp, 8
test eax, eax
je 0x519dee
jmp 0x519e19
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.0x518c22.88
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.005242d0
add esp, 4
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x519e4a
push 0
push 0
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.00524280
add esp, 0xc
jmp case.0x518c22.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 0x519e9c
mov eax, dword [ebp - 0x10]
push eax
call fcn.005242d0
add esp, 4
jmp case.0x518c22.88
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00522ed0
add esp, 4
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00522ed0
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 0x519f06
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 0x51a0ed
movzx edx, byte [ebp - 0x3d]
cmp edx, 0x67
jne 0x519f38
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 0x51a0ed
mov edx, dword [ebp - 0xc8]
or edx, dword [ebp - 0xc4]
je 0x51a0ed
cmp dword [ebp - 0xc4], 0
jg 0x519fcb
jl 0x519f5e
cmp dword [ebp - 0xc8], 0
jae 0x519fcb
movzx eax, byte [ebp - 0x3d]
mov ecx, 0xd1
sub ecx, eax
mov byte [ebp - 0x3d], cl
cmp dword [ebp - 0xc4], 0xffffffff
jl 0x519fa1
jg 0x519f80
cmp dword [ebp - 0xc8], 0xffffffc0
jbe 0x519fa1
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 0x519fb3
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 0x51a02a
jg 0x519fdf
cmp dword [ebp - 0xc8], 0x40
jb 0x51a02a
cmp dword [ebp - 0xcc], 0
jg 0x51a008
jl 0x519ff3
cmp dword [ebp - 0xd0], 0
jae 0x51a008
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
je 0x51a008
mov dword [ebp - 0x4f4], 0xffffffff
jmp 0x51a012
mov dword [ebp - 0x4f4], 0
mov eax, dword [ebp - 0x4f4]
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x51a0ed
push 8
lea edx, [ebp - 0xd0]
push edx
lea eax, [ebp - 0x178]
push eax
call fcn.0057c750
add esp, 0xc
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
jne 0x51a070
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.0057bae0
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
jmp 0x51a0d5
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.0057bbf0
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
cmp dword [ebp - 0xcc], 0
jg 0x51a0d5
jl 0x51a0a7
cmp dword [ebp - 0xd0], 0
jae 0x51a0d5
mov ecx, 0x40
sub ecx, dword [ebp - 0xc8]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0057bae0
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.0057c750
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.0x518c22.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.00523fa0
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.0x518c22.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 0x51a1a6
movzx eax, byte [ebp - 0x19]
push eax
push 0x43
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.004b6290
add esp, 0xc
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 4
jne 0x51a1a6
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
jne 0x51a1a1
mov dword [ebp - 8], 0x14
jmp 0x5218ac
jmp 0x518d0e
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.0x518c22.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 0x51a1e6
mov eax, dword [ebp - 0x14]
push eax
call fcn.005241e0
add esp, 4
jmp case.0x518c22.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 0x51a21b
mov edx, dword [ebp - 0x14]
push edx
call fcn.00523a30
add esp, 4
mov dword [ebp - 0x4f8], eax
jmp 0x51a225
mov dword [ebp - 0x4f8], 0
mov eax, dword [ebp - 0x4f8]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51a239
jmp 0x5218ac
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.00523810
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51a260
jmp 0x5218ac
jmp case.0x518c22.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 0x51a385
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 0x51a304
jg 0x51a2e2
mov edx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x500]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jbe 0x51a304
mov dword [ebp - 0x78], 1
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5efc98]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x51a302
jmp 0x518d0e
jmp 0x51a380
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 0x51a360
jl 0x51a33e
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x508]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jae 0x51a360
mov dword [ebp - 0x78], 0xffffffff
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5efc90]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x51a35e
jmp 0x518d0e
jmp 0x51a380
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5efc94]
movzx eax, byte [edx + ecx]
test eax, eax
je 0x51a380
jmp 0x518d0e
jmp case.0x518c22.88
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x34]
or ecx, edx
and ecx, 1
je 0x51a41d
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 0x80
je 0x51a3fb
movzx edx, word [ebp - 0x48]
movzx eax, word [ebp - 0x34]
and edx, eax
and edx, 1
je 0x51a3ce
movzx ecx, word [ebp - 0x34]
and ecx, 0x100
jne 0x51a3ce
mov dword [ebp - 0x1a4], 0
jmp 0x51a3f9
movzx edx, word [ebp - 0x34]
and edx, 1
je 0x51a3e3
mov dword [ebp - 0x50c], 0xffffffff
jmp 0x51a3ed
mov dword [ebp - 0x50c], 1
mov eax, dword [ebp - 0x50c]
mov dword [ebp - 0x1a4], eax
jmp 0x51a418
mov dword [ebp - 0x78], 1
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x51a413
jmp 0x518d0e
jmp case.0x518c22.88
jmp 0x51a54e
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 0x51a48c
movzx eax, word [ebp - 0x48]
movzx ecx, word [ebp - 0x34]
or eax, ecx
and eax, 2
je 0x51a487
movzx edx, word [ebp - 0x48]
and edx, 0x2e
cmp edx, 2
jne 0x51a46d
push 0
mov eax, dword [ebp - 0x14]
push eax
call fcn.004b6330
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 0x51a487
push 0
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004b6330
add esp, 8
jmp 0x51a531
movsx edx, byte [ebp - 0x9e]
cmp edx, 0x42
jne 0x51a531
movzx eax, word [ebp - 0x48]
and eax, 2
jne 0x51a4f0
movzx ecx, word [ebp - 0x48]
and ecx, 0x2c
je 0x51a4f0
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.005247a0
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 0x51a4f0
movzx edx, word [ebp - 0x48]
or edx, 2
mov word [ebp - 0x34], dx
movzx eax, word [ebp - 0x34]
and eax, 2
jne 0x51a531
movzx ecx, word [ebp - 0x34]
and ecx, 0x2c
je 0x51a531
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.005247a0
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.005030e0
add esp, 0xc
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jge 0x51a56f
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5efc90]
movzx edx, byte [ecx + eax]
mov dword [ebp - 0x310], edx
jmp 0x51a5a5
cmp dword [ebp - 0x1a4], 0
jne 0x51a590
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5efc94]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x310], eax
jmp 0x51a5a5
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
mov eax, dword [0x5efc98]
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 0x51a5d2
jmp 0x518d0e
jmp case.0x518c22.88
cmp dword [ebp - 0x78], 0
jne 0x51a5e2
jmp 0x518d0e
jmp case.0x518c22.88
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 1
jne 0x51a604
mov dword [ebp - 0x314], 0
jmp 0x51a61c
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 0x51a667
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0x5f0]
jge 0x51a791
cmp dword [ebp - 0x314], 0
je 0x51a699
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x314]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x510], ecx
jmp 0x51a6a5
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.005030e0
add esp, 0xc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x51a78c
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [edx + eax]
and ecx, 2
je 0x51a779
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 0x51a771
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 0x51a779
mov ecx, dword [ebp - 0x78]
neg ecx
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x620], 0
je 0x51a78a
mov edx, dword [ebp - 0x78]
neg edx
mov dword [ebp - 0x78], edx
jmp 0x51a791
jmp 0x51a658
jmp case.0x518c22.88
cmp dword [ebp - 0x78], 0
jge 0x51a7b0
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 0x51a7dc
cmp dword [ebp - 0x78], 0
jne 0x51a7ca
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 0x51a7dc
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.0x518c22.88
push 2
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.00517d80
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.00517d80
add esp, 8
mov dword [ebp - 0x51c], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x2c
jne 0x51a83f
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5bf1e4]
mov dword [ebp - 0x150], edx
jmp 0x51a85a
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5bf1f0]
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 0x51a888
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 0x51a8ad
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.0x518c22.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.00517d80
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.00524280
add esp, 0xc
jmp case.0x518c22.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 0x51a952
push 0
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00517d80
add esp, 8
test eax, eax
jne 0x51a931
mov dword [ebp - 0x520], 1
jmp 0x51a93b
mov dword [ebp - 0x520], 0
mov eax, dword [ebp - 0x520]
cdq
push edx
push eax
mov edx, dword [ebp - 0x10]
push edx
call fcn.00524280
add esp, 0xc
jmp 0x51a95e
mov eax, dword [ebp - 0x10]
push eax
call fcn.005242d0
add esp, 4
jmp case.0x518c22.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.005242d0
add esp, 4
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne 0x51a9b9
mov edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00522ed0
add esp, 4
not eax
not edx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x518c22.88
mov edx, dword [ebp + 8]
cmp dword [edx + 0xd8], 0
je 0x51aa5e
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 0x51aa19
jmp 0x518d0e
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 0x51aa7d
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 0x51aa7d
jmp 0x518d0e
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.0x518c22.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.00517d80
add esp, 8
mov dword [ebp - 0x5f8], eax
cmp dword [ebp - 0x5f8], 0
je 0x51aac8
jmp 0x518d0e
jmp case.0x518c22.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
jne 0x51aae2
mov dword [ebp - 0x524], 1
jmp 0x51aaec
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.00517d80
add esp, 8
test eax, eax
jne 0x51ab16
mov dword [ebp - 0x528], 1
jmp 0x51ab20
mov dword [ebp - 0x528], 0
mov edx, dword [ebp - 0x528]
mov dword [ebp - 0x5fc], edx
cmp dword [ebp - 0x5fc], 0
je 0x51ab3a
jmp 0x518d0e
jmp case.0x518c22.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 0x51ab5d
jmp 0x518d0e
jmp case.0x518c22.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 0x51ab9b
mov edx, dword [ebp - 0x14]
push edx
call fcn.004b20d0
add esp, 4
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
je 0x51ab9b
mov dword [ebp - 0x52c], 0
jmp 0x51aba5
mov dword [ebp - 0x52c], 1
mov edx, dword [ebp - 0x52c]
mov dword [ebp - 0x600], edx
cmp dword [ebp - 0x600], 0
je 0x51abbf
jmp 0x518d0e
jmp case.0x518c22.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 0x51abec
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 0x51ac01
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.005242d0
add esp, 4
jmp 0x51ac18
push 0
push 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.00524280
add esp, 0xc
jmp case.0x518c22.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 0x51ac3b
jmp 0x518d0e
jmp case.0x518c22.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 0x51ac6f
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.005242d0
add esp, 4
jmp 0x518d0e
jmp case.0x518c22.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.00518300
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51acb3
jmp 0x5218ac
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 0x51ae7f
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x51ad40
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 3
jne 0x51ad2d
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 0x51ad3e
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.005242d0
add esp, 4
jmp 0x51b3c0
jmp 0x51ad99
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp - 0x36c]
push ecx
call fcn.004eb100
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.004eb0e0
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 0x51ad99
jmp 0x521a8b
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 0x51add9
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 0x51adfd
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.004fe5e0
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 0x51ae6e
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 0x51ae67
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 0x51ae6c
jmp 0x51b3c5
jmp 0x51ae7f
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x128], eax
jmp 0x51af15
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx + 0x3e]
cmp edx, dword [ebp - 0x100]
ja 0x51b1b6
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 0x51b167
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x51af09
push 0x28
push 0
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.0057ccd0
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.00523c40
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51aefb
jmp 0x5218ac
mov eax, dword [ebp - 0x7d8]
mov dword [ebp - 0x128], eax
jmp 0x51af15
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 0x51afd0
mov ecx, dword [ebp - 0xa8]
add ecx, 1
mov dword [ebp - 0xa8], ecx
movzx edx, byte [ebp - 0x5c]
push edx
call fcn.00525510
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 0x51b028
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call fcn.004fe5e0
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.00526360
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 0x51b069
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x244]
jb 0x51af68
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0x244]
jb 0x51b0b5
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x244]
ja 0x51b0e7
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 0x51b0e7
mov edx, dword [ebp - 0x138]
cmp edx, dword [ebp - 0x660]
jne 0x51b0e7
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 0x51b12d
ja 0x51b0e7
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x66c]
jbe 0x51b12d
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x7c]
cmp dword [ecx + eax], 0
jne 0x51b110
mov dword [ebp - 0xdc], 0
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0xa8], edx
jmp 0x51b12d
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x51b128
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.00524210
add esp, 4
jmp 0x51b3c5
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 0x51b165
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.00524210
add esp, 4
jmp 0x51b16e
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x24]
movzx eax, word [edx + 0x3e]
cmp eax, dword [ebp - 0x100]
ja 0x51b1b4
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff5
jne 0x51b1a3
push 0x800
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.00524730
add esp, 0xc
jmp 0x51b1af
mov eax, dword [ebp - 0x44]
push eax
call fcn.005242d0
add esp, 4
jmp 0x51b3c0
jmp 0x51b1c6
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 0x51b1e1
mov eax, dword [ebp - 0x44]
push eax
call fcn.005242d0
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 0x51b2fb
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 0x51b234
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov edx, dword [ebp - 0x128]
push edx
call fcn.00526000
add esp, 0xc
jmp 0x51b2f6
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 0x51b297
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.00523cb0
add esp, 0xc
test eax, eax
je 0x51b295
jmp 0x521aa8
jmp 0x51b2a3
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.0057c750
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 + 0x5bf1fc]
mov word [ecx + 8], dx
jmp 0x51b3c0
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 0x51b32e
cmp dword [ebp - 0x5c], 0xc
jb 0x51b320
mov ecx, dword [ebp - 0x5c]
and ecx, 1
je 0x51b349
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x80
jne 0x51b349
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.00526360
add esp, 4
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
jne 0x51b360
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x5c]
push eax
push 0x5bedf0
call fcn.00526000
add esp, 0xc
jmp 0x51b3c0
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.00523b70
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51b395
jmp 0x5218ac
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.00526000
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.0x518c22.88
mov eax, 0x14
imul ecx, eax, 0
mov edx, dword [ebp - 0x38]
cmp dword [edx + ecx + 0xc], 0
jle 0x51b3f9
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.0x518c22.88
push 0x160d3
call fcn.004ee620
add esp, 4
mov dword [ebp - 8], eax
jmp 0x5218ac
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 0x51b451
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 0x51b641
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x60
je 0x51b4af
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x20
je 0x51b49b
jmp 0x51b442
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x51b4af
mov eax, dword [ebp - 0x14]
add eax, 0x28
mov dword [ebp - 0x14], eax
jmp 0x51b442
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.004b6290
add esp, 0xc
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne case.default.0x51b526
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.0x51b526
mov eax, dword [ebp - 0x248]
jmp dword [eax*4 + 0x521dd4]
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0x10
jne 0x51b53e
jmp 0x51b646
jmp case.default.0x51b526
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 4
jne 0x51b554
jmp 0x51b646
jmp case.default.0x51b526
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 2
jne 0x51b56a
jmp 0x51b646
jmp case.default.0x51b526
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x51b625
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
cmp dword [ecx + 4], 0x7fff
jg 0x51b5ed
jl 0x51b5a4
mov edx, dword [ebp - 0x374]
cmp dword [edx], 0xffffffff
ja 0x51b5ed
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x378]
cmp dword [ecx + 4], 0xffff8000
jl 0x51b5ed
jg 0x51b5c9
mov edx, dword [ebp - 0x378]
cmp dword [edx], 0
jb 0x51b5ed
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 0x51b623
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0057bd50
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.0x51b526
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0x28
jne case.default.0x51b526
jmp 0x51b646
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x51b442
jmp case.0x518c22.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 + 0x5efc9c]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00535b20
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.00518a40
add esp, 0x18
mov dword [ebp - 8], 0xc13
jmp 0x5218ac
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 0x51b7fb
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.004b6290
add esp, 0xc
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x1bc]
movsx eax, byte [edx + ecx]
cmp eax, 0x45
jne 0x51b7c6
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x51b7c6
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x37c]
cmp dword [ecx + 4], 0x7fff
jg 0x51b790
jl 0x51b747
mov edx, dword [ebp - 0x37c]
cmp dword [edx], 0xffffffff
ja 0x51b790
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
cmp dword [ecx + 4], 0xffff8000
jl 0x51b790
jg 0x51b76c
mov edx, dword [ebp - 0x380]
cmp dword [edx], 0
jb 0x51b790
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 0x51b7c6
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0057bd50
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 0x51b7ed
jmp 0x51b7fb
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x51b6c6
jmp case.0x518c22.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 0x51b934
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.004b6290
add esp, 0xc
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x158]
movsx ecx, byte [eax + edx]
cmp ecx, 0x45
jne 0x51b902
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 4
je 0x51b902
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 0x51b899
mov ecx, dword [ebp - 0x394]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 1
je 0x51b97c
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0x4000
je 0x51b964
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 0xa
jmp 0x51b96e
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1c], 0
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
jmp 0x51bcef
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 0x24
je 0x51bbcc
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 0x51b9d2
jl 0x51b9b4
cmp dword [ebp - 0x1ac], 0
jae 0x51b9d2
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 0x51b9ea
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 0x51ba80
jb 0x51ba0b
cmp dword [ebp - 0x144], 0x7f
ja 0x51ba80
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 0x51ba5f
mov ecx, dword [ebp - 0x670]
cmp ecx, dword [ebp - 0x1a8]
jne 0x51ba5f
cmp dword [ebp - 0x604], 4
jl 0x51ba5f
mov edx, dword [ebp - 0x144]
add edx, 8
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
jmp 0x51ba7b
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 0x51bbc7
cmp dword [ebp - 0x140], 0
ja 0x51bab8
jb 0x51ba97
cmp dword [ebp - 0x144], 0x7fff
ja 0x51bab8
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 0x51bbc7
cmp dword [ebp - 0x140], 0
ja 0x51baf0
jb 0x51bacf
cmp dword [ebp - 0x144], 0x7fffff
ja 0x51baf0
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 0x51bbc7
cmp dword [ebp - 0x140], 0
ja 0x51bb28
jb 0x51bb07
cmp dword [ebp - 0x144], 0x7fffffff
ja 0x51bb28
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 0x51bbc7
cmp dword [ebp - 0x140], 0x7fff
ja 0x51bb5d
jb 0x51bb3f
cmp dword [ebp - 0x144], 0xffffffff
ja 0x51bb5d
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 0x51bbc7
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 0x51bbbd
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
call fcn.0057bd50
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 0x51bbc7
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], 6
jmp 0x51bcef
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 8
je 0x51bc02
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 0x51bcef
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 0x51bc26
mov dword [ebp - 0x384], 1
jmp 0x51bc30
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 0x51bcb7
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 0x51bc99
mov edx, dword [ebp - 0x20]
push edx
call fcn.00523a30
add esp, 4
test eax, eax
je 0x51bc86
jmp 0x521aa8
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24c]
add ecx, dword [eax]
mov dword [ebp - 0x24c], ecx
jmp 0x51bcb7
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.005177e0
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 0x51bcfc
jmp 0x51bd12
mov ecx, dword [ebp - 0x20]
sub ecx, 0x28
mov dword [ebp - 0x20], ecx
mov edx, 1
test edx, edx
jne 0x51b93d
cmp dword [ebp - 0x4c], 0x7e
jg 0x51bd23
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x51bd62
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
call fcn.005177e0
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.005177e0
add esp, 8
cmp dword [ebp - 0x388], eax
jge 0x51bd62
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 0x51bddb
jl 0x51bdcd
mov ecx, dword [ebp - 0x67c]
cmp ecx, dword [ebp - 0x684]
ja 0x51bddb
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x10], ecx
jmp 0x51be5a
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 0x51be3e
jg 0x51be39
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [ebp - 0x694]
jbe 0x51be3e
jmp 0x521a8b
mov edx, dword [ebp - 0x33c]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00523950
add esp, 8
test eax, eax
je 0x51be5a
jmp 0x521aa8
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 0x51be9e
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 0x51bed9
mov edx, dword [ebp - 0xe8]
mov al, byte [ebp - 0x4c]
mov byte [edx], al
mov dword [ebp - 0x38c], 1
jmp 0x51bef4
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.0050c590
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 0x51bf42
mov eax, dword [ebp - 0xe8]
mov cl, byte [ebp - 0xec]
mov byte [eax], cl
mov dword [ebp - 0x390], 1
jmp 0x51bf61
mov edx, dword [ebp - 0xec]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.0050c590
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.005262a0
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 0x51bf10
jmp case.0x518c22.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 0x51bff5
mov eax, dword [ebp - 0x398]
push eax
call fcn.004eb340
add esp, 4
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x540], edx
jmp 0x51c028
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.004e8910
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c028
jmp 0x5218ac
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d5090
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 0x518c3b
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 0x51c1d6
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x51c0a2
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.00518a40
add esp, 8
mov dword [ebp - 8], 5
jmp 0x51c1d1
mov eax, dword [ebp - 0x254]
push eax
call fcn.00513a80
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.005286c0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c0e6
jmp 0x5218ac
mov edx, dword [ebp - 0x39c]
add edx, 0x21
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f0400
add esp, 0xc
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x51c1d1
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.0057c750
add esp, 0xc
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x51c165
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x55], 0
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x5d], 1
jmp 0x51c17a
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 0x51c608
mov dword [ebp - 0x15c], 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1e8]
mov dword [ebp - 0xac], ecx
jmp 0x51c200
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x51c236
mov ecx, dword [ebp - 0x254]
push ecx
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
push eax
call fcn.00513970
add esp, 8
test eax, eax
je 0x51c236
mov ecx, dword [ebp - 0x15c]
add ecx, 1
mov dword [ebp - 0x15c], ecx
jmp 0x51c1f1
cmp dword [ebp - 0xac], 0
jne 0x51c263
mov edx, dword [ebp - 0x254]
push edx
push str.no_such_savepoint:__s
mov eax, dword [ebp + 8]
push eax
call fcn.00518a40
add esp, 0xc
mov dword [ebp - 8], 1
jmp 0x51c608
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x51c295
cmp dword [ebp - 0x108], 1
jne 0x51c295
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.00518a40
add esp, 8
mov dword [ebp - 8], 5
jmp 0x51c608
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x18], 0
jne 0x51c2b8
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x5d]
test edx, edx
je 0x51c2b8
mov dword [ebp - 0x3a0], 1
jmp 0x51c2c2
mov dword [ebp - 0x3a0], 0
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
je 0x51c370
cmp dword [ebp - 0x108], 1
jne 0x51c370
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518030
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c304
jmp 0x5219c3
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
mov eax, dword [ebp + 8]
push eax
call fcn.00522720
add esp, 4
cmp eax, 5
jne 0x51c34c
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 0x5219c3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x51c364
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 0
jmp 0x51c36b
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x5d], 0
jmp 0x51c4e3
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 0x51c444
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
and ecx, 1
je 0x51c3ac
mov dword [ebp - 0x3a4], 1
jmp 0x51c3b6
mov dword [ebp - 0x3a4], 0
mov edx, dword [ebp - 0x3a4]
mov dword [ebp - 0x328], edx
mov dword [ebp - 0xf0], 0
jmp 0x51c3dd
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 0x51c442
cmp dword [ebp - 0x328], 0
jne 0x51c400
mov dword [ebp - 0x3a8], 1
jmp 0x51c40a
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.004ec110
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c440
jmp 0x5218ac
jmp 0x51c3ce
jmp 0x51c44e
mov dword [ebp - 0x328], 0
mov dword [ebp - 0xf0], 0
jmp 0x51c469
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 0x51c4b1
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.004eb3d0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c4af
jmp 0x5218ac
jmp 0x51c45a
cmp dword [ebp - 0x328], 0
je 0x51c4e3
push 0
mov edx, dword [ebp - 0xc]
push edx
call fcn.004f3450
add esp, 8
mov eax, dword [ebp - 0xc]
push eax
call fcn.0050d740
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 0x51c4ee
jmp 0x5218ac
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1e8]
cmp edx, dword [ebp - 0xac]
je 0x51c54a
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.004f0290
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 0x51c4ee
cmp dword [ebp - 0x108], 1
jne 0x51c598
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.004f0290
add esp, 8
cmp dword [ebp - 0x32c], 0
jne 0x51c596
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f4]
sub ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1f4], ecx
jmp 0x51c5ce
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 0x51c5e0
cmp dword [ebp - 0x108], 2
jne 0x51c608
mov ecx, dword [ebp - 0x15c]
push ecx
mov edx, dword [ebp - 0x108]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.005286c0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c608
jmp 0x5218ac
cmp dword [ebp - 8], 0
je 0x51c613
jmp 0x5218ac
jmp case.0x518c22.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 0x51c73b
cmp dword [ebp - 0x3b4], 0
je 0x51c666
push 0x204
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0050dff0
add esp, 8
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
jmp 0x51c6c4
cmp dword [ebp - 0x1c4], 0
je 0x51c69a
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc4], 0
jle 0x51c69a
push str.cannot_commit_transaction___SQL_statements_in_progress
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
add esp, 8
mov dword [ebp - 8], 5
jmp 0x5218ac
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.00518030
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c6b8
jmp 0x5219c3
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp - 0x1c4]
mov byte [eax + 0x55], cl
mov edx, dword [ebp + 8]
push edx
call fcn.00522720
add esp, 4
cmp eax, 5
jne 0x51c70f
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 0x5219c3
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004ec760
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
jne 0x51c72d
mov dword [ebp - 8], 0x65
jmp 0x51c734
mov dword [ebp - 8], 1
jmp 0x5219c3
cmp dword [ebp - 0x1c4], 0
jne 0x51c750
mov dword [ebp - 0x3b0], 1
jmp 0x51c75a
mov dword [ebp - 0x3b0], 0
cmp dword [ebp - 0x3b0], 0
je 0x51c76f
mov dword [ebp - 0x3bc], str.cannot_start_a_transaction_within_a_transaction
jmp 0x51c79a
cmp dword [ebp - 0x3b4], 0
je 0x51c784
mov dword [ebp - 0x3b8], str.cannot_rollback___no_transaction_is_active
jmp 0x51c78e
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.00518a40
add esp, 8
mov dword [ebp - 8], 1
jmp 0x5218ac
mov dword [ebp - 0x31c], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
je 0x51c838
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 0x51c838
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 0x51c82c
mov dword [ebp - 8], 8
jmp 0x51c833
mov dword [ebp - 8], 0xb
jmp 0x5218ac
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 0x51c995
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.004e7ed0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51c8b8
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 5
jne 0x51c8b3
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 0x5219c3
jmp 0x5218ac
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
shr eax, 6
and eax, 1
je 0x51c995
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
je 0x51c995
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x51c8f5
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc0], 1
jle 0x51c995
mov edx, dword [ebp + 8]
cmp dword [edx + 0x38], 0
jne 0x51c92b
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.005286c0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51c965
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
push edx
mov eax, dword [ebp - 0x330]
push eax
call fcn.004e7e80
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 0x51ca59
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
test eax, eax
je 0x51ca59
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x31c]
cmp edx, dword [ecx + 0xc]
jne 0x51c9da
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 0x51ca59
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x84]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004f0290
add esp, 8
push str.database_schema_has_changed
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f0890
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 0x51ca3a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.0050d810
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 0x51ca64
jmp 0x5218ac
jmp case.0x518c22.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.004e93c0
add esp, 0xc
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d5090
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.0x518c22.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.004ec220
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 1
jne 0x51cb51
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.004fa840
add esp, 8
jmp 0x51cb6c
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 2
jne 0x51cb6c
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 0x51cb98
push 0
mov eax, dword [ebp - 0xc]
push eax
call fcn.004f3450
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 0x51cba3
jmp 0x5218ac
jmp case.0x518c22.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.0x518c22.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 8]
jne case.0x518c22.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004e8340
add esp, 4
jmp 0x51cddb
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
and eax, 3
cmp eax, 1
jne 0x51cbff
mov dword [ebp - 8], 0x204
jmp 0x5218ac
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 0x51cc9f
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 0x51cc9d
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 0x51cca9
mov dword [ebp - 0x3c4], 0
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x51ccd9
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.00523fa0
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 0x51cd03
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 0x51cd1b
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffffd
jne 0x51cd1b
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.004b4740
add esp, 0x10
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x51cd45
jmp 0x521aa8
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.004e8ad0
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 0x51cdc5
mov dword [ebp - 0x3c8], 1
jmp 0x51cdcf
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.004e8b80
add esp, 8
cmp dword [ebp - 8], 0
je 0x51ce00
jmp 0x5218ac
jmp case.0x518c22.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.004b4740
add esp, 0x10
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jne 0x51ce48
jmp 0x521aa8
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.004e8ad0
add esp, 0x14
mov dword [ebp - 8], eax
jmp case.0x518c22.88
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jle 0x51cf3f
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], 0x60382b
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 0x51cfab
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 8]
shr ecx, 3
and ecx, 1
jne 0x51cfab
mov edx, dword [ebp - 0x3c]
movsx eax, word [edx + 0x3c]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], eax
jg 0x51cfab
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.004e8370
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x51d13e
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.004b4740
add esp, 0x10
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x51cfd5
jmp 0x521aa8
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 [0x5bf260]
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.004ea870
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51d13e
push 0
push 1
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004e7ed0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51d0ea
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 0x51d0ba
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.004e8a90
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51d0b1
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.004e8ad0
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 4], 0
jmp 0x51d0ea
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.004e8ad0
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 0x51d102
mov dword [ebp - 0x3cc], 1
jmp 0x51d10c
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 0x51d13e
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004e8420
add esp, 4
cmp dword [ebp - 8], 0
je 0x51d149
jmp 0x5218ac
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 2], 1
jmp case.0x518c22.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.004b4740
add esp, 0x10
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jne 0x51d185
jmp 0x521aa8
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.00526700
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d1bc
jmp 0x5218ac
jmp case.0x518c22.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 0x51d21f
jmp 0x518d0e
jmp case.0x518c22.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.004b4740
add esp, 0x10
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jne 0x51d254
jmp 0x521aa8
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.004e9280
mov ecx, dword [ebp - 0x1c8]
mov dword [ecx + 0x2c], eax
jmp case.0x518c22.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.005225c0
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.0x518c22.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 0x51d4b3
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 0x51d354
push 0
mov edx, dword [ebp - 0x28]
push edx
call fcn.004b6330
add esp, 8
mov eax, dword [ebp - 0x28]
push eax
call fcn.00522ed0
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 0x51d45f
movzx eax, word [ebp - 0x12c]
and eax, 8
jne 0x51d3ec
movzx ecx, word [ebp - 0x12c]
and ecx, 1
jne 0x51d3b9
cmp dword [ebp - 0xb0], 0x19
jl 0x51d3c0
jmp 0x518d0e
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004ea550
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d3e7
jmp 0x5218ac
jmp 0x51d67d
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.00500ff0
add esp, 0x10
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0
jle 0x51d43c
mov edx, dword [ebp - 0xb0]
and edx, 1
jne 0x51d43a
mov eax, dword [ebp - 0xb0]
sub eax, 1
mov dword [ebp - 0xb0], eax
jmp 0x51d45f
cmp dword [ebp - 0x3d0], 0
jge 0x51d45f
mov ecx, dword [ebp - 0xb0]
and ecx, 1
je 0x51d45f
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.004eb9c0
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 0x51d4ae
jmp 0x5218ac
jmp 0x51d58c
push 2
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e8b20
add esp, 8
test eax, eax
je 0x51d4d5
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 0x51d518
mov dword [ebp - 0x3d4], 0xffffffff
jmp 0x51d522
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.004e9620
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d573
jmp 0x5218ac
cmp dword [ebp - 0x290], 0
je 0x51d58c
movzx edx, byte [ebp - 0x6da]
test edx, edx
jne 0x51d58c
jmp 0x51d67d
cmp dword [ebp - 0xb0], 0x19
jl 0x51d603
cmp dword [ebp - 0x8c], 0
jl 0x51d5b0
cmp dword [ebp - 0x8c], 0
jne 0x51d5f7
cmp dword [ebp - 0xb0], 0x1a
jne 0x51d5f7
mov dword [ebp - 0x8c], 0
push 0
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004ea7c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d5f5
cmp dword [ebp - 8], 0x65
jne 0x51d5f0
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x51d5f5
jmp 0x5218ac
jmp 0x51d601
mov dword [ebp - 0x8c], 0
jmp 0x51d67d
cmp dword [ebp - 0x8c], 0
jg 0x51d61e
cmp dword [ebp - 0x8c], 0
jne 0x51d665
cmp dword [ebp - 0xb0], 0x17
jne 0x51d665
mov dword [ebp - 0x8c], 0
push 0
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004eb120
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d663
cmp dword [ebp - 8], 0x65
jne 0x51d65e
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x51d663
jmp 0x5218ac
jmp 0x51d67d
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e8b50
add esp, 4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x51d68d
jmp 0x518d0e
cmp dword [ebp - 0x290], 0
je 0x51d69f
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp case.0x518c22.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.004e8b90
add esp, 4
test eax, eax
jne 0x51d6dd
jmp case.0x518c22.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 0x51d7ee
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.00522cc0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d775
jmp 0x5218ac
cmp dword [ebp - 0x294], 0
jle 0x51d78c
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp 0x518d0e
cmp dword [ebp - 0x294], 0
jne 0x51d79c
jmp 0x518d0e
cmp dword [ebp - 0x298], 0
jg 0x51d7a7
jmp 0x51d7ee
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.004ea7c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51d7e9
cmp dword [ebp - 8], 0x65
jne 0x51d7e4
mov dword [ebp - 8], 0
jmp 0x51d77e
jmp 0x5218ac
jmp 0x51d739
jmp case.0x518c22.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 0x51d82d
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 8]
mov word [eax + 0xc], dx
jmp 0x51d850
mov eax, dword [ebp - 0x264]
movzx ecx, word [eax + 0xc]
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 0xc]
jle 0x51d850
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 0xc]
mov word [eax + 0xc], dx
jmp case.0x518c22.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 0x51d86c
jmp case.0x518c22.11
jmp case.0x518c22.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.0x518c22.29
jmp case.0x518c22.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 0x51d909
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 0x51d9a2
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 8]
and eax, 0x4000
je 0x51d92b
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00523a30
add esp, 4
mov dword [ebp - 0x3d8], eax
jmp 0x51d935
mov dword [ebp - 0x3d8], 0
mov edx, dword [ebp - 0x3d8]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x51d949
jmp 0x521aa8
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x30]
push ecx
call fcn.00517cb0
add esp, 4
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x29c], edx
cmp dword [ebp - 0xfc], 0
jne 0x51d97b
jmp 0x521aa8
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.00525c30
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 0x51da16
mov dword [ebp - 0x1ec], 0
jmp 0x51d9dc
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 0x51da16
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 0x51da14
mov dword [ebp - 0x3e4], 1
jmp 0x51da16
jmp 0x51d9cd
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.004e9620
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 0x29c], 0
je 0x51da55
mov eax, dword [ebp - 0x29c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f02b0
add esp, 8
cmp dword [ebp - 8], 0
je 0x51da60
jmp 0x5218ac
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x3dc]
mov dword [edx + 0x24], eax
cmp dword [ebp - 0x3dc], 0
jne 0x51da84
mov dword [ebp - 0x3e0], 1
jmp 0x51da8e
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 0x51dae0
cmp dword [ebp - 0x2a0], 0
je 0x51dade
jmp 0x518d0e
jmp 0x51db13
cmp dword [ebp - 0x3e4], 0
jne 0x51daf2
cmp dword [ebp - 0x2a0], 0
jne 0x51daf7
jmp 0x518d0e
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1c
jne 0x51db13
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 4]
mov ax, word [edx + 0x10]
mov word [ecx + 0xc], ax
jmp case.0x518c22.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.0x518c22.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.004b6290
add esp, 0xc
movzx edx, word [ebp - 0x808]
and edx, 4
jne 0x51db70
jmp 0x518d0e
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], ecx
jmp 0x51dbab
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.004eb9c0
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 0x51dc73
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jne 0x51dc6e
push 0x16936
call fcn.004ee620
add esp, 4
mov dword [ebp - 8], eax
jmp 0x51dc73
jmp 0x518d0e
cmp dword [ebp - 8], 0
je 0x51dc7e
jmp 0x5218ac
jmp case.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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.0x518c22.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.004d5090
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 0x51ddc6
lea eax, [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004ea550
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51dd5d
jmp 0x5218ac
cmp dword [ebp - 0x17c], 0
je 0x51dd74
xor eax, eax
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], eax
jmp 0x51ddc6
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004ea060
add esp, 4
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp dword [ebp - 0x70], 0x7fffffff
jl 0x51ddb4
jg 0x51dd9d
cmp dword [ebp - 0x74], 0xffffffff
jb 0x51ddb4
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
or ecx, 2
mov edx, dword [ebp - 0xb8]
mov dword [edx + 8], ecx
jmp 0x51ddc6
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 0x51dee3
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x51de25
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x1f0], edx
jmp 0x51ddff
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 0x51de0d
jmp 0x51ddf0
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 0x51de35
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.00523fa0
add esp, 4
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x3e8], eax
mov ecx, dword [ebp - 0x3e8]
cmp dword [ecx], 0xffffffff
jne 0x51de6a
mov edx, dword [ebp - 0x3e8]
cmp dword [edx + 4], 0x7fffffff
je 0x51de7a
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
shr ecx, 1
and ecx, 1
je 0x51de86
mov dword [ebp - 8], 0xd
jmp 0x5218ac
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 0x51ded2
jl 0x51debb
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x6b4]
jae 0x51ded2
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 0x51dfa0
mov dword [ebp - 0x2a8], 0
lea eax, [ebp - 0x74]
push eax
push 8
call fcn.004af860
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.004eb9c0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51df80
cmp dword [ebp - 0x17c], 0
jne 0x51df80
mov ecx, dword [ebp - 0x2a8]
add ecx, 1
mov dword [ebp - 0x2a8], ecx
cmp dword [ebp - 0x2a8], 0x64
jl 0x51df01
cmp dword [ebp - 8], 0
je 0x51df8b
jmp 0x5218ac
cmp dword [ebp - 0x17c], 0
jne 0x51dfa0
mov dword [ebp - 8], 0xd
jmp 0x5218ac
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.0x518c22.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 0x51e058
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xfc], 0
je 0x51e058
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 0x51e06c
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x3f0], 0
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 1
je 0x51e090
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 0x51e0b1
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 0x51e0ec
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x3ec], edx
jmp 0x51e0f6
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 0x51e124
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [eax]
mov dword [ebp - 0x744], ecx
jmp 0x51e12e
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.004e99b0
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 0x51e18b
jmp 0x5218ac
cmp dword [ebp - 0x2ac], 0
je 0x51e1f3
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 4
je 0x51e1ac
mov dword [ebp - 0x3f4], 0x17
jmp 0x51e1b6
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.0x518c22.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 0x51e24a
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 0x51e255
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.004ebd40
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e2a5
jmp 0x5218ac
jmp case.0x518c22.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 0x51e345
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xfc], 0
je 0x51e345
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 0x51e343
mov edx, dword [ebp - 0x110]
movzx eax, byte [edx + 4]
test eax, eax
je 0x51e343
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004ea060
add esp, 4
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
jmp 0x51e359
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.004e8ca0
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 0x51e39b
jmp 0x5218ac
mov edx, dword [ebp - 0x638]
and edx, 1
je 0x51e41b
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 0x51e41b
cmp dword [ebp - 0x1f8], 0
je 0x51e41b
mov edx, dword [ebp - 0x1f8]
mov eax, dword [edx + 0x1c]
and eax, 0x80
jne 0x51e41b
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.0x518c22.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.00526390
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.0x518c22.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.00526610
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e4b0
jmp 0x5218ac
cmp dword [ebp - 0x3fc], 0
je 0x51e4be
jmp 0x518d0e
jmp case.0x518c22.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.00526ce0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e506
jmp 0x5218ac
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.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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.004eb100
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 0x51e589
jmp 0x521a8b
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x400]
push eax
mov ecx, dword [ebp - 0x404]
push ecx
call fcn.00523c40
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e5b1
jmp 0x5218ac
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
jne 0x51e5de
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
and ecx, 0x1000
je 0x51e5de
mov edx, dword [ebp - 0x10]
push edx
call fcn.00523fe0
add esp, 4
test eax, eax
je 0x51e5de
jmp 0x521aa8
jmp case.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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 0x51e62f
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x518c22.88
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
test eax, eax
je 0x51e65a
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 0x51e723
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 2
jne 0x51e6c9
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.00528360
add esp, 8
cmp dword [ebp - 8], 0
je 0x51e6c7
jmp 0x5218ac
jmp 0x51e723
mov eax, dword [ebp - 0xf8]
push eax
call fcn.005183a0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e6e6
jmp 0x5218ac
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x51e705
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x518c22.88
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004ea060
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.0x518c22.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 0x51e787
mov ecx, dword [ebp - 0x1fc]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004e8340
add esp, 4
jmp case.0x518c22.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 0x51e7ed
mov eax, dword [ebp - 0x184]
mov dword [eax + 0x24], 0xffffffff
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.004e8b90
add esp, 4
test eax, eax
je 0x51e7ed
jmp case.0x518c22.88
lea edx, [ebp - 0x2b0]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.004ea550
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 0x51e837
jmp 0x5218ac
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jle 0x51e84e
cmp dword [ebp - 0x2b0], 0
je 0x51e84e
jmp 0x518d0e
jmp case.0x518c22.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.004e9290
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51e89b
jmp 0x5218ac
cmp dword [ebp - 0x2b4], 0
jne 0x51e8fc
mov eax, dword [ebp - 0x410]
push eax
call fcn.004eb340
add esp, 4
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x548], edx
cmp dword [ebp - 0x548], 0
jl 0x51e8fc
jg 0x51e8d3
cmp dword [ebp - 0x54c], 0
jb 0x51e8fc
mov ecx, dword [ebp - 0x548]
push ecx
mov edx, dword [ebp - 0x54c]
push edx
call fcn.00502740
add esp, 8
cwde
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
jge 0x51e8fc
mov dword [ebp - 0x2b4], 1
cmp dword [ebp - 0x2b4], 0
je 0x51e90a
jmp 0x518d0e
jmp case.0x518c22.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 0x51e97c
lea edx, [ebp - 0x200]
push edx
mov eax, dword [ebp - 0x168]
push eax
call fcn.00526c30
add esp, 8
mov dword [ebp - 8], eax
jmp 0x51e9bb
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.004e9290
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 0x51e9c6
jmp 0x5218ac
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x200]
mov byte [ecx + 2], dl
cmp dword [ebp - 0x200], 0
je 0x51e9e3
jmp 0x518d0e
jmp case.0x518c22.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.00526a20
add esp, 8
mov dword [ebp - 8], eax
jmp 0x51ea49
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 0x51ea90
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.0x518c22.11
cmp dword [ebp - 8], 0x65
je 0x51ea9b
jmp 0x5218ac
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x16c]
mov byte [ecx + 2], 1
jmp 0x518c3b
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 0x51eaf7
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 0x51eb1a
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00523a30
add esp, 4
mov dword [ebp - 0x414], eax
jmp 0x51eb24
mov dword [ebp - 0x414], 0
mov eax, dword [ebp - 0x414]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51eb38
jmp 0x5218ac
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 0x51eb92
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x418], edx
jmp 0x51eb9c
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.004e99b0
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2b8]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
je 0x51ebe5
jmp 0x5218ac
jmp case.0x518c22.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 0x51ec2e
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00523a30
add esp, 4
mov dword [ebp - 0x41c], eax
jmp 0x51ec38
mov dword [ebp - 0x41c], 0
mov edx, dword [ebp - 0x41c]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x51ec4c
jmp 0x5218ac
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x584]
push ecx
call fcn.00526d60
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51ec6d
jmp 0x5218ac
jmp case.0x518c22.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.004e9620
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51ecf5
jmp 0x5218ac
cmp dword [ebp - 0x588], 0
jne 0x51ed1f
push 4
mov eax, dword [ebp - 0x420]
push eax
call fcn.004e8ca0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51ed1d
jmp 0x5218ac
jmp 0x51ed59
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
test edx, edx
je 0x51ed59
mov eax, dword [ebp - 0xc]
push eax
call fcn.00530ff0
add esp, 4
test eax, eax
jne 0x51ed59
push str.index_corruption
push 0x16d56
push 0x30b
call fcn.0050d650
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x5218ac
mov ecx, dword [ebp - 0x204]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0x204]
mov dword [edx + 0x24], 0
jmp case.0x518c22.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.005183a0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51edaa
jmp 0x5218ac
mov eax, dword [ebp - 0x208]
movzx ecx, byte [eax + 2]
test ecx, ecx
jne 0x51ee8a
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.00522d90
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51edf2
jmp 0x5218ac
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x8c
jne 0x51ee61
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 0x51ee88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
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 0x51ee9d
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.005242d0
add esp, 4
jmp case.0x518c22.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 0x51eee2
mov ecx, dword [ebp - 0x424]
push ecx
call fcn.005223b0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51eee2
jmp 0x5218ac
jmp case.0x518c22.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 0x51ef2d
mov byte [ebp - 0x6f6], 0xff
jmp 0x51ef34
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.004eb100
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x350], ecx
cmp dword [ebp - 0x350], 0
jl 0x51efa6
jg 0x51ef8f
cmp dword [ebp - 0x354], 0
jbe 0x51efa6
cmp dword [ebp - 0x350], 0
jl 0x51efbb
jg 0x51efa6
cmp dword [ebp - 0x354], 0x7fffffff
jbe 0x51efbb
push 0x16e22
call fcn.004ee620
add esp, 4
mov dword [ebp - 8], eax
jmp 0x5218ac
push 0
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x838]
push eax
call fcn.00523f70
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.00523c40
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51effb
jmp 0x5218ac
push 0
lea ecx, [ebp - 0x700]
push ecx
mov edx, dword [ebp - 0x828]
push edx
mov eax, dword [ebp - 0x82c]
push eax
call fcn.005255f0
add esp, 0x10
mov dword [ebp - 0x18c], eax
lea ecx, [ebp - 0x838]
push ecx
call fcn.00524210
add esp, 4
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
and eax, 1
je 0x51f04a
mov ecx, dword [ebp - 0x18c]
neg ecx
mov dword [ebp - 0x18c], ecx
jmp 0x51f059
mov edx, dword [ebp - 0x18c]
add edx, 1
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 0
jle 0x51f067
jmp 0x518d0e
jmp case.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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 0x51f0bd
mov dword [ebp - 8], 6
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x9a], 2
jmp 0x5218ac
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.004e91c0
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 0x51f126
jmp 0x5218ac
cmp dword [ebp - 0x20c], 0
je 0x51f15c
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.0050e170
add esp, 0x10
mov ecx, dword [ebp - 0x2bc]
add ecx, 1
mov byte [ebp - 0x61], cl
jmp case.0x518c22.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.004e8370
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x51f1f7
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 0x51f1f7
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 0x51f202
jmp 0x5218ac
jmp case.0x518c22.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 0x51f242
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00526b10
add esp, 8
jmp 0x51f262
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004e8400
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51f262
jmp 0x5218ac
jmp case.0x518c22.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004d5090
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.004e8a90
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51f2c7
jmp 0x5218ac
mov edx, dword [ebp - 0x430]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x518c22.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.004ae4e0
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 0x51f31f
jmp 0x5218ac
jmp case.0x518c22.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 0x51f3b5
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.0050f210
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.004ff4b0
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 0x51f4e9
mov dword [ebp - 0x590], 0x5f1288
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.004ea5f0
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.00502b20
add esp, 0x14
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0
jne 0x51f45c
mov dword [ebp - 8], 7
jmp 0x51f4e9
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.004ff130
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004ae4e0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51f4ad
mov eax, dword [ebp - 0x710]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x51f4cc
cmp dword [ebp - 0x708], 0
jne 0x51f4cc
push 0x16f1e
call fcn.004ee620
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004f02b0
add esp, 8
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xb1], 0
cmp dword [ebp - 8], 0
je 0x51f50b
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0050d740
add esp, 4
cmp dword [ebp - 8], 7
jne 0x51f506
jmp 0x521aa8
jmp 0x5218ac
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e58c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51f531
jmp 0x5218ac
jmp case.0x518c22.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.00514b30
add esp, 0xc
jmp case.0x518c22.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.00514a70
add esp, 0xc
jmp case.0x518c22.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.00514b90
add esp, 0xc
jmp case.0x518c22.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.004ea080
add esp, 0x18
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.005242d0
add esp, 4
cmp dword [ebp - 0x434], 0
jne 0x51f62f
jmp 0x51f681
cmp dword [ebp - 0x438], 0
jne 0x51f63f
jmp 0x521aa8
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.004af750
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, dword [ebp - 0x438]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.005243d0
add esp, 0x18
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00517e10
add esp, 8
jmp 0x518c3b
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 0x51f6d2
mov eax, dword [ebp - 0x14]
push eax
call fcn.00524370
add esp, 4
test eax, eax
je 0x51f6d2
jmp 0x521aa8
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.0050e370
add esp, 0xc
jmp case.0x518c22.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 0x51f723
lea ecx, [ebp - 0x6f0]
push ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
push eax
call fcn.0050e410
add esp, 8
test eax, eax
jne 0x51f736
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.005242d0
add esp, 4
jmp case.0x518c22.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.00524280
add esp, 0xc
jmp 0x518c3b
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 0x51f7a3
mov edx, dword [ebp - 0x14]
push edx
call fcn.00524370
add esp, 4
test eax, eax
je 0x51f7a3
jmp 0x521aa8
cmp dword [ebp - 0x2cc], 0
je 0x51f7e0
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.0050e4a0
add esp, 0x10
mov dword [ebp - 0x59c], eax
cmp dword [ebp - 0x59c], 0
je 0x51f7e0
jmp 0x518d0e
cmp dword [ebp - 0x2cc], 0
jl 0x51f802
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.0050e370
add esp, 0xc
jmp case.0x518c22.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 0x51f875
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 0x51f854
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0
je 0x51f86a
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x1c]
cmp eax, dword [ebp - 0x5a0]
je 0x51f86a
jmp 0x51f84b
cmp dword [ebp - 0x30], 0
je 0x51f875
jmp case.0x518c22.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 0x51f8ac
mov dword [ebp - 8], 1
push str.too_many_levels_of_trigger_recursion
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
add esp, 8
jmp 0x5218ac
mov edx, dword [ebp - 0x134]
movzx eax, word [edx + 8]
and eax, 0x10
jne 0x51fa83
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 0x51f8f2
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.004f0680
add esp, 0xc
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x51f946
jmp 0x521aa8
mov ecx, dword [ebp - 0x134]
push ecx
call fcn.00524210
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], 0x5224b0
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 0x51fa56
mov eax, dword [ebp - 0x194]
add eax, 0x28
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x194]
cmp ecx, dword [ebp - 0x5a4]
je 0x51fa81
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 0x51fa47
jmp 0x51fa8f
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.0057ccd0
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 0x518c3b
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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.00524730
add esp, 0xc
jmp case.0x518c22.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 0x51fc95
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 0x51fcde
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x51fcc5
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 0x51fcde
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.0x518c22.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x51fd39
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 0x51fd37
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 0x51fd37
jmp 0x518d0e
jmp 0x51fd7e
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 0x51fd7e
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 0x51fd7e
jmp 0x518d0e
jmp case.0x518c22.88
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xd8], 0
je 0x51fdd2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov dword [ebp - 0x214], eax
jmp 0x51fdaf
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 0x51fdbd
jmp 0x51fda0
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 0x51fddf
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.00523fa0
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.00523fa0
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 0x51fe4e
jl 0x51fe3e
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x454]
mov edx, dword [eax]
cmp edx, dword [ecx]
jae 0x51fe4e
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.0x518c22.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 0x51fea2
jg 0x51fe82
mov eax, dword [ebp - 0x458]
cmp dword [eax], 0
jbe 0x51fea2
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 0x518d0e
jmp case.0x518c22.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.004d5090
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 0x51ff60
jg 0x51fefc
cmp dword [ebp - 0x364], 0
jbe 0x51ff60
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
cmp dword [eax + 4], 0
jl 0x51ff34
jg 0x51ff1e
mov ecx, dword [ebp - 0x45c]
cmp dword [ecx], 0
jbe 0x51ff34
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 0x51ff3f
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.004e3d70
add esp, 0xc
test eax, eax
je 0x51ff71
mov edx, dword [ebp - 0x10]
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov dword [edx + 4], eax
jmp 0x51ff85
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.0x518c22.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 0x51fff0
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x464], ecx
mov edx, dword [ebp - 0x464]
cmp dword [edx + 4], 0
jl 0x51ffeb
jg 0x51ffd5
mov eax, dword [ebp - 0x464]
cmp dword [eax], 0
jbe 0x51ffeb
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 0x518d0e
jmp case.0x518c22.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 0x52003d
jg 0x520027
mov eax, dword [ebp - 0x468]
cmp dword [eax], 0
jbe 0x52003d
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 0x52005e
jmp 0x518d0e
jmp case.0x518c22.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.004f0400
add esp, 0xc
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x5200a1
jmp 0x521aa8
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.00523f70
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 0x5201cc
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 0x5201a2
mov edx, dword [ebp - 0x114]
sub edx, 1
mov dword [ebp - 0x114], edx
cmp dword [ebp - 0x114], 0
jl 0x5201cc
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 0x520193
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 0x52020d
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 0x52022e
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 0x5202e5
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x14], 0
jle 0x52026d
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.004b2030
add esp, 4
push eax
push 0x5f12ec
mov eax, dword [ebp + 8]
push eax
call fcn.00518a40
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 0x5202b4
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 0x5202ad
push 0
push 1
imul eax, dword [ebp - 0x114], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.00524280
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.00524210
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 0x5202e5
jmp 0x5218ac
jmp case.0x518c22.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 0x520339
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.005237c0
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 0x520352
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x170]
push edx
call fcn.00523ad0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x52037e
mov eax, dword [ebp - 0x170]
push eax
call fcn.004b2030
add esp, 4
push eax
push 0x5f12f0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
add esp, 0xc
jmp 0x5218ac
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x170]
push eax
call fcn.00517e10
add esp, 8
mov ecx, dword [ebp - 0x170]
push ecx
call fcn.00524850
add esp, 4
test eax, eax
je 0x5203aa
jmp 0x521a8b
jmp case.0x518c22.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.004ec4b0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x52044e
cmp dword [ebp - 8], 5
je 0x520434
jmp 0x5218ac
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 0x520488
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 0x5204b2
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.00524280
add esp, 0xc
jmp 0x52046a
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
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.004eb060
add esp, 4
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00505170
add esp, 4
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x52052e
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.00505580
add esp, 4
test eax, eax
jne 0x52054d
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x84], eax
push 1
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.00505060
add esp, 8
mov dword [ebp - 0x5ac], eax
cmp dword [ebp - 0x84], 5
jne 0x52059f
mov edx, dword [ebp - 0x5ac]
push edx
call fcn.00513a80
add esp, 4
test eax, eax
je 0x520593
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00506b50
add esp, 4
test eax, eax
jne 0x52059f
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x118]
je 0x5206bb
cmp dword [ebp - 0x118], 5
je 0x5205c7
cmp dword [ebp - 0x84], 5
jne 0x5206bb
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x55]
test ecx, ecx
je 0x5205de
mov edx, dword [ebp - 0xc]
cmp dword [edx + 0xc0], 1
jle 0x520626
mov dword [ebp - 8], 1
cmp dword [ebp - 0x84], 5
jne 0x5205fa
mov dword [ebp - 0x470], str.into
jmp 0x520604
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.00518a40
add esp, 0xc
jmp 0x5218ac
cmp dword [ebp - 0x118], 5
jne 0x520663
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00504b70
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x520661
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.00506370
add esp, 8
jmp 0x52067d
cmp dword [ebp - 0x118], 4
jne 0x52067d
push 2
mov eax, dword [ebp - 0x11c]
push eax
call fcn.00506370
add esp, 8
cmp dword [ebp - 8], 0
jne 0x5206bb
cmp dword [ebp - 0x84], 5
jne 0x520698
mov dword [ebp - 0x474], 2
jmp 0x5206a2
mov dword [ebp - 0x474], 1
mov ecx, dword [ebp - 0x474]
push ecx
mov edx, dword [ebp - 0x478]
push edx
call fcn.004eb8b0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5206cd
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.00506370
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.00501790
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.00513a80
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.00517e10
add esp, 8
cmp dword [ebp - 8], 0
je 0x520742
jmp 0x5218ac
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
je 0x520762
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x47c], ecx
jmp 0x52076c
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.0050eaa0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x52079d
jmp 0x5218ac
jmp case.0x518c22.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.004e94c0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5207ea
cmp dword [ebp - 8], 0x65
je 0x5207de
jmp 0x5218ac
mov dword [ebp - 8], 0
jmp 0x518d0e
jmp case.0x518c22.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
jne 0x52080d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f3450
add esp, 8
jmp 0x520830
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.0x518c22.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.004e8bc0
add esp, 4
jmp case.0x518c22.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.004e8c60
add esp, 4
jmp case.0x518c22.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 0x5208d4
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 0x52094a
cmp dword [ebp - 0x6c8], 0
jne 0x52094a
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.004ea690
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x52094a
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 6
jne 0x520945
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.00518a40
add esp, 0xc
jmp 0x5218ac
jmp case.0x518c22.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.00527760
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x2dc], 0
je 0x520990
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00528360
add esp, 8
cmp dword [ebp - 8], 0
je 0x52099b
jmp 0x5218ac
jmp case.0x518c22.88
push 0x28
push 0
lea eax, [ebp - 0x860]
push eax
call fcn.0057ccd0
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.005239a0
add esp, 8
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.004b2030
add esp, 4
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0
je 0x520a1d
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.00527ab0
add esp, 0x10
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.00524210
add esp, 4
cmp dword [ebp - 8], 0
je 0x520a37
jmp 0x5218ac
jmp case.0x518c22.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.00527bd0
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 0x520a8e
jmp 0x5218ac
jmp case.0x518c22.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 0x520aca
mov edx, dword [ebp - 0x120]
cmp dword [edx], 0
jne 0x520ad6
mov dword [ebp - 8], 6
jmp 0x5218ac
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.00528360
add esp, 8
cmp dword [ebp - 8], 0
je 0x520b21
jmp 0x5218ac
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.004b4740
add esp, 0x10
mov dword [ebp - 0x2e0], eax
cmp dword [ebp - 0x2e0], 0
je 0x520b7b
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 0x520b95
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x484]
mov edx, dword [ecx + 0x1c]
call edx
add esp, 4
jmp 0x521aa8
jmp case.0x518c22.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.004af6b0
add esp, 8
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
jne 0x520bcf
jmp 0x521aa8
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.004d5090
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 1
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
push fcn.004af750
push str.ValueList
mov eax, dword [ebp - 0x224]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00524300
add esp, 0x10
jmp case.0x518c22.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 0x520cdb
mov ecx, dword [ebp - 0x198]
add ecx, 1
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x198]
cmp edx, dword [ebp - 0x494]
jge 0x520d0c
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 0x520ccc
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.00528360
add esp, 8
cmp dword [ebp - 8], 0
je 0x520d5e
jmp 0x5218ac
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 0x520d91
jmp 0x518d0e
jmp case.0x518c22.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 0x520ddd
mov eax, dword [ebp - 0xb4]
push eax
call fcn.005242d0
add esp, 4
jmp case.0x518c22.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.0057ccd0
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 0x520e53
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.005242d0
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 0x520e6f
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.00528360
add esp, 8
cmp dword [ebp - 0x784], 0
jle 0x520ede
mov edx, dword [ebp - 0xb4]
push edx
call fcn.004b2030
add esp, 4
push eax
push 0x5f1364
mov eax, dword [ebp + 8]
push eax
call fcn.00518a40
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.00517e10
add esp, 8
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.00524850
add esp, 4
test eax, eax
je 0x520f0a
jmp 0x521a8b
cmp dword [ebp - 8], 0
je 0x520f15
jmp 0x5218ac
jmp case.0x518c22.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 0x520f42
jmp case.0x518c22.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.00528360
add esp, 8
cmp dword [ebp - 8], 0
je 0x520f9a
jmp 0x5218ac
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 0x520fc6
jmp case.0x518c22.11
jmp 0x518c3b
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.00517e10
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x521032
jmp 0x5218ac
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 0x521077
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.00528360
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 0x5210aa
jmp 0x5218ac
jmp case.0x518c22.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d4], xmm0
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x57]
test ecx, ecx
je 0x5210ca
jmp 0x521aa8
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 0x5210ed
mov edx, dword [ebp - 0x19c]
cmp dword [edx], 0
jne 0x5210f9
mov dword [ebp - 8], 6
jmp 0x5218ac
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 0x5212a0
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 0x521166
mov edx, dword [ebp - 0x22c]
add edx, 1
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x4b8]
jge 0x52119a
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 0x521157
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.00528360
add esp, 8
cmp dword [ebp - 8], 0
jne 0x521216
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x521216
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 0x52127d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
movzx ecx, byte [eax + 0x10]
test ecx, ecx
je 0x52127d
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
cmp eax, 4
jne 0x521247
mov dword [ebp - 8], 0
jmp 0x52127b
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
cmp edx, 5
jne 0x52125f
mov dword [ebp - 0x4c0], 2
jmp 0x52126c
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 0x521295
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 0x5212a0
jmp 0x5218ac
jmp case.0x518c22.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004d5090
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.004ea5f0
add esp, 4
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x518c22.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004d5090
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 0x521351
mov edx, dword [ebp - 0x4c4]
push edx
call fcn.004ea5f0
add esp, 4
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [eax + 0xc]
jae 0x521351
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.004ea710
add esp, 8
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x518c22.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 0x521404
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 0x5213d7
mov eax, dword [ebp - 0x1a0]
sub eax, 1
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jl 0x521404
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 0x5213c8
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 0x5214c9
mov edx, dword [ebp - 0x88]
cmp dword [edx + 0x14], 0
jle 0x52148a
mov eax, dword [ebp - 0x10]
push eax
call fcn.004b2030
add esp, 4
push eax
push 0x5f1368
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
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.00518460
add esp, 0x10
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x14], 0
cmp dword [ebp - 8], 0
je 0x5214c9
jmp 0x5218ac
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0x12
je 0x5214fb
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00517e10
add esp, 8
mov eax, dword [ebp - 0x10]
push eax
call fcn.00524850
add esp, 4
test eax, eax
je 0x5214fb
jmp 0x521a8b
jmp case.0x518c22.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.004c6710
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.0057bb70
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.0057bb00
push 0
push 1
push edx
push eax
call fcn.0057b9e0
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.0057bb00
push 0
push 1
push edx
push eax
call fcn.0057b9e0
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x10]
mov byte [eax + ecx], bl
jmp case.0x518c22.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.004c6710
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.0057bb70
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.0057bb00
push 0
push 1
push edx
push eax
call fcn.0057b9e0
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 0x52167e
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 0x518d0e
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.0x518c22.88
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x5e]
and eax, 0x41
je 0x5217ec
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x9d]
test edx, edx
jne 0x5217ec
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x5216e3
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x4c8], edx
jmp 0x5216f2
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 0x5217ec
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 0x40
je 0x521763
mov edx, dword [ebp - 0x234]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00521df0
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.004af750
add esp, 4
jmp 0x5217ec
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc8], 1
jle 0x5217c7
mov edx, dword [ebp - 0x234]
push edx
push 0x5f136c
mov eax, dword [ebp - 0xc]
push eax
call fcn.00502b20
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.004f0290
add esp, 8
jmp 0x5217ec
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 [0x5eec4c]
jl 0x52186c
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0xb3
jne 0x52180c
jmp case.0x518c22.88
mov dword [ebp - 0x1c0], 1
jmp 0x521827
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 0x521862
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 0x521860
imul edx, dword [ebp - 0x1c0], 0x14
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov dword [ecx + edx + 4], 0
jmp 0x521818
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 0x518d0e
jmp 0x518bcc
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x57]
test eax, eax
je 0x5218c0
mov dword [ebp - 8], 7
jmp 0x5218d9
cmp dword [ebp - 8], 0x210a
jne 0x5218d9
push 0x176af
call fcn.004ee620
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x84], 0
jne 0x52190c
cmp dword [ebp - 8], 0xc0a
je 0x52190c
mov edx, dword [ebp - 8]
push edx
call fcn.004f2e20
add esp, 4
push eax
push 0x5f1374
mov eax, dword [ebp + 8]
push eax
call fcn.00518a40
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.00513b40
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.004a56a0
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.00522720
add esp, 4
cmp dword [ebp - 8], 0xc0a
jne 0x52197a
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.005039c0
add esp, 4
cmp dword [ebp - 8], 0xb
jne 0x5219a0
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
jne 0x5219a0
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 0x5219c3
movzx eax, byte [ebp - 0x61]
sub eax, 1
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0050d810
add esp, 8
mov edx, dword [ebp - 0x268]
cmp edx, dword [ebp - 0xd4]
jb 0x521a50
ja 0x5219e1
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0xd8]
jb 0x521a50
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x521a50
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 0x521a4b
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov dword [ebp - 8], 9
jmp 0x5218ac
jmp 0x5219c3
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.00523030
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x521add
push str.string_or_blob_too_big
mov edx, dword [ebp + 8]
push edx
call fcn.00518a40
add esp, 8
mov dword [ebp - 8], 0x12
jmp 0x5218ac
mov eax, dword [ebp - 0xc]
push eax
call fcn.005039c0
add esp, 4
push 0x5f13b0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00518a40
add esp, 8
mov dword [ebp - 8], 7
jmp 0x5218ac
mov dword [ebp - 8], 9
jmp 0x5218ac
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret