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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b8
mov eax, dword [0x649ffc]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
push ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xd0], esi
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd8], ebx
mov byte [ebp - 0xf9], 0
mov al, byte [eax + 0x4d]
mov byte [ebp - 0xf4], al
xor eax, eax
mov dword [ebp - 0x134], 0
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], eax
call fcn.004fed00
mov ecx, dword [ebp - 0xd4]
add esp, 4
cmp dword [ecx + 0x5c], 7
je 0x505d68
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x14], 0
cmp dword [ebx + 0xe0], 0
mov dword [ebx + 0x1b4], 0
jne 0x505d1e
mov edx, dword [ebx + 0x114]
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xc8], eax
nop dword [eax]
cmp byte [ebx + 0x1e], 0
jne 0x505d68
lea edi, [eax + eax*4]
test edx, edx
je 0x4fee7f
mov eax, dword [ebp - 0x134]
cmp dword [ebx + 0x11c], eax
jne 0x4fee78
push dword [ebx + 0x118]
mov eax, dword [ebx + 0x114]
call eax
add esp, 4
test eax, eax
jne 0x505920
inc eax
mov dword [ebp - 0x134], eax
test byte [esi + edi*4 + 2], 2
je 0x4feeb6
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xe4], eax
call fcn.00507720
mov edx, dword [ebp - 0xe4]
mov eax, 4
add esp, 4
mov word [edx + 0x1c], ax
jmp 0x4feebc
mov edx, dword [ebp - 0xe4]
movzx eax, byte [esi + edi*4]
dec eax
cmp eax, 0x90
ja case.0x4feecc.17
jmp dword [eax*4 + 0x505e10]
cmp dword [ebx + 0xe0], 0
jne 0x505d18
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [esi + edi*4 + 4]
mov edx, 4
mov eax, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 0x1c], dx
mov eax, dword [ebp - 0xc8]
cdq
mov dword [ebx + ecx*8 + 0x10], eax
mov eax, ebx
mov ebx, dword [ebp - 0xd8]
mov dword [eax + ecx*8 + 0x14], edx
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*8 + 0x10]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edi, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov eax, 4
mov word [edi + ecx*8 + 0x1c], ax
mov eax, dword [edi + ecx*8 + 0x10]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc8]
cdq
mov dword [edi + ecx*8 + 0x10], eax
mov dword [edi + ecx*8 + 0x14], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
je case.0x4feecc.17
mov ecx, dword [esi + edi*4 + 4]
test ecx, ecx
jne 0x50592a
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x50592a
mov ecx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x3c]
push edx
dec dword [ecx + 0xb0]
mov dword [ecx + 0xa8], eax
mov eax, dword [ecx + 0x6c]
add dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], eax
call fcn.00506440
mov ecx, dword [ebp - 0xd4]
add esp, 4
cmp dword [esi + edi*4 + 8], 4
mov esi, dword [ecx + 4]
mov dword [ebp - 0xd0], esi
jne 0x4ff00e
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 8]
dec eax
mov ecx, dword [ecx + 8]
inc eax
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], ecx
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x14], edx
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [esi + edi*4 + 0x10]
mov eax, dword [ecx]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, 8
mov word [edx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0xc8]
movsd qword [edx + 8], xmm0
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov edx, dword [esi + edi*4 + 0x10]
push edx
mov byte [esi + edi*4], 9
call fcn.004faa30
add esp, 4
mov dword [esi + edi*4 + 4], eax
cmp byte [ebp - 0xf4], 1
je 0x4ff141
push 0
push 1
push 0xffffffffffffffff
push edx
push dword [ebp - 0xe4]
call fcn.00507990
add esp, 0x14
mov dword [ebp - 0xcc], eax
cmp eax, 0x12
je 0x505cf9
movzx ecx, byte [ebp - 0xf4]
push ecx
push dword [ebp - 0xe4]
call fcn.004fe4a0
add esp, 8
test eax, eax
jne 0x505d68
mov ecx, dword [ebp - 0xe4]
mov edx, 0xfbff
mov dword [ecx + 0x24], eax
mov ax, word [ecx + 0x1c]
and ax, dx
mov edx, 0x800
or ax, dx
mov word [ecx + 0x1c], ax
cmp byte [esi + edi*4 + 1], 0xff
jne 0x4ff12e
push dword [esi + edi*4 + 0x10]
push ebx
call fcn.004e5400
mov ecx, dword [ebp - 0xe4]
add esp, 8
mov byte [esi + edi*4 + 1], 0xff
mov eax, dword [ecx + 4]
mov dword [esi + edi*4 + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [esi + edi*4 + 4], eax
cmp eax, dword [ebx + 0x48]
jg 0x505cf9
mov ecx, dword [ebp - 0xe4]
mov eax, 0xa02
mov word [ecx + 0x1c], ax
mov eax, dword [esi + edi*4 + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esi + edi*4 + 4]
mov dword [ecx + 0x18], eax
mov al, byte [ebp - 0xf4]
mov byte [ecx + 0x1f], al
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
push 0
push 0
push dword [esi + edi*4 + 4]
push dword [esi + edi*4 + 0x10]
push edx
call fcn.00507990
mov eax, dword [ebp - 0xe4]
add esp, 0x14
mov cl, byte [ebp - 0xf4]
mov edx, dword [ebp - 0xdc]
mov byte [eax + 0x1f], cl
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ecx, [ecx - 5]
mov eax, dword [eax + 0x48]
lea esi, [eax + ecx*8]
push esi
mov dword [ebp - 0xc4], esi
call fcn.00507cb0
add esp, 4
test eax, eax
jne 0x505cf9
push 0x800
push esi
push dword [ebp - 0xe4]
call fcn.00507b80
add esp, 0xc
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov edx, dword [esi + edi*4 + 0xc]
mov dword [ebp - 0xc0], edx
mov eax, dword [esi + edi*4 + 4]
mov dword [ebp - 0xbc], eax
mov ecx, dword [esi + edi*4 + 8]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xb8], ecx
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
lea eax, [ecx + ecx*4]
lea edi, [edi + eax*8]
mov dword [ebp - 0xe4], edi
test edx, edx
je 0x4ff284
dec edx
mov dword [ebp - 0xc0], edx
mov eax, dword [edi + 0x24]
push esi
mov dword [ebp - 0xc4], eax
push edi
mov dword [edi + 0x24], 0
call fcn.00507500
mov eax, dword [ebp - 0xc4]
add esp, 8
mov dword [esi + 0x24], eax
add edi, 0x28
mov edx, dword [ebp - 0xc0]
add esi, 0x28
test edx, edx
jne 0x4ff244
mov dword [ebp - 0xe4], edi
mov eax, dword [ebp - 0xc8]
dec edx
mov esi, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xc0], edx
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
push 0x1000
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xe4], eax
mov eax, dword [esi + edi*4 + 4]
mov edi, dword [ebp - 0xe4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
push edi
call fcn.00507b80
mov eax, 0x1000
add esp, 0xc
test word [edi + 0x1c], ax
je 0x5008e9
push edi
call fcn.00507490
add esp, 4
test eax, eax
jne 0x505d68
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xe0]
push 0x1000
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 4]
mov dword [ebp - 0xe4], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
push ecx
call fcn.00507b80
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
push 0
push dword [ebp - 0xd4]
call fcn.004fe810
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5058fe
push 1
push dword [ebp - 0xd4]
call fcn.004fe870
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5058fe
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xe0]
mov eax, dword [ecx + 0x54]
add eax, 2
or eax, 1
mov dword [ecx + 0x54], eax
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [ecx + 0x14], edx
xor ecx, ecx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], ecx
cmp dword [esi + edi*4 + 8], ecx
jle 0x5059e9
nop dword [eax]
nop dword [eax + eax]
lea eax, [ecx + ecx*4]
mov ebx, 0x1000
test word [edx + eax*8 + 0x1c], bx
lea eax, [edx + eax*8]
mov ebx, dword [ebp - 0xd8]
je 0x4ff405
push eax
call fcn.00507490
add esp, 4
test eax, eax
jne 0x505d68
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*8]
push eax
call fcn.00507570
mov eax, dword [ebp - 0xc0]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xc4]
lea eax, [eax + ecx*8]
push eax
call fcn.00507bd0
mov ecx, dword [ebp - 0xc0]
add esp, 8
inc ecx
mov dword [ebp - 0xc0], ecx
cmp ecx, dword [esi + edi*4 + 8]
jge 0x5059e9
mov edx, dword [ebp - 0xc4]
jmp 0x4ff3d0
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx ecx, word [ebx + 0x1c]
mov al, byte [esi + 0x1c]
or al, cl
mov dword [ebp - 0xe4], edi
test al, 1
je 0x4ff4af
push edi
call fcn.00507870
mov ebx, dword [ebp - 0xd8]
add esp, 4
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc8]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
test ecx, 0x4000
je 0x4ff4c8
push ebx
call fcn.00507100
add esp, 4
test eax, eax
jne 0x505d62
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4ff4e4
push esi
call fcn.00507100
add esp, 4
test eax, eax
jne 0x505d62
test byte [ebx + 0x1c], 0x12
movzx edi, byte [ebp - 0xf4]
jne 0x4ff503
push edi
push ebx
call fcn.00507c10
add esp, 8
test eax, eax
jne 0x505d62
test byte [esi + 0x1c], 0x12
jne 0x4ff51b
push edi
push esi
call fcn.00507c10
add esp, 8
test eax, eax
jne 0x505d62
mov ecx, dword [ebx + 0x18]
add ecx, dword [esi + 0x18]
mov eax, ecx
cdq
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xc0], edx
cmp ecx, dword [eax + 0x48]
jg 0x505cf7
mov edi, dword [ebp - 0xe4]
mov ecx, 0xbf02
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
cmp edi, esi
sete al
push eax
mov eax, dword [ebp - 0xc4]
add eax, 2
push eax
push edi
call fcn.00507340
add esp, 0xc
test eax, eax
jne 0x505d62
cmp edi, esi
je 0x4ff591
push dword [esi + 0x18]
push dword [esi + 4]
push dword [edi + 4]
call fcn.005868f0
add esp, 0xc
push dword [ebx + 0x18]
mov eax, dword [edi + 4]
push dword [ebx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.005868f0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov ecx, dword [edi + 4]
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
mov byte [eax + ecx], 0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [edi + 4]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc4]
mov dword [edi + 0x18], eax
mov al, byte [ebp - 0xf4]
mov byte [edi + 0x1f], al
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ebx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xf8], eax
call fcn.004c3540
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xe8], eax
call fcn.004c3540
mov eax, dword [esi + edi*4 + 0xc]
add esp, 8
mov esi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xf8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + 0x1c]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xe4], eax
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [ebp - 0xc4], ecx
test cl, 1
jne 0x4ffa78
mov al, byte [esi + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4ff6e2
mov eax, edx
mov ecx, dword [eax + 0x10]
mov esi, dword [eax + 0x14]
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xec], ecx
mov edx, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], ebx
movzx eax, byte [eax + edi*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4ff6b6
jmp dword [eax*4 + 0x506054]
push esi
push ecx
lea eax, [ebp - 0xb4]
push eax
call fcn.004dda00
add esp, 0xc
test eax, eax
je 0x4ff8e6
mov edx, dword [ebp - 0xf8]
mov esi, dword [ebp - 0xe8]
push edx
call fcn.00508230
fstp qword [ebp - 0xac]
push esi
call fcn.00508230
mov esi, dword [ebp - 0xd0]
add esp, 8
fstp qword [ebp - 0xa4]
movzx eax, byte [esi + edi*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4ff713
jmp dword [eax*4 + 0x506064]
test ecx, ecx
jne 0x4ff74a
cmp esi, 0x80000000
jne 0x4ff74a
test ebx, ebx
jg 0x4ff6d6
jl 0x4ff730
test edx, edx
jae 0x4ff6d6
add edx, 0
mov dword [ebp - 0xb4], edx
adc ebx, 0x80000000
mov dword [ebp - 0xb0], ebx
jmp 0x4ff8e6
neg ecx
adc esi, 0
neg esi
jmp case.0x4ff6b6.86
push ebx
push 1
push 0
push ebx
push edx
call fcn.0056fa30
mov dword [ebp - 0x108], ebx
pop ebx
push ebx
push 1
push 0
push esi
push dword [ebp - 0xec]
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
call fcn.0056fa30
mov dword [ebp - 0x104], ebx
pop ebx
push dword [ebp - 0x110]
mov ebx, edx
mov dword [ebp - 0xec], ecx
push dword [ebp - 0x114]
mov esi, eax
push ebx
push esi
call fcn.0056fb10
or eax, edx
jne 0x4ff6d6
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push ebx
push esi
call fcn.0056fb10
push dword [ebp - 0x110]
mov esi, eax
mov ebx, edx
push dword [ebp - 0x114]
push dword [ebp - 0x104]
push dword [ebp - 0xec]
call fcn.0056fb10
add esi, eax
adc ebx, edx
cmp ebx, 0xffffffff
jl 0x4ff6d6
jg 0x4ff807
cmp esi, 0x80000000
jb 0x4ff6d6
test ebx, ebx
jg 0x4ff6d6
jl 0x4ff81d
cmp esi, 0x80000000
jae 0x4ff6d6
push dword [ebp - 0x108]
mov dword [ebp - 0x13c], 0
push dword [ebp - 0x10c]
mov dword [ebp - 0x138], esi
push dword [ebp - 0x104]
push dword [ebp - 0xec]
call fcn.0056fb10
push edx
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.004dda00
add esp, 0xc
test eax, eax
jne 0x4ff6d6
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xb0], eax
jmp 0x4ff8e6
mov eax, ecx
or eax, esi
je 0x4ffa78
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
jne 0x4ff8a0
test edx, edx
jne 0x4ff8a0
cmp ebx, 0x80000000
je 0x4ff6d6
push esi
push ecx
push ebx
push edx
call fcn.0056f5d0
jmp 0x4ff8da
mov eax, ecx
or eax, esi
je 0x4ffa78
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
jne 0x4ff8d1
mov ecx, 1
xor esi, esi
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], esi
push esi
push ecx
push ebx
push edx
call fcn.0056fb50
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xb4], eax
mov edi, dword [ebp - 0xe4]
mov ecx, 0xbf04
mov eax, dword [ebp - 0xb4]
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
mov dword [edi + 0x10], eax
mov eax, dword [ebp - 0xb0]
mov dword [edi + 0x14], eax
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
movsd xmm0, qword [ebp - 0xa4]
addsd xmm0, qword [ebp - 0xac]
jmp 0x4ffa0b
movsd xmm0, qword [ebp - 0xa4]
subsd xmm0, qword [ebp - 0xac]
jmp 0x4ffa0b
movsd xmm0, qword [ebp - 0xa4]
mulsd xmm0, qword [ebp - 0xac]
jmp 0x4ffa0b
movsd xmm1, qword [ebp - 0xac]
ucomisd xmm1, qword [0x603308]
lahf
test ah, 0x44
jnp 0x4ffa78
movsd xmm0, qword [ebp - 0xa4]
divsd xmm0, xmm1
jmp 0x4ffa0b
movsd xmm0, qword [ebp - 0xac]
call fcn.0056f8af
movsd xmm0, qword [ebp - 0xa4]
mov esi, eax
mov edi, edx
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xb8], edi
call fcn.0056f8af
mov ecx, esi
mov dword [ebp - 0xb0], edx
or ecx, edi
mov ebx, eax
mov dword [ebp - 0xb4], ebx
je 0x4ffa78
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4ff9f5
mov esi, 1
xor edi, edi
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xb8], edi
push edi
push esi
push edx
push ebx
call fcn.0056fb50
mov ecx, eax
call fcn.0056fa00
mov esi, dword [ebp - 0xd0]
sub esp, 8
movsd qword [ebp - 0xa4], xmm0
movsd qword [esp], xmm0
call fcn.004f0190
add esp, 8
test eax, eax
jne 0x4ffa78
mov edi, dword [ebp - 0xe4]
mov ecx, 0xbf08
movsd xmm0, qword [ebp - 0xa4]
mov ax, word [edi + 0x1c]
and ax, cx
movsd qword [edi + 8], xmm0
or ax, 8
mov word [edi + 0x1c], ax
test byte [ebp - 0xc4], 8
jne 0x4ffa60
push edi
call fcn.00506850
add esp, 4
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xd8]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
push dword [ebp - 0xe4]
jmp 0x4ff489
mov cl, byte [esi + edi*4 + 3]
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
movzx eax, cl
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0xd4]
mov esi, dword [eax + 0xc]
mov dword [ebp - 0x7c], esi
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xe4], eax
mov eax, dword [edx + edi*4 + 8]
mov edx, ebx
mov ebx, dword [ebp - 0xd8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
xor eax, eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], eax
test cl, cl
je 0x4ffb3a
nop dword [eax]
mov dword [esi + eax*4], edx
mov ecx, 0x1000
mov eax, dword [ebp - 0xc0]
test word [eax + 0x1c], cx
je 0x4ffb0b
push eax
call fcn.00507490
add esp, 4
test eax, eax
jne 0x505d68
mov eax, dword [ebp - 0xc0]
push eax
call fcn.00507bd0
mov eax, dword [ebp - 0xc4]
add esp, 4
mov edx, dword [ebp - 0xc0]
inc eax
add edx, 0x28
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
cmp eax, dword [ebp - 0x78]
jge 0x4ffb3a
mov esi, dword [ebp - 0x7c]
jmp 0x4ffae0
mov esi, dword [ebp - 0xd0]
cmp byte [esi + edi*4 + 1], 0xfb
mov eax, dword [esi + edi*4 + 0x10]
jne 0x4ffb57
mov dword [ebp - 0xb8], 0
jmp 0x4ffb5f
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
push dword [ebp - 0xe4]
mov dword [ebp - 0xbc], eax
mov eax, 1
mov word [ebp - 0x98], ax
lea eax, [ebp - 0xb4]
push eax
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 0
call fcn.00507500
mov eax, dword [ebp - 0x98]
add esp, 8
mov ecx, dword [ebp - 0xbc]
and eax, 0xbf01
or eax, 1
mov dword [ebp - 0x88], 0
mov word [ebp - 0x98], ax
test byte [ecx + 3], 8
je 0x4ffbd5
mov eax, dword [esi + edi*4 - 4]
mov dword [ebp - 0x84], eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0xbc]
push dword [ebp - 0x78]
push eax
mov eax, dword [ecx + 0xc]
call eax
add esp, 0xc
cmp byte [ebx + 0x1e], 0
jne 0x505a0d
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4ffc1a
push dword [esi + edi*4 + 4]
push eax
call fcn.004feb00
mov eax, dword [ebp - 0xb8]
add esp, 8
mov dword [esi + edi*4 + 0x10], eax
mov byte [esi + edi*4 + 1], 0xf9
cmp dword [ebp - 0x88], 0
je 0x4ffc56
lea eax, [ebp - 0xb4]
push 1
push eax
call fcn.004fe150
push eax
mov eax, dword [ebp - 0xd4]
push 0x5fcb5c
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, dword [ebp - 0x88]
add esp, 0x18
mov dword [ebp - 0xcc], eax
movzx eax, byte [ebp - 0xf4]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.004fe4a0
mov edi, dword [ebp - 0xe4]
lea eax, [ebp - 0xb4]
push eax
push edi
call fcn.00507500
push edi
call fcn.00507cb0
add esp, 0x14
test eax, eax
jne 0x505cf9
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
mov dword [ebp - 0xe4], edx
test al, 1
je 0x4ffcfa
push edx
call fcn.00507870
mov eax, dword [ebp - 0xc8]
add esp, 4
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
push ecx
call fcn.005067b0
push esi
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
call fcn.005067b0
mov esi, dword [ebp - 0xd0]
mov ebx, eax
mov dword [ebp - 0xb4], ebx
add esp, 8
mov dword [ebp - 0xb0], edx
mov cl, byte [esi + edi*4]
mov byte [ebp - 0xac], cl
cmp cl, 0x52
jne 0x4ffd50
mov edi, dword [ebp - 0xc4]
and edi, ebx
and dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], edi
jmp 0x4ffed8
cmp cl, 0x53
jne 0x4ffd6e
mov edi, dword [ebp - 0xc4]
or edi, ebx
or dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], edi
jmp 0x4ffed8
mov eax, ebx
or eax, edx
je 0x4ffed2
test edx, edx
jg 0x4ffdb8
jl 0x4ffd82
test ebx, ebx
jae 0x4ffdad
mov al, 0xa9
sub al, cl
mov cl, al
mov byte [ebp - 0xac], cl
cmp edx, 0xffffffff
jl 0x4ffde7
jg 0x4ffd9a
cmp ebx, 0xffffffc0
jbe 0x4ffde7
neg ebx
mov dword [ebp - 0xb4], ebx
adc edx, 0
neg edx
mov dword [ebp - 0xb0], edx
test edx, edx
jl 0x4ffe25
jg 0x4ffdb8
cmp ebx, 0x40
jb 0x4ffe25
cmp dword [ebp - 0xc0], 0
jg 0x4ffdfd
jl 0x4ffdcc
cmp dword [ebp - 0xc4], 0
jae 0x4ffdfd
cmp cl, 0x54
je 0x4ffdfd
or edi, 0xffffffff
or eax, edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], eax
jmp 0x4ffed8
mov dword [ebp - 0xb4], 0x40
mov dword [ebp - 0xb0], 0
jmp 0x4ffdb8
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0xf0]
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], eax
jmp 0x4ffed8
cmp cl, 0x54
jne 0x4ffe5c
movq xmm1, qword [ebp - 0xc4]
movd xmm0, ebx
psllq xmm1, xmm0
movq qword [ebp - 0xbc], xmm1
mov eax, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xbc]
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], eax
jmp 0x4ffed8
mov esi, dword [ebp - 0xc0]
mov ecx, ebx
mov eax, dword [ebp - 0xc4]
mov edx, esi
call fcn.0056fdc0
mov edi, eax
mov eax, edx
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], eax
test esi, esi
jg 0x4ffebe
jl 0x4ffe96
cmp dword [ebp - 0xc4], 0
jae 0x4ffebe
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.0056fd20
or edi, eax
or edx, dword [ebp - 0xec]
mov eax, edx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], eax
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], eax
jmp 0x4ffed8
mov edi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xe4]
mov ecx, 0xbf04
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
mov dword [eax + 0x10], edi
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc0]
mov dword [edi + 0x14], eax
mov ax, word [edi + 0x1c]
and ax, cx
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00507460
mov eax, dword [ebp - 0xd0]
add esp, 4
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi + 0x10], eax
mov eax, dword [ebp - 0xc8]
adc dword [esi + 0x14], edx
inc eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.004c3540
movzx eax, word [esi + 0x1c]
add esp, 4
mov ecx, eax
test al, 8
je 0x4fff8e
push esi
call fcn.00506850
movzx ecx, word [esi + 0x1c]
add esp, 4
movzx eax, cx
test al, 4
jne 0x4fffb7
mov esi, dword [ebp - 0xd0]
mov eax, dword [esi + edi*4 + 8]
test eax, eax
jne 0x4ff4a4
mov eax, 0x14
mov dword [ebp - 0xcc], eax
jmp 0x505b80
mov edx, dword [ebp - 0xdc]
and eax, 0xbf04
or eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd0]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 4
lea eax, [ecx + eax*8]
je 0x4ff49d
push eax
call fcn.00507660
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x5058f2
push dword [ebp - 0xf4]
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
push 0x61
push esi
mov word [esi + 0x1c], ax
call fcn.004c34e0
movzx eax, word [esi + 0x1c]
add esp, 0xc
test eax, 0x4000
je 0x500079
push esi
call fcn.00507100
mov dword [ebp - 0xcc], eax
add esp, 4
movzx eax, word [esi + 0x1c]
and eax, 0xbfe3
mov word [esi + 0x1c], ax
jmp 0x5058f2
and eax, 0xbfe3
mov dword [ebp - 0xcc], 0
mov word [esi + 0x1c], ax
jmp 0x5058f2
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x5058f2
test al, 0x10
jne 0x5000ee
push dword [ebp - 0xf4]
push 0x61
push esi
call fcn.004c34e0
mov ax, word [esi + 0x1c]
mov ecx, 0xbf10
mov edx, dword [ebp - 0xdc]
and ax, cx
or ax, 0x10
add esp, 0xc
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd0]
inc eax
jmp 0x4fee36
mov edx, dword [ebp - 0xdc]
and eax, 0xff10
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xd0]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005075d0
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea eax, [ecx + eax*8]
jne 0x4ff49d
push eax
call fcn.00507460
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea eax, [ecx + eax*8]
jne 0x4ff49d
jmp 0x4ffff6
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
movzx eax, word [esi + 0x1c]
mov word [ebp - 0xbe], ax
movzx eax, word [ebx + 0x1c]
mov word [ebp - 0xbc], ax
movzx edx, word [ebx + 0x1c]
movzx ecx, word [esi + 0x1c]
mov al, dl
or al, cl
test al, 1
mov eax, dword [ebp - 0xd0]
mov al, byte [eax + edi*4 + 3]
je 0x50025b
test al, al
jns 0x5001f0
and edx, ecx
not edx
and edx, 1
jmp 0x5002da
mov esi, dword [ebp - 0xd0]
test al, 0x10
je 0x50023c
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, 0xbf01
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [ebp - 0xe4], edi
or ax, 1
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
test al, 8
je 0x4ffa60
mov eax, dword [esi + edi*4 + 8]
mov ebx, dword [ebp - 0xd8]
dec eax
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
and al, 0x67
mov byte [ebp - 0xc0], al
je 0x50029c
push dword [ebp - 0xf4]
push dword [ebp - 0xc0]
push esi
call fcn.004c34e0
push dword [ebp - 0xf4]
push dword [ebp - 0xc0]
push ebx
call fcn.004c34e0
mov eax, dword [ebp - 0xd8]
add esp, 0x18
cmp byte [eax + 0x1e], 0
jne 0x505d5e
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x5002b5
push esi
call fcn.00507100
add esp, 4
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x5002c4
push ebx
call fcn.00507100
add esp, 4
mov eax, dword [ebp - 0xd0]
push dword [eax + edi*4 + 0x10]
push esi
push ebx
call fcn.004f0b00
add esp, 0xc
mov edx, eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc4], edx
movzx ecx, byte [eax + edi*4]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x5002f2
jmp dword [ecx*4 + 0x506074]
xor eax, eax
test edx, edx
sete al
jmp 0x500328
xor eax, eax
test edx, edx
setne al
jmp 0x500328
mov eax, edx
jmp 0x500325
xor eax, eax
test edx, edx
setle al
jmp 0x500328
xor eax, eax
test edx, edx
setg al
jmp 0x500328
mov eax, edx
not eax
shr eax, 0x1f
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xc4], eax
test byte [ecx + edi*4 + 3], 0x10
je 0x5003a2
mov eax, dword [ecx + edi*4 + 8]
mov edx, 0xbf04
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [ebp - 0xe4], ecx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov al, byte [ebp - 0xbe]
mov edx, dword [ebp - 0xdc]
mov byte [esi + 0x1c], al
mov al, byte [ebp - 0xbc]
mov esi, dword [ebp - 0xd0]
mov byte [ebx + 0x1c], al
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xd8]
inc eax
jmp 0x4fee36
test eax, eax
je 0x5003b1
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov al, byte [ebp - 0xbe]
mov edx, dword [ebp - 0xdc]
mov byte [esi + 0x1c], al
mov al, byte [ebp - 0xbc]
mov esi, dword [ebp - 0xd0]
mov byte [ebx + 0x1c], al
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xd8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0xc]
xor edx, edx
mov dword [ebp - 0xc4], eax
mov ebx, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xb4], ebx
mov ecx, dword [esi + edi*4 + 4]
mov dword [ebp - 0xbc], ecx
mov edi, dword [esi + edi*4 + 8]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xc0], edx
test eax, eax
jle 0x5004eb
nop dword [eax + eax]
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x50044f
mov esi, dword [eax + edx*4]
jmp 0x500451
mov esi, edx
mov dword [ebp - 0xb0], esi
mov ecx, dword [ebx + edx*4 + 0xc]
mov dword [ebp - 0xac], ecx
mov eax, dword [ebx + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [ebp - 0xa8], eax
lea eax, [esi + edi]
mov edi, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
mov eax, dword [ebp - 0xec]
add eax, esi
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
push eax
call fcn.004f0b00
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x11c], edi
test edi, edi
jne 0x5004d4
mov edx, dword [ebp - 0xc0]
inc edx
mov dword [ebp - 0xc0], edx
cmp edx, dword [ebp - 0xc4]
jge 0x5004e5
mov ecx, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xb4]
mov edi, dword [ebp - 0xb8]
mov dword [ebp - 0xec], ecx
jmp 0x500440
cmp dword [ebp - 0xa8], 0
je 0x5004e5
neg edi
mov dword [ebp - 0x11c], edi
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
xor eax, eax
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0x11c]
test eax, eax
jns 0x500524
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
jne 0x500535
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0xc]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea eax, [edx + eax*8]
je 0x500562
mov ecx, 2
jmp 0x50057e
push eax
call fcn.005067b0
add esp, 4
or eax, edx
mov edx, dword [ebp - 0xe0]
je 0x50057c
mov ecx, 1
jmp 0x50057e
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea eax, [edx + eax*8]
je 0x50059c
mov eax, 2
jmp 0x5005be
push eax
call fcn.005067b0
mov ecx, dword [ebp - 0xc4]
add esp, 4
or eax, edx
mov edx, dword [ebp - 0xe0]
je 0x5005bc
mov eax, 1
jmp 0x5005be
xor eax, eax
mov dword [ebp - 0xc0], eax
lea eax, [eax + ecx*2]
cmp byte [esi + edi*4], 0x45
jne 0x5005d7
movzx ecx, byte [ecx + eax + 0x5d0004]
jmp 0x5005df
movzx ecx, byte [ecx + eax + 0x5d0010]
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xe4], edi
cmp ecx, 2
jne 0x500623
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
mov edx, dword [ebp - 0xdc]
and ax, cx
or ax, 1
movzx eax, ax
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, ecx
mov ecx, 0xbf04
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 0x14], edx
mov edx, dword [ebp - 0xdc]
or ax, 4
movzx eax, ax
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xe4], edi
je 0x500697
push edi
call fcn.00507870
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
push ecx
call fcn.005067b0
add esp, 4
or eax, edx
jne 0x5006c8
xor ecx, ecx
mov eax, 1
push ecx
push eax
push edi
call fcn.00507820
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov ecx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xf0]
push ecx
push eax
push edi
call fcn.00507820
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x1c], 1
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xe4], edi
je 0x50073e
push edi
call fcn.00507870
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
push ecx
call fcn.005067b0
not edx
not eax
push edx
push eax
push edi
call fcn.00507820
mov eax, dword [ebp - 0xc8]
add esp, 0x10
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
lea eax, [ecx + eax*8]
je 0x500782
mov eax, dword [esi + edi*4 + 0xc]
jmp 0x5007bf
push eax
call fcn.00508230
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
add esp, 4
ucomisd xmm0, qword [0x603308]
lahf
test ah, 0x44
jnp 0x5007ae
mov eax, 1
jmp 0x5007b0
xor eax, eax
mov dword [ebp - 0xc4], eax
cmp byte [esi + edi*4], 0x1b
jne 0x5007c5
xor eax, 1
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
je 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
jne 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xe0]
mov edx, 0xbf01
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + edi*4 + 8]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], 0
movups xmmword [ebp - 0x84], xmm0
movups xmmword [ebp - 0x74], xmm0
movq qword [ebp - 0x64], xmm0
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x88], ecx
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 1
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xa8], 0
mov ecx, dword [eax + 0x44]
mov eax, dword [ebp - 0xb4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0xac], edx
mov eax, dword [edx]
mov dword [ebp - 0xa4], eax
test eax, eax
je 0x50096c
push edx
call fcn.004fe9c0
add esp, 4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0x1c], al
je 0x5008fb
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov edx, dword [ebp - 0xd4]
mov eax, dword [ecx + 0x4c]
cmp eax, dword [edx + 0x54]
jne 0x500920
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0xc4], edx
mov eax, dword [ecx + 0x5c]
mov dword [ebp - 0xa8], eax
jmp 0x5009bb
cmp byte [ecx + 0x1f], 0
je 0x50094f
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0xa4]
call fcn.004e2120
mov edx, dword [ebp - 0xbc]
add esp, 8
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc4], edx
jmp 0x5009b5
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0xa4]
call fcn.004e1470
add esp, 8
mov dword [ebp - 0xcc], eax
jmp 0x5009af
mov eax, dword [edx + 0x10]
test eax, eax
jle 0x500e2a
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x44], ecx
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xc4], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0xa8], eax
test byte [esi + edi*4 + 3], 0x20
je 0x5009a3
xor eax, eax
jmp 0x5009ac
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x54]
mov dword [edx + 0x4c], eax
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xac]
test edx, edx
je case.0x4feecc.17
cmp edx, dword [ebx + 0x48]
ja 0x505cf9
mov esi, dword [ecx + 0x14]
mov ebx, dword [ebp - 0xd4]
mov dword [ebp - 0x98], esi
mov edx, dword [ecx + 0x54]
mov dword [ebp - 0xa0], edx
mov eax, dword [ecx + 0x4c]
cmp eax, dword [ebx + 0x54]
mov ebx, dword [ebp - 0xd8]
jne 0x500a00
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0x9c], eax
jmp 0x500c55
lea eax, [edx + esi*4]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x9c], eax
mov dword [ecx + 0x58], eax
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x50], eax
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0x54]
mov eax, dword [ebp - 0xac]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebp - 0xa8]
test ecx, ecx
je 0x500a46
mov dword [ebp - 0x8c], ecx
jmp 0x500a9c
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x1f], 0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xa4]
je 0x500a63
call fcn.004e2100
jmp 0x500a68
call fcn.004e1450
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x8c], ecx
ja 0x500a8f
mov dword [ebp - 0xa8], ecx
mov dword [eax + 0x5c], ecx
jmp 0x500a96
mov dword [eax + 0x5c], 0
mov ecx, dword [ebp - 0x8c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x500aac
movzx edx, al
mov al, 1
mov dword [ebp - 0x54], edx
jmp 0x500ac2
lea eax, [ebp - 0x54]
push eax
push ecx
call fcn.004edc80
mov edx, dword [ebp - 0x54]
add esp, 8
mov ecx, dword [ebp - 0x8c]
movzx eax, al
mov dword [ebp - 0x4c], eax
cmp edx, 0x18003
jbe 0x500ae8
push 0xfcb4
call fcn.004e43e0
add esp, 4
mov dword [ebp - 0xcc], eax
jmp 0x5058f8
mov ebx, dword [ebp - 0x98]
lea esi, [ebx*4 + 3]
add esi, ebx
cmp esi, edx
cmovg esi, edx
cmp dword [ebp - 0xa8], 0
mov dword [ebp - 0x94], esi
jne 0x500b67
cmp dword [ebp - 0x48], esi
jge 0x500b67
xor eax, eax
mov word [ebp - 0x68], ax
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xac]
movzx eax, byte [eax + 0x1f]
push eax
push esi
push 0
push dword [ebp - 0xa4]
call fcn.005071f0
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x500e1f
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x8c], ecx
lea eax, [ecx + esi]
mov esi, dword [ebp - 0x4c]
add esi, ecx
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x90], ecx
test ebx, ebx
jle 0x500c00
cmp esi, eax
mov eax, dword [ebp - 0x9c]
jae 0x500cc4
mov dword [eax + ecx*4], edx
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x90]
mov al, byte [edx]
cmp al, 0x80
jae 0x500bb1
movzx edx, al
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x500bc4
mov eax, dword [ebp - 0xa0]
lea eax, [eax + ecx*4]
push eax
push edx
call fcn.004edc80
add esp, 8
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x90]
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x5c], esi
push dword [eax + ecx*4]
call fcn.00508a50
mov edx, dword [ebp - 0x54]
add esp, 4
add edx, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], edx
cmp edx, eax
jae 0x500cd7
mov eax, dword [ebp - 0x58]
inc eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x84]
push eax
call fcn.005076e0
mov edx, dword [ebp - 0x5c]
add esp, 4
mov esi, dword [ebp - 0x58]
mov eax, 1
mov word [ebp - 0x68], ax
cmp edx, esi
ja 0x500e0c
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xc4]
cmp eax, ecx
ja 0x500e0c
cmp edx, esi
jne 0x500c43
cmp eax, ecx
jne 0x500e0c
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xb0]
cmp dword [eax + ecx*4], 0
je 0x500d93
cmp dword [ebp - 0xa8], 0
je 0x500cf2
push dword [ebp - 0x88]
call fcn.00507720
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xa0]
push dword [ebp - 0x88]
push dword [eax + ecx*4]
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + ecx*4]
add eax, dword [ebp - 0xa8]
push eax
call fcn.005086b0
mov eax, dword [ebp - 0x88]
add esp, 0x10
mov cl, byte [ebp - 0xf4]
mov esi, dword [ebp - 0xd0]
mov byte [eax + 0x1f], cl
jmp 0x500db7
mov dword [eax + ecx*4], 0
mov edx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x90]
inc ecx
mov dword [ebp - 0x90], ecx
cmp ecx, dword [ebp - 0x98]
jge 0x500c00
mov eax, dword [ebp - 0x58]
jmp 0x500b81
push dword [edx + ecx*4]
call fcn.00508a50
push dword [ebp - 0x88]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x84]
push eax
call fcn.00507500
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 0xac]
movzx eax, byte [eax + 0x1f]
push eax
mov eax, dword [ebp - 0xb0]
push dword [ebp - 0x94]
push dword [ecx + eax*4]
push dword [ebp - 0xa4]
call fcn.005071f0
add esp, 0x20
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5058f8
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xb0]
push dword [ebp - 0x88]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x8c], edx
push dword [ecx + eax*4]
push edx
call fcn.005086b0
mov eax, dword [ebp - 0x88]
add esp, 0xc
mov cl, byte [ebp - 0xf4]
mov esi, dword [ebp - 0xd0]
mov byte [eax + 0x1f], cl
jmp 0x500db7
mov esi, dword [ebp - 0xd0]
cmp byte [esi + edi*4 + 1], 0xf8
jne 0x500db7
push 0x800
push dword [esi + edi*4 + 0x10]
push dword [ebp - 0x88]
call fcn.00507b80
add esp, 0xc
cmp dword [ebp - 0x60], 0
je 0x500df3
mov eax, dword [ebp - 0x88]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [ebp - 0x88]
or word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x80]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x60]
mov dword [eax + 0x24], ecx
push dword [ebp - 0x88]
call fcn.00507490
add esp, 4
mov dword [ebp - 0xcc], eax
jmp 0x5058fe
push 0xfcfe
call fcn.004e43e0
add esp, 4
mov dword [ebp - 0xcc], eax
mov ebx, dword [ebp - 0xd8]
jmp 0x5058f2
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xc4], 0
jmp 0x5058fe
mov ecx, dword [esi + edi*4 + 0x10]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [ecx]
mov byte [ebp - 0xc0], al
test al, al
je 0x500eb6
mov ebx, 0x4000
nop word [eax + eax]
inc ecx
mov dword [ebp - 0xc4], ecx
test word [esi + 0x1c], bx
je 0x500e86
push esi
call fcn.00507100
add esp, 4
push dword [ebp - 0xf4]
push dword [ebp - 0xc0]
push esi
call fcn.004c34e0
mov ecx, dword [ebp - 0xc4]
add esp, 0xc
add esi, 0x28
mov al, byte [ecx]
mov byte [ebp - 0xc0], al
test al, al
jne 0x500e70
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xc8]
inc ecx
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xc4], ecx
jmp 0x4fee36
xor edx, edx
xor ebx, ebx
mov dword [ebp - 0xb4], edx
xorps xmm0, xmm0
movlpd qword [ebp - 0xbc], xmm0
mov dword [ebp - 0xa4], ebx
mov eax, dword [esi + edi*4 + 4]
mov dword [ebp - 0x90], eax
mov ecx, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0x8c], ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe0]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x98], esi
mov eax, dword [eax + edi*4 + 8]
mov dword [ebp - 0x90], eax
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x94], ecx
movzx eax, byte [eax + 0x66]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0xc0], esi
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0xe4], eax
cmp esi, ecx
ja 0x501078
mov dword [ebp - 0xc0], esi
nop dword [eax + eax]
mov edi, dword [ebp - 0xe8]
test edi, edi
je 0x500fcf
push dword [ebp - 0xf4]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [ebp - 0x98]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx eax, byte [eax + edi]
push eax
push esi
call fcn.004c34e0
mov ecx, dword [ebp - 0x8c]
add esp, 0xc
mov ebx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xc0]
mov dword [ebp - 0xe8], ecx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x501001
cmp dword [esi + 0x18], 0
jle 0x501001
push esi
call fcn.00507100
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov ebx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xc0]
mov dword [ebp - 0xe8], ecx
push dword [ebp - 0x88]
push esi
call fcn.00508950
mov ecx, eax
push ecx
mov dword [ebp - 0x9c], ecx
call fcn.00508a50
mov edi, eax
cdq
add dword [ebp - 0xbc], eax
push 0
adc dword [ebp - 0xb8], edx
push ecx
mov dword [ebp - 0x80], edi
call fcn.004fe200
mov edx, dword [ebp - 0xb4]
add esp, 0x14
add edx, eax
mov eax, 0x4000
mov dword [ebp - 0xb4], edx
test word [esi + 0x1c], ax
je 0x501056
add ebx, dword [esi + 0x10]
jmp 0x50105d
xor eax, eax
test edi, edi
cmovne ebx, eax
add esi, 0x28
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0x94]
jbe 0x500f80
mov eax, edx
cdq
push edx
push eax
call fcn.004fe200
mov edi, dword [ebp - 0xb4]
mov esi, eax
add edi, esi
mov dword [ebp - 0xa0], esi
mov eax, edi
mov dword [ebp - 0xb4], edi
cdq
push edx
push eax
call fcn.004fe200
add esp, 0x10
cmp esi, eax
jge 0x5010b0
inc edi
mov dword [ebp - 0xb4], edi
mov eax, ebx
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
mov ebx, eax
mov edi, edx
mov eax, dword [ebp - 0xd8]
sub ebx, ecx
sbb edi, esi
add ebx, dword [ebp - 0xbc]
mov dword [ebp - 0xac], ebx
adc edi, dword [ebp - 0xb8]
mov dword [ebp - 0xa8], edi
mov eax, dword [eax + 0x48]
cdq
cmp edi, edx
jg 0x505cef
jl 0x5010f6
cmp ebx, eax
ja 0x505cef
push 0
push ebx
mov ebx, dword [ebp - 0xe4]
push ebx
call fcn.00507340
add esp, 0xc
test eax, eax
jne 0x505d62
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xc4], ecx
cmp eax, 0x80
jae 0x50112f
mov byte [ecx], al
mov eax, 1
jmp 0x501139
push eax
push ecx
call fcn.004f5f50
add esp, 8
mov esi, dword [ebp - 0x98]
movzx edi, al
mov dword [ebp - 0x84], edi
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0x94]
ja 0x5011d0
mov ebx, edi
nop dword [eax + eax]
push dword [ebp - 0x88]
push esi
call fcn.00508950
add esp, 8
mov dword [ebp - 0x9c], eax
cmp eax, 0x80
jae 0x50118e
mov cl, al
mov eax, dword [ebp - 0xc4]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x5011a0
push eax
mov eax, dword [ebp - 0xc4]
add eax, ebx
push eax
call fcn.004f5f50
add esp, 8
mov esi, dword [ebp - 0xc0]
mov edi, dword [ebp - 0x84]
add esi, 0x28
movzx eax, al
add edi, eax
mov dword [ebp - 0xc0], esi
mov ebx, edi
mov dword [ebp - 0x84], edi
cmp esi, dword [ebp - 0x94]
jbe 0x501160
mov esi, dword [ebp - 0x98]
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0x94]
ja 0x5012e8
mov eax, dword [ebp - 0xac]
push dword [ebp - 0x88]
sub eax, edi
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xc4]
add eax, edi
push esi
mov dword [ebp - 0xec], eax
call fcn.00508950
mov ebx, eax
add esp, 8
lea ecx, [ebx - 1]
cmp ecx, 6
ja 0x50126f
cmp ebx, 7
jne 0x50125d
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ebx + 0x5cfff8]
mov ebx, ecx
test ecx, ecx
je 0x5012cb
mov edi, dword [ebp - 0xec]
nop dword [eax]
dec ecx
mov byte [ecx + edi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x501240
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0xc0]
jmp 0x5012cb
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
cmp ebx, 0xc
jb 0x501222
lea ecx, [ebx - 0xc]
shr ecx, 1
jmp 0x501229
cmp ebx, 0xc
jb 0x5012c9
mov ebx, dword [esi + 0x18]
mov edi, dword [ebp - 0xec]
push ebx
push dword [esi + 4]
push edi
call fcn.005868f0
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x5012bb
add ebx, dword [esi + 0x10]
cmp ebx, dword [ebp - 0x104]
mov ecx, dword [esi + 0x18]
cmova ebx, dword [ebp - 0x104]
mov eax, ebx
sub eax, ecx
push eax
lea eax, [ecx + edi]
push 0
push eax
call fcn.00586790
add esp, 0xc
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0xc0]
jmp 0x5012cb
xor ebx, ebx
add esi, 0x28
add edi, ebx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0xc0], esi
cmp esi, dword [ebp - 0x94]
jbe 0x5011e2
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xac]
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x50131d
mov dword [edi + 0x10], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xd8]
inc eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
mov byte [edi + 0x1f], 1
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x501373
lea ecx, [ebp - 0xc4]
push ecx
push eax
call fcn.004e1120
add esp, 8
mov dword [ebp - 0xcc], eax
jmp 0x50137e
xorps xmm0, xmm0
movlpd qword [ebp - 0xc4], xmm0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc0]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov ebx, dword [esi + edi*4 + 4]
mov dword [ebp - 0xc4], ebx
mov eax, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xc0], eax
test ebx, ebx
jne 0x50147e
mov ebx, dword [ebp - 0xd8]
cmp dword [ebx + 0x90], 0
jg 0x505a21
push eax
call fcn.004faa30
mov dword [ebp - 0xbc], eax
add eax, 0x19
push eax
push ebx
call fcn.004e5490
add esp, 0xc
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x4ff49d
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xbc]
inc eax
push eax
mov eax, dword [ebp - 0xb8]
push dword [ebp - 0xc0]
push dword [eax]
call fcn.005868f0
add esp, 0xc
cmp byte [ebx + 0x1c], 0
je 0x501433
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1e8], 1
jmp 0x501439
inc dword [ebx + 0x1e0]
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x1dc]
mov edx, dword [ebp - 0xdc]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x1dc], eax
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x1f0]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x1f4]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov ecx, dword [ebp - 0xd8]
xor edi, edi
mov dword [ebp - 0xac], edi
mov esi, dword [ecx + 0x1dc]
mov dword [ebp - 0xb4], esi
test esi, esi
je 0x505a70
push eax
push dword [esi]
call fcn.004fa9e0
add esp, 8
test eax, eax
je 0x5014d1
inc edi
mov dword [ebp - 0xac], edi
mov eax, dword [esi + 0x10]
mov esi, eax
mov dword [ebp - 0xb4], esi
test eax, eax
je 0x505a70
mov eax, dword [ebp - 0xec]
jmp 0x5014a0
mov ecx, dword [ebp - 0xd8]
test esi, esi
je 0x505a70
cmp dword [ecx + 0x90], 0
jg 0x5016c2
cmp ebx, 2
jne 0x5014fe
cmp dword [ecx + 0x8c], 1
jg 0x5016c2
cmp dword [esi + 0x10], 0
jne 0x50156b
cmp byte [ecx + 0x1e8], 0
je 0x50156b
mov dword [ebp - 0xec], 1
cmp ebx, 1
jne 0x501575
push ebx
push dword [ebp - 0xd4]
call fcn.004fe810
mov esi, eax
add esp, 8
test esi, esi
jne 0x505dee
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd4]
push esi
mov byte [edi + 0x1c], bl
call fcn.005064e0
add esp, 4
cmp eax, 5
je 0x505a50
mov byte [edi + 0x1e8], 0
mov ecx, dword [esi + 0x5c]
mov dword [ebp - 0xcc], ecx
jmp 0x501606
mov dword [ebp - 0xec], 0
mov eax, dword [ecx + 0x1e0]
xor ecx, ecx
sub eax, edi
mov dword [ebp - 0xa8], ecx
mov edi, dword [ebp - 0xd8]
dec eax
mov dword [ebp - 0xac], eax
cmp dword [edi + 4], ecx
jle 0x5015e0
push eax
push ebx
mov ebx, edi
add ecx, ecx
mov eax, dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.004e3140
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov ecx, dword [ebp - 0xa8]
inc ecx
mov dword [ebp - 0xa8], ecx
cmp ecx, dword [ebx + 4]
mov ebx, dword [ebp - 0xc4]
jge 0x5015da
mov eax, dword [ebp - 0xac]
jmp 0x501597
mov esi, dword [ebp - 0xb4]
cmp ebx, 2
jne 0x501612
test dword [edi + 0xc], 0x200
je 0x501612
push edi
call fcn.004e6d30
push 0xffffffffffffffff
push edi
call fcn.004f6cd0
add esp, 0xc
or dword [edi + 0xc], 0x200
mov ebx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xb4]
cmp dword [edi + 0x1dc], esi
je 0x50165e
nop word [eax + eax]
mov eax, dword [edi + 0x1dc]
mov dword [ebp - 0xb0], eax
mov eax, dword [eax + 0x10]
mov dword [edi + 0x1dc], eax
push dword [ebp - 0xb0]
push edi
call fcn.004e5400
dec dword [edi + 0x1e0]
add esp, 8
mov esi, dword [ebp - 0xb4]
cmp dword [edi + 0x1dc], esi
jne 0x501620
mov ebx, dword [ebp - 0xc4]
cmp ebx, 1
mov ebx, dword [ebp - 0xd8]
jne 0x5016ab
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x1dc], eax
push dword [ebp - 0xb4]
push ebx
call fcn.004e5400
mov eax, dword [ebp - 0xcc]
add esp, 8
cmp dword [ebp - 0xec], 0
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc8]
jne 0x505904
dec dword [ebx + 0x1e0]
jmp 0x505904
mov eax, dword [esi + 8]
mov dword [ebx + 0x1f0], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x1f4], eax
jmp 0x5058f2
cmp ebx, 2
mov ecx, str.release
mov ebx, dword [ebp - 0xd8]
mov eax, str.rollback
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xd4]
push str.cannot__s_savepoint___SQL_statements_in_progress
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, 5
add esp, 0x10
mov dword [ebp - 0xcc], eax
jmp 0x5058f8
mov edx, dword [esi + edi*4 + 4]
mov dword [ebp - 0xc4], edx
mov ecx, dword [esi + edi*4 + 8]
mov dword [ebp - 0xc0], ecx
test edx, edx
je 0x501765
cmp byte [ebx + 0x1c], 0
jne 0x501765
mov dword [ebp - 0xbc], 1
test ecx, ecx
je 0x50174b
cmp dword [ebx + 0x8c], 1
jle 0x501747
mov dword [ebp - 0xcc], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x50179f
test ecx, ecx
jne 0x50176f
cmp dword [ebx + 0x90], 0
jle 0x50176f
mov dword [ebp - 0xcc], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x50179f
mov dword [ebp - 0xbc], 0
movzx eax, byte [ebx + 0x1c]
cmp edx, eax
jne 0x505aab
test edx, edx
jne 0x501786
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x501795
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov dword [ebp - 0xcc], 1
push eax
mov eax, dword [ebp - 0xd4]
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, dword [ebp - 0xcc]
add esp, 0xc
jmp 0x5058fe
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4feecc.17
push dword [esi + edi*4 + 8]
push eax
call fcn.004e07f0
add esp, 8
mov dword [ebp - 0xcc], eax
cmp eax, 5
je 0x505b3f
test eax, eax
jne 0x505b80
cmp dword [esi + edi*4 + 8], eax
je 0x5058fe
mov edx, dword [ebp - 0xd4]
cmp byte [edx + 0x68], al
je 0x5058fe
cmp byte [ebx + 0x1c], al
je 0x501828
cmp dword [ebx + 0x8c], 1
jle 0x5058fe
mov ebx, dword [edx + 0x78]
test ebx, ebx
jne 0x50184a
mov eax, dword [ebp - 0xd8]
mov ebx, dword [eax + 0x1e0]
inc dword [eax + 0x1e4]
add ebx, dword [eax + 0x1e4]
mov dword [edx + 0x78], ebx
mov edi, dword [ebp - 0xc4]
push edi
mov esi, dword [edi + 4]
call fcn.004e1730
push ebx
push dword [esi]
call fcn.004f1f80
add esp, 0xc
mov dword [ebp - 0xcc], eax
cmp byte [edi + 9], 0
je 0x50188e
add dword [edi + 0xc], 0xffffffff
jne 0x50188e
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x50188a
push eax
call dword [0x6490f0]
add esp, 4
mov byte [edi + 0xa], 0
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebx + 0x1f0]
mov dword [edx + 0x98], eax
mov eax, dword [ebx + 0x1f4]
mov dword [edx + 0x9c], eax
jmp 0x5058f2
mov ecx, dword [esi + edi*4 + 4]
lea edx, [ebp - 0xc4]
mov dword [ebp - 0xc0], ecx
add ecx, ecx
mov eax, dword [esi + edi*4 + 0xc]
push edx
mov dword [ebp - 0xbc], eax
push eax
mov eax, dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.004e19c0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov ecx, dword [ebp - 0xe4]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x14], edx
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
shl eax, 4
add eax, dword [ebx + 8]
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00507460
mov eax, dword [ebp - 0xd0]
push dword [esi + 0x10]
push dword [eax + edi*4 + 8]
mov eax, dword [ebp - 0xc4]
push dword [eax + 4]
call fcn.004e3520
mov dword [ebp - 0xcc], eax
add esp, 0x10
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 8]
cmp eax, 1
jne 0x501979
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
or dword [ebx + 0xc], 0x200
jmp 0x50198d
cmp eax, 2
jne 0x50198d
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0xc]
mov al, byte [esi + 0x10]
mov byte [ecx + 0x4c], al
mov esi, dword [ebp - 0xd0]
cmp dword [esi + edi*4 + 4], 1
jne case.0x4feecc.17
push ebx
call fcn.004e6d30
mov eax, dword [ebp - 0xd4]
add esp, 4
mov byte [eax + 0x64], 0
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x5019fd
lea ecx, [ebp - 0xc4]
push ecx
push 1
push eax
call fcn.004e19c0
mov ecx, dword [esi + edi*4 + 4]
add esp, 0xc
mov eax, dword [ebx + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [eax + 4]
jmp 0x501a07
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], eax
cmp ecx, dword [esi + edi*4 + 8]
jne 0x501a1d
cmp eax, dword [esi + edi*4 + 0xc]
je case.0x4feecc.17
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x38]
push ebx
call fcn.004e5400
push str.database_schema_has_changed
push ebx
call fcn.004e5610
mov ecx, dword [ebp - 0xd4]
add esp, 0x10
mov dword [ecx + 0x38], eax
mov edx, dword [esi + edi*4 + 4]
mov ecx, edx
mov eax, dword [ebx + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc4]
je 0x501a66
push edx
push ebx
call fcn.004f6cd0
add esp, 8
mov eax, dword [ebp - 0xd4]
mov byte [eax + 0x64], 1
mov eax, 0x11
mov dword [ebp - 0xcc], eax
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
cmp byte [eax + 0x64], 0
jne 0x505b9a
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov ebx, dword [esi + edi*4 + 8]
mov dword [ebp - 0xbc], ebx
mov esi, dword [esi + edi*4 + 0xc]
mov edx, esi
mov dword [ebp - 0xb8], esi
shl edx, 4
add edx, dword [eax + 8]
mov dword [ebp - 0xa8], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xd0]
cmp byte [eax + edi*4], 0x27
jne 0x501afb
mov dword [ebp - 0xb4], 1
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0xd4]
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x66]
jae 0x501b01
mov byte [edx + 0x66], al
jmp 0x501b01
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xd0]
cmp byte [edx + edi*4 + 3], cl
je 0x501b46
mov ecx, dword [ebp - 0xe0]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00507460
mov eax, dword [esi + 0x10]
add esp, 4
mov dword [ebp - 0xbc], eax
cmp eax, 2
jl 0x505b61
mov esi, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xd0]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x501b7f
mov eax, dword [ebp - 0xd4]
mov ecx, dword [edx + edi*4 + 0x10]
mov dword [ebp - 0xc0], ecx
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xb8]
movzx ecx, word [eax + 6]
inc ecx
jmp 0x501b87
cmp al, 0xf2
jne 0x501b8d
mov ecx, dword [edx + edi*4 + 0x10]
mov dword [ebp - 0xc4], ecx
push 1
push esi
mov esi, dword [ebp - 0xd0]
push ecx
push dword [esi + edi*4 + 4]
push dword [ebp - 0xd4]
call fcn.004c1690
add esp, 0x14
mov dword [ebp - 0xac], eax
test eax, eax
je 0x505d62
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xac]
mov byte [eax + 0x20], 1
mov eax, dword [ebp - 0xac]
push dword [eax]
push dword [ebp - 0xc0]
push dword [ebp - 0xb4]
push dword [ebp - 0xbc]
push dword [ebp - 0xb0]
call fcn.004e1360
mov ecx, dword [ebp - 0xac]
mov ebx, eax
mov eax, dword [ebp - 0xc0]
add esp, 0x14
mov dword [ebp - 0xcc], ebx
mov dword [ecx + 8], eax
cmp ebx, 0x10
jne 0x501c1f
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xcc], 0
mov dword [eax], 0
cmp byte [esi + edi*4 + 1], 0xfa
mov eax, dword [ebp - 0xac]
setne cl
mov byte [eax + 0x1e], cl
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
push 1
push 0xffffffffffffffff
push dword [esi + edi*4 + 8]
push dword [esi + edi*4 + 4]
push dword [ebp - 0xd4]
call fcn.004c1690
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x505d68
mov byte [eax + 0x1c], 1
movzx eax, byte [esi + edi*4 + 3]
push 0x41e
or eax, 9
push eax
mov eax, dword [ebp - 0xc4]
add eax, 4
push eax
push ebx
push 0
call fcn.004e27e0
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x501d81
mov eax, dword [ebp - 0xc4]
push 1
push dword [eax + 4]
call fcn.004e07f0
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x501d81
cmp dword [esi + edi*4 + 0x10], eax
je 0x501d58
push 2
lea eax, [ebp - 0x140]
push eax
mov eax, dword [ebp - 0xc4]
push dword [eax + 4]
call fcn.004e1310
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x501d4c
mov eax, dword [ebp - 0xc4]
push dword [eax]
push dword [esi + edi*4 + 0x10]
push 1
push dword [ebp - 0x140]
push dword [eax + 4]
call fcn.004e1360
mov ecx, dword [esi + edi*4 + 0x10]
add esp, 0x14
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 8]
mov al, byte [edx + 0x4d]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1e], 0
jmp 0x501d81
mov eax, dword [ebp - 0xc4]
push dword [eax]
push 0
push 1
push 1
push dword [eax + 4]
call fcn.004e1360
mov dword [ebp - 0xcc], eax
add esp, 0x14
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1e], 1
cmp byte [esi + edi*4 + 3], 0x10
mov eax, dword [ebp - 0xc4]
setne cl
mov byte [eax + 0x20], cl
mov ecx, dword [ebp - 0xc4]
cmp byte [ecx + 0x1e], 0
sete al
mov byte [ecx + 0x1f], al
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
push 0
push 0xffffffffffffffff
push dword [esi + edi*4 + 0xc]
push dword [esi + edi*4 + 4]
push dword [ebp - 0xd4]
call fcn.004c1690
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x505d68
mov edx, dword [ebp - 0xdc]
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [esi + edi*4 + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1e], 1
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1f], 0
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov edx, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x44]
push dword [eax + ecx*4]
push edx
call fcn.00506490
mov eax, dword [ebp - 0xd4]
add esp, 8
mov ecx, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xdc]
mov eax, dword [eax + 0x44]
mov dword [eax + ecx*4], 0
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xbc], ecx
cmp dword [ecx], 0
je 0x4feee0
movzx eax, byte [esi + edi*4]
mov dword [ebp - 0xc0], eax
mov byte [ecx + 0x1c], 0
mov ecx, dword [ebp - 0xbc]
cmp byte [ecx + 0x1e], 0
je 0x50209e
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
mov dword [ebp - 0xe8], ebx
call fcn.004c3540
push ebx
call fcn.005067b0
mov dword [ebp - 0x94], eax
add esp, 8
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x90], edx
mov byte [eax + 0x19], 0
movzx eax, word [ebx + 0x1c]
test al, 4
jne 0x502026
test al, 8
jne 0x501ee8
mov eax, dword [esi + edi*4 + 8]
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ebx, dword [ebp - 0x94]
mov esi, dword [ebp - 0x90]
test ebx, ebx
jne 0x501fbe
cmp esi, 0x80000000
jne 0x501fbe
mov edx, esi
xor ecx, ecx
call fcn.0056fa00
mov eax, dword [ebp - 0xe8]
movsd xmm1, qword [eax + 8]
comisd xmm0, xmm1
xorps xmm0, xmm0
ja 0x501f2f
comisd xmm1, xmm0
jbe 0x501fbe
mov dword [ebp - 0xc4], 1
comisd xmm0, xmmword [eax + 8]
jbe 0x501f5f
cmp dword [ebp - 0xc0], 0x2e
jl 0x501f9c
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e1930
jmp 0x501f7c
cmp dword [ebp - 0xc0], 0x2d
jg 0x501f9c
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e2170
mov ebx, eax
add esp, 8
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x505b74
cmp dword [ebp - 0xc4], 0
je 0x500e1f
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xc0]
cmp eax, 0x2c
je 0x501ff8
cmp eax, 0x2e
je 0x501ff8
mov edx, esi
mov ecx, ebx
call fcn.0056fa00
mov eax, dword [ebp - 0xe8]
comisd xmm0, xmmword [eax + 8]
jbe 0x502032
add ebx, 0xffffffff
mov dword [ebp - 0x94], ebx
adc esi, 0xffffffff
mov dword [ebp - 0x90], esi
jmp 0x502032
mov edx, esi
mov ecx, ebx
call fcn.0056fa00
mov eax, dword [ebp - 0xe8]
movsd xmm1, qword [eax + 8]
comisd xmm1, xmm0
jbe 0x502032
add ebx, 1
mov dword [ebp - 0x94], ebx
adc esi, 0
mov dword [ebp - 0x90], esi
jmp 0x502032
mov esi, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x94]
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push 0
push esi
push ebx
push 0
push dword [eax]
call fcn.004e2290
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x505b74
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
cmp dword [ebp - 0xc4], eax
jne 0x502138
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x19], 1
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x94]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0x90]
mov dword [ecx + 0x44], eax
jmp 0x502138
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x9c], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb4], eax
mov ax, word [ebp - 0x9c]
mov word [ebp - 0xb0], ax
mov eax, dword [ebp - 0xc0]
and eax, 1
shl eax, 3
mov word [ebp - 0xae], ax
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x4000
mov dword [ebp - 0xa4], eax
test word [eax + 0x1c], dx
je 0x502102
push eax
call fcn.00507100
mov ecx, dword [ebp - 0xbc]
add esp, 4
lea eax, [ebp - 0xc4]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0xb4]
push eax
push dword [ecx]
call fcn.004e2290
add esp, 0x18
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc4]
cmp eax, 0x2e
jl 0x502189
test ecx, ecx
js 0x502173
jne 0x5008df
cmp eax, 0x2f
jne 0x5008df
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e2670
jmp 0x5021c1
test ecx, ecx
jg 0x5021ad
jne 0x502194
cmp eax, 0x2c
je 0x5021ad
mov eax, dword [ebp - 0xbc]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x53], 1
setne cl
mov dword [ebp - 0xc4], ecx
jmp 0x5021dc
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e2e00
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x19], 0
cmp dword [ebp - 0xc4], 0
je 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
cmp dword [eax], 0
je 0x4ff49d
mov ecx, dword [ebp - 0xe0]
mov byte [eax + 0x1c], 0
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005067b0
mov ecx, dword [ebp - 0xc4]
add esp, 4
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xdc]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1d], 1
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov dword [ebp - 0xc4], edx
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + edi*4 + 0xc]
mov esi, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
cmp dword [ecx], edx
je 0x502391
mov edx, dword [ebp - 0xd0]
cmp dword [edx + edi*4 + 0x10], 0
jle 0x5022e0
mov eax, dword [ecx + 8]
mov dword [ebp - 0xb4], eax
mov ax, word [edx + edi*4 + 0x10]
mov word [ebp - 0xb0], ax
mov eax, 0x10
mov word [ebp - 0xae], ax
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xb8], eax
jmp 0x50231c
push 0x97
lea eax, [ebp - 0x9c]
push eax
push dword [esi + 4]
push dword [esi + 0x18]
push dword [ecx + 8]
call fcn.00508450
add esp, 0x14
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x505d68
or word [eax + 6], 0x10
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xc0]
lea edx, [ebp - 0xbc]
push edx
push 0
push 0
push 0
push eax
push dword [ecx]
call fcn.004e2290
mov esi, dword [ebp - 0xd0]
add esp, 0x18
mov dword [ebp - 0xcc], eax
cmp dword [esi + edi*4 + 0x10], 0
jne 0x50235b
push dword [ebp - 0xb8]
call fcn.004fec90
mov eax, dword [ebp - 0xcc]
add esp, 4
test eax, eax
jne 0x5058fe
cmp dword [ebp - 0xbc], eax
sete al
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc0]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x4c], 0
mov edx, dword [ebp - 0xc4]
jmp 0x502397
mov esi, dword [ebp - 0xd0]
cmp byte [esi + edi*4], 0x32
jne 0x5023b6
test edx, edx
je 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
test edx, edx
jne 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [esi + edi*4 + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xb4], eax
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc0], eax
mov dword [eax + 0x48], 0
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xb4]
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax + 8]
mov dword [ebp - 0xec], ecx
xor ecx, ecx
movzx edx, word [eax + 6]
xor eax, eax
mov word [ebp - 0xb8], dx
mov word [ebp - 0xc4], cx
cmp ax, dx
jae 0x502470
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x50252b
inc cx
mov word [ebp - 0xc4], cx
cmp cx, dx
jb 0x502451
cmp dword [ebp - 0xec], 0
je 0x500e1f
mov eax, dword [ebp - 0xc0]
push ebx
mov eax, dword [eax + 8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0x9c], esi
mov word [ebp - 0xa8], ax
mov eax, 0x20
mov word [ebp - 0xa6], ax
call fcn.00507460
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x94], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xc0]
add eax, 0x48
push eax
push 0
push 0
push 0
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xbc]
call fcn.004e2290
add esp, 0x1c
mov dword [ebp - 0xcc], eax
test byte [ebp - 0xa6], 0x20
jne 0x50255d
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 0x94]
jne 0x502514
mov eax, dword [ebp - 0xa0]
cmp eax, dword [ebp - 0x90]
je 0x502557
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp - 0xa0]
mov dword [ebx + 0x14], eax
mov ebx, dword [ebp - 0xd8]
jmp 0x5058f2
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov ebx, dword [esi + edi*4 + 8]
dec ebx
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0xd8]
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 0xc]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
mov edx, dword [eax]
mov dword [ebp - 0xc0], edx
test edx, edx
je 0x50266f
mov eax, dword [ebp - 0xe0]
lea ebx, [ebp - 0xbc]
push ebx
mov dword [ebp - 0xbc], 0
push 0
mov ecx, dword [eax + esi*8 + 0x10]
mov dword [ebp - 0xb4], ecx
mov eax, dword [eax + esi*8 + 0x14]
push eax
push ecx
push 0
push edx
mov dword [ebp - 0xb0], eax
call fcn.004e2290
mov ecx, dword [ebp - 0xc4]
add esp, 0x18
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xcc], eax
mov ebx, dword [ebp - 0xd8]
mov eax, dword [edx + esi*8 + 0x10]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + esi*8 + 0x14]
mov dword [ecx + 0x44], eax
cmp dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xd0]
sete cl
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1c], 0
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1d], 0
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
je 0x50265b
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x48], ecx
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov esi, dword [ebp - 0xd0]
mov edx, dword [esi + edi*4 + 8]
mov dword [eax + 0x48], 0
dec edx
mov eax, dword [ebp - 0xcc]
jmp 0x505904
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xdc]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
xorps xmm0, xmm0
movlpd qword [ebp - 0xc4], xmm0
mov dword [ebp - 0xb8], 0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xbc], esi
mov ecx, dword [esi]
test ecx, ecx
je 0x502a09
cmp byte [esi + 0x1b], 0
jne 0x5028f4
mov edx, dword [ecx + 0x18]
mov eax, edx
mov ecx, dword [ecx + 0x1c]
or eax, ecx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], ecx
jne 0x5027c1
lea eax, [ebp - 0xb8]
push eax
push dword [esi]
call fcn.004e2170
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
cmp dword [ebp - 0xb8], eax
je 0x50275b
lea edx, [eax + 1]
xor ecx, ecx
jmp 0x5027af
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e2120
mov edx, dword [ebp - 0xc4]
add esp, 8
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xcc], eax
cmp edx, 0xffffffff
jne 0x5027a9
cmp ecx, 0x7fffffff
jne 0x5027a9
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x1b], 1
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
jmp 0x5027bb
add edx, 1
adc ecx, 0
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc4], edx
mov esi, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
test eax, eax
je 0x5028aa
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + 0xa8]
test edx, edx
je 0x502814
mov dword [ebp - 0xac], edx
mov eax, dword [edx + 0x3c]
test eax, eax
je 0x5027ff
mov edx, eax
mov dword [ebp - 0xac], edx
mov eax, dword [edx + 0x3c]
test eax, eax
jne 0x5027f0
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*8]
jmp 0x502820
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xb0], eax
call fcn.00507460
mov esi, dword [ebp - 0xb0]
add esp, 4
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp edx, 0xffffffff
jne 0x50284c
cmp ecx, 0x7fffffff
je 0x505bb1
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0x1b], 0
jne 0x505bb1
add edx, 1
adc ecx, 0
cmp dword [ebp - 0xc0], ecx
jg 0x502886
jl 0x502876
mov eax, dword [ebp - 0xc4]
cmp eax, edx
jae 0x50288c
mov eax, edx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xc4], eax
jmp 0x50288c
mov eax, dword [ebp - 0xc4]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xc0]
mov dword [esi + 0x14], eax
mov esi, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
cmp ecx, 0x7fffffff
jg 0x5028c1
jl 0x5028b9
cmp edx, 0xffffffff
jae 0x5028c1
add edx, 1
adc ecx, 0
jmp 0x5028d8
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov ecx, dword [ebp - 0xec]
mov edx, dword [ebp - 0xf0]
push ecx
push edx
push dword [esi]
call fcn.004e3330
mov esi, dword [ebp - 0xbc]
add esp, 0xc
cmp byte [esi + 0x1b], 0
je 0x5029ee
mov eax, dword [ebx + 0x34]
lea edx, [ebp - 0xb8]
mov ecx, dword [ebx + 0x30]
and eax, 0x3fffffff
push edx
add ecx, 1
mov dword [ebp - 0xb4], 0
push 0
adc eax, 0
mov dword [ebp - 0xc4], ecx
push eax
push ecx
mov dword [ebp - 0xc0], eax
push 0
push dword [esi]
call fcn.004e2290
mov edx, eax
add esp, 0x18
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x5029e8
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x5029dc
mov eax, dword [ebp - 0xb4]
inc eax
mov dword [ebp - 0xb4], eax
cmp eax, 0x64
jge 0x5029dc
lea eax, [ebp - 0xc4]
push eax
push 8
call fcn.004b8a50
mov eax, dword [ebp - 0xc4]
add esp, 8
cmp dword [ebp - 0xb4], 5
jge 0x50298f
and eax, 0xffffff
xor ecx, ecx
jmp 0x50299b
mov ecx, dword [ebp - 0xc0]
and ecx, 0x3fffffff
add eax, 1
lea edx, [ebp - 0xb8]
push edx
push 0
adc ecx, 0
mov dword [ebp - 0xc4], eax
push ecx
push eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xc0], ecx
push 0
push dword [eax]
call fcn.004e2290
mov edx, eax
add esp, 0x18
mov dword [ebp - 0xcc], edx
test edx, edx
je 0x502942
jmp 0x5029e8
test edx, edx
jne 0x5029e8
test ecx, ecx
je 0x505bb1
mov esi, dword [ebp - 0xbc]
mov byte [esi + 0x19], 0
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x4c], 0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc0]
mov dword [ecx + 0x14], eax
jmp 0x5058f2
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xc4], esi
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0xb4], ebx
cmp byte [edx + edi*4], 0x37
mov eax, dword [edx + edi*4 + 0xc]
jne 0x502a88
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc0], eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xb8], eax
jmp 0x502a9d
cdq
mov ecx, eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xbc], ecx
mov al, byte [edx + edi*4 + 3]
test al, 1
je 0x502ab2
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x6c]
mov al, byte [edx + edi*4 + 3]
test al, 2
je 0x502ada
mov edx, dword [ebp - 0xd8]
mov dword [edx + 0x30], ecx
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0x34], eax
mov ebx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xd0]
test byte [esi + 0x1c], 1
je 0x502b00
mov dword [esi + 4], 0
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x18], 0
mov ebx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xc4]
test byte [edx + edi*4 + 3], 0x10
je 0x502b12
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0xac], eax
jmp 0x502b1c
mov dword [ebp - 0xac], 0
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x502b32
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xb0], eax
jmp 0x502b3c
mov dword [ebp - 0xb0], 0
push 0
push 0
push dword [ebx]
call fcn.004e3330
push dword [ebp - 0xac]
mov esi, dword [ebp - 0xd0]
movzx eax, byte [esi + edi*4 + 3]
and eax, 8
push eax
push dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
push 0
push dword [eax]
call fcn.004e1a30
mov ebx, eax
add esp, 0x30
mov eax, dword [ebp - 0xb4]
test ebx, ebx
mov dword [ebp - 0xcc], ebx
mov ebx, dword [ebp - 0xd8]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xb4]
mov dword [eax + 0x4c], 0
jne case.0x4feecc.17
cmp dword [ebx + 0xbc], 0
je case.0x4feecc.17
cmp dword [esi + edi*4 + 0x10], 0
je case.0x4feecc.17
mov eax, dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 8]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov eax, 0x12
mov dword [ebp - 0xa8], edx
mov ecx, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xa4], ecx
test byte [esi + edi*4 + 3], 4
mov edi, 0x17
push ecx
cmovne eax, edi
push edx
push eax
mov dword [ebp - 0xa0], eax
push dword [ebx + 0xb8]
mov eax, dword [ebx + 0xbc]
call eax
mov eax, dword [ebp - 0xcc]
add esp, 0x18
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
xorps xmm0, xmm0
movlpd qword [ebp - 0xc4], xmm0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xbc], ecx
cmp dword [ebx + 0xbc], 0
je 0x502c82
cmp dword [esi + edi*4 + 0x10], 0
je 0x502c82
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xc4], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xc0], eax
push ecx
call fcn.004fe9c0
add esp, 4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
push eax
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e3330
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004e14d0
mov dword [ebp - 0xcc], eax
add esp, 0x10
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x502d18
mov edx, dword [ebx + 0xbc]
test edx, edx
je 0x502d18
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x502d12
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebx + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [ebx + 0xb8]
call edx
add esp, 0x18
mov eax, dword [ebp - 0xcc]
test byte [esi + edi*4 + 8], 1
je 0x5058fe
mov edx, dword [ebp - 0xd4]
inc dword [edx + 0x6c]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xdc]
mov eax, dword [eax + 0x6c]
add dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x6c], 0
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esi + edi*4 + 4]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
push ecx
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
call fcn.004fe9c0
add esp, 4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x1f], 0
je 0x502df3
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0xc0]
call fcn.004e2120
mov eax, dword [ebx + 0x48]
add esp, 8
cdq
cmp dword [ebp - 0xb0], edx
jg 0x505cf9
mov ecx, dword [ebp - 0xb4]
jl 0x502deb
cmp ecx, eax
ja 0x505cf9
mov dword [ebp - 0xbc], ecx
jmp 0x502e17
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0xc0]
call fcn.004e1470
mov ecx, dword [ebp - 0xbc]
add esp, 8
cmp ecx, dword [ebx + 0x48]
ja 0x505cf9
mov edi, dword [ebp - 0xe4]
push 0
push ecx
push edi
call fcn.00507340
add esp, 0xc
test eax, eax
jne 0x505d68
mov eax, dword [ebp - 0xbc]
mov ecx, 0xbf10
mov dword [edi + 0x18], eax
mov ax, word [edi + 0x1c]
and ax, cx
mov ecx, dword [edi + 4]
or ax, 0x10
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x1f], 0
je 0x502e85
push 0
push ecx
push dword [ebp - 0xbc]
push 0
push dword [ebp - 0xc0]
call fcn.004c06c0
add esp, 0x14
mov dword [ebp - 0xcc], eax
mov byte [edi + 0x1f], 1
jmp 0x5058fe
push ecx
push dword [ebp - 0xbc]
push 0
push dword [ebp - 0xc0]
call fcn.004e1410
add esp, 0x10
mov dword [ebp - 0xcc], eax
mov byte [edi + 0x1f], 1
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
cmp byte [ecx + 0x1c], 0
je 0x502ee2
mov eax, 1
mov word [edx + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
cmp byte [ecx + 0x1d], 0
je 0x502eff
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0xbc], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 0xb8], eax
jmp 0x502f8e
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x502f41
mov eax, dword [eax]
lea edx, [ebp - 0xbc]
mov dword [ebp - 0xb4], eax
push edx
mov eax, dword [eax]
mov dword [ebp - 0xb0], eax
push dword [ecx + 0x24]
mov eax, dword [eax + 0x30]
call eax
push dword [ebp - 0xb4]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd4]
call fcn.004d20d0
add esp, 0x10
jmp 0x502f8e
push ecx
call fcn.004fe9c0
add esp, 4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov ecx, dword [ebp - 0xc4]
cmp byte [ecx + 0x19], al
je 0x502f77
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0xbc], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0xb8], eax
jmp 0x502f8e
lea eax, [ebp - 0xbc]
push eax
push dword [ecx]
call fcn.004e2120
add esp, 8
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc4]
mov esi, dword [eax]
test esi, esi
je 0x4ff497
push dword [esi + 0x48]
call fcn.004b8980
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
mov dword [esi + 0x48], 0
mov byte [esi + 0x53], 0
mov esi, dword [ebp - 0xd0]
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x503041
mov dword [ebp - 0xbc], 1
jmp 0x50305d
lea ecx, [ebp - 0xbc]
push ecx
push eax
call fcn.004e2170
mov ecx, dword [ebp - 0xc4]
add esp, 8
mov dword [ebp - 0xcc], eax
mov al, byte [ebp - 0xbc]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
mov eax, dword [esi + edi*4 + 8]
test eax, eax
jle case.0x4feecc.17
cmp dword [ebp - 0xbc], 0
je case.0x4feecc.17
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x80]
jmp 0x5030c6
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xbc], 1
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x50313c
lea ecx, [ebp - 0xbc]
push ecx
push eax
call fcn.004e1930
mov dword [ebp - 0xcc], eax
add esp, 8
cmp dword [ebp - 0xbc], 0
mov eax, dword [ebp - 0xc4]
sete cl
mov byte [eax + 0x1a], cl
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x19], 0
mov ecx, dword [ebp - 0xc4]
mov al, byte [ebp - 0xbc]
mov byte [ecx + 0x1c], al
cmp dword [ebp - 0xbc], 0
je case.0x4feecc.17
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
cmp dword [ebx + 0xe0], 0
jne 0x505d18
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4feecc.17
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
jne 0x5031b5
mov edx, dword [ebp - 0xdc]
mov byte [eax + 0x1c], 1
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xbc], 1
cmp byte [esi + edi*4], 0x43
push eax
push ecx
jne 0x5031d4
call fcn.004e2670
jmp 0x5031d9
call fcn.004e2e00
mov ecx, dword [ebp - 0xc4]
add esp, 8
mov dword [ebp - 0xcc], eax
mov al, byte [ebp - 0xbc]
mov byte [ecx + 0x1c], al
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
cmp dword [ebp - 0xbc], 0
jne 0x503227
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov al, byte [esi + edi*4 + 3]
test al, al
je 0x503227
mov edx, dword [ebp - 0xd4]
movzx eax, al
inc dword [edx + eax*4 + 0x78]
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x19], 0
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + edi*4 + 8]
mov ebx, dword [ecx]
mov dword [ebp - 0xc0], ebx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
test ebx, ebx
je 0x500e1f
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x5032a2
push esi
call fcn.00507100
mov ebx, eax
add esp, 4
mov dword [ebp - 0xcc], ebx
test ebx, ebx
jne 0x500e1f
mov ebx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [esi + 0x18]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xbc], edx
mov esi, dword [esi + 4]
mov dword [ebp - 0xb8], esi
test byte [eax + edi*4 + 3], 0x10
je 0x5032c6
mov eax, dword [ecx + 0x48]
jmp 0x5032c8
xor eax, eax
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + edi*4 + 0xc]
mov eax, edx
push 0
push 0
push 0x5f3886
cdq
push edx
push eax
push esi
push ebx
call fcn.004e1a30
mov ebx, dword [ebp - 0xd8]
add esp, 0x24
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
jmp 0x5058f2
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
je case.0x4feecc.17
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xb4], eax
mov ax, word [esi + edi*4 + 0xc]
mov word [ebp - 0xb0], ax
xor eax, eax
mov word [ebp - 0xae], ax
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xbc]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0xb4]
push eax
push ecx
call fcn.004e2290
add esp, 0x18
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5033a6
cmp dword [ebp - 0xbc], eax
jne 0x5033a6
push dword [ebp - 0xc0]
call fcn.004e14d0
add esp, 4
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x4c], 0
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xc0], eax
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov eax, 1
mov word [edx + 0x1c], ax
cmp dword [ebp - 0xc4], 0
je 0x4ff49d
push dword [ebp - 0xc0]
call fcn.004fe9c0
add esp, 4
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov eax, dword [ebp - 0xc0]
cmp byte [eax + 0x1c], 0
jne 0x4ff49d
mov esi, dword [ebp - 0xc4]
cmp byte [esi + 0x53], 1
je 0x50343d
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov ecx, dword [ebp - 0xf0]
jmp 0x503452
push esi
call fcn.004d1370
mov eax, dword [esi + 0x24]
add esp, 4
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0x168]
xorps xmm0, xmm0
push eax
push 1
push ecx
push 0
push esi
movups xmmword [ebp - 0x168], xmm0
movups xmmword [ebp - 0x158], xmm0
movq qword [ebp - 0x148], xmm0
call fcn.005071f0
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x505b80
mov ebx, dword [ebp - 0x164]
mov al, byte [ebx]
cmp al, 0x80
jae 0x5034a5
movzx esi, al
mov dword [ebp - 0x124], esi
jmp 0x5034bb
lea eax, [ebp - 0x124]
push eax
push ebx
call fcn.004edc80
mov esi, dword [ebp - 0x124]
add esp, 8
cmp esi, 3
jb 0x505bbe
mov edi, dword [ebp - 0x150]
cmp esi, edi
jg 0x505bbe
lea eax, [ebx - 1]
add eax, esi
mov cl, byte [eax]
cmp cl, 0x80
jae 0x5034e9
movzx edx, cl
mov dword [ebp - 0x128], edx
jmp 0x5034ff
lea ecx, [ebp - 0x128]
push ecx
push eax
call fcn.004edc80
mov edx, dword [ebp - 0x128]
add esp, 8
lea eax, [edx - 1]
cmp eax, 8
ja 0x505bbe
cmp edx, 7
je 0x505bbe
push edx
call fcn.00508a50
add esp, 4
lea ecx, [eax + esi]
cmp edi, ecx
jb 0x505bbe
lea ecx, [ebp - 0x1b8]
sub edi, eax
push ecx
push edx
add edi, ebx
push edi
call fcn.005086b0
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0x168]
push eax
call fcn.005076e0
mov edx, dword [ebp - 0xe4]
add esp, 0x10
mov eax, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0xb8]
mov dword [edx + 0x14], eax
mov eax, 4
mov word [edx + 0x1c], ax
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
mov dword [ebp - 0xcc], 0
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov ebx, dword [eax + ecx*4]
mov dword [ebp - 0xc4], ebx
cmp dword [ebx], 0
je 0x501c40
mov eax, dword [ebx + 8]
mov dword [ebp - 0xbc], eax
mov ax, word [esi + edi*4 + 0x10]
mov word [ebp - 0xb8], ax
mov eax, 0xc
cmp byte [esi + edi*4 + 3], 0
jne 0x5035ef
mov eax, 4
mov ecx, dword [ebp - 0xe0]
mov word [ebp - 0xb6], ax
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xac], eax
mov esi, dword [ebx]
cmp byte [esi + 0x53], 1
jne 0x5036d9
push esi
call fcn.004d1370
mov ecx, dword [esi + 0x24]
add esp, 4
mov eax, dword [esi + 0x20]
test ecx, ecx
jl 0x5036d9
jg 0x5036d9
test eax, eax
je 0x5036d9
test ecx, ecx
jg 0x5036d9
jl 0x503652
cmp eax, 0x7fffffff
ja 0x5036d9
lea ecx, [ebp - 0x190]
xorps xmm0, xmm0
push ecx
push 1
push eax
push 0
push dword [ebx]
movups xmmword [ebp - 0x190], xmm0
movups xmmword [ebp - 0x180], xmm0
movq qword [ebp - 0x170], xmm0
call fcn.005071f0
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x503706
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0x18c]
push dword [ebp - 0x178]
call fcn.005082a0
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0x190]
push eax
call fcn.00507720
push dword [ebp - 0x16c]
push dword [ebp - 0x190]
call fcn.004e5400
add esp, 0x18
mov dword [ebp - 0xcc], 0
jmp 0x503706
push 0x5d6024
push 0xebc9
push str.database_corruption_at_line__d_of___.10s_
push 0xb
mov dword [ebp - 0xc0], 0
call fcn.004bda20
add esp, 0x10
mov dword [ebp - 0xcc], 0xb
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xc0]
cmp byte [esi + edi*4], 0x51
jne 0x50371c
neg eax
jmp 0x50371d
inc eax
mov ebx, dword [ebp - 0xd8]
mov dword [ebp - 0xc0], eax
test eax, eax
jle case.0x4feecc.17
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
xor ecx, ecx
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebx + 0x88]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x503789
nop
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x50377c
cmp byte [eax + 0x67], 2
jae 0x50377c
cmp dword [eax + 0x58], 0
jl 0x50377c
inc ecx
mov dword [ebp - 0xc0], ecx
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x503760
mov eax, 1
mov word [edx + 0x1c], ax
cmp dword [ebp - 0xc0], eax
jg 0x505c5b
mov ecx, dword [esi + edi*4 + 0xc]
mov dword [ebp - 0xb8], ecx
add ecx, ecx
mov eax, dword [ebx + 8]
mov esi, dword [esi + edi*4 + 4]
mov ebx, dword [eax + ecx*8 + 4]
push ebx
call fcn.004e1730
lea eax, [ebp - 0xc4]
push eax
push esi
push ebx
call fcn.004c6300
add esp, 0x10
mov dword [ebp - 0xcc], eax
cmp byte [ebx + 9], 0
je 0x5037f6
add dword [ebx + 0xc], 0xffffffff
jne 0x5037f6
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x5037f2
push eax
call dword [0x6490f0]
add esp, 4
mov byte [ebx + 0xa], 0
cmp dword [ebp - 0xcc], 0
mov eax, 4
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x500e1f
mov edx, dword [ebp - 0xc4]
test edx, edx
je 0x500e1f
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xb8]
add edi, edi
mov ebx, dword [eax + 8]
mov ecx, dword [ebx + edi*8 + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x503868
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], edx
jne 0x50385e
mov dword [ecx + 0x14], esi
mov eax, dword [eax]
test eax, eax
jne 0x503853
mov ecx, dword [ebx + edi*8 + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x503881
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], edx
jne 0x50387b
mov dword [ecx + 0x14], esi
mov eax, dword [eax]
test eax, eax
jne 0x503870
mov al, byte [ebp - 0xb8]
mov ebx, dword [ebp - 0xd8]
inc al
mov byte [ebp - 0xf9], al
jmp 0x5058f2
mov dword [ebp - 0xc4], 0
lea eax, [ebp - 0xc4]
xor ecx, ecx
cmp dword [esi + edi*4 + 0xc], ecx
cmove eax, ecx
mov ecx, dword [esi + edi*4 + 8]
push eax
mov eax, dword [ebx + 8]
add ecx, ecx
push dword [esi + edi*4 + 4]
push dword [eax + ecx*8 + 4]
call fcn.004e0a60
add esp, 0xc
mov dword [ebp - 0xcc], eax
cmp dword [esi + edi*4 + 0xc], 0
je 0x5058fe
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xc4]
add dword [ecx + 0x6c], eax
mov ecx, dword [esi + edi*4 + 0xc]
test ecx, ecx
jle case.0x4feecc.17
mov edi, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8 + 0x10], eax
mov eax, dword [ebp - 0xcc]
adc dword [edi + ecx*8 + 0x14], edx
jmp 0x5058fe
mov dword [ebp - 0xc4], 0
xor eax, eax
mov ecx, dword [esi + edi*4 + 4]
shl ecx, 4
add ecx, dword [ebx + 8]
mov dword [ebp - 0xbc], ecx
cmp byte [esi + edi*4], 0x62
setne al
inc eax
push eax
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xc4]
push eax
push dword [ecx + 4]
call fcn.004e1310
mov ecx, dword [ebp - 0xe4]
add esp, 0xc
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xc4]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x14], edx
jmp 0x5058fe
mov edx, dword [esi + edi*4 + 4]
mov eax, str.sqlite_master
cmp edx, 1
mov dword [ebp - 0xc4], edx
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0xb8], ebx
cmovne ecx, eax
add edx, edx
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + edi*4 + 4]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xd4]
add eax, 0x38
mov dword [ebp - 0xb0], eax
push dword [esi + edi*4 + 0x10]
mov eax, dword [ebx + 8]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.004f0870
add esp, 0x14
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x505d68
push 0
lea eax, [ebp - 0xb8]
mov byte [ebx + 0x7c], 1
push eax
push fcn.004ee7c0
push dword [ebp - 0xbc]
mov dword [ebp - 0xac], 0
push ebx
call fcn.004b7500
push dword [ebp - 0xbc]
test eax, eax
push ebx
cmove eax, dword [ebp - 0xac]
mov dword [ebp - 0xcc], eax
call fcn.004e5400
mov eax, dword [ebp - 0xcc]
add esp, 0x1c
mov byte [ebx + 0x7c], 0
cmp eax, 7
je 0x505d68
jmp 0x5058fe
push dword [esi + edi*4 + 4]
push ebx
call fcn.004de570
add esp, 8
mov dword [ebp - 0xcc], eax
jmp 0x5058fe
mov edx, dword [esi + edi*4 + 4]
mov ecx, dword [esi + edi*4 + 0x10]
mov eax, ecx
shl edx, 4
add edx, dword [ebx + 8]
test ecx, ecx
je 0x503a7d
cmp byte [ecx], 0
je 0x503a76
nop
inc eax
cmp byte [eax], 0
jne 0x503a70
sub eax, ecx
and eax, 0x3fffffff
push 0
push eax
mov eax, dword [edx + 0xc]
push ecx
add eax, 8
push eax
call fcn.004edf10
push eax
push ebx
call fcn.004e5b60
mov eax, dword [ebp - 0xc8]
add esp, 0x18
or dword [ebx + 0xc], 0x200
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x18
test edx, edx
je 0x503add
cmp byte [edx], 0
je 0x503ad6
nop
inc eax
cmp byte [eax], 0
jne 0x503ad0
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
push edx
push ecx
call fcn.004edf10
mov esi, eax
add esp, 0x10
test esi, esi
je 0x503b2e
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0x10]
cmp ecx, esi
jne 0x503b02
mov eax, dword [esi + 0x20]
mov dword [edx + 0x10], eax
jmp 0x503b1b
test ecx, ecx
je 0x503b1b
mov eax, dword [ecx + 0x20]
cmp eax, esi
je 0x503b15
mov ecx, eax
test ecx, ecx
jne 0x503b06
jmp 0x503b1b
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x20], eax
push dword [esi + 0x1c]
push ebx
call fcn.004e5400
push esi
push ebx
call fcn.004e5400
add esp, 0x10
mov eax, dword [ebp - 0xc8]
or dword [ebx + 0xc], 0x200
inc eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x28
test edx, edx
je 0x503b7d
cmp byte [edx], 0
je 0x503b76
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x503b70
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
push edx
push ecx
call fcn.004edf10
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4ff497
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x18]
jne 0x503bbe
push esi
call fcn.0050c380
add esp, 4
lea ecx, [eax + 0x40]
mov eax, dword [ecx]
cmp eax, esi
je 0x503bb9
nop
lea ecx, [eax + 0x20]
mov eax, dword [ecx]
cmp eax, esi
jne 0x503bb0
mov eax, dword [eax + 0x20]
mov dword [ecx], eax
push dword [esi + 0x1c]
push ebx
call fcn.004e5ca0
push dword [esi]
push ebx
call fcn.004e5400
push dword [esi + 4]
push ebx
call fcn.004e5400
push dword [esi + 0xc]
push ebx
call fcn.004e8e20
push dword [esi + 0x10]
push ebx
call fcn.004ee260
push esi
push ebx
call fcn.004e5400
mov eax, dword [ebp - 0xc8]
add esp, 0x30
or dword [ebx + 0xc], 0x200
inc eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 8]
mov dword [ebp - 0xc4], eax
lea eax, [eax*4 + 4]
push eax
push ebx
call fcn.004e5490
mov edx, eax
add esp, 8
mov dword [ebp - 0xc0], edx
test edx, edx
je 0x505d68
mov ecx, dword [esi + edi*4 + 0xc]
mov eax, dword [ebp - 0xe0]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [ebp - 0xb0], ecx
mov ecx, dword [esi + edi*4 + 4]
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xe0]
lea esi, [ecx + eax*8]
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xc4], eax
jle 0x503cad
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.005067b0
mov edx, dword [ebp - 0xbc]
add esp, 4
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 0xbc]
inc eax
mov dword [ebp - 0xbc], eax
cmp eax, dword [ebp - 0xc4]
jl 0x503c74
mov edx, dword [ebp - 0xc0]
mov dword [edx + eax*4], 0
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xb0]
push dword [eax + 0x10]
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0xc4]
push dword [ebp - 0xc0]
movzx ecx, byte [eax + edi*4 + 3]
mov eax, dword [ebx + 8]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.004e1c40
push dword [ebp - 0xc0]
mov dword [ebp - 0xb4], eax
push ebx
call fcn.004e5400
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xb8]
cdq
push esi
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
call fcn.00507870
add esp, 0x20
cmp dword [ebp - 0xb8], 0
je 0x503d41
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x505d68
push fcn.004b8980
push 1
push 0xffffffffffffffff
push eax
push esi
call fcn.00507990
add esp, 0x14
movzx eax, byte [ebp - 0xf4]
push eax
push esi
call fcn.004fe4a0
mov eax, dword [ebp - 0xc8]
add esp, 8
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x503da1
push esi
call fcn.005078d0
add esp, 4
test byte [esi + 0x1c], 0x20
je 0x505d68
mov eax, dword [ebp - 0xe0]
push dword [eax + edi*8 + 0x14]
push dword [eax + edi*8 + 0x10]
push dword [esi + 0x10]
call fcn.004f7250
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
cmp dword [ebx + 0xe0], 0
jne 0x505d18
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 0x20
lea ebx, [ecx + eax*8]
je 0x503e81
mov esi, dword [ebx + 0x10]
push esi
call fcn.004dc000
mov ecx, dword [esi + 8]
add esp, 4
test ecx, ecx
je 0x503e7b
mov eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x503e38
push esi
call fcn.004f71a0
add esp, 4
mov esi, dword [ebp - 0xd0]
push dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xe0]
push dword [ebp - 0xc4]
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00507820
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov ebx, dword [ebp - 0xd8]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov esi, dword [ebp - 0xd0]
push ebx
call fcn.00507870
mov eax, dword [esi + edi*4 + 8]
add esp, 4
mov ebx, dword [ebp - 0xd8]
dec eax
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [ebp - 0x108], ebx
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xf8], esi
mov ecx, dword [eax + edi*4 + 0x10]
mov dword [ebp - 0xc4], ecx
test byte [ebx + 0x1c], 0x20
mov dword [ebp - 0xe8], ecx
jne 0x503f05
push ebx
call fcn.005078d0
add esp, 4
test byte [ebx + 0x1c], 0x20
je 0x505d62
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xe8], ecx
test ecx, ecx
je 0x5040be
js 0x503f14
and ecx, 0xf
jmp 0x503f19
mov ecx, 0xff
mov eax, dword [ebp - 0x108]
mov ebx, dword [edx + esi*8 + 0x10]
mov esi, dword [edx + esi*8 + 0x14]
mov dword [ebp - 0x10c], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x104], eax
cmp cl, byte [eax + 0x1b]
je 0x50406c
cmp dword [eax + 8], 0
je 0x50405d
push eax
call fcn.004dc000
mov edx, dword [ebp - 0x104]
add esp, 4
mov ebx, 1
mov edx, dword [edx + 8]
mov dword [ebp - 0x100], edx
mov eax, dword [edx + 8]
mov dword [ebp - 0x100], eax
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov esi, dword [ebp - 0x100]
test esi, esi
je 0x504034
mov eax, dword [esi + 8]
mov ecx, edx
mov edx, esi
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xec], edx
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x100]
test ecx, ecx
je 0x504022
cmp ebx, 1
jne 0x503fd9
mov eax, dword [ecx + 8]
mov dword [ebp - 0x100], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x504022
lea eax, [ebx - 1]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004dbfa0
mov edx, dword [ebp - 0x100]
add esp, 8
mov ecx, eax
test edx, edx
je 0x50401c
mov eax, dword [edx + 8]
mov dword [edx + 0xc], ecx
mov dword [ebp - 0x100], eax
lea eax, [ebx - 1]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.004dbfa0
add esp, 8
mov dword [edx + 8], eax
mov ecx, edx
mov edx, dword [ebp - 0xec]
mov dword [esi + 8], ecx
inc ebx
mov esi, dword [ebp - 0x100]
test esi, esi
jne 0x503f97
mov eax, dword [ebp - 0x104]
mov ebx, dword [ebp - 0x114]
mov esi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + 0x14], edx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov byte [eax + 0x1b], cl
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xe8], ecx
mov eax, dword [eax + 0x14]
test eax, eax
je 0x5040a0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, esi
jg 0x504099
jl 0x504082
cmp edx, ebx
jae 0x504087
mov eax, dword [eax + 8]
jmp 0x50409c
cmp ecx, esi
jl 0x5040f7
jg 0x504099
cmp edx, ebx
jbe 0x5040f7
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x504073
mov ecx, dword [ebp - 0xe8]
test ecx, ecx
mov ebx, dword [ebp - 0x108]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0xc0], 0
js 0x5040d9
mov edi, dword [ebp - 0xe0]
push dword [edi + esi*8 + 0x14]
push dword [edi + esi*8 + 0x10]
push dword [ebx + 0x10]
call fcn.004f7250
add esp, 0xc
mov eax, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xd8]
inc eax
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xdc]
mov dword [ebp - 0xc0], 1
mov eax, dword [esi + edi*4 + 8]
jmp 0x4fee36
mov edx, dword [esi + edi*4 + 0x10]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xac], edx
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xbc], esi
cmp byte [eax + edi*4 + 3], 0
je 0x504184
mov eax, dword [ebp - 0xd4]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0xa8], ecx
mov eax, dword [eax + 0xa8]
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x504184
cmp dword [eax + 0x20], ecx
je 0x50417c
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0xb0], eax
test eax, eax
jne 0x504168
jmp 0x504184
test eax, eax
jne 0x5058f2
mov ecx, dword [ebp - 0xd4]
mov eax, dword [ecx + 0xb0]
cmp eax, dword [ebx + 0x70]
jge 0x505c7c
test byte [esi + 0x1c], 0x40
jne 0x504307
mov eax, dword [edx + 0xc]
add eax, dword [edx + 8]
mov dword [ebp - 0xc4], eax
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea eax, [eax + ecx*2]
lea eax, [eax*4 + 0x40]
push eax
push ebx
mov dword [ebp - 0xc0], eax
call fcn.004e5520
add esp, 8
mov dword [ebp - 0xb0], eax
test eax, eax
je 0x505d68
push dword [ebp - 0xbc]
call fcn.005076e0
mov eax, dword [ebp - 0xbc]
mov ecx, 0x40
mov esi, dword [ebp - 0xd4]
add esp, 4
mov edx, dword [ebp - 0xc8]
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb0]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xb0]
mov dword [eax], esi
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xb0]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0xb0]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 8]
mov dword [eax + 0x10], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xb0]
mov cx, word [esi + 0x32]
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 4]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0xb0]
mov dword [eax + 0x20], ecx
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx + 0x24]
lea ecx, [edx + 0x40]
mov dword [ebp - 0xb8], ecx
lea eax, [eax + eax*4]
lea eax, [eax + 8]
lea eax, [edx + eax*8]
mov dword [ebp - 0xb4], eax
cmp ecx, eax
je 0x5042ff
mov esi, 1
nop dword [eax]
mov word [ecx + 0x1c], si
mov eax, dword [ebp - 0xb8]
mov dword [eax], ebx
mov ecx, dword [ebp - 0xb8]
add ecx, 0x28
mov dword [ebp - 0xb8], ecx
cmp ecx, dword [ebp - 0xb4]
jne 0x5042d0
mov esi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xb0]
mov eax, dword [esi + 0xb0]
jmp 0x504312
mov edx, dword [esi + 0x10]
mov esi, ecx
mov dword [ebp - 0xb0], edx
inc eax
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xa8]
mov dword [edx + 0x3c], eax
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + 0x30], eax
mov eax, dword [ebx + 0x34]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0xb0]
mov ecx, dword [esi + 0x6c]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0xb0]
mov dword [esi + 0xa8], eax
mov dword [esi + 0x6c], 0
lea edx, [eax + 0x18]
mov dword [esi + 8], edx
mov ecx, dword [eax + 0x24]
mov dword [esi + 0x18], ecx
inc ecx
mov ax, word [eax + 0x28]
mov word [esi + 0x32], ax
mov dword [ebp - 0xe0], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xd4]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0xdc]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0xac]
mov esi, dword [eax]
mov dword [ecx + 4], esi
mov eax, dword [eax + 4]
mov dword [ecx + 0x1c], eax
xor eax, eax
mov dword [ebp - 0xd0], esi
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
push 0x1000
mov edx, dword [eax + 0xa8]
mov dword [ebp - 0xc4], edx
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
add eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*8]
push eax
push dword [ebp - 0xe4]
mov dword [ebp - 0xc0], eax
call fcn.00507b80
mov eax, dword [ebp - 0xc8]
add esp, 0xc
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
cmp dword [esi + edi*4 + 4], 0
mov eax, dword [esi + edi*4 + 8]
cdq
je 0x504423
add dword [ebx + 0x1f0], eax
mov eax, dword [ebp - 0xc8]
adc dword [ebx + 0x1f4], edx
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [ebp - 0xd4]
add dword [ecx + 0x90], eax
mov eax, ecx
adc dword [eax + 0x94], edx
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
cmp dword [esi + edi*4 + 4], 0
je 0x504473
mov eax, dword [ebx + 0x1f0]
or eax, dword [ebx + 0x1f4]
jne 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [eax + 0x90]
or eax, dword [ecx + 0x94]
jne 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax + 0xa8]
test edx, edx
je 0x5044de
mov dword [ebp - 0xc0], edx
mov eax, dword [edx + 0x3c]
test eax, eax
je 0x5044cf
nop
mov edx, eax
mov dword [ebp - 0xc0], edx
mov eax, dword [edx + 0x3c]
test eax, eax
jne 0x5044c0
mov eax, dword [esi + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*8]
jmp 0x5044ee
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xc4], eax
call fcn.00507460
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00507460
mov eax, dword [ebp - 0xc4]
add esp, 8
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp dword [eax + 0x14], edx
jg 0x4ff1f2
jl 0x504533
cmp dword [eax + 0x10], ecx
jae 0x4ff1f2
mov esi, dword [ebp - 0xd0]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jl 0x5008e9
jg 0x504576
cmp dword [edx + eax*8 + 0x10], 0
jbe 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov edx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 0x14], 0
jg 0x5008e9
jl 0x504576
cmp dword [edx + eax*8 + 0x10], 0
jae 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 4]
mov ebx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
mov eax, dword [esi + edi*4 + 0xc]
cdq
add dword [ebx + ecx*8 + 0x10], eax
mov eax, ebx
adc dword [eax + ecx*8 + 0x14], edx
mov edx, ebx
mov eax, dword [eax + ecx*8 + 0x10]
mov ebx, dword [ebp - 0xd8]
or eax, dword [edx + ecx*8 + 0x14]
jne 0x5008e9
mov eax, dword [esi + edi*4 + 8]
mov edx, dword [ebp - 0xdc]
dec eax
inc eax
jmp 0x4fee36
mov cl, byte [esi + edi*4 + 3]
mov edx, dword [ebp - 0xe0]
movzx eax, cl
mov dword [ebp - 0xc4], eax
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xb8], edx
mov esi, dword [eax + 0xc]
xor eax, eax
mov dword [ebp - 0x74], esi
mov dword [ebp - 0xc0], eax
test cl, cl
je 0x50467a
nop dword [eax + eax]
mov dword [esi + eax*4], edx
push dword [ebp - 0xb8]
call fcn.00507bd0
mov eax, dword [ebp - 0xc0]
add esp, 4
mov edx, dword [ebp - 0xb8]
inc eax
add edx, 0x28
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb8], edx
cmp eax, dword [ebp - 0xc4]
jge 0x50467a
mov esi, dword [ebp - 0x74]
jmp 0x504640
mov esi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x84], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [ebp - 0xb4]
mov word [ebp - 0x90], ax
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
test byte [ecx + 3], 8
je 0x5046fa
mov eax, dword [esi + edi*4 - 4]
mov dword [ebp - 0x7c], eax
push dword [ebp - 0x74]
lea eax, [ebp - 0xb4]
push dword [ebp - 0xc4]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [ebp - 0x80], 0
je 0x504748
lea eax, [ebp - 0xac]
push 1
push eax
call fcn.004fe150
push eax
mov eax, dword [ebp - 0xd4]
push 0x5fcb5c
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, dword [ebp - 0x80]
add esp, 0x18
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xac]
push eax
call fcn.005076e0
mov eax, dword [ebp - 0xcc]
add esp, 4
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc4], eax
push dword [esi + edi*4 + 0x10]
push eax
call fcn.00507170
add esp, 8
mov dword [ebp - 0xcc], eax
test eax, eax
je 0x5047b5
push 1
push dword [ebp - 0xc4]
call fcn.004fe150
push eax
mov eax, dword [ebp - 0xd4]
push 0x5fcb5c
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
add esp, 0x18
movzx eax, byte [ebp - 0xf4]
push eax
push dword [ebp - 0xc4]
call fcn.004fe4a0
push dword [ebp - 0xc4]
call fcn.00507cb0
add esp, 0xc
test eax, eax
jne 0x505cf9
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xc0], 0
push eax
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xb8], 0xffffffff
push eax
mov dword [ebp - 0xbc], 0xffffffff
push dword [esi + edi*4 + 8]
push dword [esi + edi*4 + 4]
push ebx
call fcn.004e36f0
mov edx, eax
add esp, 0x14
mov dword [ebp - 0xcc], edx
cmp edx, 5
jne 0x504847
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc0], 1
mov edx, dword [ebp - 0xe0]
xor eax, eax
mov dword [ebp - 0xc4], eax
mov ecx, dword [esi + edi*4 + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp + eax*4 - 0xc0]
cdq
push edx
push eax
push ecx
call fcn.00507820
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov ecx, dword [ebp - 0xb4]
inc eax
add ecx, 0x28
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xb4], ecx
cmp eax, 3
jl 0x504865
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov edx, dword [esi + edi*4 + 0xc]
mov dword [ebp - 0xbc], edx
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xec], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
mov dword [ebp - 0xc0], esi
movzx ecx, byte [esi + 5]
cmove edx, ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xbc], edx
cmp byte [esi + 0xf], 3
jae 0x504904
mov eax, dword [esi + 0x40]
cmp dword [eax], 0
je 0x50490a
cmp dword [esi + 0x4c], 0
jl 0x50490a
jg 0x504904
cmp dword [esi + 0x48], 0
jbe 0x50490a
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xbc], 5
mov eax, dword [esi + 0x90]
mov dword [ebp - 0xb4], eax
jne 0x50493c
cmp byte [eax], 0
je 0x504931
push esi
call fcn.004f29b0
add esp, 4
test eax, eax
jne 0x50493c
mov dword [ebp - 0xbc], ecx
jmp 0x504b98
mov eax, dword [ebp - 0xbc]
cmp eax, ecx
je 0x504b98
cmp ecx, 5
je 0x504958
cmp eax, 5
jne 0x504b98
cmp byte [ebx + 0x1c], 0
je 0x505ca8
cmp dword [ebx + 0x8c], 1
jg 0x505ca8
cmp ecx, 5
jne 0x504ab7
xor edx, edx
lea eax, [esi + 0xac]
mov ebx, esi
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xec], eax
cmp dword [eax], edx
jne 0x504a43
mov al, byte [esi + 0x10]
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0xcc], edx
cmp al, 1
jb 0x5049ad
cmp al, cl
jne 0x5049df
mov eax, dword [esi + 0x3c]
push 1
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x1c]
call eax
mov edx, eax
add esp, 8
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x5049d3
cmp byte [esi + 0x10], 5
je 0x5049d3
mov byte [esi + 0x10], 1
mov esi, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xb8]
test edx, edx
jne 0x504b8c
mov eax, dword [ebx]
lea ecx, [ebp - 0x12c]
push ecx
push edx
push dword [ebx + 0xb0]
push eax
mov eax, dword [eax + 0x20]
call eax
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504a8c
cmp dword [ebp - 0x12c], eax
je 0x504a31
push ebx
call fcn.004d6ac0
mov edx, eax
add esp, 4
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504a8c
mov ecx, dword [ebp - 0xb8]
mov esi, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xec]
cmp dword [eax], 0
je 0x504a98
push ebx
call fcn.004d6a00
mov edx, eax
add esp, 4
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504a8c
push dword [ebx + 0xa4]
movzx eax, byte [ebx + 0xa]
push dword [ebx + 0x80]
mov esi, dword [ebp - 0xec]
push eax
push dword [esi]
call fcn.005096e0
mov edx, eax
mov dword [esi], 0
add esp, 0x10
mov dword [ebp - 0xcc], edx
mov esi, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xb8]
test edx, edx
jne 0x504b8c
push dword [ebp - 0xbc]
push esi
call fcn.004f22e0
mov esi, dword [ebp - 0xc4]
add esp, 8
jmp 0x504ad5
cmp ecx, 4
jne 0x504acf
push 2
push esi
call fcn.004f22e0
mov esi, dword [ebp - 0xc4]
add esp, 8
jmp 0x504ad5
mov esi, dword [ebp - 0xec]
mov ecx, dword [esi + 4]
xor ebx, ebx
cmp dword [ebp - 0xbc], 5
push 0
sete bl
mov dword [ebp - 0xe8], ecx
inc ebx
cmp dword [ebp - 0xbc], 5
push esi
setne al
mov byte [ecx + 0x18], al
call fcn.004e07f0
mov edx, eax
add esp, 8
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504b72
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xec], eax
cmp byte [eax + 0x12], bl
jne 0x504b2f
cmp byte [eax + 0x13], bl
je 0x504b72
push 2
push esi
call fcn.004e07f0
mov edx, eax
add esp, 8
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504b72
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax + 0xc]
push dword [eax + 0x44]
call fcn.004f29e0
mov edx, eax
add esp, 4
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504b72
mov eax, dword [ebp - 0xec]
mov byte [eax + 0x12], bl
mov byte [eax + 0x13], bl
mov eax, dword [ebp - 0xe8]
mov byte [eax + 0x18], 0
mov esi, dword [ebp - 0xc0]
test edx, edx
je 0x504b92
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xbc], ecx
mov ebx, dword [ebp - 0xd8]
push dword [ebp - 0xbc]
push esi
call fcn.004f22e0
mov esi, dword [ebp - 0xd0]
add esp, 8
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0xa02
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xe4], edi
cmp eax, 6
jne 0x504be1
xor eax, eax
jmp 0x504be8
mov eax, dword [eax*4 + 0x5d0068]
push eax
mov dword [edi + 4], eax
call fcn.004faa30
mov dword [edi + 0x18], eax
movzx eax, byte [ebp - 0xf4]
push eax
push edi
mov byte [edi + 0x1f], 1
call fcn.004fe4a0
mov eax, dword [ebp - 0xcc]
add esp, 0xc
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
add eax, 0x38
push ebx
push eax
call fcn.004f76b0
add esp, 8
mov dword [ebp - 0xcc], eax
jmp 0x5058fe
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov ebx, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xc4], ebx
push ebx
mov esi, dword [ebx + 4]
mov dword [ebp - 0xec], esi
call fcn.004e1730
add esp, 4
cmp byte [esi + 0x15], 0
jne 0x504c6c
mov dword [ebp - 0xcc], 0x65
jmp 0x504ce2
mov esi, dword [esi + 8]
test esi, esi
je 0x504c8c
push dword [esi + 0x54]
call fcn.004b8980
mov dword [esi + 0x54], 0
add esp, 4
mov esi, dword [esi + 8]
test esi, esi
jne 0x504c73
mov esi, dword [ebp - 0xec]
push dword [esi + 0x30]
push 0
push esi
call fcn.004d2150
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x504ce2
mov eax, dword [esi + 0xc]
push dword [eax + 0x44]
call fcn.004f29e0
mov edx, dword [esi + 0x30]
add esp, 4
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x40]
mov eax, edx
shr eax, 0x18
mov byte [ecx + 0x1c], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x1d], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0x1e], al
mov byte [ecx + 0x1f], dl
cmp byte [ebx + 9], 0
je 0x504d06
add dword [ebx + 0xc], 0xffffffff
jne 0x504d06
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x504d02
push eax
call dword [0x6490f0]
add esp, 4
mov byte [ebx + 0xa], 0
cmp dword [ebp - 0xcc], 0x65
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
jne case.0x4feecc.17
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], eax
xor eax, eax
jmp 0x5058fe
cmp dword [esi + edi*4 + 4], 0
jne 0x504d5d
push ebx
call fcn.004e6d30
mov eax, dword [ebp - 0xc8]
add esp, 4
mov edx, dword [ebp - 0xdc]
inc eax
jmp 0x4fee36
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xdc]
mov byte [eax + 0x64], 1
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov dl, byte [esi + edi*4 + 0xc]
test dl, dl
jne 0x504d8e
test dword [ebx + 0xc], 0x80000
jne case.0x4feecc.17
mov eax, dword [ebp - 0xd8]
mov ecx, dword [esi + edi*4 + 4]
mov ebx, dword [esi + edi*4 + 8]
add ecx, ecx
mov dword [ebp - 0xcc], 0
mov eax, dword [eax + 8]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
je 0x504ec9
inc dl
push esi
mov byte [ebp - 0x130], dl
call fcn.004e1730
push dword [ebp - 0x130]
push ebx
push esi
call fcn.004d9e80
mov edx, eax
add esp, 0x10
mov dword [ebp - 0xcc], edx
test edx, edx
jne 0x504ea5
mov eax, dword [esi + 4]
mov dword [ebp - 0xec], eax
mov ecx, dword [eax + 0x4c]
test ecx, ecx
je 0x504e0b
cmp dword [ecx + 4], ebx
jne 0x504e04
cmp dword [ecx], esi
je 0x504e8d
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x504df7
cmp dword [0x6490a0], 0
je 0x504e58
mov eax, dword [0x650020]
test eax, eax
je 0x504e27
push eax
call dword [0x6490e8]
add esp, 4
lea eax, [ebp - 0x120]
push eax
push 0x10
call fcn.004d3d00
mov eax, dword [0x650020]
add esp, 8
test eax, eax
je 0x504e50
push eax
call dword [0x6490f0]
mov ecx, dword [ebp - 0x120]
jmp 0x504e68
mov ecx, dword [ebp - 0x120]
jmp 0x504e6b
push 0x10
call dword [0x6490b8]
mov ecx, eax
mov dword [ebp - 0x120], ecx
add esp, 4
test ecx, ecx
je 0x504f09
mov edx, dword [ebp - 0xec]
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 4], ebx
mov dword [ecx], esi
mov eax, dword [edx + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [edx + 0x4c], ecx
mov al, byte [ebp - 0x130]
cmp al, byte [ecx + 8]
jbe 0x504e9b
mov byte [ecx + 8], al
mov dword [ebp - 0xcc], 0
cmp byte [esi + 9], 0
je 0x504ec9
add dword [esi + 0xc], 0xffffffff
jne 0x504ec9
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x504ec5
push eax
call dword [0x6490f0]
add esp, 4
mov byte [esi + 0xa], 0
cmp byte [ebp - 0xcc], 6
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xd8]
jne case.0x4feecc.17
push dword [esi + edi*4 + 0x10]
mov eax, dword [ebp - 0xd4]
push str.database_table_is_locked:__s
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, dword [ebp - 0xcc]
add esp, 0x10
jmp 0x5058fe
mov dword [ebp - 0xcc], 7
jmp 0x504ea5
mov esi, dword [esi + edi*4 + 0x10]
mov dword [ebp - 0xc4], esi
mov edx, dword [ebx + 0x138]
mov dword [ebp - 0xcc], 0
test edx, edx
jle 0x504f4c
cmp dword [ebx + 0x134], 0
jne 0x504f4c
mov eax, 6
mov dword [ebp - 0xcc], eax
jmp 0x504fdc
test esi, esi
jne 0x504f5d
xor eax, eax
mov dword [ebp - 0xcc], eax
jmp 0x504fdc
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x504fd0
xor ecx, ecx
test edx, edx
jle 0x504f8c
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x134]
nop
cmp dword [eax], esi
je 0x504fbc
inc ecx
add eax, 4
cmp ecx, edx
jl 0x504f80
push edi
call ebx
mov ebx, dword [ebp - 0xd8]
mov ecx, eax
add esp, 4
mov dword [ebp - 0xcc], ecx
test ecx, ecx
jne 0x504fb4
push esi
push ebx
call fcn.004c0da0
add esp, 8
mov dword [ebp - 0xcc], eax
mov esi, dword [ebp - 0xc4]
jmp 0x504fd6
mov ebx, dword [ebp - 0xd8]
xor eax, eax
mov dword [ebp - 0xcc], 0
jmp 0x504fdc
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xcc]
test esi, esi
je 0x5058f8
push dword [esi + 8]
push dword [ebp - 0xd4]
call fcn.004d20d0
add esp, 8
jmp 0x5058f2
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
push dword [eax + ecx*8]
push dword [esi + edi*4 + 0x10]
push ebx
call fcn.004ea2e0
add esp, 0xc
mov dword [ebp - 0xec], eax
mov ecx, dword [eax + 0x3c]
mov edi, dword [ecx]
mov esi, edi
test edi, edi
je 0x50503e
cmp byte [edi], 0
je 0x505036
nop dword [eax]
inc esi
cmp byte [esi], 0
jne 0x505030
sub esi, edi
and esi, 0x3fffffff
add ebx, 0x120
cmp dword [ebx + 0xc], 0
je 0x50505a
push esi
push edi
call fcn.0050bcc0
xor edx, edx
add esp, 8
div dword [ebx]
jmp 0x50505c
xor edx, edx
push edx
push esi
push edi
push ebx
call fcn.004ce000
add esp, 0x10
test eax, eax
je 0x5050f4
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x5050f4
mov edx, dword [ebp - 0xd4]
mov eax, dword [ecx]
add edx, 0x38
mov esi, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xd8]
push edx
push dword [eax + 4]
push ecx
push esi
push ebx
call fcn.0050d6f0
add esp, 0x14
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5058f8
mov ecx, dword [esi + 0x34]
mov eax, ecx
test eax, eax
je 0x5058f2
nop dword [eax]
cmp dword [eax], ebx
je 0x5050d0
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x5050c0
jmp 0x5058f2
test ecx, ecx
je 0x5050df
cmp dword [ecx], ebx
je 0x5050df
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x5050d4
push ecx
push ebx
call fcn.004c0da0
add esp, 8
mov dword [ebp - 0xcc], eax
jmp 0x5058f8
mov ebx, dword [ebp - 0xd8]
push edi
push str.no_such_module:__s
push ebx
call fcn.004f0870
mov ecx, dword [ebp - 0xd4]
add esp, 0xc
mov dword [ecx + 0x38], eax
mov eax, 1
mov dword [ebp - 0xcc], eax
jmp 0x5058f8
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xcc], 0
mov byte [eax + 0x67], 2
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
push dword [eax + ecx*8]
push dword [esi + edi*4 + 0x10]
push ebx
call fcn.004ea2e0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x5051e0
cmp dword [edi + 0x34], 0
je 0x5051cb
push edi
push ebx
call fcn.0050d9a0
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
add esp, 0xc
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x5051b6
mov dword [esi + 8], eax
mov dword [edi + 0x34], eax
add dword [esi + 0xc], 0xffffffff
mov edi, dword [esi]
jne 0x5051b6
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x5051a6
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
push esi
push edi
call fcn.004e5400
mov eax, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xd0]
mov byte [edx + 0x67], 0
jmp 0x5058fe
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xcc]
mov byte [edx + 0x67], 0
jmp 0x5058fe
mov edx, dword [ebp - 0xd4]
xor eax, eax
mov byte [edx + 0x67], al
jmp 0x5058fe
mov dword [ebp - 0xc4], 0
lea edx, [ebp - 0xc0]
mov dword [ebp - 0xc0], 0
mov eax, dword [esi + edi*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xbc], ecx
push ecx
mov eax, dword [ecx]
mov dword [ebp - 0xb8], eax
mov eax, dword [eax + 0x18]
call eax
push dword [ebp - 0xbc]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd4]
call fcn.004d20d0
mov eax, dword [ebp - 0xcc]
add esp, 0x10
test eax, eax
jne 0x5058fe
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
push 0
push 0xffffffffffffffff
push 0
mov dword [eax], ecx
push dword [esi + edi*4 + 4]
push dword [ebp - 0xd4]
call fcn.004c1690
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x5052ac
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xdc]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x28], ecx
mov eax, dword [ebp - 0xc8]
inc eax
jmp 0x4fee36
mov byte [ebx + 0x1e], 1
mov eax, dword [ebp - 0xb8]
push dword [ebp - 0xc0]
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [ebp - 0xcc]
add esp, 4
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], edx
lea esi, [edx + 0x28]
mov dword [ebp - 0xb4], esi
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0x44]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xa8], eax
mov ebx, dword [eax + 0x24]
mov dword [ebp - 0xb0], ebx
mov eax, dword [ebx]
mov dword [ebp - 0xac], eax
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xec], eax
mov eax, dword [edx + 0x38]
mov dword [ebp - 0xc4], eax
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xa4], 0
mov edx, dword [ecx + 0xc]
xor ecx, ecx
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0xa0], ecx
test eax, eax
jle 0x5053d2
nop word [eax + eax]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x9c]
push dword [eax + ecx*4]
call fcn.00507bd0
mov ecx, dword [ebp - 0xa0]
add esp, 4
mov eax, dword [ebp - 0xc4]
inc ecx
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0xa0], ecx
cmp ecx, eax
jge 0x5053b8
mov esi, dword [ebp - 0xb4]
jmp 0x505370
mov ecx, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0xc0]
mov dword [ebp - 0xec], ecx
jmp 0x5053d8
mov esi, dword [ebp - 0x104]
mov ecx, dword [ebp - 0xd4]
push edx
push eax
mov eax, dword [ebp - 0xd0]
mov byte [ecx + 0x67], 1
mov ecx, dword [ebp - 0xec]
push dword [eax + edi*4 + 0x10]
mov eax, dword [ecx + 0x20]
push esi
push ebx
call eax
push dword [ebp - 0xac]
mov ebx, eax
mov eax, dword [ebp - 0xd4]
push eax
mov dword [ebp - 0xcc], ebx
mov byte [eax + 0x67], 0
call fcn.004d20d0
add esp, 0x1c
test ebx, ebx
jne 0x50543c
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0xb0]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [ebp - 0xa4], eax
jmp 0x505442
mov eax, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xd0]
test eax, eax
je 0x505457
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xd8]
mov byte [eax + 0x1c], 0
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [ebp - 0xd4]
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [eax + 0x44]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xbc], eax
cmp byte [esi + 0x1c], 0
je 0x5054c5
push eax
call fcn.00507870
mov eax, dword [ebp - 0xc8]
add esp, 4
mov esi, dword [ebp - 0xd0]
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + 0x24]
push 0x40
push 0
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00586790
push dword [ebp - 0xbc]
lea eax, [ebp - 0xac]
push eax
call fcn.00507500
mov eax, dword [ebp - 0x90]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x90], ax
mov eax, dword [ebp - 0xd0]
push dword [eax + edi*4 + 8]
lea eax, [ebp - 0xb4]
push eax
mov eax, dword [ebp - 0xc0]
push dword [esi + 0x24]
mov eax, dword [eax + 0x2c]
call eax
push dword [ebp - 0xc4]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd4]
call fcn.004d20d0
mov eax, dword [ebp - 0x80]
test eax, eax
mov ecx, dword [ebp - 0xcc]
cmovne ecx, eax
movzx eax, byte [ebp - 0xf4]
push eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0xcc], ecx
push eax
call fcn.004fe4a0
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xbc]
call fcn.00507500
push dword [ebp - 0xbc]
call fcn.00507cb0
add esp, 0x3c
test eax, eax
jne 0x505cf9
jmp 0x5058f2
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xbc], 0
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [edx + 0x44]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xb8], ecx
cmp byte [ecx + 0x1c], 0
jne case.0x4feecc.17
mov eax, dword [ecx + 0x24]
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
mov byte [edx + 0x67], 1
push dword [ecx + 0x24]
mov eax, dword [eax + 0x24]
call eax
push dword [ebp - 0xc4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xd4]
push eax
mov byte [eax + 0x67], 0
call fcn.004d20d0
add esp, 0xc
cmp dword [ebp - 0xcc], 0
jne 0x50562a
mov eax, dword [ebp - 0xb8]
push dword [eax + 0x24]
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [ebp - 0xbc], eax
jmp 0x505630
mov eax, dword [ebp - 0xbc]
test eax, eax
jne case.0x4feecc.17
mov eax, dword [esi + edi*4 + 8]
dec eax
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [eax + 8]
mov dword [ebp - 0xc4], edx
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc0], eax
mov ecx, dword [edx]
push dword [eax + 4]
push edx
mov eax, dword [ecx + 0x4c]
call eax
push dword [ebp - 0xc4]
mov dword [ebp - 0xcc], eax
push dword [ebp - 0xd4]
call fcn.004d20d0
mov eax, dword [ebp - 0xd4]
add esp, 0x10
mov byte [eax + 0x64], 0
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov eax, dword [esi + edi*4 + 0x10]
mov ecx, dword [ebp - 0xd0]
mov esi, dword [eax + 8]
mov dword [ebp - 0xc4], esi
mov ebx, dword [esi]
mov dword [ebp - 0xc0], ebx
mov edx, dword [ecx + edi*4 + 8]
mov dword [ebp - 0xbc], edx
cmp dword [ebx + 0x34], 0
je 0x500e1f
mov eax, dword [ebp - 0xd4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xb8], 0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0xa8], ecx
test edx, edx
jle 0x50576b
push ecx
call fcn.00507bd0
mov ecx, dword [ebp - 0xb8]
add esp, 4
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa8]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xa8]
inc eax
mov edx, dword [ebp - 0xbc]
add ecx, 0x28
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xb8], eax
cmp eax, edx
jl 0x505713
mov eax, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xc4]
jmp 0x505771
mov eax, dword [ebp - 0xec]
lea ecx, [ebp - 0xb4]
push ecx
push eax
mov eax, dword [ebx + 0x34]
push edx
push esi
call eax
push dword [ebp - 0xc4]
mov ebx, eax
push dword [ebp - 0xd4]
mov dword [ebp - 0xcc], ebx
call fcn.004d20d0
mov esi, dword [ebp - 0xd0]
add esp, 0x18
test ebx, ebx
mov ebx, dword [ebp - 0xd8]
jne 0x5057c5
cmp dword [esi + edi*4 + 4], 0
je 0x5057c5
mov eax, dword [ebp - 0xb4]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0xd4]
inc dword [eax + 0x6c]
mov eax, dword [ebp - 0xcc]
jmp 0x5058fe
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov dword [edx + 0x14], 0
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov ecx, dword [esi + edi*4 + 4]
mov eax, dword [ebx + 8]
add ecx, ecx
xor ebx, ebx
mov esi, dword [eax + ecx*8 + 4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + edi*4 + 0xc]
test ecx, ecx
je 0x505830
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x30]
cmp ebx, ecx
cmovb ebx, ecx
push esi
call fcn.004e1730
mov eax, dword [esi + 4]
add esp, 4
mov eax, dword [eax]
test ebx, ebx
jle 0x50584a
mov dword [eax + 0x84], ebx
jmp 0x505850
mov ebx, dword [eax + 0x84]
cmp byte [esi + 9], 0
je 0x505874
add dword [esi + 0xc], 0xffffffff
jne 0x505874
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x505870
push eax
call dword [0x6490f0]
add esp, 4
mov byte [esi + 0xa], 0
mov ecx, dword [ebp - 0xe4]
mov eax, ebx
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
cdq
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc8]
mov dword [ecx + 0x14], edx
inc eax
mov edx, dword [ebp - 0xdc]
jmp 0x4fee36
mov eax, dword [esi + edi*4 + 0x10]
mov edx, dword [ebp - 0xd4]
test eax, eax
jne 0x5058b5
mov eax, dword [edx + 0xa0]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4feecc.17
cmp dword [ebx + 0x98], 0
je case.0x4feecc.17
push eax
push edx
call fcn.00506090
mov ecx, dword [ebx + 0x98]
mov esi, eax
push esi
push dword [ebx + 0x9c]
call ecx
push esi
push ebx
call fcn.004e5400
add esp, 0x18
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc8]
inc edx
mov dword [ebp - 0xc8], edx
test eax, eax
jne 0x505d95
mov eax, edx
mov edx, dword [ebp - 0xdc]
jmp 0x4fee40
mov eax, 9
jmp 0x505d89
mov edx, dword [ebp - 0xd4]
mov dword [edx + 0x5c], ecx
mov al, byte [esi + edi*4 + 8]
mov byte [edx + 0x60], al
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc8]
mov dword [eax + 0x58], edx
mov eax, dword [esi + edi*4 + 0x10]
test eax, eax
je 0x50598b
push eax
push 0x5fcb5c
push ebx
mov ebx, dword [ebp - 0xd4]
lea eax, [ebx + 0x38]
push eax
call fcn.004f99a0
push dword [esi + edi*4 + 0x10]
mov edx, dword [ebp - 0xc8]
push dword [ebx + 0xa0]
push edx
push str.abort_at__d_in___s_:__s
push dword [esi + edi*4 + 4]
call fcn.004bda20
add esp, 0x24
jmp 0x5059ad
test ecx, ecx
je 0x5059ad
mov eax, dword [ebp - 0xd4]
push dword [eax + 0xa0]
push edx
push str.constraint_failed_at__d_in___s_
push dword [esi + edi*4 + 4]
call fcn.004bda20
add esp, 0x10
push dword [ebp - 0xd4]
call fcn.005064e0
add esp, 4
cmp eax, 5
mov eax, dword [ebp - 0xd4]
jne 0x5059d3
mov esi, 5
mov dword [eax + 0x5c], esi
jmp 0x505df4
cmp dword [eax + 0x5c], 0
mov esi, 0x65
mov ecx, 1
cmovne esi, ecx
jmp 0x505df4
cmp byte [ebx + 0x1e], 0
jne 0x505d68
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xc8]
inc eax
mov dword [esi + 0x58], eax
mov esi, 0x64
jmp 0x505dee
lea eax, [ebp - 0xb4]
push eax
call fcn.005076e0
add esp, 4
jmp 0x505d68
mov eax, dword [ebp - 0xd4]
push str.cannot_open_savepoint___SQL_statements_in_progress
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov edx, dword [ebp - 0xc8]
mov eax, 5
add esp, 0xc
mov dword [ebp - 0xcc], eax
inc edx
jmp 0x505d95
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc8]
mov dword [esi + 0x58], edx
mov esi, 5
mov byte [edi + 0x1c], 0
mov dword [eax + 0x5c], esi
jmp 0x505df4
push dword [ebp - 0xec]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0xd8]
add eax, 0x38
push str.no_such_savepoint:__s
push ebx
push eax
call fcn.004f99a0
mov edx, dword [ebp - 0xc8]
mov eax, 1
add esp, 0x10
mov dword [ebp - 0xcc], eax
inc edx
jmp 0x505d95
test ecx, ecx
je 0x505ae1
push ebx
call fcn.004f70c0
add esp, 4
mov byte [ebx + 0x1c], 1
push ebx
call fcn.004e3810
mov eax, dword [ebp - 0xd4]
add esp, 4
mov esi, 0x65
mov ecx, 1
cmp dword [eax + 0x5c], 0
cmovne esi, ecx
jmp 0x505df4
push 1
push dword [ebp - 0xd4]
call fcn.004fe810
mov esi, eax
add esp, 8
test esi, esi
jne 0x505dee
mov al, byte [ebp - 0xc4]
mov esi, dword [ebp - 0xd4]
push esi
mov byte [ebx + 0x1c], al
call fcn.005064e0
add esp, 4
cmp eax, 5
jne 0x505abc
mov edx, dword [ebp - 0xc8]
mov al, 1
sub al, byte [ebp - 0xc4]
mov dword [esi + 0x58], edx
mov esi, 5
mov byte [ebx + 0x1c], al
mov eax, dword [ebp - 0xd4]
mov dword [eax + 0x5c], esi
jmp 0x505df4
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xc8]
mov dword [esi + 0x58], edx
mov esi, 5
mov dword [eax + 0x5c], esi
jmp 0x505df4
push 0x10000
call fcn.004e43e0
add esp, 4
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xd8]
cmp byte [ebx + 0x1e], 0
je 0x505c26
mov eax, 7
mov dword [ebp - 0xcc], eax
jmp 0x505c31
mov edx, dword [ebp - 0xc8]
mov eax, 4
mov dword [ebp - 0xcc], eax
inc edx
jmp 0x505d95
mov eax, 0xd
mov dword [ebp - 0xcc], eax
jmp 0x505b80
lea eax, [ebp - 0x168]
push eax
call fcn.00507720
push dword [ebp - 0x144]
push dword [ebp - 0x168]
call fcn.004e5400
push 0x5d6024
push 0xebaa
push str.database_corruption_at_line__d_of___.10s_
push 0xb
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x148], 0
call fcn.004bda20
add esp, 0x1c
mov dword [ebp - 0xcc], 0xb
mov eax, 0xb
jmp 0x505b7a
cmp eax, 0xc0a
je 0x505d8f
push eax
call fcn.004e6c20
push eax
mov eax, dword [ebp - 0xd4]
push 0x5fcb5c
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, dword [ebp - 0xcc]
add esp, 0x14
jmp 0x505d8f
mov edx, dword [ebp - 0xd4]
mov eax, 6
mov dword [ebp - 0xcc], eax
mov byte [edx + 0x60], 2
mov edx, dword [ebp - 0xc8]
inc edx
jmp 0x505d95
push str.too_many_levels_of_trigger_recursion
lea eax, [ecx + 0x38]
mov dword [ebp - 0xcc], 1
push ebx
push eax
call fcn.004f99a0
add esp, 0xc
mov eax, 1
inc dword [ebp - 0xc8]
jmp 0x505d8f
cmp dword [ebp - 0xbc], 5
mov ecx, str.out_of
mov eax, str.into
mov dword [ebp - 0xcc], 1
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0xd4]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
add esp, 0x10
mov eax, 1
inc dword [ebp - 0xc8]
jmp 0x505d8f
mov ebx, dword [ebp - 0xd8]
jmp 0x505cf9
mov ebx, eax
mov eax, dword [ebp - 0xd4]
push str.string_or_blob_too_big
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
mov eax, 0x12
jmp 0x505d86
mov ecx, dword [ebp - 0xd4]
mov eax, dword [str.interrupted]
test eax, eax
mov dword [ecx + 0x5c], 9
mov ecx, str.unknown_error
cmovne ecx, eax
mov dword [ebp - 0xcc], 9
mov eax, dword [ebp - 0xd4]
push ecx
push 0x5fcb5c
add eax, 0x38
push ebx
push eax
call fcn.004f99a0
add esp, 0x10
mov eax, 9
jmp 0x505d8f
mov ebx, eax
jmp 0x505d68
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd4]
push str.out_of_memory
add eax, 0x38
mov byte [ebx + 0x1e], 1
push ebx
push eax
call fcn.004f99a0
mov eax, 7
add esp, 0xc
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xd4]
push dword [ecx + 0x38]
mov dword [ecx + 0x5c], eax
push dword [ecx + 0xa0]
push edx
push str.statement_aborts_at__d:___s___s
push eax
call fcn.004bda20
push dword [ebp - 0xd4]
call fcn.005064e0
add esp, 0x18
cmp dword [ebp - 0xcc], 0xc0a
jne 0x505dd1
mov byte [ebx + 0x1e], 1
mov al, byte [ebp - 0xf9]
mov esi, 1
test al, al
je 0x505dee
movzx eax, al
dec eax
push eax
push ebx
call fcn.004f6cd0
add esp, 8
mov eax, dword [ebp - 0xd4]
push eax
call fcn.00506900
mov ecx, dword [ebp - 4]
add esp, 4
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.0056e987
mov esp, ebp
pop ebp
ret