Function at 0x50d8b0
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.0050d7d0
add esp, 4
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x50d97a
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 0x50d98d
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x28], 7
jne 0x50d99b
jmp 0x5168c8
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 0x50d9dd
jmp 0x5168f1
mov eax, dword [ebp + 8]
imul ecx, dword [eax + 0x24], 0x14
add ecx, dword [ebp - 0x38]
mov dword [ebp - 4], ecx
jmp 0x50d9f5
mov edx, dword [ebp - 4]
add edx, 0x14
mov dword [ebp - 4], edx
mov eax, 1
test eax, eax
je 0x5166cc
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.0x50da42.88
mov edx, dword [ebp - 0x4d4]
jmp dword [edx*4 + 0x516904]
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 0x50da6c
jmp 0x5168f1
mov ecx, dword [ebp - 0x268]
cmp ecx, dword [ebp - 0xd4]
jb 0x50daf9
ja 0x50da8a
mov edx, dword [ebp - 0x26c]
cmp edx, dword [ebp - 0xd8]
jb 0x50daf9
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0x170], 0
je 0x50daf9
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 0x50daf4
or edx, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], edx
mov dword [ebp - 8], 9
jmp 0x5166cc
jmp 0x50da6c
jmp case.0x50da42.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.0x50da42.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.00575580
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.0x50da42.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 0x50dbb5
jmp 0x50db2e
jmp case.0x50da42.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.00575580
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.0x50da42.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.0x50da42.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.0x50da42.70
jmp case.0x50da42.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 0x50dd4e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x50dd4e
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.0051b1b0
add esp, 0xc
mov ecx, dword [ebp - 0x4d8]
push ecx
call fcn.00517300
add esp, 4
mov dword [ebp - 0x148], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 4
jne 0x50dd2a
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.0x50da42.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 0x50de2a
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
test ecx, ecx
je 0x50dde3
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
mov ecx, dword [eax*4 + 0x5b8fb4]
push ecx
push str._s_constraint_failed
mov edx, dword [ebp + 8]
push edx
call fcn.0050d860
add esp, 0xc
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x50dde1
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.004f7940
add esp, 0x10
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x84], eax
jmp 0x50ddfb
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
push eax
push 0x5ea0cc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
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.0049a4e0
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.00517540
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x50de4b
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x28], 5
jmp 0x50de73
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
je 0x50de60
mov dword [ebp - 0x4dc], 1
jmp 0x50de6a
mov dword [ebp - 0x4dc], 0x65
mov eax, dword [ebp - 0x4dc]
mov dword [ebp - 8], eax
jmp 0x5167e3
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c9eb0
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.0x50da42.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
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.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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.0x50da42.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c9eb0
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.005088a0
add esp, 4
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
movzx eax, byte [ebp - 0x19]
cmp eax, 1
je 0x50dfd3
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.005191f0
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50df5d
jmp 0x5168ab
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0050cc30
add esp, 8
test eax, eax
je 0x50df77
jmp 0x5168c8
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 0x50dfb4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e50b0
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 0x50dfef
jmp 0x5168ab
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.004c9eb0
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 0x50e095
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 0x50e095
mov ecx, dword [ebp - 0x4e0]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp - 0x650]
jne 0x50e095
mov eax, 0xa10
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
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 0x50e0d4
mov dword [ebp - 0x4e4], 0x101
jmp 0x50e0de
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 0x50e14b
mov eax, dword [ebp - 0x10]
add eax, 0x28
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.005190f0
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 0x50e104
jmp case.0x50da42.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.0x50da42.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x10], 0
jne 0x50e1be
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00519500
add esp, 8
mov edx, dword [ebp - 0x10]
push edx
call fcn.00518850
add esp, 4
test eax, eax
je 0x50e1bc
jmp 0x5168c8
jmp 0x50e1de
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.005191f0
add esp, 0x18
mov ecx, dword [ebp - 0x10]
mov dl, byte [ebp - 0x19]
mov byte [ecx + 0xa], dl
jmp case.0x50da42.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.00519670
add esp, 4
test eax, eax
je 0x50e21c
jmp 0x5168ab
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 0x50e244
mov eax, dword [ebp - 0x10]
push eax
call fcn.005190f0
add esp, 4
push 0x14
mov ecx, dword [ebp - 0x4e8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00576360
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.0x50da42.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.00518e90
add esp, 8
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x50e2f8
mov eax, dword [ebp - 0x10]
push eax
call fcn.00518e00
add esp, 4
test eax, eax
je 0x50e2f8
jmp 0x5168c8
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 0x50e2c4
jmp case.0x50da42.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 0x50e3c2
push 0x1000
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00519550
add esp, 0xc
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx + 8]
and edx, 0x1000
je 0x50e388
mov eax, dword [ebp - 0x10]
push eax
call fcn.00518e00
add esp, 4
test eax, eax
je 0x50e388
jmp 0x5168c8
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 0x50e3ae
jmp 0x50e3c2
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 0x50e346
jmp case.0x50da42.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.00519550
add esp, 0xc
jmp case.0x50da42.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.005190a0
add esp, 0xc
jmp case.0x50da42.88
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050ce50
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50e44c
jmp 0x5166cc
jmp case.0x50da42.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 0x50e4ab
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 0x50e50a
imul edx, dword [ebp - 0x14c], 0x28
mov eax, dword [ebp - 0x30c]
movzx ecx, word [eax + edx + 8]
and ecx, 0x1000
je 0x50e4f2
imul edx, dword [ebp - 0x14c], 0x28
add edx, dword [ebp - 0x30c]
push edx
call fcn.00518e00
add esp, 4
test eax, eax
je 0x50e4f2
jmp 0x5168c8
imul eax, dword [ebp - 0x14c], 0x28
add eax, dword [ebp - 0x30c]
push eax
call fcn.00518ed0
add esp, 4
jmp 0x50e49c
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x57]
test edx, edx
je 0x50e51a
jmp 0x5168c8
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 4
je 0x50e546
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 0x5167e3
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 0x50e5c4
mov edx, dword [ebp - 0x10]
push edx
call fcn.005190f0
add esp, 4
jmp case.0x50da42.88
movzx eax, word [ebp - 0x90]
and eax, 0x12
jne 0x50e5ff
push 0
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.005195c0
add esp, 0xc
test eax, eax
je 0x50e5ec
jmp 0x5168c8
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 0xfffffffd
mov word [ebp - 0x90], cx
jmp 0x50e634
movzx edx, word [ebp - 0x90]
and edx, 0x4000
je 0x50e634
mov eax, dword [ebp - 0x14]
push eax
call fcn.00518850
add esp, 4
test eax, eax
je 0x50e623
jmp 0x5168c8
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 0x50e67d
push 0
movzx eax, byte [ebp - 0x19]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.005195c0
add esp, 0xc
test eax, eax
je 0x50e66a
jmp 0x5168c8
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx + 8]
and eax, 0xfffffffd
mov word [ebp - 0xa4], ax
jmp 0x50e6b2
movzx ecx, word [ebp - 0xa4]
and ecx, 0x4000
je 0x50e6b2
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00518850
add esp, 4
test eax, eax
je 0x50e6a1
jmp 0x5168c8
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 0x50e70a
jg 0x50e705
mov eax, dword [ebp - 0x1d0]
cmp eax, dword [ebp - 0x65c]
jbe 0x50e70a
jmp 0x5168ab
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x2c]
jne 0x50e71e
mov dword [ebp - 0x4f0], 1
jmp 0x50e728
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.00518ad0
add esp, 0xc
test eax, eax
je 0x50e74e
jmp 0x5168c8
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 0x50e797
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.00576360
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.00576360
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.00575580
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.00575580
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.00575580
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.0x50da42.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.004c95a0
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.004c95a0
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 0x50ea7d
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.0x50e932
mov eax, dword [ebp - 0x238]
jmp dword [eax*4 + 0x516bd4]
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.004d8b90
add esp, 0xc
test eax, eax
je 0x50e959
jmp 0x50ea93
jmp 0x50ea4e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.005088c0
add esp, 0xc
test eax, eax
je 0x50e97e
jmp 0x50ea93
jmp 0x50ea4e
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
lea eax, [ebp - 0xc0]
push eax
call fcn.004f8230
add esp, 0xc
test eax, eax
je 0x50e9a3
jmp 0x50ea93
jmp 0x50ea4e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x50e9b5
jmp 0x50ec39
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x50e9da
cmp dword [ebp - 0xc0], 0
jne 0x50e9da
cmp dword [ebp - 0xbc], 0x80000000
jne 0x50e9da
jmp 0x50ea93
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.005754d0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x50ea4e
mov ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0x68]
jne 0x50ea10
jmp 0x50ec39
mov edx, dword [ebp - 0x6c]
and edx, dword [ebp - 0x68]
cmp edx, 0xffffffff
jne 0x50ea27
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.005755c0
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 0x50ec34
movzx edx, word [ebp - 0x2f4]
and edx, 1
je 0x50ea93
jmp 0x50ec39
mov eax, dword [ebp - 0x14]
push eax
call fcn.0051a380
add esp, 4
fstp qword [ebp - 0x534]
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.0051a380
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.0x50eae5
mov edx, dword [ebp - 0x23c]
jmp dword [edx*4 + 0x516be4]
movsd xmm0, qword [ebp - 0x1d8]
addsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x50ebf0
movsd xmm0, qword [ebp - 0x1d8]
subsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x50ebf0
movsd xmm0, qword [ebp - 0x1d8]
mulsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x50ebf0
movsd xmm0, qword [ebp - 0x534]
ucomisd xmm0, qword [0x5b1fe0]
lahf
test ah, 0x44
jp 0x50eb5e
jmp 0x50ec39
movsd xmm0, qword [ebp - 0x1d8]
divsd xmm0, qword [ebp - 0x534]
movsd qword [ebp - 0x1d8], xmm0
jmp 0x50ebf0
mov eax, dword [ebp - 0x14]
push eax
call fcn.00517cf0
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00517cf0
add esp, 4
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov edx, dword [ebp - 0x6c]
or edx, dword [ebp - 0x68]
jne 0x50ebaf
jmp 0x50ec39
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
cmp eax, 0xffffffff
jne 0x50ebc6
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.005755c0
mov ecx, eax
call fcn.00575960
movsd qword [ebp - 0x1d8], xmm0
sub esp, 8
movsd xmm0, qword [ebp - 0x1d8]
movsd qword [esp], xmm0
call fcn.004f61a0
add esp, 8
test eax, eax
je 0x50ec0e
jmp 0x50ec39
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.0x50da42.88
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.005190f0
add esp, 4
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x50ec6a
push 0
push 0
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.005190a0
add esp, 0xc
jmp case.0x50da42.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 0x50ecbc
mov eax, dword [ebp - 0x10]
push eax
call fcn.005190f0
add esp, 4
jmp case.0x50da42.88
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00517cf0
add esp, 4
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00517cf0
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 0x50ed26
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 0x50ef0d
movzx edx, byte [ebp - 0x3d]
cmp edx, 0x67
jne 0x50ed58
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 0x50ef0d
mov edx, dword [ebp - 0xc8]
or edx, dword [ebp - 0xc4]
je 0x50ef0d
cmp dword [ebp - 0xc4], 0
jg 0x50edeb
jl 0x50ed7e
cmp dword [ebp - 0xc8], 0
jae 0x50edeb
movzx eax, byte [ebp - 0x3d]
mov ecx, 0xd1
sub ecx, eax
mov byte [ebp - 0x3d], cl
cmp dword [ebp - 0xc4], 0xffffffff
jl 0x50edc1
jg 0x50eda0
cmp dword [ebp - 0xc8], 0xffffffc0
jbe 0x50edc1
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 0x50edd3
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 0x50ee4a
jg 0x50edff
cmp dword [ebp - 0xc8], 0x40
jb 0x50ee4a
cmp dword [ebp - 0xcc], 0
jg 0x50ee28
jl 0x50ee13
cmp dword [ebp - 0xd0], 0
jae 0x50ee28
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
je 0x50ee28
mov dword [ebp - 0x4f4], 0xffffffff
jmp 0x50ee32
mov dword [ebp - 0x4f4], 0
mov eax, dword [ebp - 0x4f4]
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x50ef0d
push 8
lea edx, [ebp - 0xd0]
push edx
lea eax, [ebp - 0x178]
push eax
call fcn.00576360
add esp, 0xc
movzx ecx, byte [ebp - 0x3d]
cmp ecx, 0x68
jne 0x50ee90
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.00575680
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
jmp 0x50eef5
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x174]
mov ecx, dword [ebp - 0xc8]
call fcn.00575790
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
cmp dword [ebp - 0xcc], 0
jg 0x50eef5
jl 0x50eec7
cmp dword [ebp - 0xd0], 0
jae 0x50eef5
mov ecx, 0x40
sub ecx, dword [ebp - 0xc8]
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00575680
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.00576360
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.0x50da42.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.00518dc0
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.0x50da42.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 0x50efc6
movzx eax, byte [ebp - 0x19]
push eax
push 0x43
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.004ab0c0
add esp, 0xc
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 4
jne 0x50efc6
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
jne 0x50efc1
mov dword [ebp - 8], 0x14
jmp 0x5166cc
jmp 0x50db2e
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.0x50da42.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 0x50f006
mov eax, dword [ebp - 0x14]
push eax
call fcn.00519000
add esp, 4
jmp case.0x50da42.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 0x50f03b
mov edx, dword [ebp - 0x14]
push edx
call fcn.00518850
add esp, 4
mov dword [ebp - 0x4f8], eax
jmp 0x50f045
mov dword [ebp - 0x4f8], 0
mov eax, dword [ebp - 0x4f8]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50f059
jmp 0x5166cc
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.00518630
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50f080
jmp 0x5166cc
jmp case.0x50da42.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 0x50f1a5
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 0x50f124
jg 0x50f102
mov edx, dword [ebp - 0x4fc]
mov eax, dword [ebp - 0x500]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jbe 0x50f124
mov dword [ebp - 0x78], 1
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e8c98]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x50f122
jmp 0x50db2e
jmp 0x50f1a0
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 0x50f180
jl 0x50f15e
mov edx, dword [ebp - 0x504]
mov eax, dword [ebp - 0x508]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jae 0x50f180
mov dword [ebp - 0x78], 0xffffffff
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e8c90]
movzx edx, byte [ecx + eax]
test edx, edx
je 0x50f17e
jmp 0x50db2e
jmp 0x50f1a0
mov dword [ebp - 0x78], 0
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5e8c94]
movzx eax, byte [edx + ecx]
test eax, eax
je 0x50f1a0
jmp 0x50db2e
jmp case.0x50da42.88
movzx ecx, word [ebp - 0x48]
movzx edx, word [ebp - 0x34]
or ecx, edx
and ecx, 1
je 0x50f23d
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 2]
and ecx, 0x80
je 0x50f21b
movzx edx, word [ebp - 0x48]
movzx eax, word [ebp - 0x34]
and edx, eax
and edx, 1
je 0x50f1ee
movzx ecx, word [ebp - 0x34]
and ecx, 0x100
jne 0x50f1ee
mov dword [ebp - 0x1a4], 0
jmp 0x50f219
movzx edx, word [ebp - 0x34]
and edx, 1
je 0x50f203
mov dword [ebp - 0x50c], 0xffffffff
jmp 0x50f20d
mov dword [ebp - 0x50c], 1
mov eax, dword [ebp - 0x50c]
mov dword [ebp - 0x1a4], eax
jmp 0x50f238
mov dword [ebp - 0x78], 1
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x50f233
jmp 0x50db2e
jmp case.0x50da42.88
jmp 0x50f36e
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 0x50f2ac
movzx eax, word [ebp - 0x48]
movzx ecx, word [ebp - 0x34]
or eax, ecx
and eax, 2
je 0x50f2a7
movzx edx, word [ebp - 0x48]
and edx, 0x2e
cmp edx, 2
jne 0x50f28d
push 0
mov eax, dword [ebp - 0x14]
push eax
call fcn.004ab160
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 0x50f2a7
push 0
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004ab160
add esp, 8
jmp 0x50f351
movsx edx, byte [ebp - 0x9e]
cmp edx, 0x42
jne 0x50f351
movzx eax, word [ebp - 0x48]
and eax, 2
jne 0x50f310
movzx ecx, word [ebp - 0x48]
and ecx, 0x2c
je 0x50f310
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.005195c0
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 0x50f310
movzx edx, word [ebp - 0x48]
or edx, 2
mov word [ebp - 0x34], dx
movzx eax, word [ebp - 0x34]
and eax, 2
jne 0x50f351
movzx ecx, word [ebp - 0x34]
and ecx, 0x2c
je 0x50f351
push 1
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.005195c0
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.004f7f00
add esp, 0xc
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
jge 0x50f38f
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, dword [0x5e8c90]
movzx edx, byte [ecx + eax]
mov dword [ebp - 0x310], edx
jmp 0x50f3c5
cmp dword [ebp - 0x1a4], 0
jne 0x50f3b0
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
mov edx, dword [0x5e8c94]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x310], eax
jmp 0x50f3c5
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
mov eax, dword [0x5e8c98]
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 0x50f3f2
jmp 0x50db2e
jmp case.0x50da42.88
cmp dword [ebp - 0x78], 0
jne 0x50f402
jmp 0x50db2e
jmp case.0x50da42.88
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 1
jne 0x50f424
mov dword [ebp - 0x314], 0
jmp 0x50f43c
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 0x50f487
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0x5f0]
jge 0x50f5b1
cmp dword [ebp - 0x314], 0
je 0x50f4b9
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x314]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x510], ecx
jmp 0x50f4c5
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.004f7f00
add esp, 0xc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x50f5ac
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x124]
movzx ecx, byte [edx + eax]
and ecx, 2
je 0x50f599
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 0x50f591
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 0x50f599
mov ecx, dword [ebp - 0x78]
neg ecx
mov dword [ebp - 0x78], ecx
cmp dword [ebp - 0x620], 0
je 0x50f5aa
mov edx, dword [ebp - 0x78]
neg edx
mov dword [ebp - 0x78], edx
jmp 0x50f5b1
jmp 0x50f478
jmp case.0x50da42.88
cmp dword [ebp - 0x78], 0
jge 0x50f5d0
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 0x50f5fc
cmp dword [ebp - 0x78], 0
jne 0x50f5ea
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 0x50f5fc
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.0x50da42.88
push 2
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 4], 0x28
add ecx, dword [ebp - 0x18]
push ecx
call fcn.0050cba0
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.0050cba0
add esp, 8
mov dword [ebp - 0x51c], eax
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx]
cmp edx, 0x2c
jne 0x50f65f
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5b9024]
mov dword [ebp - 0x150], edx
jmp 0x50f67a
imul eax, dword [ebp - 0x150], 3
mov ecx, dword [ebp - 0x51c]
movzx edx, byte [eax + ecx + 0x5b9030]
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 0x50f6a8
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 0x50f6cd
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.0x50da42.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.0050cba0
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.005190a0
add esp, 0xc
jmp case.0x50da42.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 0x50f772
push 0
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.0050cba0
add esp, 8
test eax, eax
jne 0x50f751
mov dword [ebp - 0x520], 1
jmp 0x50f75b
mov dword [ebp - 0x520], 0
mov eax, dword [ebp - 0x520]
cdq
push edx
push eax
mov edx, dword [ebp - 0x10]
push edx
call fcn.005190a0
add esp, 0xc
jmp 0x50f77e
mov eax, dword [ebp - 0x10]
push eax
call fcn.005190f0
add esp, 4
jmp case.0x50da42.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.005190f0
add esp, 4
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne 0x50f7d9
mov edx, 4
mov eax, dword [ebp - 0x10]
mov word [eax + 8], dx
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00517cf0
add esp, 4
not eax
not edx
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x50da42.88
mov edx, dword [ebp + 8]
cmp dword [edx + 0xd8], 0
je 0x50f87e
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 0x50f839
jmp 0x50db2e
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 0x50f89d
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 0x50f89d
jmp 0x50db2e
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.0x50da42.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.0050cba0
add esp, 8
mov dword [ebp - 0x5f8], eax
cmp dword [ebp - 0x5f8], 0
je 0x50f8e8
jmp 0x50db2e
jmp case.0x50da42.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
jne 0x50f902
mov dword [ebp - 0x524], 1
jmp 0x50f90c
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.0050cba0
add esp, 8
test eax, eax
jne 0x50f936
mov dword [ebp - 0x528], 1
jmp 0x50f940
mov dword [ebp - 0x528], 0
mov edx, dword [ebp - 0x528]
mov dword [ebp - 0x5fc], edx
cmp dword [ebp - 0x5fc], 0
je 0x50f95a
jmp 0x50db2e
jmp case.0x50da42.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 0x50f97d
jmp 0x50db2e
jmp case.0x50da42.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 0x50f9bb
mov edx, dword [ebp - 0x14]
push edx
call fcn.004a6f10
add esp, 4
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
je 0x50f9bb
mov dword [ebp - 0x52c], 0
jmp 0x50f9c5
mov dword [ebp - 0x52c], 1
mov edx, dword [ebp - 0x52c]
mov dword [ebp - 0x600], edx
cmp dword [ebp - 0x600], 0
je 0x50f9df
jmp 0x50db2e
jmp case.0x50da42.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 0x50fa0c
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 0x50fa21
mov edx, dword [ebp - 4]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.005190f0
add esp, 4
jmp 0x50fa38
push 0
push 0
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.005190a0
add esp, 0xc
jmp case.0x50da42.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 0x50fa5b
jmp 0x50db2e
jmp case.0x50da42.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 0x50fa8f
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 0xc], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.005190f0
add esp, 4
jmp 0x50db2e
jmp case.0x50da42.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.0050d120
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50fad3
jmp 0x5166cc
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 0x50fc9f
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x50fb60
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 3
jne 0x50fb4d
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 0x50fb5e
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.005190f0
add esp, 4
jmp 0x5101e0
jmp 0x50fbb9
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x36c], eax
mov ecx, dword [ebp - 0x36c]
push ecx
call fcn.004dff20
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.004dff00
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 0x50fbb9
jmp 0x5168ab
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 0x50fbf9
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 0x50fc1d
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.004f3400
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 0x50fc8e
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 0x50fc87
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 0x50fc8c
jmp 0x5101e5
jmp 0x50fc9f
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x128], eax
jmp 0x50fd35
mov ecx, dword [ebp - 0x24]
movzx edx, word [ecx + 0x3e]
cmp edx, dword [ebp - 0x100]
ja 0x50ffd6
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 0x50ff87
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x50fd29
push 0x28
push 0
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.005768e0
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.00518a60
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50fd1b
jmp 0x5166cc
mov eax, dword [ebp - 0x7d8]
mov dword [ebp - 0x128], eax
jmp 0x50fd35
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 0x50fdf0
mov ecx, dword [ebp - 0xa8]
add ecx, 1
mov dword [ebp - 0xa8], ecx
movzx edx, byte [ebp - 0x5c]
push edx
call fcn.0051a330
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 0x50fe48
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call fcn.004f3400
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.0051b180
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 0x50fe89
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x244]
jb 0x50fd88
mov edx, dword [ebp - 0xa8]
cmp edx, dword [ebp - 0x244]
jb 0x50fed5
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x244]
ja 0x50ff07
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 0x50ff07
mov edx, dword [ebp - 0x138]
cmp edx, dword [ebp - 0x660]
jne 0x50ff07
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 0x50ff4d
ja 0x50ff07
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x66c]
jbe 0x50ff4d
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x7c]
cmp dword [ecx + eax], 0
jne 0x50ff30
mov dword [ebp - 0xdc], 0
mov edx, dword [ebp - 0x244]
mov dword [ebp - 0xa8], edx
jmp 0x50ff4d
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4c], 0
jne 0x50ff48
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.00519030
add esp, 4
jmp 0x5101e5
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 0x50ff85
lea ecx, [ebp - 0x7e8]
push ecx
call fcn.00519030
add esp, 4
jmp 0x50ff8e
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x24]
movzx eax, word [edx + 0x3e]
cmp eax, dword [ebp - 0x100]
ja 0x50ffd4
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffff5
jne 0x50ffc3
push 0x800
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.00519550
add esp, 0xc
jmp 0x50ffcf
mov eax, dword [ebp - 0x44]
push eax
call fcn.005190f0
add esp, 4
jmp 0x5101e0
jmp 0x50ffe6
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 0x510001
mov eax, dword [ebp - 0x44]
push eax
call fcn.005190f0
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 0x51011b
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 0x510054
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x5c]
push ecx
mov edx, dword [ebp - 0x128]
push edx
call fcn.0051ae20
add esp, 0xc
jmp 0x510116
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 0x5100b7
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.00518ad0
add esp, 0xc
test eax, eax
je 0x5100b5
jmp 0x5168c8
jmp 0x5100c3
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.00576360
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 + 0x5b903c]
mov word [ecx + 8], dx
jmp 0x5101e0
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 0x51014e
cmp dword [ebp - 0x5c], 0xc
jb 0x510140
mov ecx, dword [ebp - 0x5c]
and ecx, 1
je 0x510169
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 0x80
jne 0x510169
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.0051b180
add esp, 4
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
jne 0x510180
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0x5c]
push eax
push 0x5b8c30
call fcn.0051ae20
add esp, 0xc
jmp 0x5101e0
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.00518990
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5101b5
jmp 0x5166cc
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.0051ae20
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.0x50da42.88
mov eax, 0x14
imul ecx, eax, 0
mov edx, dword [ebp - 0x38]
cmp dword [edx + ecx + 0xc], 0
jle 0x510219
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.0x50da42.88
push 0x160d3
call fcn.004e3440
add esp, 4
mov dword [ebp - 8], eax
jmp 0x5166cc
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 0x510271
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 0x510461
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x60
je 0x5102cf
mov edx, dword [ebp - 0xe4]
shl edx, 4
mov eax, dword [ebp - 0x154]
movzx ecx, word [eax + edx + 0xe]
and ecx, 0x20
je 0x5102bb
jmp 0x510262
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x5102cf
mov eax, dword [ebp - 0x14]
add eax, 0x28
mov dword [ebp - 0x14], eax
jmp 0x510262
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.004ab0c0
add esp, 0xc
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 1
jne case.default.0x510346
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.0x510346
mov eax, dword [ebp - 0x248]
jmp dword [eax*4 + 0x516bf4]
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 0x10
jne 0x51035e
jmp 0x510466
jmp case.default.0x510346
mov eax, dword [ebp - 0x14]
movzx ecx, word [eax + 8]
and ecx, 4
jne 0x510374
jmp 0x510466
jmp case.default.0x510346
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 2
jne 0x51038a
jmp 0x510466
jmp case.default.0x510346
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x510445
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
cmp dword [ecx + 4], 0x7fff
jg 0x51040d
jl 0x5103c4
mov edx, dword [ebp - 0x374]
cmp dword [edx], 0xffffffff
ja 0x51040d
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x378], eax
mov ecx, dword [ebp - 0x378]
cmp dword [ecx + 4], 0xffff8000
jl 0x51040d
jg 0x5103e9
mov edx, dword [ebp - 0x378]
cmp dword [edx], 0
jb 0x51040d
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 0x510443
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.00575960
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.0x510346
mov edx, dword [ebp - 0x14]
movzx eax, word [edx + 8]
and eax, 0x28
jne case.default.0x510346
jmp 0x510466
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x510262
jmp case.0x50da42.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 + 0x5e8c9c]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0052a940
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.0050d860
add esp, 0x18
mov dword [ebp - 8], 0xc13
jmp 0x5166cc
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 0x51061b
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.004ab0c0
add esp, 0xc
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x1bc]
movsx eax, byte [edx + ecx]
cmp eax, 0x45
jne 0x5105e6
mov ecx, dword [ebp - 0x14]
movzx edx, word [ecx + 8]
and edx, 4
je 0x5105e6
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x37c]
cmp dword [ecx + 4], 0x7fff
jg 0x5105b0
jl 0x510567
mov edx, dword [ebp - 0x37c]
cmp dword [edx], 0xffffffff
ja 0x5105b0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x380]
cmp dword [ecx + 4], 0xffff8000
jl 0x5105b0
jg 0x51058c
mov edx, dword [ebp - 0x380]
cmp dword [edx], 0
jb 0x5105b0
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 0x5105e6
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.00575960
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 0x51060d
jmp 0x51061b
mov ecx, dword [ebp - 0x14]
add ecx, 0x28
mov dword [ebp - 0x14], ecx
jmp 0x5104e6
jmp case.0x50da42.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 0x510754
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.004ab0c0
add esp, 0xc
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x158]
movsx ecx, byte [eax + edx]
cmp ecx, 0x45
jne 0x510722
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 4
je 0x510722
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 0x5106b9
mov ecx, dword [ebp - 0x394]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
movzx eax, word [edx + 8]
and eax, 1
je 0x51079c
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + 8]
and edx, 0x4000
je 0x510784
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], 0xa
jmp 0x51078e
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x1c], 0
mov edx, dword [ebp - 0x4c]
add edx, 1
mov dword [ebp - 0x4c], edx
jmp 0x510b0f
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 0x24
je 0x5109ec
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 0x5107f2
jl 0x5107d4
cmp dword [ebp - 0x1ac], 0
jae 0x5107f2
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 0x51080a
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 0x5108a0
jb 0x51082b
cmp dword [ebp - 0x144], 0x7f
ja 0x5108a0
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 0x51087f
mov ecx, dword [ebp - 0x670]
cmp ecx, dword [ebp - 0x1a8]
jne 0x51087f
cmp dword [ebp - 0x604], 4
jl 0x51087f
mov edx, dword [ebp - 0x144]
add edx, 8
mov eax, dword [ebp - 0x20]
mov dword [eax + 0x1c], edx
jmp 0x51089b
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 0x5109e7
cmp dword [ebp - 0x140], 0
ja 0x5108d8
jb 0x5108b7
cmp dword [ebp - 0x144], 0x7fff
ja 0x5108d8
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 0x5109e7
cmp dword [ebp - 0x140], 0
ja 0x510910
jb 0x5108ef
cmp dword [ebp - 0x144], 0x7fffff
ja 0x510910
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 0x5109e7
cmp dword [ebp - 0x140], 0
ja 0x510948
jb 0x510927
cmp dword [ebp - 0x144], 0x7fffffff
ja 0x510948
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 0x5109e7
cmp dword [ebp - 0x140], 0x7fff
ja 0x51097d
jb 0x51095f
cmp dword [ebp - 0x144], 0xffffffff
ja 0x51097d
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 0x5109e7
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 0x5109dd
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
call fcn.00575960
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 0x5109e7
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x1c], 6
jmp 0x510b0f
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax + 8]
and ecx, 8
je 0x510a22
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 0x510b0f
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 0x510a46
mov dword [ebp - 0x384], 1
jmp 0x510a50
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 0x510ad7
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 0x510ab9
mov edx, dword [ebp - 0x20]
push edx
call fcn.00518850
add esp, 4
test eax, eax
je 0x510aa6
jmp 0x5168c8
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24c]
add ecx, dword [eax]
mov dword [ebp - 0x24c], ecx
jmp 0x510ad7
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.0050c600
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 0x510b1c
jmp 0x510b32
mov ecx, dword [ebp - 0x20]
sub ecx, 0x28
mov dword [ebp - 0x20], ecx
mov edx, 1
test edx, edx
jne 0x51075d
cmp dword [ebp - 0x4c], 0x7e
jg 0x510b43
mov eax, dword [ebp - 0x4c]
add eax, 1
mov dword [ebp - 0x4c], eax
jmp 0x510b82
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
call fcn.0050c600
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.0050c600
add esp, 8
cmp dword [ebp - 0x388], eax
jge 0x510b82
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 0x510bfb
jl 0x510bed
mov ecx, dword [ebp - 0x67c]
cmp ecx, dword [ebp - 0x684]
ja 0x510bfb
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x10], ecx
jmp 0x510c7a
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 0x510c5e
jg 0x510c59
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [ebp - 0x694]
jbe 0x510c5e
jmp 0x5168ab
mov edx, dword [ebp - 0x33c]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00518770
add esp, 8
test eax, eax
je 0x510c7a
jmp 0x5168c8
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 0x510cbe
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 0x510cf9
mov edx, dword [ebp - 0xe8]
mov al, byte [ebp - 0x4c]
mov byte [edx], al
mov dword [ebp - 0x38c], 1
jmp 0x510d14
mov eax, dword [ebp - 0x4c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.005013b0
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 0x510d62
mov eax, dword [ebp - 0xe8]
mov cl, byte [ebp - 0xec]
mov byte [eax], cl
mov dword [ebp - 0x390], 1
jmp 0x510d81
mov edx, dword [ebp - 0xec]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xe8]
push ecx
call fcn.005013b0
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.0051b0c0
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 0x510d30
jmp case.0x50da42.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 0x510e15
mov eax, dword [ebp - 0x398]
push eax
call fcn.004e0160
add esp, 4
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x540], edx
jmp 0x510e48
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.004dd730
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x510e48
jmp 0x5166cc
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c9eb0
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 0x50da5b
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 0x510ff6
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x510ec2
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.0050d860
add esp, 8
mov dword [ebp - 8], 5
jmp 0x510ff1
mov eax, dword [ebp - 0x254]
push eax
call fcn.005088a0
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.0051d4e0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x510f06
jmp 0x5166cc
mov edx, dword [ebp - 0x39c]
add edx, 0x21
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e5220
add esp, 0xc
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x510ff1
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.00576360
add esp, 0xc
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x510f85
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x55], 0
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x5d], 1
jmp 0x510f9a
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 0x511428
mov dword [ebp - 0x15c], 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1e8]
mov dword [ebp - 0xac], ecx
jmp 0x511020
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x511056
mov ecx, dword [ebp - 0x254]
push ecx
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
push eax
call fcn.00508790
add esp, 8
test eax, eax
je 0x511056
mov ecx, dword [ebp - 0x15c]
add ecx, 1
mov dword [ebp - 0x15c], ecx
jmp 0x511011
cmp dword [ebp - 0xac], 0
jne 0x511083
mov edx, dword [ebp - 0x254]
push edx
push str.no_such_savepoint:__s
mov eax, dword [ebp + 8]
push eax
call fcn.0050d860
add esp, 0xc
mov dword [ebp - 8], 1
jmp 0x511428
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc4], 0
jle 0x5110b5
cmp dword [ebp - 0x108], 1
jne 0x5110b5
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edx, dword [ebp + 8]
push edx
call fcn.0050d860
add esp, 8
mov dword [ebp - 8], 5
jmp 0x511428
mov eax, dword [ebp - 0xac]
cmp dword [eax + 0x18], 0
jne 0x5110d8
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x5d]
test edx, edx
je 0x5110d8
mov dword [ebp - 0x3a0], 1
jmp 0x5110e2
mov dword [ebp - 0x3a0], 0
mov eax, dword [ebp - 0x3a0]
mov dword [ebp - 0x32c], eax
cmp dword [ebp - 0x32c], 0
je 0x511190
cmp dword [ebp - 0x108], 1
jne 0x511190
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050ce50
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511124
jmp 0x5167e3
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
mov eax, dword [ebp + 8]
push eax
call fcn.00517540
add esp, 4
cmp eax, 5
jne 0x51116c
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 0x5167e3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
je 0x511184
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 0
jmp 0x51118b
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x5d], 0
jmp 0x511303
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 0x511264
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x18]
and ecx, 1
je 0x5111cc
mov dword [ebp - 0x3a4], 1
jmp 0x5111d6
mov dword [ebp - 0x3a4], 0
mov edx, dword [ebp - 0x3a4]
mov dword [ebp - 0x328], edx
mov dword [ebp - 0xf0], 0
jmp 0x5111fd
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 0x511262
cmp dword [ebp - 0x328], 0
jne 0x511220
mov dword [ebp - 0x3a8], 1
jmp 0x51122a
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.004e0f30
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511260
jmp 0x5166cc
jmp 0x5111ee
jmp 0x51126e
mov dword [ebp - 0x328], 0
mov dword [ebp - 0xf0], 0
jmp 0x511289
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 0x5112d1
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.004e01f0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5112cf
jmp 0x5166cc
jmp 0x51127a
cmp dword [ebp - 0x328], 0
je 0x511303
push 0
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e8270
add esp, 8
mov eax, dword [ebp - 0xc]
push eax
call fcn.00502560
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 0x51130e
jmp 0x5166cc
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x1e8]
cmp edx, dword [ebp - 0xac]
je 0x51136a
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.004e50b0
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 0x51130e
cmp dword [ebp - 0x108], 1
jne 0x5113b8
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.004e50b0
add esp, 8
cmp dword [ebp - 0x32c], 0
jne 0x5113b6
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x1f4]
sub ecx, 1
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x1f4], ecx
jmp 0x5113ee
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 0x511400
cmp dword [ebp - 0x108], 2
jne 0x511428
mov ecx, dword [ebp - 0x15c]
push ecx
mov edx, dword [ebp - 0x108]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.0051d4e0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511428
jmp 0x5166cc
cmp dword [ebp - 8], 0
je 0x511433
jmp 0x5166cc
jmp case.0x50da42.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 0x51155b
cmp dword [ebp - 0x3b4], 0
je 0x511486
push 0x204
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00502e10
add esp, 8
mov edx, dword [ebp - 0xc]
mov byte [edx + 0x55], 1
jmp 0x5114e4
cmp dword [ebp - 0x1c4], 0
je 0x5114ba
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xc4], 0
jle 0x5114ba
push str.cannot_commit_transaction___SQL_statements_in_progress
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
add esp, 8
mov dword [ebp - 8], 5
jmp 0x5166cc
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.0050ce50
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5114d8
jmp 0x5167e3
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp - 0x1c4]
mov byte [eax + 0x55], cl
mov edx, dword [ebp + 8]
push edx
call fcn.00517540
add esp, 4
cmp eax, 5
jne 0x51152f
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 0x5167e3
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e1580
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x28], 0
jne 0x51154d
mov dword [ebp - 8], 0x65
jmp 0x511554
mov dword [ebp - 8], 1
jmp 0x5167e3
cmp dword [ebp - 0x1c4], 0
jne 0x511570
mov dword [ebp - 0x3b0], 1
jmp 0x51157a
mov dword [ebp - 0x3b0], 0
cmp dword [ebp - 0x3b0], 0
je 0x51158f
mov dword [ebp - 0x3bc], str.cannot_start_a_transaction_within_a_transaction
jmp 0x5115ba
cmp dword [ebp - 0x3b4], 0
je 0x5115a4
mov dword [ebp - 0x3b8], str.cannot_rollback___no_transaction_is_active
jmp 0x5115ae
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.0050d860
add esp, 8
mov dword [ebp - 8], 1
jmp 0x5166cc
mov dword [ebp - 0x31c], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
je 0x511658
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 0x511658
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 0x51164c
mov dword [ebp - 8], 8
jmp 0x511653
mov dword [ebp - 8], 0xb
jmp 0x5166cc
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 0x5117b5
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.004dccf0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5116d8
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 5
jne 0x5116d3
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 0x5167e3
jmp 0x5166cc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
shr eax, 6
and eax, 1
je 0x5117b5
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], 0
je 0x5117b5
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
je 0x511715
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc0], 1
jle 0x5117b5
mov edx, dword [ebp + 8]
cmp dword [edx + 0x38], 0
jne 0x51174b
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.0051d4e0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x511785
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
push edx
mov eax, dword [ebp - 0x330]
push eax
call fcn.004dcca0
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 0x511879
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
test eax, eax
je 0x511879
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x31c]
cmp edx, dword [ecx + 0xc]
jne 0x5117fa
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 0x511879
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x84]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e50b0
add esp, 8
push str.database_schema_has_changed
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e56b0
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 0x51185a
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.00502630
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 0x511884
jmp 0x5166cc
jmp case.0x50da42.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.004de1e0
add esp, 0xc
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c9eb0
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.0x50da42.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.004e1040
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 1
jne 0x511971
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.004ef660
add esp, 8
jmp 0x51198c
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 2
jne 0x51198c
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 0x5119b8
push 0
mov eax, dword [ebp - 0xc]
push eax
call fcn.004e8270
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 0x5119c3
jmp 0x5166cc
jmp case.0x50da42.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.0x50da42.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x38]
cmp edx, dword [ecx + 8]
jne case.0x50da42.101
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004dd160
add esp, 4
jmp 0x511bfb
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
and eax, 3
cmp eax, 1
jne 0x511a1f
mov dword [ebp - 8], 0x204
jmp 0x5166cc
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 0x511abf
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 0x511abd
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 0x511ac9
mov dword [ebp - 0x3c4], 0
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 0x10
je 0x511af9
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.00518dc0
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 0x511b23
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 0x511b3b
mov ecx, dword [ebp - 4]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffffd
jne 0x511b3b
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.004a9570
add esp, 0x10
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x80], 0
jne 0x511b65
jmp 0x5168c8
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.004dd8f0
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 0x511be5
mov dword [ebp - 0x3c8], 1
jmp 0x511bef
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.004dd9a0
add esp, 8
cmp dword [ebp - 8], 0
je 0x511c20
jmp 0x5166cc
jmp case.0x50da42.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.004a9570
add esp, 0x10
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jne 0x511c68
jmp 0x5168c8
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.004dd8f0
add esp, 0x14
mov dword [ebp - 8], eax
jmp case.0x50da42.88
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0
jle 0x511d5f
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], 0x5fc7bb
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 0x511dcb
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 8]
shr ecx, 3
and ecx, 1
jne 0x511dcb
mov edx, dword [ebp - 0x3c]
movsx eax, word [edx + 0x3c]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], eax
jg 0x511dcb
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.004dd190
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x511f5e
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.004a9570
add esp, 0x10
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x511df5
jmp 0x5168c8
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 [0x5b90a0]
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.004df690
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x511f5e
push 0
push 1
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004dccf0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x511f0a
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 0x511eda
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.004dd8b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x511ed1
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.004dd8f0
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 4], 0
jmp 0x511f0a
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.004dd8f0
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 0x511f22
mov dword [ebp - 0x3cc], 1
jmp 0x511f2c
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 0x511f5e
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx + 0x10]
push eax
call fcn.004dd240
add esp, 4
cmp dword [ebp - 8], 0
je 0x511f69
jmp 0x5166cc
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 2], 1
jmp case.0x50da42.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.004a9570
add esp, 0x10
mov dword [ebp - 0x288], eax
cmp dword [ebp - 0x288], 0
jne 0x511fa5
jmp 0x5168c8
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.0051b520
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x511fdc
jmp 0x5166cc
jmp case.0x50da42.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 0x51203f
jmp 0x50db2e
jmp case.0x50da42.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.004a9570
add esp, 0x10
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
jne 0x512074
jmp 0x5168c8
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.004de0a0
mov ecx, dword [ebp - 0x1c8]
mov dword [ecx + 0x2c], eax
jmp case.0x50da42.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.005173e0
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.0x50da42.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 0x5122d3
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 0x512174
push 0
mov edx, dword [ebp - 0x28]
push edx
call fcn.004ab160
add esp, 8
mov eax, dword [ebp - 0x28]
push eax
call fcn.00517cf0
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 0x51227f
movzx eax, word [ebp - 0x12c]
and eax, 8
jne 0x51220c
movzx ecx, word [ebp - 0x12c]
and ecx, 1
jne 0x5121d9
cmp dword [ebp - 0xb0], 0x19
jl 0x5121e0
jmp 0x50db2e
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004df370
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512207
jmp 0x5166cc
jmp 0x51249d
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.004f5e10
add esp, 0x10
mov dword [ebp - 0x3d0], eax
cmp dword [ebp - 0x3d0], 0
jle 0x51225c
mov edx, dword [ebp - 0xb0]
and edx, 1
jne 0x51225a
mov eax, dword [ebp - 0xb0]
sub eax, 1
mov dword [ebp - 0xb0], eax
jmp 0x51227f
cmp dword [ebp - 0x3d0], 0
jge 0x51227f
mov ecx, dword [ebp - 0xb0]
and ecx, 1
je 0x51227f
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.004e07e0
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 0x5122ce
jmp 0x5166cc
jmp 0x5123ac
push 2
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004dd940
add esp, 8
test eax, eax
je 0x5122f5
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 0x512338
mov dword [ebp - 0x3d4], 0xffffffff
jmp 0x512342
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.004de440
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512393
jmp 0x5166cc
cmp dword [ebp - 0x290], 0
je 0x5123ac
movzx edx, byte [ebp - 0x6da]
test edx, edx
jne 0x5123ac
jmp 0x51249d
cmp dword [ebp - 0xb0], 0x19
jl 0x512423
cmp dword [ebp - 0x8c], 0
jl 0x5123d0
cmp dword [ebp - 0x8c], 0
jne 0x512417
cmp dword [ebp - 0xb0], 0x1a
jne 0x512417
mov dword [ebp - 0x8c], 0
push 0
mov eax, dword [ebp - 0x94]
mov ecx, dword [eax + 0x2c]
push ecx
call fcn.004df5e0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512415
cmp dword [ebp - 8], 0x65
jne 0x512410
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x512415
jmp 0x5166cc
jmp 0x512421
mov dword [ebp - 0x8c], 0
jmp 0x51249d
cmp dword [ebp - 0x8c], 0
jg 0x51243e
cmp dword [ebp - 0x8c], 0
jne 0x512485
cmp dword [ebp - 0xb0], 0x17
jne 0x512485
mov dword [ebp - 0x8c], 0
push 0
mov edx, dword [ebp - 0x94]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004dff40
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512483
cmp dword [ebp - 8], 0x65
jne 0x51247e
mov dword [ebp - 8], 0
mov dword [ebp - 0x8c], 1
jmp 0x512483
jmp 0x5166cc
jmp 0x51249d
mov ecx, dword [ebp - 0x94]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004dd970
add esp, 4
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
je 0x5124ad
jmp 0x50db2e
cmp dword [ebp - 0x290], 0
je 0x5124bf
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp case.0x50da42.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.004dd9b0
add esp, 4
test eax, eax
jne 0x5124fd
jmp case.0x50da42.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 0x51260e
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.00517ae0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512595
jmp 0x5166cc
cmp dword [ebp - 0x294], 0
jle 0x5125ac
mov eax, dword [ebp - 4]
add eax, 0x14
mov dword [ebp - 4], eax
jmp 0x50db2e
cmp dword [ebp - 0x294], 0
jne 0x5125bc
jmp 0x50db2e
cmp dword [ebp - 0x298], 0
jg 0x5125c7
jmp 0x51260e
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.004df5e0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512609
cmp dword [ebp - 8], 0x65
jne 0x512604
mov dword [ebp - 8], 0
jmp 0x51259e
jmp 0x5166cc
jmp 0x512559
jmp case.0x50da42.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 0x51264d
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 8]
mov word [eax + 0xc], dx
jmp 0x512670
mov eax, dword [ebp - 0x264]
movzx ecx, word [eax + 0xc]
mov edx, dword [ebp - 4]
cmp ecx, dword [edx + 0xc]
jle 0x512670
mov eax, dword [ebp - 0x264]
mov ecx, dword [ebp - 4]
mov dx, word [ecx + 0xc]
mov word [eax + 0xc], dx
jmp case.0x50da42.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 0x51268c
jmp case.0x50da42.11
jmp case.0x50da42.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.0x50da42.29
jmp case.0x50da42.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 0x512729
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 0x5127c2
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 8]
and eax, 0x4000
je 0x51274b
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00518850
add esp, 4
mov dword [ebp - 0x3d8], eax
jmp 0x512755
mov dword [ebp - 0x3d8], 0
mov edx, dword [ebp - 0x3d8]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x512769
jmp 0x5168c8
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 0x30]
push ecx
call fcn.0050cad0
add esp, 4
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x29c], edx
cmp dword [ebp - 0xfc], 0
jne 0x51279b
jmp 0x5168c8
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.0051aa50
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 0x512836
mov dword [ebp - 0x1ec], 0
jmp 0x5127fc
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 0x512836
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 0x512834
mov dword [ebp - 0x3e4], 1
jmp 0x512836
jmp 0x5127ed
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.004de440
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 0x29c], 0
je 0x512875
mov eax, dword [ebp - 0x29c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e50d0
add esp, 8
cmp dword [ebp - 8], 0
je 0x512880
jmp 0x5166cc
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x3dc]
mov dword [edx + 0x24], eax
cmp dword [ebp - 0x3dc], 0
jne 0x5128a4
mov dword [ebp - 0x3e0], 1
jmp 0x5128ae
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 0x512900
cmp dword [ebp - 0x2a0], 0
je 0x5128fe
jmp 0x50db2e
jmp 0x512933
cmp dword [ebp - 0x3e4], 0
jne 0x512912
cmp dword [ebp - 0x2a0], 0
jne 0x512917
jmp 0x50db2e
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0x1c
jne 0x512933
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 4]
mov ax, word [edx + 0x10]
mov word [ecx + 0xc], ax
jmp case.0x50da42.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.0x50da42.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.004ab0c0
add esp, 0xc
movzx edx, word [ebp - 0x808]
and edx, 4
jne 0x512990
jmp 0x50db2e
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 0x80c]
mov dword [ebp - 0x34c], eax
mov dword [ebp - 0x348], ecx
jmp 0x5129cb
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.004e07e0
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 0x512a93
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jne 0x512a8e
push 0x16936
call fcn.004e3440
add esp, 4
mov dword [ebp - 8], eax
jmp 0x512a93
jmp 0x50db2e
cmp dword [ebp - 8], 0
je 0x512a9e
jmp 0x5166cc
jmp case.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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.0x50da42.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.004c9eb0
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 0x512be6
lea eax, [ebp - 0x17c]
push eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004df370
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x512b7d
jmp 0x5166cc
cmp dword [ebp - 0x17c], 0
je 0x512b94
xor eax, eax
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x70], eax
jmp 0x512be6
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004dee80
add esp, 4
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
cmp dword [ebp - 0x70], 0x7fffffff
jl 0x512bd4
jg 0x512bbd
cmp dword [ebp - 0x74], 0xffffffff
jb 0x512bd4
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
or ecx, 2
mov edx, dword [ebp - 0xb8]
mov dword [edx + 8], ecx
jmp 0x512be6
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 0x512d03
mov eax, dword [ebp + 8]
cmp dword [eax + 0xd8], 0
je 0x512c45
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
mov dword [ebp - 0x1f0], edx
jmp 0x512c1f
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 0x512c2d
jmp 0x512c10
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 0x512c55
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.00518dc0
add esp, 4
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x3e8], eax
mov ecx, dword [ebp - 0x3e8]
cmp dword [ecx], 0xffffffff
jne 0x512c8a
mov edx, dword [ebp - 0x3e8]
cmp dword [edx + 4], 0x7fffffff
je 0x512c9a
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 8]
shr ecx, 1
and ecx, 1
je 0x512ca6
mov dword [ebp - 8], 0xd
jmp 0x5166cc
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 0x512cf2
jl 0x512cdb
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x6b4]
jae 0x512cf2
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 0x512dc0
mov dword [ebp - 0x2a8], 0
lea eax, [ebp - 0x74]
push eax
push 8
call fcn.004a46a0
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.004e07e0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x512da0
cmp dword [ebp - 0x17c], 0
jne 0x512da0
mov ecx, dword [ebp - 0x2a8]
add ecx, 1
mov dword [ebp - 0x2a8], ecx
cmp dword [ebp - 0x2a8], 0x64
jl 0x512d21
cmp dword [ebp - 8], 0
je 0x512dab
jmp 0x5166cc
cmp dword [ebp - 0x17c], 0
jne 0x512dc0
mov dword [ebp - 8], 0xd
jmp 0x5166cc
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.0x50da42.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 0x512e78
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xfc], 0
je 0x512e78
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 0x512e8c
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x3f0], 0
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
and eax, 1
je 0x512eb0
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 0x512ed1
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 0x512f0c
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x3ec], edx
jmp 0x512f16
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 0x512f44
mov eax, dword [ebp - 0x1f4]
mov ecx, dword [eax]
mov dword [ebp - 0x744], ecx
jmp 0x512f4e
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.004de7d0
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 0x512fab
jmp 0x5166cc
cmp dword [ebp - 0x2ac], 0
je 0x513013
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
and edx, 4
je 0x512fcc
mov dword [ebp - 0x3f4], 0x17
jmp 0x512fd6
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.0x50da42.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 0x51306a
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 0x513075
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.004e0b60
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5130c5
jmp 0x5166cc
jmp case.0x50da42.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 0x513165
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xfc], 0
je 0x513165
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 0x513163
mov edx, dword [ebp - 0x110]
movzx eax, byte [edx + 4]
test eax, eax
je 0x513163
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004dee80
add esp, 4
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x40], eax
mov dword [ecx + 0x44], edx
jmp 0x513179
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.004ddac0
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 0x5131bb
jmp 0x5166cc
mov edx, dword [ebp - 0x638]
and edx, 1
je 0x51323b
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 0x51323b
cmp dword [ebp - 0x1f8], 0
je 0x51323b
mov edx, dword [ebp - 0x1f8]
mov eax, dword [edx + 0x1c]
and eax, 0x80
jne 0x51323b
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.0x50da42.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.0051b1b0
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.0x50da42.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.0051b430
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5132d0
jmp 0x5166cc
cmp dword [ebp - 0x3fc], 0
je 0x5132de
jmp 0x50db2e
jmp case.0x50da42.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.0051bb00
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513326
jmp 0x5166cc
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.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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.004dff20
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 0x5133a9
jmp 0x5168ab
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x400]
push eax
mov ecx, dword [ebp - 0x404]
push ecx
call fcn.00518a60
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5133d1
jmp 0x5166cc
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
jne 0x5133fe
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax + 8]
and ecx, 0x1000
je 0x5133fe
mov edx, dword [ebp - 0x10]
push edx
call fcn.00518e00
add esp, 4
test eax, eax
je 0x5133fe
jmp 0x5168c8
jmp case.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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 0x51344f
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x50da42.88
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
test eax, eax
je 0x51347a
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 0x513543
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 2
jne 0x5134e9
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.0051d180
add esp, 8
cmp dword [ebp - 8], 0
je 0x5134e7
jmp 0x5166cc
jmp 0x513543
mov eax, dword [ebp - 0xf8]
push eax
call fcn.0050d1c0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513506
jmp 0x5166cc
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 2]
test edx, edx
je 0x513525
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov word [ecx + 8], ax
jmp case.0x50da42.88
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004dee80
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.0x50da42.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 0x5135a7
mov ecx, dword [ebp - 0x1fc]
mov edx, dword [ecx + 0x2c]
push edx
call fcn.004dd160
add esp, 4
jmp case.0x50da42.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 0x51360d
mov eax, dword [ebp - 0x184]
mov dword [eax + 0x24], 0xffffffff
mov ecx, dword [ebp - 0x40c]
push ecx
call fcn.004dd9b0
add esp, 4
test eax, eax
je 0x51360d
jmp case.0x50da42.88
lea edx, [ebp - 0x2b0]
push edx
mov eax, dword [ebp - 0x40c]
push eax
call fcn.004df370
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 0x513657
jmp 0x5166cc
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
jle 0x51366e
cmp dword [ebp - 0x2b0], 0
je 0x51366e
jmp 0x50db2e
jmp case.0x50da42.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.004de0b0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5136bb
jmp 0x5166cc
cmp dword [ebp - 0x2b4], 0
jne 0x51371c
mov eax, dword [ebp - 0x410]
push eax
call fcn.004e0160
add esp, 4
mov dword [ebp - 0x54c], eax
mov dword [ebp - 0x548], edx
cmp dword [ebp - 0x548], 0
jl 0x51371c
jg 0x5136f3
cmp dword [ebp - 0x54c], 0
jb 0x51371c
mov ecx, dword [ebp - 0x548]
push ecx
mov edx, dword [ebp - 0x54c]
push edx
call fcn.004f7560
add esp, 8
cwde
mov ecx, dword [ebp - 4]
cmp eax, dword [ecx + 0xc]
jge 0x51371c
mov dword [ebp - 0x2b4], 1
cmp dword [ebp - 0x2b4], 0
je 0x51372a
jmp 0x50db2e
jmp case.0x50da42.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 0x51379c
lea edx, [ebp - 0x200]
push edx
mov eax, dword [ebp - 0x168]
push eax
call fcn.0051ba50
add esp, 8
mov dword [ebp - 8], eax
jmp 0x5137db
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.004de0b0
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 0x5137e6
jmp 0x5166cc
mov ecx, dword [ebp - 0x168]
mov dl, byte [ebp - 0x200]
mov byte [ecx + 2], dl
cmp dword [ebp - 0x200], 0
je 0x513803
jmp 0x50db2e
jmp case.0x50da42.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.0051b840
add esp, 8
mov dword [ebp - 8], eax
jmp 0x513869
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 0x5138b0
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.0x50da42.11
cmp dword [ebp - 8], 0x65
je 0x5138bb
jmp 0x5166cc
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0x16c]
mov byte [ecx + 2], 1
jmp 0x50da5b
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 0x513917
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 0x51393a
mov edx, dword [ebp - 0x2c]
push edx
call fcn.00518850
add esp, 4
mov dword [ebp - 0x414], eax
jmp 0x513944
mov dword [ebp - 0x414], 0
mov eax, dword [ebp - 0x414]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513958
jmp 0x5166cc
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 0x5139b2
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x418], edx
jmp 0x5139bc
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.004de7d0
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2b8]
mov dword [eax + 0x20], 0
cmp dword [ebp - 8], 0
je 0x513a05
jmp 0x5166cc
jmp case.0x50da42.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 0x513a4e
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00518850
add esp, 4
mov dword [ebp - 0x41c], eax
jmp 0x513a58
mov dword [ebp - 0x41c], 0
mov edx, dword [ebp - 0x41c]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x513a6c
jmp 0x5166cc
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x584]
push ecx
call fcn.0051bb80
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513a8d
jmp 0x5166cc
jmp case.0x50da42.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.004de440
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513b15
jmp 0x5166cc
cmp dword [ebp - 0x588], 0
jne 0x513b3f
push 4
mov eax, dword [ebp - 0x420]
push eax
call fcn.004ddac0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513b3d
jmp 0x5166cc
jmp 0x513b79
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
test edx, edx
je 0x513b79
mov eax, dword [ebp - 0xc]
push eax
call fcn.00525e10
add esp, 4
test eax, eax
jne 0x513b79
push str.index_corruption
push 0x16d56
push 0x30b
call fcn.00502470
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x5166cc
mov ecx, dword [ebp - 0x204]
mov dword [ecx + 0x20], 0
mov edx, dword [ebp - 0x204]
mov dword [edx + 0x24], 0
jmp case.0x50da42.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.0050d1c0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513bca
jmp 0x5166cc
mov eax, dword [ebp - 0x208]
movzx ecx, byte [eax + 2]
test ecx, ecx
jne 0x513caa
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.00517bb0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513c12
jmp 0x5166cc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax]
cmp ecx, 0x8c
jne 0x513c81
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 0x513ca8
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
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 0x513cbd
mov ecx, dword [ebp - 4]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x18]
push edx
call fcn.005190f0
add esp, 4
jmp case.0x50da42.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 0x513d02
mov ecx, dword [ebp - 0x424]
push ecx
call fcn.005171d0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513d02
jmp 0x5166cc
jmp case.0x50da42.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 0x513d4d
mov byte [ebp - 0x6f6], 0xff
jmp 0x513d54
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.004dff20
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x354], eax
mov dword [ebp - 0x350], ecx
cmp dword [ebp - 0x350], 0
jl 0x513dc6
jg 0x513daf
cmp dword [ebp - 0x354], 0
jbe 0x513dc6
cmp dword [ebp - 0x350], 0
jl 0x513ddb
jg 0x513dc6
cmp dword [ebp - 0x354], 0x7fffffff
jbe 0x513ddb
push 0x16e22
call fcn.004e3440
add esp, 4
mov dword [ebp - 8], eax
jmp 0x5166cc
push 0
mov edx, dword [ebp - 0xc]
push edx
lea eax, [ebp - 0x838]
push eax
call fcn.00518d90
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.00518a60
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x513e1b
jmp 0x5166cc
push 0
lea ecx, [ebp - 0x700]
push ecx
mov edx, dword [ebp - 0x828]
push edx
mov eax, dword [ebp - 0x82c]
push eax
call fcn.0051a410
add esp, 0x10
mov dword [ebp - 0x18c], eax
lea ecx, [ebp - 0x838]
push ecx
call fcn.00519030
add esp, 4
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
and eax, 1
je 0x513e6a
mov ecx, dword [ebp - 0x18c]
neg ecx
mov dword [ebp - 0x18c], ecx
jmp 0x513e79
mov edx, dword [ebp - 0x18c]
add edx, 1
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 0
jle 0x513e87
jmp 0x50db2e
jmp case.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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 0x513edd
mov dword [ebp - 8], 6
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x9a], 2
jmp 0x5166cc
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.004ddfe0
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 0x513f46
jmp 0x5166cc
cmp dword [ebp - 0x20c], 0
je 0x513f7c
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.00502f90
add esp, 0x10
mov ecx, dword [ebp - 0x2bc]
add ecx, 1
mov byte [ebp - 0x61], cl
jmp case.0x50da42.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.004dd190
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xc], 0
je 0x514017
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 0x514017
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 0x514022
jmp 0x5166cc
jmp case.0x50da42.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 0x514062
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0051b930
add esp, 8
jmp 0x514082
mov edx, dword [ebp - 0x2c0]
mov eax, dword [edx + 0x2c]
push eax
call fcn.004dd220
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514082
jmp 0x5166cc
jmp case.0x50da42.88
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004c9eb0
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.004dd8b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5140e7
jmp 0x5166cc
mov edx, dword [ebp - 0x430]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], eax
jmp case.0x50da42.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.004a3320
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 0x51413f
jmp 0x5166cc
jmp case.0x50da42.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 0x5141d5
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.00504030
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.004f42d0
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 0x514309
mov dword [ebp - 0x590], 0x5ea288
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.004df410
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.004f7940
add esp, 0x14
mov dword [ebp - 0x2c4], eax
cmp dword [ebp - 0x2c4], 0
jne 0x51427c
mov dword [ebp - 8], 7
jmp 0x514309
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.004f3f50
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004a3320
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x5142cd
mov eax, dword [ebp - 0x710]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x5142ec
cmp dword [ebp - 0x708], 0
jne 0x5142ec
push 0x16f1e
call fcn.004e3440
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x2c4]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.004e50d0
add esp, 8
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xb1], 0
cmp dword [ebp - 8], 0
je 0x51432b
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00502560
add esp, 4
cmp dword [ebp - 8], 7
jne 0x514326
jmp 0x5168c8
jmp 0x5166cc
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004da6e0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x514351
jmp 0x5166cc
jmp case.0x50da42.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.00509950
add esp, 0xc
jmp case.0x50da42.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.00509890
add esp, 0xc
jmp case.0x50da42.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.005099b0
add esp, 0xc
jmp case.0x50da42.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.004deea0
add esp, 0x18
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.005190f0
add esp, 4
cmp dword [ebp - 0x434], 0
jne 0x51444f
jmp 0x5144a1
cmp dword [ebp - 0x438], 0
jne 0x51445f
jmp 0x5168c8
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.004a4590
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, dword [ebp - 0x438]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.005191f0
add esp, 0x18
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.0050cc30
add esp, 8
jmp 0x50da5b
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 0x5144f2
mov eax, dword [ebp - 0x14]
push eax
call fcn.00519190
add esp, 4
test eax, eax
je 0x5144f2
jmp 0x5168c8
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.00503190
add esp, 0xc
jmp case.0x50da42.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 0x514543
lea ecx, [ebp - 0x6f0]
push ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
push eax
call fcn.00503230
add esp, 8
test eax, eax
jne 0x514556
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.005190f0
add esp, 4
jmp case.0x50da42.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.005190a0
add esp, 0xc
jmp 0x50da5b
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 0x5145c3
mov edx, dword [ebp - 0x14]
push edx
call fcn.00519190
add esp, 4
test eax, eax
je 0x5145c3
jmp 0x5168c8
cmp dword [ebp - 0x2cc], 0
je 0x514600
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.005032c0
add esp, 0x10
mov dword [ebp - 0x59c], eax
cmp dword [ebp - 0x59c], 0
je 0x514600
jmp 0x50db2e
cmp dword [ebp - 0x2cc], 0
jl 0x514622
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.00503190
add esp, 0xc
jmp case.0x50da42.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 0x514695
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 0x514674
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0
je 0x51468a
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0x1c]
cmp eax, dword [ebp - 0x5a0]
je 0x51468a
jmp 0x51466b
cmp dword [ebp - 0x30], 0
je 0x514695
jmp case.0x50da42.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 0x5146cc
mov dword [ebp - 8], 1
push str.too_many_levels_of_trigger_recursion
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
add esp, 8
jmp 0x5166cc
mov edx, dword [ebp - 0x134]
movzx eax, word [edx + 8]
and eax, 0x10
jne 0x5148a3
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 0x514712
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.004e54a0
add esp, 0xc
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x514766
jmp 0x5168c8
mov ecx, dword [ebp - 0x134]
push ecx
call fcn.00519030
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], 0x5172d0
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 0x514876
mov eax, dword [ebp - 0x194]
add eax, 0x28
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x194]
cmp ecx, dword [ebp - 0x5a4]
je 0x5148a1
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 0x514867
jmp 0x5148af
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.005768e0
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 0x50da5b
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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.00519550
add esp, 0xc
jmp case.0x50da42.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 0x514ab5
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 0x514afe
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x514ae5
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 0x514afe
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.0x50da42.88
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x514b59
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 0x514b57
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 0x514b57
jmp 0x50db2e
jmp 0x514b9e
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 0x514b9e
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 0x514b9e
jmp 0x50db2e
jmp case.0x50da42.88
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xd8], 0
je 0x514bf2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xd8]
mov dword [ebp - 0x214], eax
jmp 0x514bcf
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 0x514bdd
jmp 0x514bc0
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 0x514bff
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.00518dc0
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.00518dc0
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 0x514c6e
jl 0x514c5e
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x454]
mov edx, dword [eax]
cmp edx, dword [ecx]
jae 0x514c6e
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.0x50da42.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 0x514cc2
jg 0x514ca2
mov eax, dword [ebp - 0x458]
cmp dword [eax], 0
jbe 0x514cc2
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 0x50db2e
jmp case.0x50da42.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.004c9eb0
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 0x514d80
jg 0x514d1c
cmp dword [ebp - 0x364], 0
jbe 0x514d80
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
cmp dword [eax + 4], 0
jl 0x514d54
jg 0x514d3e
mov ecx, dword [ebp - 0x45c]
cmp dword [ecx], 0
jbe 0x514d54
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 0x514d5f
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.004d8b90
add esp, 0xc
test eax, eax
je 0x514d91
mov edx, dword [ebp - 0x10]
or eax, 0xffffffff
mov dword [edx], 0xffffffff
mov dword [edx + 4], eax
jmp 0x514da5
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.0x50da42.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 0x514e10
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x464], ecx
mov edx, dword [ebp - 0x464]
cmp dword [edx + 4], 0
jl 0x514e0b
jg 0x514df5
mov eax, dword [ebp - 0x464]
cmp dword [eax], 0
jbe 0x514e0b
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 0x50db2e
jmp case.0x50da42.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 0x514e5d
jg 0x514e47
mov eax, dword [ebp - 0x468]
cmp dword [eax], 0
jbe 0x514e5d
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 0x514e7e
jmp 0x50db2e
jmp case.0x50da42.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.004e5220
add esp, 0xc
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x514ec1
jmp 0x5168c8
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.00518d90
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 0x514fec
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 0x514fc2
mov edx, dword [ebp - 0x114]
sub edx, 1
mov dword [ebp - 0x114], edx
cmp dword [ebp - 0x114], 0
jl 0x514fec
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 0x514fb3
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 0x51502d
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 0x51504e
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 0x515105
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x14], 0
jle 0x51508d
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.004a6e70
add esp, 4
push eax
push 0x5ea2ec
mov eax, dword [ebp + 8]
push eax
call fcn.0050d860
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 0x5150d4
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 0x5150cd
push 0
push 1
imul eax, dword [ebp - 0x114], 0x28
add eax, dword [ebp - 0x18]
push eax
call fcn.005190a0
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.00519030
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 0x515105
jmp 0x5166cc
jmp case.0x50da42.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 0x515159
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.005185e0
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 0x515172
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x170]
push edx
call fcn.005188f0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51519e
mov eax, dword [ebp - 0x170]
push eax
call fcn.004a6e70
add esp, 4
push eax
push 0x5ea2f0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
add esp, 0xc
jmp 0x5166cc
movzx edx, byte [ebp - 0x19]
push edx
mov eax, dword [ebp - 0x170]
push eax
call fcn.0050cc30
add esp, 8
mov ecx, dword [ebp - 0x170]
push ecx
call fcn.00519670
add esp, 4
test eax, eax
je 0x5151ca
jmp 0x5168ab
jmp case.0x50da42.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.004e12d0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51526e
cmp dword [ebp - 8], 5
je 0x515254
jmp 0x5166cc
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 0x5152a8
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 0x5152d2
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.005190a0
add esp, 0xc
jmp 0x51528a
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
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.004dfe80
add esp, 4
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004f9f90
add esp, 4
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x84], 0xffffffff
jne 0x51534e
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004fa3a0
add esp, 4
test eax, eax
jne 0x51536d
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x84], eax
push 1
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004f9e80
add esp, 8
mov dword [ebp - 0x5ac], eax
cmp dword [ebp - 0x84], 5
jne 0x5153bf
mov edx, dword [ebp - 0x5ac]
push edx
call fcn.005088a0
add esp, 4
test eax, eax
je 0x5153b3
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fb970
add esp, 4
test eax, eax
jne 0x5153bf
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x118]
je 0x5154db
cmp dword [ebp - 0x118], 5
je 0x5153e7
cmp dword [ebp - 0x84], 5
jne 0x5154db
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x55]
test ecx, ecx
je 0x5153fe
mov edx, dword [ebp - 0xc]
cmp dword [edx + 0xc0], 1
jle 0x515446
mov dword [ebp - 8], 1
cmp dword [ebp - 0x84], 5
jne 0x51541a
mov dword [ebp - 0x470], str.into
jmp 0x515424
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.0050d860
add esp, 0xc
jmp 0x5166cc
cmp dword [ebp - 0x118], 5
jne 0x515483
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004f9990
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x515481
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.004fb190
add esp, 8
jmp 0x51549d
cmp dword [ebp - 0x118], 4
jne 0x51549d
push 2
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004fb190
add esp, 8
cmp dword [ebp - 8], 0
jne 0x5154db
cmp dword [ebp - 0x84], 5
jne 0x5154b8
mov dword [ebp - 0x474], 2
jmp 0x5154c2
mov dword [ebp - 0x474], 1
mov ecx, dword [ebp - 0x474]
push ecx
mov edx, dword [ebp - 0x478]
push edx
call fcn.004e06d0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5154ed
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.004fb190
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.004f65b0
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.005088a0
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.0050cc30
add esp, 8
cmp dword [ebp - 8], 0
je 0x515562
jmp 0x5166cc
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
cmp dword [edx + 8], 0
je 0x515582
mov eax, dword [ebp - 4]
imul ecx, dword [eax + 8], 0x28
add ecx, dword [ebp - 0x18]
mov dword [ebp - 0x47c], ecx
jmp 0x51558c
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.005038c0
add esp, 0x10
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5155bd
jmp 0x5166cc
jmp case.0x50da42.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.004de2e0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51560a
cmp dword [ebp - 8], 0x65
je 0x5155fe
jmp 0x5166cc
mov dword [ebp - 8], 0
jmp 0x50db2e
jmp case.0x50da42.88
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
jne 0x51562d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004e8270
add esp, 8
jmp 0x515650
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.0x50da42.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.004dd9e0
add esp, 4
jmp case.0x50da42.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.004dda80
add esp, 4
jmp case.0x50da42.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 0x5156f4
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 0x51576a
cmp dword [ebp - 0x6c8], 0
jne 0x51576a
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.004df4b0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x51576a
mov eax, dword [ebp - 8]
and eax, 0xff
cmp eax, 6
jne 0x515765
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.0050d860
add esp, 0xc
jmp 0x5166cc
jmp case.0x50da42.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.0051c580
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x2dc], 0
je 0x5157b0
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0051d180
add esp, 8
cmp dword [ebp - 8], 0
je 0x5157bb
jmp 0x5166cc
jmp case.0x50da42.88
push 0x28
push 0
lea eax, [ebp - 0x860]
push eax
call fcn.005768e0
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.005187c0
add esp, 8
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.004a6e70
add esp, 4
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0
je 0x51583d
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.0051c8d0
add esp, 0x10
mov dword [ebp - 8], eax
lea edx, [ebp - 0x860]
push edx
call fcn.00519030
add esp, 4
cmp dword [ebp - 8], 0
je 0x515857
jmp 0x5166cc
jmp case.0x50da42.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.0051c9f0
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 0x5158ae
jmp 0x5166cc
jmp case.0x50da42.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 0x5158ea
mov edx, dword [ebp - 0x120]
cmp dword [edx], 0
jne 0x5158f6
mov dword [ebp - 8], 6
jmp 0x5166cc
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.0051d180
add esp, 8
cmp dword [ebp - 8], 0
je 0x515941
jmp 0x5166cc
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.004a9570
add esp, 0x10
mov dword [ebp - 0x2e0], eax
cmp dword [ebp - 0x2e0], 0
je 0x51599b
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 0x5159b5
mov eax, dword [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x484]
mov edx, dword [ecx + 0x1c]
call edx
add esp, 4
jmp 0x5168c8
jmp case.0x50da42.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.004a44f0
add esp, 8
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
jne 0x5159ef
jmp 0x5168c8
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.004c9eb0
add esp, 8
mov dword [ebp - 0x10], eax
mov ecx, 1
mov edx, dword [ebp - 0x10]
mov word [edx + 8], cx
push fcn.004a4590
push str.ValueList
mov eax, dword [ebp - 0x224]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00519120
add esp, 0x10
jmp case.0x50da42.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 0x515afb
mov ecx, dword [ebp - 0x198]
add ecx, 1
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x198]
cmp edx, dword [ebp - 0x494]
jge 0x515b2c
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 0x515aec
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.0051d180
add esp, 8
cmp dword [ebp - 8], 0
je 0x515b7e
jmp 0x5166cc
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 0x515bb1
jmp 0x50db2e
jmp case.0x50da42.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 0x515bfd
mov eax, dword [ebp - 0xb4]
push eax
call fcn.005190f0
add esp, 4
jmp case.0x50da42.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.005768e0
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 0x515c73
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.005190f0
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 0x515c8f
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.0051d180
add esp, 8
cmp dword [ebp - 0x784], 0
jle 0x515cfe
mov edx, dword [ebp - 0xb4]
push edx
call fcn.004a6e70
add esp, 4
push eax
push 0x5ea364
mov eax, dword [ebp + 8]
push eax
call fcn.0050d860
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.0050cc30
add esp, 8
mov ecx, dword [ebp - 0xb4]
push ecx
call fcn.00519670
add esp, 4
test eax, eax
je 0x515d2a
jmp 0x5168ab
cmp dword [ebp - 8], 0
je 0x515d35
jmp 0x5166cc
jmp case.0x50da42.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 0x515d62
jmp case.0x50da42.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.0051d180
add esp, 8
cmp dword [ebp - 8], 0
je 0x515dba
jmp 0x5166cc
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 0x515de6
jmp case.0x50da42.11
jmp 0x50da5b
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.0050cc30
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x515e52
jmp 0x5166cc
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 0x515e97
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.0051d180
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 0x515eca
jmp 0x5166cc
jmp case.0x50da42.88
xorps xmm0, xmm0
movlpd qword [ebp - 0x6d4], xmm0
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x57]
test ecx, ecx
je 0x515eea
jmp 0x5168c8
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 0x515f0d
mov edx, dword [ebp - 0x19c]
cmp dword [edx], 0
jne 0x515f19
mov dword [ebp - 8], 6
jmp 0x5166cc
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 0x5160c0
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 0x515f86
mov edx, dword [ebp - 0x22c]
add edx, 1
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
cmp eax, dword [ebp - 0x4b8]
jge 0x515fba
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 0x515f77
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.0051d180
add esp, 8
cmp dword [ebp - 8], 0
jne 0x516036
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x516036
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 0x51609d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10]
movzx ecx, byte [eax + 0x10]
test ecx, ecx
je 0x51609d
mov edx, dword [ebp - 4]
movzx eax, word [edx + 2]
cmp eax, 4
jne 0x516067
mov dword [ebp - 8], 0
jmp 0x51609b
mov ecx, dword [ebp - 4]
movzx edx, word [ecx + 2]
cmp edx, 5
jne 0x51607f
mov dword [ebp - 0x4c0], 2
jmp 0x51608c
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 0x5160b5
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 0x5160c0
jmp 0x5166cc
jmp case.0x50da42.88
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004c9eb0
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.004df410
add esp, 4
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x50da42.88
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004c9eb0
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 0x516171
mov edx, dword [ebp - 0x4c4]
push edx
call fcn.004df410
add esp, 4
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x230]
cmp ecx, dword [eax + 0xc]
jae 0x516171
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.004df530
add esp, 8
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x50da42.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 0x516224
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 0x5161f7
mov eax, dword [ebp - 0x1a0]
sub eax, 1
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0
jl 0x516224
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 0x5161e8
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 0x5162e9
mov edx, dword [ebp - 0x88]
cmp dword [edx + 0x14], 0
jle 0x5162aa
mov eax, dword [ebp - 0x10]
push eax
call fcn.004a6e70
add esp, 4
push eax
push 0x5ea368
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
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.0050d280
add esp, 0x10
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x14], 0
cmp dword [ebp - 8], 0
je 0x5162e9
jmp 0x5166cc
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + 8]
and eax, 0x12
je 0x51631b
movzx ecx, byte [ebp - 0x19]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0050cc30
add esp, 8
mov eax, dword [ebp - 0x10]
push eax
call fcn.00519670
add esp, 4
test eax, eax
je 0x51631b
jmp 0x5168ab
jmp case.0x50da42.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.004bb540
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.00575710
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.005756a0
push 0
push 1
push edx
push eax
call fcn.00575580
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.005756a0
push 0
push 1
push edx
push eax
call fcn.00575580
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x10]
mov byte [eax + ecx], bl
jmp case.0x50da42.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.004bb540
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.00575710
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.005756a0
push 0
push 1
push edx
push eax
call fcn.00575580
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 0x51649e
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 0x50db2e
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.0x50da42.88
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x5e]
and eax, 0x41
je 0x51660c
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x9d]
test edx, edx
jne 0x51660c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x516503
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x4c8], edx
jmp 0x516512
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 0x51660c
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x5e]
and ecx, 0x40
je 0x516583
mov edx, dword [ebp - 0x234]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00516c10
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.004a4590
add esp, 4
jmp 0x51660c
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0xc8], 1
jle 0x5165e7
mov edx, dword [ebp - 0x234]
push edx
push 0x5ea36c
mov eax, dword [ebp - 0xc]
push eax
call fcn.004f7940
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.004e50b0
add esp, 8
jmp 0x51660c
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 [0x5e7c4c]
jl 0x51668c
mov edx, dword [ebp - 4]
movzx eax, byte [edx]
cmp eax, 0xb3
jne 0x51662c
jmp case.0x50da42.88
mov dword [ebp - 0x1c0], 1
jmp 0x516647
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 0x516682
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 0x516680
imul edx, dword [ebp - 0x1c0], 0x14
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov dword [ecx + edx + 4], 0
jmp 0x516638
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 0x50db2e
jmp 0x50d9ec
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x57]
test eax, eax
je 0x5166e0
mov dword [ebp - 8], 7
jmp 0x5166f9
cmp dword [ebp - 8], 0x210a
jne 0x5166f9
push 0x176af
call fcn.004e3440
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x84], 0
jne 0x51672c
cmp dword [ebp - 8], 0xc0a
je 0x51672c
mov edx, dword [ebp - 8]
push edx
call fcn.004e7c40
add esp, 4
push eax
push 0x5ea374
mov eax, dword [ebp + 8]
push eax
call fcn.0050d860
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.00508960
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.0049a4e0
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.00517540
add esp, 4
cmp dword [ebp - 8], 0xc0a
jne 0x51679a
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.004f87e0
add esp, 4
cmp dword [ebp - 8], 0xb
jne 0x5167c0
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x55]
test eax, eax
jne 0x5167c0
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 0x5167e3
movzx eax, byte [ebp - 0x61]
sub eax, 1
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00502630
add esp, 8
mov edx, dword [ebp - 0x268]
cmp edx, dword [ebp - 0xd4]
jb 0x516870
ja 0x516801
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0xd8]
jb 0x516870
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x170], 0
je 0x516870
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 0x51686b
or eax, 0xffffffff
mov dword [ebp - 0xd8], 0xffffffff
mov dword [ebp - 0xd4], eax
mov dword [ebp - 8], 9
jmp 0x5166cc
jmp 0x5167e3
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.00517e50
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x5168fd
push str.string_or_blob_too_big
mov edx, dword [ebp + 8]
push edx
call fcn.0050d860
add esp, 8
mov dword [ebp - 8], 0x12
jmp 0x5166cc
mov eax, dword [ebp - 0xc]
push eax
call fcn.004f87e0
add esp, 4
push 0x5ea3b0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0050d860
add esp, 8
mov dword [ebp - 8], 7
jmp 0x5166cc
mov dword [ebp - 8], 9
jmp 0x5166cc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret