Function at 0x50a9b9
Capabilities:
Parse credit card information
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x334
mov eax, dword [0x645624]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0xe4], edi
push edi
mov dword [ebp - 0x190], ecx
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [ebp - 0x160], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd8], edx
mov eax, dword [eax + 0xc]
mov byte [ebp - 0x119], cl
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 0x140], ecx
mov al, byte [eax + 0x4d]
mov byte [ebp - 0x10c], al
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x13c], eax
call fcn.0050a95f
pop ecx
mov ecx, dword [ebp - 0xd8]
push 7
pop eax
cmp dword [edi + 0x50], eax
je 0x50f517
and dword [edi + 0x50], esi
and dword [edi + 0x88], esi
and dword [edi + 0x8c], esi
and dword [edi + 0x14], esi
and dword [ecx + 0x1bc], esi
push 9
pop eax
cmp dword [ecx + 0xe8], esi
jne 0x50f4ec
cmp dword [ecx + 0x11c], esi
je 0x50aab2
mov eax, dword [edi + 0x7c]
test eax, eax
jne 0x50aaa4
mov edx, dword [ecx + 0x124]
jmp 0x50aaac
xor edx, edx
div dword [ecx + 0x124]
mov dword [ebp - 0x144], edx
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0xdc], eax
cmp byte [ecx + 0x40], 0
push 4
pop edx
jne 0x50f517
inc dword [ebp - 0x140]
imul ebx, eax, 0x14
push 2
pop eax
add ebx, dword [ebp - 0x160]
mov dword [ebp - 0xec], ebx
test byte [ebx + 2], al
je 0x50ab14
imul esi, dword [ebx + 8], 0x28
mov eax, 0x2460
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
test word [esi + 0x1c], ax
je 0x50ab10
push esi
call fcn.00510db9
pop ecx
mov ecx, dword [ebp - 0xd8]
push 4
pop edx
mov word [esi + 0x1c], dx
mov dl, byte [ebx]
movzx eax, dl
dec eax
cmp eax, 0x9a
ja case.default.0x50ab25
jmp dword [eax*4 + 0x50f5e5]
mov ecx, dword [ebx + 8]
dec ecx
mov dword [ebp - 0xdc], ecx
jmp 0x50efe0
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
add ecx, dword [ebp - 0xe8]
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xdc]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xd8]
jmp case.default.0x50ab25
imul eax, dword [ebx + 4], 0x28
mov ebx, 0x80
add eax, dword [ebp - 0xe8]
mov edx, dword [eax + 0x10]
mov word [eax + 0x1c], bx
jmp 0x50ac21
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add esi, dword [ebp - 0xe8]
dec eax
cdq
mov dword [ebp - 0xe0], esi
mov dword [esi + 0x10], eax
pop eax
mov dword [esi + 0x14], edx
mov word [esi + 0x1c], ax
mov eax, dword [ebx + 8]
test eax, eax
je case.default.0x50ab25
dec eax
mov dword [ebp - 0xdc], eax
jmp case.default.0x50ab25
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0x160]
add ecx, dword [ebp - 0xe8]
imul eax, dword [ecx + 0x10], 0x14
mov eax, dword [eax + edx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov eax, 0x80
mov word [ecx + 0x1c], ax
jmp 0x50ab63
imul esi, dword [ebx + 4], 0x28
push 4
pop eax
add esi, dword [ebp - 0xe8]
mov ecx, dword [esi + 0x10]
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xdc]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xd4]
inc edx
mov dword [ebp - 0xdc], edx
test eax, eax
jne 0x50f4a4
mov eax, edx
jmp 0x50aabb
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [ebp - 0xe8]
test byte [eax + edx + 0x1c], 1
je case.default.0x50ab25
cmp dword [ebx + 4], 0
jne 0x50f28d
mov ecx, dword [edi + 0xb0]
test ecx, ecx
je 0x50f28d
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0xd8]
dec dword [edi + 0xb8]
mov dword [edi + 0xb0], eax
mov eax, dword [edi + 0x5c]
add dword [esi + 0x54], eax
push ecx
mov dword [esi + 0x50], eax
call fcn.0050fbd0
pop ecx
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x138], ecx
mov ecx, dword [esi + 0x24]
push 4
mov dword [ebp - 0x13c], ecx
pop ecx
mov dword [ebp - 0xdc], eax
cmp dword [ebx + 8], ecx
jne 0x50acbc
imul ecx, eax, 0x14
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x160], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0xe8], eax
mov ecx, esi
jmp 0x50ac15
mov eax, dword [ebx + 4]
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp case.default.0x50ab25
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x14], eax
jmp 0x50ab63
push 8
pop eax
mov word [esi + 0x1c], ax
mov eax, dword [ebx + 0x10]
movsd xmm0, qword [eax]
movsd qword [esi + 8], xmm0
jmp case.default.0x50ab25
push dword [ebx + 0x10]
mov byte [ebx], 0x1b
call fcn.00507e1b
mov dword [ebx + 4], eax
xor eax, eax
inc eax
pop ecx
cmp byte [ebp - 0x10c], al
je 0x50ad93
push 0
push eax
push 0xffffffffffffffff
push dword [ebx + 0x10]
push esi
call fcn.00510f2d
add esp, 0x14
mov dword [ebp - 0xd4], eax
cmp eax, 0x12
je 0x50f4cd
movzx ecx, byte [ebp - 0x10c]
push ecx
push esi
call fcn.0050a3fb
pop ecx
pop ecx
test eax, eax
jne 0x50f511
and dword [esi + 0x24], eax
mov eax, 0x800
or word [esi + 0x1c], ax
cmp byte [ebx + 1], 0xff
jne 0x50ad83
push dword [ebx + 0x10]
push dword [ebp - 0xd8]
call fcn.004f6f34
pop ecx
pop ecx
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 4]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebx + 4]
cmp eax, dword [ecx + 0x58]
jg 0x50f4d3
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x18], eax
mov al, byte [ebp - 0x10c]
mov byte [esi + 0x1e], al
jmp case.default.0x50ab25
mov esi, dword [ebx + 0xc]
xor eax, eax
sub esi, dword [ebx + 8]
inc eax
cmp dword [ebx + 4], 0
mov edx, 0x101
mov ebx, dword [ebp - 0xe0]
cmovne eax, edx
movzx edi, ax
mov word [ebx + 0x1c], di
test esi, esi
jle 0x50c7c5
mov eax, 0x2460
add ebx, 0x28
test word [ebx + 0x1c], ax
je 0x50ae0c
push ebx
call fcn.00510db9
pop ecx
mov eax, 0x2460
dec esi
mov word [ebx + 0x1c], di
test esi, esi
jg 0x50adf7
mov dword [ebp - 0xe0], ebx
mov edi, dword [ebp - 0xe4]
jmp 0x50ac0f
imul esi, dword [ebx + 4], 0x28
mov edx, 0xff7f
xor ebx, ebx
inc ebx
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
mov ax, word [esi + 0x1c]
and ax, dx
or ax, bx
mov word [esi + 0x1c], ax
jmp case.default.0x50ab25
push 0
push 0
push dword [ebx + 4]
push dword [ebx + 0x10]
push esi
call fcn.00510f2d
mov al, byte [ebp - 0x10c]
add esp, 0x14
mov byte [esi + 0x1e], al
jmp 0x50ab63
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [edi + 0x3c]
add ecx, 0xffffffd8
add esi, ecx
push esi
call fcn.00511178
pop ecx
test eax, eax
jne 0x50f4cd
mov eax, 0x800
push eax
push esi
mov esi, dword [ebp - 0xe0]
push esi
call fcn.005110ac
add esp, 0xc
jmp 0x50ab63
imul edi, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0xec], eax
add edi, dword [ebp - 0xe8]
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
mov eax, 0x2460
test word [esi + 0x1c], ax
je 0x50aedd
push esi
call fcn.00510db9
pop ecx
mov eax, dword [ebp - 0xe0]
mov esi, dword [esi + 0x24]
push 0x28
push edi
push eax
call fcn.00581a60
and dword [edi + 0x20], 0
mov eax, 0x80
mov dword [edi + 0x24], esi
add esp, 0xc
mov esi, dword [ebp - 0xe0]
mov word [edi + 0x1c], ax
add esi, 0x28
add edi, 0x28
mov dword [ebp - 0xe0], esi
sub dword [ebp - 0xec], 1
jne 0x50aecb
mov edi, dword [ebp - 0xe4]
jmp 0x50ab63
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0xc]
imul ebx, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xe8]
add ebx, dword [ebp - 0xe8]
mov eax, 0x1000
mov dword [ebp - 0xe0], ebx
push eax
push esi
push ebx
call fcn.005110ac
mov eax, 0x1000
add esp, 0xc
test word [ebx + 0x1c], ax
je 0x50af6f
push ebx
call fcn.00510bfc
pop ecx
test eax, eax
jne 0x50f50b
mov eax, edi
dec edi
test eax, eax
je 0x50ae1b
add ebx, 0x28
add esi, 0x28
jmp 0x50af3f
imul esi, dword [ebx + 8], 0x28
mov eax, 0x1000
push eax
imul eax, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
add eax, dword [ebp - 0xe8]
push eax
jmp 0x50ae9a
mov eax, dword [ecx + 0x11c]
test eax, eax
je 0x50afd1
mov edx, dword [ebp - 0x140]
cmp edx, dword [ebp - 0x144]
jb 0x50afd1
push dword [ecx + 0x120]
call eax
pop ecx
test eax, eax
jne 0x50f356
push 0
push edi
call fcn.0050a59d
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50ab63
push 1
push edi
call fcn.0050a6b2
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50ab63
mov eax, dword [edi + 0x48]
push 2
pop ecx
add eax, ecx
or eax, 1
mov dword [edi + 0x48], eax
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
mov dword [edi + 0x14], esi
cmp dword [ebx + 8], 0
jle 0x50b05c
mov eax, 0x1000
test word [esi + 0x1c], ax
je 0x50b040
push esi
call fcn.00510bfc
pop ecx
test eax, eax
jne 0x50f511
push esi
call fcn.00510c90
mov eax, dword [ebp - 0x190]
add esi, 0x28
inc eax
pop ecx
mov dword [ebp - 0x190], eax
cmp eax, dword [ebx + 8]
jl 0x50b026
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x40], 0
jne 0x50f517
mov eax, dword [ebp - 0xdc]
inc eax
push 0x64
mov dword [edi + 0x4c], eax
pop esi
jmp 0x50f5af
imul edi, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
mov eax, dword [ebp - 0xe8]
imul ebx, dword [ebx + 0xc], 0x28
add edi, eax
add esi, eax
mov dword [ebp - 0xf0], edi
add ebx, eax
movzx ecx, word [edi + 0x1c]
mov al, byte [esi + 0x1c]
or al, cl
mov dword [ebp - 0xe0], ebx
test al, 1
je 0x50b0c1
mov esi, dword [ebp - 0xe0]
push esi
call fcn.00510e77
pop ecx
jmp 0x50af1d
mov edx, 0x4000
test edx, ecx
je 0x50b0d8
push edi
call fcn.005108e2
pop ecx
mov edx, 0x4000
jmp 0x50b0da
xor eax, eax
test eax, eax
jne 0x50f50b
test word [esi + 0x1c], dx
je 0x50b0f1
push esi
call fcn.005108e2
pop ecx
jmp 0x50b0f3
xor eax, eax
test eax, eax
jne 0x50f50b
test byte [edi + 0x1c], 0x12
jne 0x50b119
movzx eax, byte [ebp - 0x10c]
push eax
push edi
call fcn.005110fc
pop ecx
pop ecx
test eax, eax
jne 0x50f50b
test byte [esi + 0x1c], 0x12
jne 0x50b137
movzx eax, byte [ebp - 0x10c]
push eax
push esi
call fcn.005110fc
pop ecx
pop ecx
test eax, eax
jne 0x50f50b
mov eax, dword [edi + 0x18]
add eax, dword [esi + 0x18]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x50f4c7
jl 0x50b15e
cmp edi, eax
ja 0x50f4c7
xor eax, eax
cmp ebx, esi
sete al
push eax
lea eax, [edi + 2]
push eax
push ebx
call fcn.00510a6c
add esp, 0xc
test eax, eax
jne 0x50f50b
mov ax, word [ebx + 0x1c]
mov ecx, 0xbe02
and ax, cx
push 2
pop ecx
or ax, cx
mov word [ebx + 0x1c], ax
cmp ebx, esi
je 0x50b1a6
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ebx + 4]
call fcn.00581a60
add esp, 0xc
mov eax, dword [ebp - 0xf0]
push dword [eax + 0x18]
push dword [eax + 4]
mov eax, dword [ebx + 4]
add eax, dword [esi + 0x18]
push eax
call fcn.00581a60
mov esi, dword [ebp - 0xe0]
add esp, 0xc
mov eax, dword [esi + 4]
mov byte [edi + eax], 0
mov eax, dword [esi + 4]
mov byte [eax + edi + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov al, byte [ebp - 0x10c]
mov dword [esi + 0x18], edi
mov byte [esi + 0x1e], al
jmp 0x50af1d
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
push esi
call fcn.004ea7e7
imul edi, dword [ebx + 8], 0x28
movzx eax, ax
mov dword [ebp - 0xf4], eax
add edi, dword [ebp - 0xe8]
push edi
call fcn.004ea7e7
pop ecx
pop ecx
movzx ecx, ax
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0xf0], ecx
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], eax
mov al, byte [edi + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
jne 0x50b0af
mov al, cl
and al, byte [ebp - 0xf4]
push 4
pop ecx
test cl, al
je 0x50b372
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x158], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x154], eax
movzx eax, byte [ebx]
mov byte [ebp - 0x10d], 1
sub eax, 0x59
je 0x50b32a
sub eax, 1
je 0x50b31a
sub eax, 1
je 0x50b30a
sub eax, 1
mov eax, ecx
je 0x50b2cd
or eax, edx
je 0x50b0af
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x50b2b7
xor ecx, ecx
inc ecx
xor edx, edx
mov eax, dword [ebp - 0xec]
push edx
push ecx
push dword [ebp - 0xf8]
push eax
call fcn.0057c2a0
jmp 0x50b34b
or eax, edx
je 0x50b0af
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x50b2f4
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x50b2fa
cmp dword [edi + 0x14], 0x80000000
je 0x50b379
jmp 0x50b2fa
mov eax, dword [ebp - 0xec]
push edx
push ecx
push dword [ebp - 0xf8]
push eax
call fcn.0057c0d0
jmp 0x50b34b
push edx
push ecx
lea eax, [ebp - 0x158]
push eax
call fcn.004ffb94
jmp 0x50b338
push edx
push ecx
lea eax, [ebp - 0x158]
push eax
call fcn.00507e3d
jmp 0x50b338
push edx
push ecx
lea eax, [ebp - 0x158]
push eax
call fcn.004f0f49
add esp, 0xc
test eax, eax
jne 0x50b379
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0xe0]
mov ecx, 0xbe04
push 4
mov dword [esi + 0x10], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 0x14], edx
pop ecx
or ax, cx
mov word [esi + 0x1c], ax
jmp 0x50af1d
mov byte [ebp - 0x10d], 0
push esi
call fcn.00511634
fstp qword [ebp - 0x108]
push edi
call fcn.00511634
movzx eax, byte [ebx]
pop ecx
fstp qword [ebp - 0x12c]
pop ecx
sub eax, 0x59
je 0x50b441
sub eax, 1
je 0x50b42f
sub eax, 1
je 0x50b41d
movsd xmm0, qword [ebp - 0x108]
sub eax, 1
je 0x50b3fd
call fcn.0057c75f
movsd xmm0, qword [ebp - 0x12c]
mov esi, eax
mov edi, edx
call fcn.0057c75f
mov ecx, esi
or ecx, edi
je 0x50b0af
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x50b3e8
xor esi, esi
inc esi
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0057c2a0
mov ecx, eax
call fcn.0057c8b0
movaps xmm1, xmm0
jmp 0x50b451
ucomisd xmm0, qword [0x5ed2d8]
lahf
test ah, 0x44
jnp 0x50b0af
movsd xmm1, qword [ebp - 0x12c]
divsd xmm1, xmm0
jmp 0x50b451
movsd xmm1, qword [ebp - 0x12c]
mulsd xmm1, qword [ebp - 0x108]
jmp 0x50b451
movsd xmm1, qword [ebp - 0x12c]
subsd xmm1, qword [ebp - 0x108]
jmp 0x50b451
movsd xmm1, qword [ebp - 0x12c]
addsd xmm1, qword [ebp - 0x108]
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.004fea85
add esp, 8
test eax, eax
jne 0x50b0af
mov esi, dword [ebp - 0xe0]
mov ecx, 0xbe08
push 8
pop ebx
mov ax, word [esi + 0x1c]
and ax, cx
movsd qword [esi + 8], xmm1
or ax, bx
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xf0]
or al, byte [ebp - 0xf4]
test bl, al
jne 0x50af1d
cmp byte [ebp - 0x10d], 0
jne 0x50af1d
push esi
call fcn.005101a6
jmp 0x50b0bb
mov eax, dword [ebx + 4]
test eax, eax
je case.default.0x50ab25
imul eax, eax, 0x28
push 0
push 0
add eax, dword [ebp - 0xe8]
push eax
call fcn.00510e53
jmp 0x50aea0
imul edx, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 8], 0x28
movzx eax, byte [ebx + 3]
mov ecx, dword [edi + 0xc]
xor edi, edi
mov dword [ebp - 0xf8], eax
add edx, dword [ebp - 0xe8]
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe0], edx
test eax, eax
jle 0x50b547
mov edx, 0x1000
mov dword [ecx + edi*4], esi
test word [esi + 0x1c], dx
je 0x50b539
push esi
call fcn.00510bfc
pop ecx
test eax, eax
jne 0x50f50b
mov eax, dword [ebp - 0xf8]
mov edx, 0x1000
mov ecx, dword [ebp - 0xec]
inc edi
add esi, 0x28
cmp edi, eax
jl 0x50b510
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp - 0xdc]
push 0x28
mov dword [ebp - 0x2b0], eax
lea eax, [ebp - 0x2e4]
push edx
push eax
mov dword [ebp - 0x2b4], edi
call fcn.00581a60
mov eax, dword [ebp - 0xe0]
xor ecx, ecx
xor edx, edx
mov esi, 0xbe01
inc edx
add esp, 0xc
mov word [eax + 0x1c], dx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x2c8]
mov byte [ebp - 0x2a7], cl
and eax, esi
mov ecx, dword [ebp - 0x2ec]
or eax, edx
mov word [ebp - 0x2c8], ax
test byte [ecx + 2], 0x20
je 0x50b5c0
mov eax, dword [ebx - 4]
mov dword [ebp - 0x2b8], eax
mov esi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x138]
push dword [ebp - 0xec]
push dword [ebp - 0xf8]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0x13c]
mov dword [esi + 0x24], eax
lea eax, [ebp - 0x2ec]
push eax
call dword [ecx + 0xc]
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [esi + 0x40], 0
mov dword [ebp - 0x138], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x13c], eax
jne 0x50f364
cmp byte [ebp - 0x2a7], 0
je 0x50b65e
cmp dword [ebp - 0x2ac], 0
je 0x50b64c
lea eax, [ebp - 0x2e4]
push 1
push eax
call fcn.0050a117
push eax
push 0x60915c
lea eax, [edi + 0x2c]
push esi
push eax
call fcn.0050718c
mov eax, dword [ebp - 0x2ac]
add esp, 0x18
mov dword [ebp - 0xd4], eax
push dword [ebx + 4]
push dword [ebp - 0xdc]
push edi
call fcn.0050a8ca
add esp, 0xc
movzx eax, byte [ebp - 0x10c]
push eax
lea eax, [ebp - 0x2e4]
push eax
call fcn.0050a3fb
mov esi, dword [ebp - 0xe0]
lea eax, [ebp - 0x2e4]
push 0x28
push eax
push esi
call fcn.00581a60
push esi
call fcn.00511178
mov ecx, dword [ebp - 0xd8]
add esp, 0x18
test eax, eax
jne 0x50f4d3
jmp case.default.0x50ab25
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 4], 0x28
imul eax, dword [ebx + 0xc], 0x28
mov edx, dword [ebp - 0xe8]
add ecx, edx
add esi, edx
add eax, edx
mov dword [ebp - 0xe0], eax
mov al, byte [ecx + 0x1c]
or al, byte [esi + 0x1c]
test al, 1
je 0x50b6dd
mov esi, dword [ebp - 0xe0]
push esi
call fcn.00510e77
pop ecx
jmp 0x50ab63
push ecx
call fcn.00510142
push esi
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
call fcn.00510142
mov bl, byte [ebx]
mov esi, eax
pop ecx
pop ecx
cmp bl, 0x55
jne 0x50b711
and dword [ebp - 0x134], esi
and dword [ebp - 0x130], edx
jmp 0x50b845
cmp bl, 0x56
jne 0x50b727
or dword [ebp - 0x134], esi
or dword [ebp - 0x130], edx
jmp 0x50b845
mov eax, esi
or eax, edx
je 0x50b845
test edx, edx
jg 0x50b754
jl 0x50b73b
test esi, esi
jae 0x50b754
mov al, 0xaf
sub al, bl
mov bl, al
cmp edx, 0xffffffff
jl 0x50b77f
jg 0x50b74d
cmp esi, 0xffffffc0
jbe 0x50b77f
neg esi
adc edx, 0
neg edx
push 0x40
pop eax
test edx, edx
jl 0x50b79c
jg 0x50b761
cmp esi, eax
jb 0x50b79c
cmp dword [ebp - 0x130], 0
jg 0x50b788
jl 0x50b775
cmp dword [ebp - 0x134], 0
jae 0x50b788
cmp bl, 0x57
je 0x50b788
or eax, 0xffffffff
jmp 0x50b78a
push 0x40
pop eax
mov esi, eax
xor edx, edx
jmp 0x50b757
xor eax, eax
cdq
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
jmp 0x50b845
push 8
pop eax
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x150]
push eax
call fcn.00581a60
mov eax, dword [ebp - 0x150]
add esp, 0xc
mov edx, dword [ebp - 0x14c]
mov ecx, esi
cmp bl, 0x57
jne 0x50b7dc
call fcn.0057c360
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
jmp 0x50b82b
call fcn.0057c510
mov edi, eax
mov ebx, edx
xor eax, eax
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], ebx
cmp dword [ebp - 0x130], eax
jg 0x50b825
jl 0x50b805
cmp dword [ebp - 0x134], eax
jae 0x50b825
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0057c360
or edi, eax
or ebx, edx
mov dword [ebp - 0x150], edi
mov dword [ebp - 0x14c], ebx
mov edi, dword [ebp - 0xe4]
push 8
pop eax
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00581a60
add esp, 0xc
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x134]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x130]
mov dword [esi + 0x14], eax
mov ax, word [esi + 0x1c]
mov ecx, 0xbe04
and ax, cx
push 4
pop ecx
or ax, cx
mov word [esi + 0x1c], ax
jmp 0x50ab63
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
push esi
call fcn.00510bcf
mov eax, dword [ebx + 8]
cdq
add dword [esi + 0x10], eax
pop ecx
adc dword [esi + 0x14], edx
jmp 0x50ac0f
imul esi, dword [ebx + 4], 0x28
push 4
pop ecx
add esi, dword [ebp - 0xe8]
movzx eax, word [esi + 0x1c]
test cl, al
jne 0x50b8e6
push dword [ebp - 0x10c]
push 0x63
push esi
call fcn.004dcdc3
movzx eax, word [esi + 0x1c]
add esp, 0xc
push 4
pop ecx
test cl, al
jne 0x50b8e6
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0xd8]
test eax, eax
je 0x50f378
dec eax
mov dword [ebp - 0xdc], eax
jmp 0x50ac15
mov edx, 0xbe04
and eax, edx
or eax, ecx
mov word [esi + 0x1c], ax
jmp 0x50ac0f
imul eax, dword [ebx + 4], 0x28
push 4
pop edx
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], dl
je case.default.0x50ab25
push eax
call fcn.00510d59
jmp 0x50b6d7
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
movzx ecx, word [esi + 0x1c]
test cl, 1
jne 0x50ac0f
push dword [ebp - 0x10c]
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
push 0x61
push esi
mov word [esi + 0x1c], ax
call fcn.004dcdc3
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x50b969
push esi
call fcn.005108e2
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x50b970
and dword [ebp - 0xd4], 0
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp 0x50ac0f
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
movzx eax, word [esi + 0x1c]
test al, 1
jne 0x50ac15
push 0x10
pop ebx
test bl, al
jne 0x50b9c0
push dword [ebp - 0x10c]
push 0x61
push esi
call fcn.004dcdc3
mov ax, word [esi + 0x1c]
mov ecx, 0xbe10
and ax, cx
add esp, 0xc
or ax, bx
jmp 0x50b8ef
and eax, 0xfe10
mov word [esi + 0x1c], ax
jmp 0x50ac15
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xe8]
push eax
call fcn.00510ce8
jmp 0x50b6d7
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 1
jne case.default.0x50ab25
push eax
call fcn.00510bcf
jmp 0x50b6d7
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 1
jne case.default.0x50ab25
jmp 0x50b90e
imul edi, dword [ebx + 0xc], 0x28
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebp - 0xe8]
add edi, eax
add esi, eax
movzx ecx, word [edi + 0x1c]
movzx edx, word [esi + 0x1c]
mov al, cl
or al, dl
mov dword [ebp - 0xf0], edx
test al, 1
mov dword [ebp - 0x104], ecx
mov al, byte [ebx + 3]
je 0x50bac0
test al, al
jns 0x50ba70
mov eax, ecx
and eax, edx
xor edx, edx
bt ax, dx
jae 0x50ba68
test ecx, 0x100
je 0x50bb34
xor edx, edx
inc edx
jmp 0x50bb34
push 0x10
pop ecx
test cl, al
je 0x50ba9b
imul esi, dword [ebx + 8], 0x28
mov ecx, 0xbe01
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
mov ax, word [esi + 0x1c]
and ax, cx
xor ecx, ecx
inc ecx
jmp 0x50b366
mov edi, dword [ebp - 0xe4]
push 8
pop ecx
test cl, al
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd8]
je case.default.0x50ab25
mov eax, dword [ebx + 8]
jmp 0x50abb2
and al, 0x67
mov byte [ebp - 0x188], al
je 0x50bb01
push dword [ebp - 0x10c]
push dword [ebp - 0x188]
push esi
call fcn.004dcdc3
push dword [ebp - 0x10c]
push dword [ebp - 0x188]
push edi
call fcn.004dcdc3
mov ecx, dword [ebp - 0xd8]
add esp, 0x18
cmp byte [ecx + 0x40], 0
jne 0x50f537
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x50bb18
push esi
call fcn.005108e2
pop ecx
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x50bb25
push edi
call fcn.005108e2
pop ecx
push dword [ebx + 0x10]
push esi
push edi
call fcn.004ff926
add esp, 0xc
mov edx, eax
movzx ecx, byte [ebx]
sub ecx, 0x4e
je 0x50bb7d
sub ecx, 1
je 0x50bb74
sub ecx, 1
je 0x50bb6b
sub ecx, 1
je 0x50bb62
sub ecx, 1
je 0x50bb59
xor eax, eax
test edx, edx
setns al
jmp 0x50bb84
xor eax, eax
test edx, edx
sets al
jmp 0x50bb84
xor eax, eax
test edx, edx
setle al
jmp 0x50bb84
xor eax, eax
test edx, edx
setg al
jmp 0x50bb84
xor eax, eax
test edx, edx
sete al
jmp 0x50bb84
xor eax, eax
test edx, edx
setne al
push 0x10
pop ecx
test byte [ebx + 3], cl
je 0x50bbbb
imul ebx, dword [ebx + 8], 0x28
mov edx, 0xbe04
push 4
add ebx, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], ebx
mov cx, word [ebx + 0x1c]
and cx, dx
pop edx
or cx, dx
cdq
mov word [ebx + 0x1c], cx
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], edx
jmp 0x50bbc9
test eax, eax
je 0x50bbc9
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov ax, word [esi + 0x1c]
mov ecx, 0x1ff
xor ax, word [ebp - 0xf0]
and ax, cx
xor word [esi + 0x1c], ax
mov ax, word [edi + 0x1c]
xor ax, word [ebp - 0x104]
and ax, cx
xor word [edi + 0x1c], ax
jmp 0x50ae1b
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0x148], ebx
jmp case.default.0x50ab25
test byte [ebx + 3], 1
mov eax, dword [ebp - 0x148]
mov edx, dword [ebx + 4]
push 0
pop ecx
cmove eax, ecx
mov dword [ebp - 0x124], edx
mov ecx, dword [ebx + 0xc]
xor esi, esi
mov dword [ebp - 0x148], eax
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xf0], ebx
test ecx, ecx
jle 0x50bcc1
lea ebx, [eax + 0x14]
mov ecx, dword [ebp - 0x148]
test ecx, ecx
je 0x50bc57
mov ecx, dword [ecx + esi*4]
jmp 0x50bc59
mov ecx, esi
mov eax, dword [eax + 0x10]
push dword [ebx]
movzx edi, byte [eax + esi]
mov eax, dword [ebp - 0xf0]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0xe8]
push eax
lea eax, [ecx + edx]
imul eax, eax, 0x28
add eax, dword [ebp - 0xe8]
push eax
call fcn.004ff926
add esp, 0xc
mov dword [ebp - 0x17c], eax
test eax, eax
jne 0x50bcaf
mov edx, dword [ebp - 0x124]
inc esi
push 4
pop eax
add ebx, eax
mov eax, dword [ebp - 0x118]
cmp esi, dword [ebp - 0x104]
jl 0x50bc48
jmp 0x50bcbb
test edi, edi
je 0x50bcbb
neg eax
mov dword [ebp - 0x17c], eax
mov edi, dword [ebp - 0xe4]
and dword [ebp - 0x148], 0
jmp 0x50ac0f
mov eax, dword [ebp - 0x17c]
test eax, eax
jns 0x50bcdf
mov eax, dword [ebx + 4]
jmp 0x50abb2
je 0x50bab8
mov eax, dword [ebx + 0xc]
jmp 0x50abb2
imul eax, dword [ebx + 4], 0x28
xor edx, edx
inc edx
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], dl
je 0x50bd06
push 2
pop ecx
mov esi, ecx
jmp 0x50bd20
push eax
call fcn.00510142
or eax, edx
pop ecx
push 2
pop ecx
je 0x50bd1b
xor edx, edx
inc edx
mov esi, edx
jmp 0x50bd20
xor edx, edx
xor esi, esi
inc edx
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], dl
jne 0x50bd46
push eax
call fcn.00510142
or eax, edx
pop ecx
je 0x50bd41
xor edx, edx
inc edx
mov ecx, edx
jmp 0x50bd46
xor edx, edx
xor ecx, ecx
inc edx
imul eax, esi, 3
cmp byte [ebx], 0x48
jne 0x50bd58
movzx eax, byte [eax + ecx + 0x5e6194]
jmp 0x50bd60
movzx eax, byte [eax + ecx + 0x5e61a0]
imul esi, dword [ebx + 0xc], 0x28
push 2
pop ecx
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
cmp eax, ecx
jne 0x50bd8b
mov ax, word [esi + 0x1c]
mov ecx, 0xbe01
and ax, cx
or ax, dx
jmp 0x50b86f
cdq
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x50b85d
imul eax, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
xor ebx, ebx
inc ebx
add eax, dword [ebp - 0xe8]
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
test byte [eax + 0x1c], bl
jne 0x50b6d1
push eax
call fcn.00510142
or eax, edx
pop ecx
jne 0x50bdcc
mov eax, ebx
jmp 0x50bdce
xor eax, eax
cdq
push edx
push eax
push esi
jmp 0x50b4ce
imul eax, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xe8]
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
test byte [eax + 0x1c], 1
jne 0x50b6d1
push eax
call fcn.00510142
not edx
not eax
push edx
push eax
push esi
call fcn.00510e53
add esp, 0x10
jmp 0x50ab63
mov eax, dword [edi + 0xc8]
mov ecx, dword [ebx + 4]
cmp byte [eax + ecx], 0
jne 0x50ab59
mov byte [eax + ecx], 1
jmp 0x50ab63
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0xe8]
test byte [eax + 0x1c], 1
je 0x50be46
mov ecx, dword [ebx + 0xc]
jmp 0x50be7a
push eax
call fcn.00511634
fstp qword [ebp - 0x168]
movsd xmm0, qword [ebp - 0x168]
ucomisd xmm0, qword [0x5ed2d8]
pop ecx
lahf
xor ecx, ecx
test ah, 0x44
jnp 0x50be6c
inc ecx
cmp byte [ebx], 0x2d
jne 0x50be7a
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jmp 0x50baac
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0xe8]
test byte [eax + edx + 0x1c], 1
jmp 0x50bab2
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0xe8]
test byte [eax + edx + 0x1c], 1
jne case.default.0x50ab25
jmp 0x50bab8
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
imul edi, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xe4]
add edi, dword [ebp - 0xe8]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0xf4], edi
mov esi, dword [eax + ecx*4]
push esi
movsx eax, word [esi + 0x14]
add eax, 0x16
lea eax, [esi + eax*4]
mov dword [ebp - 0xfc], eax
mov eax, dword [esi]
mov dword [ebp - 0x100], eax
call fcn.0050a7fc
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
mov edx, dword [ebp - 0xe4]
mov eax, dword [esi + 0x44]
cmp eax, dword [edx + 0x48]
jne 0x50bf1e
test byte [ebx + 3], 0x20
je 0x50c05a
cmp byte [esi + 0x19], 0
je 0x50bf66
cmp dword [ebp - 0x100], 0
jne 0x50bf4b
imul eax, dword [esi + 0x10], 0x28
add eax, dword [ebp - 0xe8]
mov edi, dword [eax + 0x18]
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edi
mov eax, dword [eax + 4]
mov dword [esi + 0x54], eax
jmp 0x50bfe5
mov ax, word [edi + 0x1c]
mov ecx, 0xbe01
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 0x1c], ax
jmp 0x50c393
push 4
pop eax
test byte [esi + 0x1c], al
jne 0x50bfa1
lea eax, [ebp - 0x1d0]
push eax
push dword [ebp - 0x100]
call fcn.004f424e
pop ecx
pop ecx
mov ecx, dword [ebp - 0x100]
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx edi, word [ecx + 0x2e]
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esi + 0x48], eax
jmp 0x50bfc7
push dword [ebp - 0x100]
call fcn.004e77c9
pop ecx
mov ecx, dword [ebp - 0x100]
mov eax, dword [ecx + 0x24]
mov dword [esi + 0x48], eax
movzx eax, word [ecx + 0x2c]
add eax, dword [ecx + 0x20]
movzx edi, word [ecx + 0x2e]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x48]
cmp eax, edi
ja 0x50bfd3
mov dword [esi + 0x4c], eax
jmp 0x50bfd6
mov dword [esi + 0x4c], edi
mov ecx, dword [ebp - 0xd8]
cmp eax, dword [ecx + 0x58]
ja 0x50f4bf
mov eax, dword [ebp - 0xe4]
mov edx, 0x80
mov ecx, dword [esi + 0x54]
mov eax, dword [eax + 0x48]
mov dword [esi + 0x44], eax
mov al, byte [ecx]
cmp al, dl
jae 0x50c00d
movzx ecx, al
xor eax, eax
mov dword [ebp - 0x178], ecx
inc eax
jmp 0x50c025
lea eax, [ebp - 0x178]
push eax
push ecx
call fcn.004fd330
pop ecx
pop ecx
mov ecx, dword [ebp - 0x178]
movzx eax, al
mov edx, dword [ebp - 0xfc]
movzx eax, al
mov dword [esi + 0x50], eax
xor eax, eax
mov word [esi + 0x16], ax
mov dword [edx], ecx
cmp edi, ecx
jae 0x50c043
mov dword [esi + 0x54], eax
mov dword [esi + 0x4c], eax
cmp ecx, 0x18003
ja 0x50c050
cmp ecx, dword [esi + 0x48]
jbe 0x50c060
push 0x11106
jmp 0x50c1f6
mov edx, dword [ebp - 0xfc]
movzx eax, word [esi + 0x16]
mov ecx, dword [ebp - 0x114]
cmp eax, ecx
jg 0x50c242
mov eax, dword [esi + 0x50]
cmp eax, dword [edx]
jae 0x50c213
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x118], eax
test eax, eax
jne 0x50c0e6
push 0x28
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00581fe0
lea eax, [ebp - 0x220]
push eax
mov eax, dword [esi + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [ebp - 0xfc]
push dword [eax]
push 0
push dword [ebp - 0x100]
call fcn.0051099e
mov ecx, eax
add esp, 0x20
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50ae1b
mov eax, dword [ebp - 0x21c]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x118], eax
movzx ecx, word [esi + 0x16]
mov edi, dword [esi + 0x50]
add edi, eax
mov dword [ebp - 0x124], ecx
mov edx, dword [edx + ecx*4]
mov dword [ebp - 0xf8], edx
mov edx, dword [ebp - 0xfc]
mov edx, dword [edx]
add edx, eax
mov dword [ebp - 0x104], edx
mov al, byte [edi]
mov ebx, 0x80
cmp al, bl
jae 0x50c125
movzx eax, al
inc edi
mov dword [ebp - 0x174], eax
jmp 0x50c14b
lea eax, [ebp - 0x174]
push eax
push edi
call fcn.004fd330
mov edx, dword [ebp - 0x104]
pop ecx
movzx eax, al
pop ecx
mov ecx, dword [ebp - 0x124]
add edi, eax
mov eax, dword [ebp - 0x174]
push eax
mov dword [esi + ecx*4 + 0x58], eax
call fcn.00511fb2
mov ebx, dword [ebp - 0xf8]
add esp, 4
add ebx, eax
mov dword [ebp - 0xf8], ebx
cmp ebx, eax
mov dword [ebp - 0x178], ebx
mov ebx, dword [ebp - 0xec]
jb 0x50c1a4
mov ebx, dword [ebp - 0xfc]
inc ecx
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x124], ecx
mov dword [ebx + ecx*4], eax
mov ebx, dword [ebp - 0xec]
cmp ecx, dword [ebp - 0x114]
jg 0x50c1a7
cmp edi, edx
jb 0x50c10e
jmp 0x50c1a7
lea edi, [edx + 1]
mov eax, edi
mov word [esi + 0x16], cx
sub eax, dword [ebp - 0x118]
cmp dword [esi + 0x54], 0
mov dword [esi + 0x50], eax
jne 0x50c1d3
lea eax, [ebp - 0x220]
push eax
call fcn.00510d83
xor eax, eax
inc eax
pop ecx
mov word [ebp - 0x204], ax
mov eax, dword [ebp - 0x104]
cmp edi, eax
ja 0x50c1f1
mov ecx, dword [ebp - 0xf8]
cmp ecx, dword [esi + 0x48]
ja 0x50c1f1
cmp edi, eax
jne 0x50c207
cmp ecx, dword [esi + 0x48]
je 0x50c207
push 0x11148
call fcn.004f5f7f
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x50ae1b
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x114]
movzx eax, word [esi + 0x16]
cmp eax, ecx
jg 0x50c242
cmp byte [ebx + 1], 0xf8
mov edi, dword [ebp - 0xf4]
jne 0x50bf4b
mov eax, 0x800
push eax
push dword [ebx + 0x10]
push edi
call fcn.005110ac
add esp, 0xc
jmp 0x50c393
mov eax, dword [esi + 0x4c]
cmp eax, dword [edx + ecx*4 + 4]
jb 0x50c288
mov edi, dword [ebp - 0xf4]
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x50c26f
push edi
call fcn.00510db9
mov edx, dword [ebp - 0xfc]
pop ecx
mov ecx, dword [ebp - 0x114]
mov eax, dword [esi + 0x54]
add eax, dword [edx + ecx*4]
push edi
push dword [esi + ecx*4 + 0x58]
push eax
call fcn.00511c42
add esp, 0xc
jmp 0x50c38a
mov al, byte [ebx + 3]
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x174], ecx
test al, 0xc0
je 0x50c2b2
cmp ecx, 0xc
jb 0x50c2a9
test cl, 1
je 0x50c2c1
mov edx, 0x80
test dl, al
jne 0x50c2c1
push ecx
call fcn.00511fb2
mov edi, eax
add esp, 4
test edi, edi
jne 0x50c2d7
xor edx, edx
lea eax, [ebp - 0x1d0]
cmp ecx, 0xd
cmova eax, edx
and dword [ebp - 0x1fc], edx
jmp 0x50c346
push 0x28
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.00581fe0
push dword [ebp - 0xf4]
lea eax, [ebp - 0x220]
push eax
call fcn.00510c61
mov ecx, dword [ebp - 0xfc]
lea eax, [ebp - 0x220]
push eax
mov eax, dword [esi + 0x1c]
shr eax, 2
not eax
and eax, 1
push eax
mov eax, dword [ebp - 0x114]
push edi
push dword [ecx + eax*4]
push dword [ebp - 0x100]
call fcn.0051099e
mov ecx, eax
add esp, 0x28
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50ae1b
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0xf0]
mov edi, dword [ebp - 0xf4]
push edi
push ecx
push eax
call fcn.00511c42
add esp, 0xc
cmp dword [ebp - 0x1fc], 0
je 0x50c38a
mov ax, word [edi + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov ecx, 0x200
or ax, cx
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x21c]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x1fc]
mov dword [edi + 0x24], eax
mov al, byte [ebp - 0x10c]
mov byte [edi + 0x1e], al
mov eax, 0x1000
test word [edi + 0x1c], ax
je 0x50ae1b
push edi
call fcn.00510bfc
mov edi, dword [ebp - 0xe4]
pop ecx
mov ecx, dword [ebp - 0xd8]
test eax, eax
jne 0x50f517
jmp 0x50ac15
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
mov al, byte [edi]
add esi, dword [ebp - 0xe8]
mov byte [ebp - 0x184], al
test al, al
je 0x50c7c5
push dword [ebp - 0x10c]
inc edi
push dword [ebp - 0x184]
push esi
call fcn.004dcdc3
mov al, byte [edi]
add esp, 0xc
add esi, 0x28
mov byte [ebp - 0x184], al
test al, al
jne 0x50c3df
jmp 0x50ae1b
imul ecx, dword [ebx + 4], 0x28
xor edi, edi
imul eax, dword [ebx + 8], 0x28
xorps xmm0, xmm0
mov esi, dword [ebx + 0x10]
imul ebx, dword [ebx + 0xc], 0x28
mov edx, dword [ebp - 0xe4]
add ecx, dword [ebp - 0xe8]
and dword [ebp - 0xfc], edi
add eax, 0xffffffd8
add eax, ecx
movlpd qword [ebp - 0x168], xmm0
add ebx, dword [ebp - 0xe8]
movzx edx, byte [edx + 0x57]
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x100], edx
mov dword [ebp - 0xe0], ebx
test esi, esi
je 0x50c492
mov bl, byte [esi]
mov edi, ecx
push dword [ebp - 0x10c]
push ebx
push edi
call fcn.004dcdc3
add esp, 0xc
add edi, 0x28
inc esi
mov bl, byte [esi]
test bl, bl
jne 0x50c46c
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0x100]
mov ebx, dword [ebp - 0xf4]
mov esi, eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0xf8], eax
push edx
push esi
call fcn.00511ec5
push eax
mov dword [ebp - 0xf0], eax
call fcn.00511fb2
mov edi, eax
add esp, 0xc
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x50c4fe
mov ecx, dword [ebp - 0xf8]
or ecx, dword [ebp - 0xec]
je 0x50c4ec
push esi
call fcn.005108e2
pop ecx
jmp 0x50c4fe
mov eax, dword [ebp - 0xfc]
add eax, dword [esi + 0x10]
sub edi, dword [esi + 0x10]
mov dword [ebp - 0xfc], eax
mov eax, edi
mov edi, dword [ebp - 0xec]
cdq
add dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0xf0]
adc edi, edx
mov dword [ebp - 0xec], edi
cmp eax, 0x7f
ja 0x50c525
xor eax, eax
inc eax
jmp 0x50c52f
push 0
push eax
call fcn.0050a1a7
pop ecx
pop ecx
mov edx, dword [ebp - 0x100]
sub esi, 0x28
add ebx, eax
cmp esi, dword [ebp - 0x114]
jae 0x50c4b2
cmp ebx, 0x7e
jle 0x50c570
mov eax, ebx
cdq
push edx
push eax
call fcn.0050a1a7
mov esi, eax
add ebx, esi
mov eax, ebx
mov dword [ebp - 0xf4], ebx
cdq
push edx
push eax
call fcn.0050a1a7
add esp, 0x10
cmp esi, eax
jge 0x50c577
inc ebx
mov dword [ebp - 0xf4], ebx
mov eax, ebx
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0xd8]
add esi, dword [ebp - 0xf8]
mov dword [ebp - 0xf0], esi
adc ecx, edi
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x50f4c7
jl 0x50c5a8
cmp esi, eax
ja 0x50f4c7
push 0
push esi
mov esi, dword [ebp - 0xe0]
push esi
call fcn.00510a6c
add esp, 0xc
test eax, eax
jne 0x50f50b
mov esi, dword [esi + 4]
mov eax, 0x80
cmp ebx, eax
jae 0x50c5d5
xor eax, eax
mov byte [esi], bl
inc eax
jmp 0x50c5de
push ebx
push esi
call fcn.00504722
pop ecx
pop ecx
mov edi, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x114]
movzx eax, al
mov dword [ebp - 0xf8], eax
push dword [ebp - 0x100]
push ebx
call fcn.00511ec5
mov ebx, eax
mov eax, 0x80
pop ecx
pop ecx
cmp ebx, eax
jae 0x50c61a
mov ecx, dword [ebp - 0xf8]
xor eax, eax
inc eax
mov byte [ecx + esi], bl
jmp 0x50c631
mov eax, dword [ebp - 0xf8]
add eax, esi
push ebx
push eax
call fcn.00504722
pop ecx
pop ecx
mov ecx, dword [ebp - 0xf8]
movzx eax, al
push ebx
mov ebx, dword [ebp - 0x114]
add ecx, eax
lea eax, [edi + esi]
mov dword [ebp - 0xf8], ecx
push ebx
push eax
call fcn.00511e42
add ebx, 0x28
add esp, 0xc
add edi, eax
mov dword [ebp - 0x114], ebx
cmp ebx, dword [ebp - 0x104]
jbe 0x50c5f3
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xf0]
push 0x10
and dword [esi + 0x20], 0
mov dword [esi + 0x18], eax
pop eax
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x50c693
mov dword [esi + 0x10], eax
mov eax, 0x4010
mov word [esi + 0x1c], ax
mov byte [esi + 0x1e], 1
jmp 0x50af1d
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x38]
movlpd qword [ebp - 0x1b4], xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x1b4]
push ecx
push dword [eax]
call fcn.004f3721
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x1b4]
pop ecx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x1b0]
pop ecx
jmp 0x50acef
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0xf4], esi
test esi, esi
jne 0x50c7d0
cmp dword [ecx + 0x94], esi
jle 0x50c717
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0xc
mov dword [ebp - 0xd4], 5
jmp 0x50ac0f
push ebx
call fcn.00507e1b
mov esi, dword [ebp - 0xd8]
mov edi, eax
mov ecx, dword [esi + 0x1ec]
add ecx, dword [esi + 0x1e8]
push ecx
push 0
push esi
call fcn.00512deb
mov ecx, eax
add esp, 0x10
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f4bb
lea eax, [edi + 0x21]
push eax
push esi
call fcn.004f6f91
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x50ae1b
lea ecx, [edi + 1]
push ecx
lea edx, [esi + 0x20]
push ebx
push edx
mov dword [esi], edx
call fcn.00581a60
mov ecx, dword [ebp - 0xd8]
add esp, 0xc
cmp byte [ecx + 0x3e], 0
je 0x50c78c
mov byte [ecx + 0x3e], 0
mov byte [ecx + 0x45], 1
jmp 0x50c792
inc dword [ecx + 0x1e8]
mov eax, dword [ecx + 0x1e0]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1f0]
mov dword [ecx + 0x1e0], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0x14], eax
mov edi, dword [ebp - 0xe4]
jmp 0x50ac15
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
mov edi, dword [eax + 0x1e0]
test edi, edi
je 0x50ca5e
mov esi, ecx
push ebx
push dword [edi]
call fcn.004d9260
pop ecx
pop ecx
test eax, eax
je 0x50c7fe
mov edi, dword [edi + 0x18]
inc esi
test edi, edi
jne 0x50c7e8
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x100], esi
mov esi, dword [ebp - 0xf4]
mov dword [ebp - 0x104], edi
test edi, edi
je 0x50ca5e
xor ecx, ecx
xor edx, edx
inc ecx
cmp dword [eax + 0x94], edx
jle 0x50c840
cmp esi, ecx
jne 0x50c840
mov edi, dword [ebp - 0xe4]
push str.cannot_release_savepoint___SQL_statements_in_progress
push eax
jmp 0x50c6fc
cmp dword [edi + 0x18], edx
jne 0x50c8a7
cmp byte [eax + 0x45], dl
je 0x50c8a7
mov dword [ebp - 0xec], ecx
cmp esi, ecx
jne 0x50c8ad
mov ebx, dword [ebp - 0xe4]
push ecx
push ebx
call fcn.0050a59d
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x50f5a7
mov eax, dword [ebp - 0xd8]
push ebx
mov byte [eax + 0x3e], 1
call fcn.0050fd1c
pop ecx
mov ecx, dword [ebp - 0xd8]
push 5
pop edx
cmp eax, edx
je 0x50f380
mov byte [ecx + 0x45], 0
mov eax, dword [ebx + 0x50]
mov ebx, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
jmp 0x50c97b
mov dword [ebp - 0xec], edx
mov eax, dword [eax + 0x1e8]
sub eax, dword [ebp - 0x100]
push 2
pop ecx
dec eax
cmp esi, ecx
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x100], eax
jne 0x50c909
mov ebx, edx
cmp dword [ecx + 0x14], edx
jle 0x50c909
mov esi, edx
mov edi, ecx
push 4
pop eax
push eax
mov eax, dword [edi + 0x10]
push dword [esi + eax + 4]
call fcn.004f5233
pop ecx
pop ecx
push 0x10
pop eax
inc ebx
add esi, eax
cmp ebx, dword [edi + 0x14]
jl 0x50c8d8
mov edi, dword [ebp - 0x104]
xor edx, edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xd8]
mov ebx, edx
cmp dword [ecx + 0x14], edx
jle 0x50c94f
mov esi, edx
push eax
mov eax, dword [ecx + 0x10]
push dword [ebp - 0xf4]
push dword [esi + eax + 4]
call fcn.004f4f87
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd4], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
jne 0x50f456
push 0x10
pop eax
inc ebx
add esi, eax
mov eax, dword [ebp - 0x100]
cmp ebx, dword [ecx + 0x14]
jl 0x50c912
mov ebx, dword [ebp - 0xf4]
push 2
pop eax
cmp ebx, eax
jne 0x50c97b
test byte [ecx + 0x18], al
je 0x50c97b
push ecx
call fcn.004f8519
push ecx
call fcn.00504d8b
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd8]
push 2
pop eax
or dword [ecx + 0x18], eax
cmp dword [ecx + 0x1e0], edi
je 0x50c9b7
mov ecx, dword [ecx + 0x1e0]
mov ebx, dword [ebp - 0xd8]
push ecx
push ebx
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x1e0], eax
call fcn.004f6f34
pop ecx
pop ecx
mov ecx, ebx
dec dword [ecx + 0x1e8]
cmp dword [ecx + 0x1e0], edi
jne 0x50c983
mov ebx, dword [ebp - 0xf4]
cmp ebx, 1
jne 0x50c9e9
mov eax, dword [edi + 0x18]
push edi
push ecx
mov dword [ecx + 0x1e0], eax
call fcn.004f6f34
cmp dword [ebp - 0xec], 0
pop ecx
pop ecx
jne 0x50ae1b
mov eax, dword [ebp - 0xd8]
dec dword [eax + 0x1e8]
jmp 0x50ca20
cmp dword [ebp - 0xec], 0
mov eax, dword [edi + 8]
mov dword [ecx + 0x1f0], eax
mov eax, dword [edi + 0xc]
mov dword [ecx + 0x1f4], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x1f8], eax
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x1fc], eax
jne 0x50c7c5
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x100]
push ecx
push ebx
push eax
call fcn.00512deb
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd4], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
jne 0x50f45c
mov edi, dword [ebp - 0xe4]
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xdc]
jmp 0x50ac27
mov edi, dword [ebp - 0xe4]
push ebx
push str.no_such_savepoint:__s
push eax
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0x10
mov dword [ebp - 0xd4], 1
jmp 0x50ac0f
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0xf0], edx
test edx, edx
je 0x50cab2
cmp byte [ecx + 0x3e], 0
jne 0x50cab2
test esi, esi
jne 0x50cab2
cmp dword [ecx + 0x94], esi
jle 0x50cab2
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x50c6fb
movzx eax, byte [ecx + 0x3e]
cmp edx, eax
jne 0x50f399
test esi, esi
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push dword [ebp - 0xd8]
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0xc
jmp 0x50ca77
cmp dword [ebx + 8], 0
je 0x50caff
test dword [ecx + 0x18], 0x2000000
jne 0x50f41f
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x104], edi
test edi, edi
je 0x50cc44
push dword [ebx + 8]
push edi
call fcn.004f31ad
pop ecx
pop ecx
push 5
mov ecx, eax
pop edx
mov dword [ebp - 0xd4], ecx
cmp ecx, edx
je 0x50f426
test ecx, ecx
jne 0x50f450
cmp dword [ebx + 8], ecx
je 0x50cc15
mov esi, dword [ebp - 0xe4]
lea eax, [edx + 0x7b]
test byte [esi + 0x58], al
je 0x50cc15
mov edx, dword [ebp - 0xd8]
cmp byte [edx + 0x3e], cl
je 0x50cb78
cmp dword [edx + 0x90], 1
jle 0x50cc15
cmp dword [esi + 0x68], ecx
jne 0x50cb92
mov eax, dword [edx + 0x1e8]
inc dword [edx + 0x1ec]
add eax, dword [edx + 0x1ec]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x68]
dec eax
push eax
push ecx
push edx
call fcn.00512deb
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50cbdf
push dword [ebp - 0x104]
mov esi, dword [esi + 0x68]
mov edi, dword [edi + 4]
call fcn.004f3b61
push esi
push dword [edi]
call fcn.00500ea2
mov edi, dword [ebp - 0x104]
push edi
mov dword [ebp - 0xd4], eax
call fcn.004f42d1
mov esi, dword [ebp - 0xe4]
add esp, 0x10
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0x1f0]
mov dword [esi + 0x98], eax
mov eax, dword [ecx + 0x1f4]
mov dword [esi + 0x9c], eax
mov eax, dword [ecx + 0x1f8]
mov dword [esi + 0xa0], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0xa4], eax
lea eax, [ebp - 0x180]
push eax
push 1
push edi
call fcn.004f3c58
mov edx, dword [ebp - 0xd8]
add esp, 0xc
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x180]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x50cc4e
xor esi, esi
xor eax, eax
mov dword [ebp - 0x180], esi
cmp byte [ebx + 3], 0
je 0x50ae1b
cmp esi, dword [ebx + 0xc]
jne 0x50cc66
cmp eax, dword [ebx + 0x10]
je 0x50ae1b
mov edi, dword [ebp - 0xe4]
push dword [edi + 0x2c]
push edx
call fcn.004f6f34
push str.database_schema_has_changed
push dword [ebp - 0xd8]
call fcn.004f717b
mov edx, dword [ebp - 0xd8]
add esp, 0x10
mov dword [edi + 0x2c], eax
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [edx + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x50ccac
push dword [ebx + 4]
push edx
call fcn.00504ddf
pop ecx
pop ecx
or dword [edi + 0x58], 0x20
mov ecx, dword [ebp - 0xd8]
push 0x11
mov dword [ebp - 0xd4], 0x11
pop eax
jmp 0x50ca4d
mov ecx, dword [ebx + 4]
lea eax, [ebp - 0x1a4]
push eax
mov eax, dword [ebp - 0xd8]
add ecx, ecx
push dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004f3c58
mov eax, dword [ebp - 0x1a4]
cdq
add esp, 0xc
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x50ab63
imul edi, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
add edi, dword [ebp - 0xe8]
push edi
call fcn.00510bcf
push dword [edi + 0x10]
push dword [ebx + 8]
push dword [esi + 4]
call fcn.004f529f
add esp, 0x10
mov dword [ebp - 0xd4], eax
xor edx, edx
inc edx
push 2
cmp dword [ebx + 8], edx
jne 0x50cd4c
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0x10]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xd8]
pop eax
or dword [ecx + 0x18], eax
jmp 0x50cd61
pop eax
cmp dword [ebx + 8], eax
jne 0x50cd5b
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0x10]
mov byte [ecx + 0x4c], al
mov ecx, dword [ebp - 0xd8]
cmp dword [ebx + 4], edx
jne 0x50c7c5
push ecx
call fcn.004f8519
mov edi, dword [ebp - 0xe4]
add esp, 4
and dword [edi + 0x58], 0xffffffdf
jmp 0x50ac15
test byte [edi + 0x58], 0x20
je 0x50cd96
push 4
pop eax
mov dword [ebp - 0xd4], eax
jmp 0x50ca53
mov ecx, dword [ebx + 8]
xor edi, edi
mov esi, dword [ebx + 0xc]
mov eax, esi
and dword [ebp - 0x104], edi
mov dword [ebp - 0xec], ecx
mov ecx, dword [ebp - 0xd8]
shl eax, 4
mov dword [ebp - 0xf0], esi
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x124], ecx
mov ecx, dword [ebp - 0xec]
cmp dl, 0x35
jne 0x50cdf2
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x118], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edx + 0x57]
jae 0x50cdf8
mov byte [edx + 0x57], al
jmp 0x50cdf8
and dword [ebp - 0x118], edi
push 2
pop eax
test byte [ebx + 3], al
je 0x50ce2a
imul esi, ecx, 0x28
add esi, dword [ebp - 0xe8]
push esi
call fcn.00510bcf
pop ecx
mov ecx, dword [esi + 0x10]
push 2
pop eax
mov dword [ebp - 0xec], ecx
cmp ecx, eax
jl 0x50f43f
mov esi, dword [ebp - 0xf0]
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x50ce46
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x104], eax
movzx edi, word [eax + 8]
movzx eax, word [eax + 6]
add edi, eax
jmp 0x50ce4d
cmp al, 0xf2
jne 0x50ce4d
mov edi, dword [ebx + 0x10]
push 1
push esi
push edi
push dword [ebx + 4]
mov edi, dword [ebp - 0xe4]
push edi
call fcn.004dc147
mov esi, eax
add esp, 0x14
test esi, esi
je 0x50f511
mov edi, dword [ebp - 0x104]
push 8
pop eax
push dword [esi]
or dword [esi + 0x1c], eax
push edi
push dword [ebp - 0x118]
mov byte [esi + 0x19], 1
push dword [ebp - 0xec]
push dword [ebp - 0x124]
call fcn.004f3858
mov dword [ebp - 0xd4], eax
add esp, 0x14
mov eax, dword [esi]
mov dword [esi + 8], edi
mov cl, byte [ebx + 3]
and cl, 1
mov byte [eax + 0x52], cl
xor eax, eax
cmp byte [ebx + 1], 0xfa
push 4
setne al
shl eax, 2
pop ecx
xor eax, dword [esi + 0x1c]
and eax, ecx
xor dword [esi + 0x1c], eax
jmp 0x50ae1b
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.004dc147
mov esi, eax
add esp, 0x14
test esi, esi
je 0x50f511
xor eax, eax
lea edi, [esi + 4]
inc eax
or dword [esi + 0x1c], eax
mov byte [esi + 0x19], al
movzx eax, byte [ebx + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [ebp - 0xd8]
push edi
push eax
push 0
push dword [eax]
call fcn.004f4803
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50cfb6
push 1
push dword [edi]
call fcn.004f31ad
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50cfb6
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf0], eax
test eax, eax
je 0x50cf97
movzx eax, byte [ebx + 3]
push 2
pop ecx
or eax, ecx
push eax
lea eax, [ebp - 0x1a8]
push eax
push dword [edi]
call fcn.004f382c
add esp, 0xc
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50cf91
push dword [esi]
mov eax, dword [ebp - 0xf0]
push eax
push 1
push dword [ebp - 0x1a8]
mov dword [esi + 8], eax
push dword [edi]
call fcn.004f3858
add esp, 0x14
mov dword [ebp - 0xd4], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x50cfb6
push dword [esi]
xor eax, eax
push 0
inc eax
push eax
push eax
push dword [edi]
call fcn.004f3858
add esp, 0x14
mov dword [ebp - 0xd4], eax
push 4
pop eax
or dword [esi + 0x1c], eax
push 8
xor eax, eax
pop ecx
cmp byte [ebx + 3], cl
setne al
shl eax, 3
jmp 0x50cebd
push 1
push 0xffffffffffffffff
push dword [ebx + 8]
push dword [ebx + 4]
push edi
call fcn.004dc147
add esp, 0x14
test eax, eax
je 0x50f511
mov ecx, dword [ebx + 0x10]
push eax
push dword [ebp - 0xd8]
mov dword [eax + 8], ecx
call fcn.005120b5
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x50ab63
push 0
push 0xffffffffffffffff
push dword [ebx + 0xc]
push dword [ebx + 4]
push edi
call fcn.004dc147
add esp, 0x14
test eax, eax
je 0x50f511
mov byte [eax + 0x19], 1
mov ecx, dword [ebx + 8]
push 4
mov dword [eax + 0x10], ecx
pop ecx
or dword [eax + 0x1c], ecx
jmp 0x50ab63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
push dword [eax + ecx*4]
push edi
call fcn.0050fc2b
mov eax, dword [edi + 0x38]
pop ecx
pop ecx
mov ecx, dword [ebx + 4]
and dword [eax + ecx*4], 0
jmp 0x50ab63
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
movzx edx, byte [ebx]
push 4
mov dword [ebp - 0xf4], edx
mov esi, dword [eax + ecx*4]
pop eax
mov byte [esi + 0x19], 0
test byte [esi + 0x1c], al
je 0x50d18a
imul edi, dword [ebx + 0xc], 0x28
add edi, dword [ebp - 0xe8]
push edi
call fcn.004dce13
push edi
call fcn.00510142
pop ecx
pop ecx
push 4
mov dword [ebp - 0x104], eax
mov byte [esi + 0x1a], 0
movzx ecx, word [edi + 0x1c]
pop eax
mov dword [ebp - 0xec], edx
test al, cl
jne 0x50d0fe
push 8
pop eax
test al, cl
jne 0x50d0be
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
jmp 0x50ae1b
mov edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x104]
call fcn.0057c8b0
movsd xmm1, qword [edi + 8]
comisd xmm0, xmm1
jbe 0x50d0e7
mov eax, dword [ebp - 0xf4]
test al, 1
jne 0x50d0fe
dec eax
jmp 0x50d0f8
comisd xmm1, xmm0
jbe 0x50d0fe
mov eax, dword [ebp - 0xf4]
test al, 1
je 0x50d0fe
inc eax
mov dword [ebp - 0xf4], eax
mov edi, dword [ebp - 0x104]
lea eax, [ebp - 0x120]
push eax
xor ecx, ecx
push ecx
push dword [ebp - 0xec]
push edi
push ecx
push dword [esi]
call fcn.004f437a
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
xor edx, edx
cmp dword [ebp - 0x120], edx
jne 0x50d14a
mov eax, dword [ebp - 0xec]
mov byte [esi + 0x1a], 1
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], eax
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf4]
mov byte [esi + 0x1b], dl
mov dword [esi + 0x44], edx
mov ecx, dword [ebp - 0x120]
cmp eax, 0x3d
jl 0x50d21f
test ecx, ecx
js 0x50d209
jne 0x50d17e
cmp eax, 0x3e
je 0x50d209
and dword [ebp - 0x120], 0
jmp 0x50ac0f
mov ecx, dword [ebx + 0x10]
mov eax, dword [esi + 8]
mov dword [ebp - 0x234], eax
lea eax, [edx - 1]
and al, 1
mov word [ebp - 0x230], cx
neg al
mov ecx, 0x4000
sbb al, al
and al, 0xfe
inc al
mov byte [ebp - 0x22e], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0x22c], eax
test word [eax + 0x1c], cx
je 0x50d1d2
push eax
call fcn.005108e2
pop ecx
lea eax, [ebp - 0x120]
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x234]
push eax
push dword [esi]
call fcn.004f437a
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
xor edx, edx
mov byte [esi + 0x1a], dl
jmp 0x50d150
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], edx
push eax
push dword [esi]
call fcn.004f46e0
jmp 0x50d251
test ecx, ecx
jg 0x50d23d
jne 0x50d22a
cmp eax, 0x3b
je 0x50d23d
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x51], 1
setne cl
mov dword [ebp - 0x120], ecx
jmp 0x50d267
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], edx
push eax
push dword [esi]
call fcn.004f4d7d
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
mov byte [esi + 0x1a], 0
cmp dword [ebp - 0x120], 0
jmp 0x50baa6
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov byte [esi + 0x19], 0
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0xe8]
push eax
call fcn.00510142
pop ecx
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov word [esi + 0x1a], 0x100
jmp 0x50ac0f
imul esi, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x124], edx
add esi, dword [ebp - 0xe8]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x118], eax
cmp dword [ebx + 0x10], edx
jle 0x50d33e
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c8], eax
xor eax, eax
mov cx, word [ebx + 0x10]
mov word [ebp - 0x1c4], cx
mov dword [ebp - 0x1c0], esi
mov dword [ebp - 0x104], edx
cmp ax, cx
jae 0x50d330
xor edi, edi
mov ebx, 0x4000
lea eax, [edi + esi]
test word [eax + 0x1c], bx
je 0x50d319
push eax
call fcn.005108e2
mov esi, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x104]
pop ecx
mov cx, word [ebp - 0x1c4]
inc edx
movzx eax, cx
add edi, 0x28
mov dword [ebp - 0x104], edx
cmp edx, eax
jl 0x50d2f6
mov ebx, dword [ebp - 0xec]
mov esi, dword [ebp - 0x118]
lea edi, [ebp - 0x1c8]
jmp 0x50d37e
lea ecx, [ebp - 0x124]
push ecx
push 0xbf
lea ecx, [ebp - 0xc4]
push ecx
push dword [eax + 8]
call fcn.0050a39d
mov edi, eax
add esp, 0x10
test edi, edi
je 0x50f50b
push edi
push dword [esi + 4]
push dword [esi + 0x18]
mov esi, dword [ebp - 0x118]
push dword [esi + 8]
call fcn.00511a64
add esp, 0x10
xor eax, eax
mov byte [edi + 6], al
cmp byte [ebx], 0x40
jne 0x50d3b9
movzx edx, word [ebp - 0x1c4]
mov ecx, eax
test edx, edx
jle 0x50d3b9
mov eax, dword [ebp - 0x1c0]
add eax, 0x1c
test byte [eax], 1
jne 0x50d3ad
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x50d39e
jmp 0x50d3b7
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
xor eax, eax
lea ecx, [ebp - 0x1ac]
push ecx
push eax
push eax
push eax
push edi
push dword [esi]
call fcn.004f437a
add esp, 0x18
mov ecx, eax
cmp dword [ebx + 0x10], 0
mov dword [ebp - 0xd4], ecx
jne 0x50d3f5
push dword [ebp - 0x124]
push dword [ebp - 0xd8]
call fcn.004f6f34
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd4]
test ecx, ecx
jne 0x50ae1b
mov eax, dword [ebp - 0x1ac]
test eax, eax
mov edi, dword [ebp - 0xe4]
mov dword [esi + 0xc], eax
sete cl
mov al, 1
sub al, cl
mov byte [esi + 0x19], al
xor eax, eax
mov byte [esi + 0x1b], al
mov dword [esi + 0x44], eax
cmp byte [ebx], 0x42
mov esi, dword [ebp - 0xe0]
je 0x50be7a
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
jmp 0x50bea4
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul esi, dword [ebx + 0xc], 0x28
mov edi, dword [eax + ecx*4]
xor eax, eax
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x104], eax
add esi, dword [ebp - 0xe8]
push ecx
push eax
push dword [esi + 0x14]
push dword [esi + 0x10]
push eax
push dword [edi]
call fcn.004f437a
mov ecx, dword [ebp - 0x104]
add esp, 0x18
mov dword [ebp - 0xd4], eax
test ecx, ecx
mov eax, dword [esi + 0x10]
mov dword [edi + 0x38], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x3c], eax
sete al
mov byte [edi + 0x1a], al
xor eax, eax
mov byte [edi + 0x19], al
mov dword [edi + 0x44], eax
mov byte [edi + 0x1b], al
test ecx, ecx
je 0x50d4a9
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov dword [edi + 0xc], ecx
jmp 0x50ae1b
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x14], eax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x50ab63
mov ecx, dword [ebx + 4]
xorps xmm0, xmm0
mov eax, dword [edi + 0x38]
and dword [ebp - 0x114], 0
movlpd qword [ebp - 0x12c], xmm0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
cmp dword [eax], 0
je 0x50d714
push 2
pop ecx
test byte [eax + 0x1c], cl
jne 0x50d58a
lea ecx, [ebp - 0x114]
push ecx
push dword [eax]
call fcn.004f4281
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
cmp dword [ebp - 0x114], eax
je 0x50d53d
xor edi, edi
inc edi
xor esi, esi
jmp 0x50d596
lea eax, [ebp - 0x12c]
push eax
mov eax, dword [ebp - 0xfc]
push dword [eax]
call fcn.004f424e
mov esi, dword [ebp - 0x128]
mov edi, dword [ebp - 0x12c]
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
cmp esi, 0x7fffffff
jl 0x50d582
jg 0x50d574
cmp edi, 0xffffffff
jb 0x50d582
mov eax, dword [ebp - 0xfc]
push 2
pop ecx
or dword [eax + 0x1c], ecx
jmp 0x50d596
add edi, 1
adc esi, 0
jmp 0x50d596
mov esi, dword [ebp - 0x128]
mov edi, dword [ebp - 0x12c]
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x50d613
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0xb0]
test eax, eax
jne 0x50d604
imul ebx, edx, 0x28
add ebx, dword [ebp - 0xe8]
push ebx
call fcn.00510bcf
mov eax, dword [ebx + 0x10]
pop ecx
mov ecx, dword [ebx + 0x14]
cmp eax, 0xffffffff
jne 0x50d5d4
cmp ecx, 0x7fffffff
je 0x50f4af
mov edx, dword [ebp - 0xfc]
test byte [edx + 0x1c], 2
jne 0x50f4af
add eax, 1
push 0
pop edx
adc ecx, edx
cmp esi, ecx
jg 0x50d5fa
jl 0x50d5f6
cmp edi, eax
jae 0x50d5fa
mov edi, eax
mov esi, ecx
mov dword [ebx + 0x10], edi
mov dword [ebx + 0x14], esi
jmp 0x50d615
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x50d602
imul ebx, edx, 0x28
add ebx, dword [eax + 0xc]
jmp 0x50d5b6
xor edx, edx
mov eax, dword [ebp - 0xfc]
push 2
pop ecx
test byte [eax + 0x1c], cl
je 0x50d708
mov esi, dword [ebp - 0x13c]
lea ecx, [ebp - 0x114]
mov edi, dword [ebp - 0x138]
and esi, 0x3fffffff
push ecx
add edi, 1
mov ebx, edx
push edx
adc esi, edx
mov dword [ebp - 0x12c], edi
push esi
push edi
push edx
push dword [eax]
mov dword [ebp - 0x128], esi
call fcn.004f437a
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50d702
mov eax, dword [ebp - 0x114]
test eax, eax
jne 0x50d6f6
inc ebx
cmp ebx, 0x64
jge 0x50d6f6
lea eax, [ebp - 0x12c]
push eax
push 8
pop eax
push eax
call fcn.004d845a
mov edi, dword [ebp - 0x12c]
pop ecx
pop ecx
cmp ebx, 5
jge 0x50d6aa
and edi, 0xffffff
xor eax, eax
mov esi, eax
jmp 0x50d6b8
mov esi, dword [ebp - 0x128]
and esi, 0x3fffffff
xor eax, eax
add edi, 1
lea ecx, [ebp - 0x114]
push ecx
push eax
adc esi, eax
mov dword [ebp - 0x12c], edi
push esi
push edi
push eax
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x128], esi
push dword [eax]
call fcn.004f437a
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
je 0x50d671
mov eax, dword [ebp - 0x114]
test ecx, ecx
jne 0x50d702
test eax, eax
je 0x50f4af
mov eax, dword [ebp - 0xfc]
and dword [eax + 0x44], 0
mov word [eax + 0x1a], 0
jmp 0x50d720
mov esi, dword [ebp - 0x128]
mov edi, dword [ebp - 0x12c]
mov eax, dword [ebp - 0xe0]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], esi
jmp 0x50ae1b
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add esi, dword [ebp - 0xe8]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xec], eax
cmp dl, 0x46
jne 0x50d769
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [ebp - 0xe8]
mov edi, dword [eax + ecx + 0x10]
mov eax, dword [eax + ecx + 0x14]
mov dword [ebp - 0x104], eax
jmp 0x50d777
mov eax, dword [ebx + 0xc]
cdq
mov edi, eax
mov dword [ebp - 0x104], edx
mov eax, edx
xor edx, edx
inc edx
test byte [ebx + 3], dl
je 0x50d788
mov ecx, dword [ebp - 0xe4]
inc dword [ecx + 0x5c]
push 2
pop ecx
test byte [ebx + 3], cl
je 0x50d7a8
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x13c], eax
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x24], eax
movzx ecx, word [esi + 0x1c]
xor eax, eax
test dl, cl
je 0x50d7b8
mov dword [esi + 4], eax
mov dword [esi + 0x18], eax
mov dl, byte [ebx + 3]
test dl, 0x10
je 0x50d7c9
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0xc]
test ecx, 0x4000
je 0x50d7d6
mov ecx, dword [esi + 0x10]
jmp 0x50d7d8
xor ecx, ecx
push eax
movzx eax, dl
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0xec]
push ecx
push dword [esi + 0x18]
push dword [esi + 4]
mov esi, dword [ebp - 0x104]
push esi
push edi
push 0
push dword [eax]
call fcn.004f3d5d
mov ecx, eax
add esp, 0x24
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0xd4], ecx
and dword [eax + 0x44], 0
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
mov word [eax + 0x1a], 0
jne 0x50c7c5
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x50c7c5
cmp dword [ebx + 0x10], 0
je 0x50c7c5
movsx ecx, byte [eax + 0x18]
push esi
mov esi, dword [ebp - 0xd8]
add ecx, ecx
push edi
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 4
pop eax
test byte [ebx + 3], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
push dword [esi + 0xc4]
call edx
mov edi, dword [ebp - 0xe4]
add esp, 0x18
jmp 0x50acce
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
push esi
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x38]
mov dword [ebp - 0xf0], eax
call fcn.0050a7fc
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
push dword [esi]
call fcn.004f3964
and dword [esi + 0x44], 0
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
jne 0x50d90c
mov edx, dword [ecx + 0xc8]
test edx, edx
je 0x50d90c
cmp dword [ebx + 0x10], 0
je 0x50d90c
push 4
pop eax
test byte [esi + 0x1c], al
je 0x50d90c
movsx ecx, byte [esi + 0x18]
push dword [ebp - 0xf0]
mov esi, dword [ebp - 0xd8]
add ecx, ecx
push edi
push dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xc4]
call edx
add esp, 0x18
mov ecx, esi
test byte [ebx + 8], 1
mov edi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xdc]
je 0x50ac27
inc dword [edi + 0x5c]
jmp 0x50ac27
mov eax, dword [edi + 0x5c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
and dword [edi + 0x5c], 0
jmp case.default.0x50ab25
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul esi, dword [ebx + 0xc], 0x28
mov edi, dword [eax + ecx*4]
lea eax, [ebp - 0x194]
push eax
add esi, dword [ebp - 0xe8]
push dword [edi + 0x40]
call fcn.00516d32
lea ecx, [ebp - 0x198]
push ecx
push dword [ebp - 0x194]
push eax
push dword [esi + 0x18]
push dword [esi + 4]
push dword [ebx + 0x10]
push edi
call fcn.005166aa
and dword [ebp - 0xd4], 0
add esp, 0x24
cmp dword [ebp - 0x198], 0
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xe0]
je 0x50ec4c
jmp 0x50bab8
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
add esi, dword [ebp - 0xe8]
push esi
push dword [eax + ecx*4]
mov dword [ebp - 0xe0], esi
call fcn.00512535
jmp 0x50cff6
imul eax, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + ecx*4]
push ebx
mov edi, dword [ebx]
call fcn.0050a7fc
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
push 4
pop eax
test byte [ebx + 0x1c], al
jne 0x50da44
lea eax, [ebp - 0x1d8]
push eax
push edi
call fcn.004f424e
pop ecx
pop ecx
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ecx + 0x58]
cdq
cmp dword [ebp - 0x1d4], edx
jg 0x50f4bf
mov esi, dword [ebp - 0x1d8]
jl 0x50da5d
cmp esi, eax
jmp 0x50da57
push edi
call fcn.004e77c9
mov esi, dword [edi + 0x24]
pop ecx
mov ecx, dword [ebp - 0xd8]
cmp esi, dword [ecx + 0x58]
ja 0x50f4bf
mov eax, dword [ebp - 0xe0]
push 0
push esi
push eax
call fcn.00510a6c
add esp, 0xc
test eax, eax
jne 0x50f50b
mov ecx, dword [ebp - 0xe0]
mov edx, 0xbe10
push 0x10
mov ax, word [ecx + 0x1c]
and ax, dx
mov dword [ecx + 0x18], esi
pop edx
or ax, dx
mov word [ecx + 0x1c], ax
push 4
pop eax
test byte [ebx + 0x1c], al
jne 0x50dab1
xor eax, eax
push eax
push dword [ecx + 4]
push esi
push eax
push edi
call fcn.004db62d
add esp, 0x14
jmp 0x50dac0
push dword [ecx + 4]
push esi
push 0
push edi
call fcn.004f3928
add esp, 0x10
mov esi, dword [ebp - 0xe0]
mov dword [ebp - 0xd4], eax
jmp 0x50c693
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x50daee
mov esi, dword [ebp - 0xe0]
xor eax, eax
inc eax
jmp 0x50b86f
cmp byte [esi + 0x1b], 0
je 0x50db02
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x170], eax
mov eax, dword [esi + 0x34]
jmp 0x50db52
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x50db2a
mov esi, dword [ecx]
lea edx, [ebp - 0x170]
push edx
push ecx
mov eax, dword [esi]
call dword [eax + 0x30]
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.00512c2d
add esp, 0x10
jmp 0x50db70
push esi
call fcn.0050a7fc
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
cmp byte [esi + 0x1a], al
je 0x50db5a
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x170], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x16c], eax
jmp 0x50db70
lea eax, [ebp - 0x170]
push eax
push dword [esi]
call fcn.004f424e
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x170]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x16c]
jmp 0x50acef
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
and dword [eax + 0x44], 0
cmp dword [eax], 0
mov word [eax + 0x19], 1
je 0x50ab63
push dword [eax]
call fcn.004f3397
jmp 0x50b6d7
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
and dword [ebp - 0x118], 0
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x118]
push eax
push dword [esi]
call fcn.004f4281
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x118]
mov byte [esi + 0x19], al
mov word [esi + 0x1a], cx
mov dword [esi + 0x44], ecx
mov ecx, dword [ebx + 8]
test ecx, ecx
jle 0x50ac0f
mov esi, dword [ebp - 0xe0]
test eax, eax
je 0x50ab63
lea eax, [ecx - 1]
jmp 0x50ab5d
inc dword [edi + 0x74]
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xf4], eax
cmp dword [esi + 0x40], 0
je 0x50dc50
lea eax, [ebp - 0xf4]
push eax
push esi
push dword [ebp - 0xd8]
call fcn.00512317
mov dword [ebp - 0xd4], eax
add esp, 0xc
mov eax, dword [ebp - 0xf4]
jmp 0x50dc96
mov edi, dword [esi]
push edi
call fcn.004e977d
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50dc80
cmp byte [edi + 0x51], al
jne 0x50dc6d
inc eax
jmp 0x50dc86
push edi
mov dword [ebp - 0xec], eax
call fcn.004e9697
pop ecx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xec]
and dword [esi + 0x44], 0
mov edi, dword [ebp - 0xe4]
mov word [esi + 0x1a], 0
mov byte [esi + 0x19], al
test eax, eax
jmp 0x50baa6
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x15c]
and dword [ebp - 0x15c], 0
push eax
push esi
push dword [ebp - 0xd8]
call fcn.00512127
add esp, 0xc
jmp 0x50dcf8
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x50ab63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x15c]
push eax
push dword [esi]
call dword [ebx + 0x10]
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
and dword [esi + 0x44], 0
cmp dword [ebp - 0x15c], 0
jne 0x50dd23
mov byte [esi + 0x19], 0
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
movzx eax, byte [ebx + 3]
inc dword [edi + eax*4 + 0x6c]
jmp 0x50dd27
mov byte [esi + 0x19], 1
mov byte [esi + 0x1a], 0
jmp 0x50efe0
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul esi, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
add esi, dword [ebp - 0xe8]
test byte [ebx + 3], 1
mov ecx, dword [edi]
mov dword [ebp - 0xf0], ecx
je 0x50dd5a
mov eax, dword [ebp - 0xe4]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x50dd7c
push esi
call fcn.005108e2
pop ecx
mov ecx, dword [ebp - 0xf0]
xor edx, edx
mov dword [ebp - 0xd4], eax
jmp 0x50dd86
xor edx, edx
mov eax, edx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x50f282
cmp dword [edi + 0x40], edx
je 0x50dda8
push esi
push edi
push dword [ebp - 0xd8]
call fcn.00512595
add esp, 0xc
jmp 0x50c1fc
push 0x10
pop eax
test byte [ebx + 3], al
je 0x50ddb5
mov eax, dword [edi + 0xc]
jmp 0x50ddb7
mov eax, edx
push eax
push dword [ebx + 0xc]
mov eax, dword [esi + 0x18]
push edx
push edx
push 0x6090cf
cdq
push edx
push eax
push dword [esi + 4]
push ecx
call fcn.004f3d5d
add esp, 0x24
mov dword [ebp - 0xd4], eax
and dword [edi + 0x44], 0
jmp 0x50ae1b
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [ebp - 0x248], eax
mov ax, word [ebx + 0xc]
mov word [ebp - 0x244], ax
imul eax, dword [ebx + 8], 0x28
mov byte [ebp - 0x242], cl
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0x240], eax
lea eax, [ebp - 0x19c]
push eax
push ecx
push ecx
push ecx
lea eax, [ebp - 0x248]
push eax
push edi
call fcn.004f437a
mov ecx, eax
add esp, 0x18
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50de55
cmp dword [ebp - 0x19c], eax
jne 0x50de55
push edi
call fcn.004f3964
pop ecx
mov dword [ebp - 0xd4], eax
and dword [esi + 0x44], 0
jmp 0x50ae1b
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [ebp - 0xe0]
inc ecx
push esi
mov edi, dword [esi]
mov word [eax + 0x1c], cx
call fcn.0050a7fc
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50f450
cmp byte [esi + 0x19], al
jne 0x50ae1b
lea eax, [ebp - 0x168]
xorps xmm0, xmm0
push eax
push edi
push dword [ebp - 0xd8]
movlpd qword [ebp - 0x168], xmm0
call fcn.0051004a
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd4], ecx
test ecx, ecx
mov ecx, dword [ebp - 0xd8]
jne 0x50f456
mov esi, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x168]
push 4
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x164]
mov dword [esi + 0x14], eax
pop eax
mov word [esi + 0x1c], ax
mov edi, dword [ebp - 0xe4]
jmp case.default.0x50ab25
mov eax, dword [edi + 0x38]
cmp dl, 0x70
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x25c], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0x258], ax
sbb al, al
and dword [ebp - 0xf8], 0
mov byte [ebp - 0x256], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0xf8]
push eax
lea eax, [ebp - 0x25c]
push eax
push ecx
call fcn.0050ffb0
add esp, 0xc
mov dword [ebp - 0xd4], eax
test byte [ebx], 1
mov eax, dword [ebp - 0xf8]
jne 0x50df62
neg eax
jmp 0x50df63
inc eax
mov ecx, dword [ebp - 0xd8]
test eax, eax
jle case.default.0x50ab25
jmp 0x50bab8
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x50dfaf
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x50dfa2
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x50dfa2
and cl, 0xc
cmp cl, 8
jae 0x50dfa2
cmp dword [eax + 0x4c], 0
jl 0x50dfa2
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x50df7f
mov ecx, dword [ebp - 0xd8]
xor eax, eax
inc eax
mov word [esi + 0x1c], ax
cmp edx, eax
jle 0x50dfcc
push 6
pop eax
mov dword [ebp - 0xd4], eax
mov byte [edi + 0x56], 2
jmp 0x50ca53
mov eax, dword [ebx + 0xc]
mov ecx, eax
and dword [ebp - 0x100], 0
mov esi, dword [ebx + 4]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xd8]
shl ecx, 4
mov dword [ebp - 0xf0], ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx + 4]
push edi
call fcn.004f3b61
lea eax, [ebp - 0x100]
push eax
push esi
push edi
call fcn.004de644
push edi
mov dword [ebp - 0xd4], eax
call fcn.004f42d1
mov ecx, dword [ebp - 0xe0]
add esp, 0x14
cmp dword [ebp - 0xd4], 0
mov esi, dword [ebp - 0x100]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, esi
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne 0x50ae1b
test esi, esi
je 0x50ae1b
mov eax, dword [ebp - 0xd8]
mov edi, dword [ebx + 4]
mov edx, dword [eax + 0x10]
add edx, dword [ebp - 0xf0]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x50e072
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x50e070
mov dword [ecx + 0x20], edi
mov eax, dword [eax]
test eax, eax
jne 0x50e065
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x50e08b
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x50e089
mov dword [ecx + 0x2c], edi
mov eax, dword [eax]
test eax, eax
jne 0x50e07e
mov al, byte [ebp - 0x104]
inc al
mov byte [ebp - 0x119], al
jmp 0x50ae1b
and dword [ebp - 0xfc], 0
lea eax, [ebp - 0xfc]
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [ebp - 0xd8]
add ecx, ecx
push dword [ebx + 4]
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004f33b2
add esp, 0xc
mov dword [ebp - 0xd4], eax
cmp dword [ebx + 0xc], 0
je 0x50ab63
mov eax, dword [ebp - 0xfc]
add dword [edi + 0x5c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x50ab63
mov ebx, dword [ebp - 0xe8]
imul ecx, ecx, 0x28
cdq
add dword [ecx + ebx + 0x10], eax
adc dword [ecx + ebx + 0x14], edx
jmp 0x50ab63
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + ecx*4]
cmp dword [eax + 0x40], 0
je 0x50e133
push dword [eax + 0x40]
push dword [ebp - 0xd8]
call fcn.00512297
pop ecx
jmp 0x50b6d7
mov eax, dword [eax]
push 0
push dword [eax + 0x44]
push dword [eax]
call fcn.004f33b2
add esp, 0xc
jmp 0x50cff8
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
and dword [ebp - 0xf0], 0
shl ecx, 4
add ecx, dword [eax + 0x10]
xor eax, eax
cmp dl, 0x76
setne al
inc eax
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ecx + 4]
call fcn.004f382c
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xf0]
jmp 0x50ccef
mov edx, dword [ebx + 4]
mov eax, str.sqlite_master
push dword [ebx + 0x10]
mov ebx, dword [ebp - 0xd8]
cmp edx, 1
mov ecx, str.sqlite_temp_master
mov dword [ebp - 0x1f0], edx
cmovne ecx, eax
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0x1f8], eax
add edx, edx
lea eax, [edi + 0x2c]
mov dword [ebp - 0x1f4], eax
mov eax, dword [ebx + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.004ff615
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x50e1eb
mov dword [ebp - 0xd4], 7
mov ecx, ebx
jmp 0x50e23a
xor eax, eax
mov byte [ebx + 0x89], 1
push eax
mov dword [ebp - 0x1ec], eax
lea eax, [ebp - 0x1f8]
push eax
push fcn.004fd959
push esi
push ebx
call fcn.004d5b5c
test eax, eax
push esi
cmove eax, dword [ebp - 0x1ec]
push ebx
mov dword [ebp - 0xd4], eax
call fcn.004f6f34
mov eax, dword [ebp - 0xd4]
mov ecx, ebx
add esp, 0x1c
mov byte [ecx + 0x89], 0
test eax, eax
je 0x50e249
push ecx
call fcn.00504d8b
mov eax, dword [ebp - 0xd4]
pop ecx
mov ecx, ebx
cmp eax, 7
je 0x50f517
jmp 0x50ca4d
push dword [ebx + 4]
push ecx
call fcn.004f19c5
jmp 0x50cff6
mov edx, dword [ebx + 4]
push 0
push dword [ebx + 0x10]
shl edx, 4
add edx, dword [ecx + 0x10]
call fcn.00507e1b
pop ecx
push eax
push dword [ebx + 0x10]
mov eax, dword [edx + 0xc]
push 8
pop ecx
add eax, ecx
push eax
call fcn.004fd4bc
push eax
push dword [ebp - 0xd8]
call fcn.004f7989
mov ecx, dword [ebp - 0xd8]
add esp, 0x18
push 2
pop eax
or dword [ecx + 0x18], eax
jmp case.default.0x50ab25
push dword [ebx + 0x10]
push dword [ebx + 4]
push ecx
call fcn.005083af
jmp 0x50aea0
push dword [ebx + 0x10]
push dword [ebx + 4]
push ecx
call fcn.00508426
jmp 0x50aea0
mov eax, dword [ebx + 8]
mov dword [ebp - 0xf4], eax
lea eax, [eax*4 + 4]
push eax
push ecx
call fcn.004f6f91
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xf0], ecx
test ecx, ecx
je 0x50f511
imul edi, dword [ebx + 0xc], 0x28
xor eax, eax
imul esi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0xe8]
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x104], esi
cmp dword [ebp - 0xf4], eax
jle 0x50e360
mov ebx, dword [ebp - 0xf4]
mov edi, esi
mov esi, eax
push edi
call fcn.00510142
pop ecx
mov ecx, dword [ebp - 0xf0]
add edi, 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x50e32a
mov ebx, dword [ebp - 0xec]
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0xf8], esi
mov esi, dword [ebp - 0x104]
mov eax, dword [ebp - 0xf8]
and dword [ecx + eax*4], 0
lea eax, [ebp - 0x18c]
push eax
push dword [edi + 0x10]
mov eax, dword [ebp - 0xd8]
push dword [ebp - 0xf4]
push ecx
movzx ecx, byte [ebx + 3]
mov eax, dword [eax + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.004f3f58
push dword [ebp - 0xf0]
mov ebx, eax
push dword [ebp - 0xd8]
call fcn.004f6f34
mov eax, dword [ebp - 0x18c]
cdq
sub dword [edi + 0x10], eax
push esi
sbb dword [edi + 0x14], edx
call fcn.00510e77
add esp, 0x20
cmp dword [ebp - 0x18c], 0
je 0x50e3da
test ebx, ebx
je 0x50f50b
push fcn.004d838e
push 1
push 0xffffffffffffffff
push ebx
push esi
call fcn.00510f2d
add esp, 0x14
movzx eax, byte [ebp - 0x10c]
push eax
push esi
call fcn.0050a3fb
pop ecx
pop ecx
jmp 0x50ae1b
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xe8]
add edi, dword [ebp - 0xe8]
test byte [esi + 0x1c], 0x20
jne 0x50e41a
push esi
call fcn.00510ebe
test byte [esi + 0x1c], 0x20
pop ecx
je 0x50f50b
push dword [edi + 0x14]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00505229
add esp, 0xc
jmp 0x50ae1b
imul esi, dword [ebx + 4], 0x28
add esi, dword [ebp - 0xe8]
test byte [esi + 0x1c], 0x20
je 0x50e479
lea eax, [ebp - 0x1e0]
push eax
push dword [esi + 0x10]
call fcn.00505281
pop ecx
pop ecx
test eax, eax
je 0x50e479
imul eax, dword [ebx + 0xc], 0x28
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
add eax, dword [ebp - 0xe8]
push eax
call fcn.00510e53
add esp, 0xc
jmp 0x50efe0
push esi
call fcn.00510e77
mov eax, dword [ebx + 8]
dec eax
pop ecx
mov dword [ebp - 0xdc], eax
jmp 0x50efe0
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xf0], eax
add esi, dword [ebp - 0xe8]
add edi, dword [ebp - 0xe8]
test byte [esi + 0x1c], 0x20
jne 0x50e4c9
push esi
call fcn.00510ebe
test byte [esi + 0x1c], 0x20
pop ecx
je 0x50f50b
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x50e4ef
push dword [edi + 0x14]
push dword [edi + 0x10]
push eax
push dword [esi + 0x10]
call fcn.005052d7
add esp, 0x10
test eax, eax
jne 0x50d0af
mov eax, dword [ebp - 0xf0]
test eax, eax
js 0x50ae1b
jmp 0x50e41a
imul ecx, dword [ebx + 0xc], 0x28
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0xec], edx
add ecx, dword [ebp - 0xe8]
cmp byte [ebx + 3], 0
mov dword [ebp - 0xf0], ecx
je 0x50e540
mov eax, dword [edi + 0xb0]
mov edx, dword [edx + 0x14]
test eax, eax
je 0x50e53a
cmp dword [eax + 0x18], edx
je 0x50e532
mov eax, dword [eax + 4]
test eax, eax
jne 0x50e526
test eax, eax
jne 0x50ab63
mov edx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xd8]
mov eax, dword [edi + 0xb8]
cmp eax, dword [ebx + 0x80]
jl 0x50e577
push str.too_many_levels_of_trigger_recursion
lea eax, [edi + 0x2c]
mov dword [ebp - 0xd4], 1
push ebx
push eax
call fcn.0050718c
add esp, 0xc
mov ecx, ebx
jmp case.default.0x50ab25
test byte [ecx + 0x1c], 0x40
jne 0x50e6dc
mov edi, dword [edx + 8]
add edi, dword [edx + 0xc]
mov eax, dword [edx + 0x10]
imul ecx, edi, 0xa
add ecx, dword [edx + 0xc]
lea eax, [eax + ecx*4]
add eax, 0x48
push eax
push ebx
call fcn.004f7041
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x50f53f
mov ebx, dword [ebp - 0xf0]
push ebx
call fcn.00510d83
mov edx, dword [ebp - 0xec]
mov dword [ebx + 0x10], esi
pop ecx
mov ecx, dword [ebp - 0xe4]
push 0x40
pop eax
mov word [ebx + 0x1c], ax
mov dword [esi], ecx
mov dword [esi + 0x3c], edi
mov eax, dword [edx + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x24]
mov dword [esi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0xc8]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0xc4]
imul ecx, edi, 0x28
mov dword [esi + 0x38], eax
lea eax, [esi + 0x48]
add ecx, 0x48
add ecx, esi
cmp eax, ecx
je 0x50e643
mov edi, dword [ebp - 0xd8]
mov ebx, 0x80
mov word [eax + 0x1c], bx
mov dword [eax], edi
add eax, 0x28
cmp eax, ecx
jne 0x50e636
mov edi, dword [ebp - 0xe4]
inc dword [edi + 0xb8]
lea ecx, [esi + 0x20]
mov eax, dword [edi + 0xb0]
xor ebx, ebx
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x138]
mov dword [ecx], eax
mov eax, dword [ebp - 0x13c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x44], eax
mov dword [edi + 8], ecx
mov dword [edi + 0x5c], ebx
mov dword [edi + 0xb0], esi
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x1c], eax
movzx eax, word [esi + 0x40]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x1c]
inc eax
or dword [ebp - 0xdc], 0xffffffff
imul eax, eax, 0x28
mov dword [ebp - 0xe8], ecx
add ecx, eax
mov dword [edi + 0x38], ecx
mov eax, dword [edx]
mov dword [ebp - 0x160], eax
mov dword [edi + 4], eax
mov eax, dword [edx + 4]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
lea ecx, [ecx + eax*4]
mov dword [edi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push ebx
push ecx
mov dword [edi + 0xc4], eax
call fcn.00581fe0
add esp, 0xc
jmp 0x50ac0f
mov esi, dword [ecx + 0x10]
jmp 0x50e649
mov edx, dword [edi + 0xb0]
mov eax, 0x1000
push eax
imul ecx, dword [edx + 0x2c], 0x14
mov eax, dword [edx + 8]
mov eax, dword [ecx + eax + 4]
add eax, dword [ebx + 4]
imul eax, eax, 0x28
add eax, dword [edx + 0xc]
jmp 0x50afa2
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebx + 8]
cdq
je 0x50e727
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x50ab25
cmp dword [ebx + 4], 0
je 0x50e73e
add dword [ecx + 0x1f0], eax
adc dword [ecx + 0x1f4], edx
jmp case.default.0x50ab25
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x50ab25
cmp dword [ebx + 4], 0
je 0x50e778
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
jne case.default.0x50ab25
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jmp 0x50bea4
mov eax, dword [edi + 0x90]
or eax, dword [edi + 0x94]
jmp 0x50e761
mov eax, dword [edi + 0xb0]
test eax, eax
jne 0x50e7d9
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0xe8]
push edi
call fcn.00510bcf
imul esi, dword [ebx + 8], 0x28
add esi, dword [ebp - 0xe8]
push esi
call fcn.00510bcf
mov eax, dword [esi + 0x10]
pop ecx
pop ecx
mov ecx, dword [esi + 0x14]
cmp dword [edi + 0x14], ecx
jg 0x50ae1b
jl 0x50e7cc
cmp dword [edi + 0x10], eax
jae 0x50ae1b
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x50ae1b
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x50e7d7
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0xc]
jmp 0x50e79a
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0xe8]
cmp dword [eax + edx + 0x14], 0
jl case.default.0x50ab25
jg 0x50bab8
cmp dword [eax + edx + 0x10], 0
jbe case.default.0x50ab25
jmp 0x50bab8
imul eax, dword [ebx + 4], 0x28
mov edx, dword [ebp - 0xe8]
cmp dword [eax + edx + 0x14], 0
jg case.default.0x50ab25
jl 0x50bab8
cmp dword [eax + edx + 0x10], 0
jae case.default.0x50ab25
jmp 0x50bab8
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
cdq
add ecx, dword [ebp - 0xe8]
add dword [ecx + 0x10], eax
mov eax, dword [ecx + 0x10]
adc dword [ecx + 0x14], edx
or eax, dword [ecx + 0x14]
jmp 0x50d431
imul eax, dword [ebx + 8], 0x28
xor ecx, ecx
movzx edx, byte [ebx + 3]
mov esi, dword [edi + 0xc]
add eax, dword [ebp - 0xe8]
test edx, edx
jle 0x50e880
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x50e875
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x2a4], eax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0x274], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov dword [ebp - 0x29c], ecx
mov ecx, dword [ebp - 0x2a4]
mov word [ebp - 0x280], ax
xor eax, eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x27c], eax
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x270], eax
mov byte [ebp - 0x260], al
test byte [ecx + 2], 0x20
je 0x50e8ed
mov eax, dword [ebx - 4]
mov dword [ebp - 0x270], eax
push esi
push edx
lea eax, [ebp - 0x2a4]
push eax
call dword [ecx + 0x10]
add esp, 0xc
cmp dword [ebp - 0x264], 0
je 0x50e937
lea eax, [ebp - 0x29c]
push 1
push eax
call fcn.0050a117
push eax
push 0x60915c
push dword [ebp - 0xd8]
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
mov eax, dword [ebp - 0x264]
add esp, 0x18
mov dword [ebp - 0xd4], eax
cmp byte [ebp - 0x260], 0
je 0x50e95d
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x50e95d
imul eax, eax, 0x28
push 0
push 1
add eax, dword [ebp - 0xe8]
push eax
call fcn.00510e53
add esp, 0xc
lea eax, [ebp - 0x29c]
push eax
call fcn.00510d83
pop ecx
jmp 0x50ac0f
imul esi, dword [ebx + 4], 0x28
push dword [ebx + 0x10]
add esi, dword [ebp - 0xe8]
push esi
call fcn.0051093e
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test eax, eax
je 0x50e9ac
push esi
call fcn.004d4028
push eax
push 0x60915c
push dword [ebp - 0xd8]
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0x14
movzx eax, byte [ebp - 0x10c]
push eax
push esi
call fcn.0050a3fb
push esi
call fcn.00511178
add esp, 0xc
mov ecx, dword [ebp - 0xd8]
test eax, eax
jne 0x50f4d3
jmp 0x50ac15
and dword [ebp - 0xd0], 0
lea eax, [ebp - 0xc8]
or dword [ebp - 0xc8], 0xffffffff
or dword [ebp - 0xcc], 0xffffffff
push eax
lea eax, [ebp - 0xcc]
push eax
push dword [ebx + 8]
push dword [ebx + 4]
push ecx
call fcn.004f53c0
add esp, 0x14
mov dword [ebp - 0xd4], eax
cmp eax, 5
jne 0x50ea24
and dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 1
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [ebp - 0xe8]
xor edi, edi
mov eax, dword [ebp + edi*4 - 0xd0]
cdq
push edx
push eax
push esi
call fcn.00510e53
add esp, 0xc
add esi, 0x28
inc edi
cmp edi, 3
jl 0x50ea30
jmp 0x50ae1b
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0xf0], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx edx, byte [edi + 5]
cmove esi, edx
mov dword [ebp - 0xec], edx
cmp byte [edi + 0x10], 3
jae 0x50ea9c
mov eax, dword [edi + 0x40]
xor ecx, ecx
cmp dword [eax], ecx
je 0x50ea9e
cmp dword [edi + 0x4c], ecx
jl 0x50ea9e
jg 0x50ea9c
cmp dword [edi + 0x48], ecx
jbe 0x50ea9e
mov esi, edx
cmp byte [edi + 0xf], 0
mov eax, 0x6090cf
jne 0x50eaaf
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x50ead2
push eax
call fcn.00507e1b
pop ecx
test eax, eax
je 0x50ead0
push edi
call fcn.005016d1
mov edx, dword [ebp - 0xec]
pop ecx
test eax, eax
jne 0x50ead2
mov esi, edx
cmp esi, edx
je 0x50eb95
cmp edx, 5
je 0x50eae8
cmp esi, 5
jne 0x50eb95
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x3e], 0
je 0x50eb5d
cmp dword [ecx + 0x90], 1
jg 0x50eb5d
cmp edx, 5
jne 0x50eb22
push edi
call fcn.0050062b
mov dword [ebp - 0xd4], eax
pop ecx
test eax, eax
jne 0x50eb9f
push esi
push edi
call fcn.005011ea
pop ecx
pop ecx
jmp 0x50eb3e
push 4
pop eax
cmp edx, eax
jne 0x50eb35
push 2
pop eax
push eax
push edi
call fcn.005011ea
pop ecx
pop ecx
cmp dword [ebp - 0xd4], 0
jne 0x50eb9f
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0xf0]
call fcn.004f51b8
pop ecx
pop ecx
mov dword [ebp - 0xd4], eax
jmp 0x50eb9b
mov edi, dword [ebp - 0xe4]
mov edx, str.out_of
cmp esi, 5
mov dword [ebp - 0xd4], 1
mov eax, str.into
cmovne eax, edx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ecx
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0x10
jmp 0x50ac0f
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x50eba5
mov esi, dword [ebp - 0xec]
push esi
push edi
call fcn.005011ea
imul esi, dword [ebx + 8], 0x28
pop ecx
pop ecx
mov ecx, 0xa02
add esi, dword [ebp - 0xe8]
mov dword [ebp - 0xe0], esi
mov word [esi + 0x1c], cx
cmp eax, 6
jne 0x50ebd0
xor eax, eax
jmp 0x50ebd7
mov eax, dword [eax*4 + 0x5e61f8]
push eax
mov dword [esi + 4], eax
call fcn.00507e1b
mov dword [esi + 0x18], eax
movzx eax, byte [ebp - 0x10c]
push eax
push esi
mov byte [esi + 0x1e], 1
call fcn.0050a3fb
add esp, 0xc
jmp 0x50af1d
push ecx
lea eax, [edi + 0x2c]
push eax
call fcn.00505766
jmp 0x50cff6
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 4]
call fcn.004f3c90
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
cmp ecx, 0x65
mov ecx, dword [ebp - 0xd8]
jne case.default.0x50ab25
mov eax, dword [ebx + 8]
dec eax
and dword [ebp - 0xd4], 0
mov dword [ebp - 0xdc], eax
xor eax, eax
jmp 0x50ca53
cmp dword [ebx + 4], 0
jne 0x50ec67
push ecx
call fcn.004f8519
add esp, 4
jmp case.default.0x50ab25
or dword [edi + 0x58], 0x20
jmp case.default.0x50ab25
mov al, byte [ebx + 0xc]
mov byte [ebp - 0x1a0], al
test al, al
jne 0x50ec8b
mov eax, 0x4000
test dword [ecx + 0x18], eax
jne case.default.0x50ab25
mov esi, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
push dword [ebp - 0x1a0]
add ecx, ecx
mov eax, dword [esi + 0x10]
push dword [ebx + 8]
push dword [eax + ecx*8 + 4]
call fcn.004f4329
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd4], ecx
cmp cl, 6
jne 0x50acce
push dword [ebx + 0x10]
lea eax, [edi + 0x2c]
push str.database_table_is_locked:__s
push esi
push eax
call fcn.0050718c
add esp, 0x10
jmp 0x50acce
mov esi, dword [ebx + 0x10]
push esi
push ecx
call fcn.005127f3
mov dword [ebp - 0xd4], eax
pop ecx
pop ecx
test esi, esi
je 0x50ac0f
push dword [esi + 8]
push edi
call fcn.00512c2d
pop ecx
jmp 0x50e969
lea eax, [edi + 0x2c]
push eax
push dword [ebx + 0x10]
push dword [ebx + 4]
push ecx
call fcn.005129ce
add esp, 0x10
jmp 0x50cff8
mov eax, dword [edi + 0x58]
push 8
pop edx
and eax, 0xfffffffb
or eax, edx
mov dword [edi + 0x58], eax
push dword [ebx + 0x10]
push dword [ebx + 4]
push ecx
call fcn.00512a83
add esp, 0xc
mov dword [ebp - 0xd4], eax
and dword [edi + 0x58], 0xfffffff3
jmp 0x50ab63
mov eax, dword [ebx + 0x10]
and dword [ebp - 0xec], 0
mov esi, dword [eax + 8]
lea eax, [ebp - 0xec]
push eax
push esi
mov edi, dword [esi]
call dword [edi + 0x18]
push esi
push dword [ebp - 0xe4]
mov dword [ebp - 0xd4], eax
call fcn.00512c2d
add esp, 0x10
cmp dword [ebp - 0xd4], 0
jne 0x50ae1b
mov eax, dword [ebp - 0xec]
mov dword [eax], esi
xor eax, eax
push eax
push 0xffffffffffffffff
push eax
push dword [ebx + 4]
push dword [ebp - 0xe4]
call fcn.004dc147
add esp, 0x14
test eax, eax
je 0x50edb3
mov ecx, dword [ebp - 0xec]
mov dword [eax + 0x20], ecx
jmp 0x50ae1b
mov eax, dword [ebp - 0xd8]
push dword [ebp - 0xec]
mov byte [eax + 0x40], 1
call dword [edi + 0x1c]
jmp 0x50e3e9
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
imul edx, dword [ebx + 0xc], 0x28
mov edi, dword [edi + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x124], eax
add edx, dword [ebp - 0xe8]
mov esi, dword [eax + 0x20]
mov ecx, dword [edx + 0x38]
mov eax, dword [esi]
mov dword [ebp - 0x118], eax
mov eax, dword [eax]
mov dword [ebp - 0x104], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xf0], eax
xor eax, eax
test ecx, ecx
jle 0x50ee1a
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x50ee0f
mov edx, dword [ebp - 0xe4]
push edi
mov edi, dword [ebp - 0x104]
push ecx
mov eax, dword [edx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [edx + 0x58], eax
push dword [ebx + 0x10]
push dword [ebp - 0xf0]
push esi
call dword [edi + 0x20]
push dword [ebp - 0x118]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xe4]
push eax
and dword [eax + 0x58], 0xfffffff3
call fcn.00512c2d
add esp, 0x1c
cmp dword [ebp - 0xd4], 0
jne 0x50ee7c
push esi
call dword [edi + 0x28]
pop ecx
test eax, eax
je 0x50ee7c
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x124]
mov byte [eax + 0x19], 0
jmp 0x50ae1b
mov eax, dword [edi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov dword [ebp - 0x104], ecx
add eax, dword [ebp - 0xe8]
cmp byte [ecx + 0x19], 0
mov dword [ebp - 0xf0], eax
je 0x50eeb6
push eax
jmp 0x50b6d2
mov eax, dword [ecx + 0x20]
push 0x48
push 0
mov edi, dword [eax]
lea eax, [ebp - 0x334]
push eax
mov esi, dword [edi]
call fcn.00581fe0
push dword [ebp - 0xf0]
lea eax, [ebp - 0x32c]
push eax
call fcn.00510c61
mov eax, dword [ebp - 0x310]
mov ecx, 0xbe01
push dword [ebx + 8]
and eax, ecx
or eax, 1
mov word [ebp - 0x310], ax
lea eax, [ebp - 0x334]
push eax
mov eax, dword [ebp - 0x104]
push dword [eax + 0x20]
call dword [esi + 0x2c]
push edi
mov edi, dword [ebp - 0xe4]
mov ebx, eax
push edi
call fcn.00512c2d
movzx eax, byte [ebp - 0x10c]
cmp dword [ebp - 0x2f4], 0
push eax
cmovne ebx, dword [ebp - 0x2f4]
lea eax, [ebp - 0x32c]
push eax
mov dword [ebp - 0xd4], ebx
call fcn.0050a3fb
mov ebx, dword [ebp - 0xf0]
lea eax, [ebp - 0x32c]
push eax
push ebx
call fcn.00510c61
push ebx
call fcn.00511178
add esp, 0x3c
jmp 0x50e9c3
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x50af1d
mov eax, dword [edi + 0x20]
mov edx, dword [ebp - 0xe4]
mov esi, dword [eax]
mov eax, dword [edx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov ecx, dword [esi]
mov dword [edx + 0x58], eax
push dword [edi + 0x20]
mov dword [ebp - 0xf0], ecx
call dword [ecx + 0x24]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xe4]
push esi
push eax
and dword [eax + 0x58], 0xfffffff3
call fcn.00512c2d
add esp, 0xc
cmp dword [ebp - 0xd4], 0
jne 0x50efd0
mov eax, dword [ebp - 0xf0]
push dword [edi + 0x20]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x50efda
mov eax, dword [ebx + 8]
dec eax
mov dword [ebp - 0xdc], eax
mov edi, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0xd8]
cmp dword [ebx + 0xe8], 0
jne 0x50f4f0
mov ecx, dword [ebx + 0x11c]
test ecx, ecx
je 0x50f034
mov eax, dword [ebp - 0x140]
cmp eax, dword [ebp - 0x144]
jb 0x50f034
mov esi, dword [ebx + 0x124]
xor edx, edx
div esi
push dword [ebx + 0x120]
sub esi, edx
add esi, dword [ebp - 0x140]
mov dword [ebp - 0x144], esi
call ecx
pop ecx
test eax, eax
jne 0x50f356
mov ecx, ebx
jmp 0x50ac15
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0x10]
push 1
add esi, dword [ebp - 0xe8]
mov edi, dword [eax + 8]
push esi
call fcn.0050a3fb
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jne 0x50ae1b
push dword [esi + 4]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
push edi
mov edi, dword [ebp - 0xe4]
push edi
mov dword [ebp - 0xd4], eax
call fcn.00512c2d
add esp, 0x10
and dword [edi + 0x58], 0xffffffdf
jmp 0x50ac0f
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 8]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov dword [ebp - 0xf0], eax
cmp dword [eax + 0x34], 0
je 0x50deec
mov al, byte [ecx + 0x44]
xor ecx, ecx
mov byte [ebp - 0x10d], al
mov eax, dword [ebp - 0xe4]
mov esi, dword [eax + 0xc]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0xe8]
test edx, edx
jle 0x50f0d5
mov dword [esi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x50f0ca
mov ecx, dword [ebp - 0xd8]
mov al, byte [ebx + 3]
mov byte [ecx + 0x44], al
lea eax, [ebp - 0x1e8]
push eax
mov eax, dword [ebp - 0xf0]
push esi
push edx
push edi
call dword [eax + 0x34]
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], eax
mov al, byte [ebp - 0x10d]
push edi
mov edi, dword [ebp - 0xe4]
push edi
mov byte [ecx + 0x44], al
call fcn.00512c2d
mov ecx, dword [ebp - 0xd8]
add esp, 0x18
cmp dword [ebp - 0xd4], 0
jne 0x50f14c
cmp dword [ebx + 4], 0
je 0x50f14c
mov eax, dword [ebp - 0x1e8]
mov edx, dword [ebp - 0x1e4]
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x13c], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov eax, dword [ebp - 0xd4]
cmp al, 0x13
jne 0x50f190
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x50f18a
mov al, byte [ebx + 3]
push 4
pop edx
cmp al, dl
jne 0x50f176
xor eax, eax
mov dword [ebp - 0xd4], eax
jmp 0x50ca4d
cmp al, 5
jne 0x50f17f
push 2
pop eax
jmp 0x50f182
movzx eax, al
mov byte [edi + 0x56], al
jmp 0x50ac15
mov eax, dword [ebp - 0xd4]
inc dword [edi + 0x5c]
jmp 0x50ca4d
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
and dword [esi + 0x14], 0
mov dword [esi + 0x10], eax
jmp 0x50ab63
mov eax, dword [ebp - 0xd8]
xor esi, esi
mov ecx, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x50f1e2
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x2c]
cmp esi, ecx
cmovb esi, ecx
push edi
call fcn.004f3b61
mov eax, dword [edi + 4]
pop ecx
mov eax, dword [eax]
test esi, esi
jle 0x50f1f8
mov dword [eax + 0x9c], esi
mov esi, dword [eax + 0x9c]
push edi
call fcn.004f42d1
mov eax, esi
mov esi, dword [ebp - 0xe0]
cdq
pop ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
jmp 0x50af1d
mov eax, dword [ebx + 8]
test eax, eax
je 0x50f227
dec eax
mov dword [ebp - 0xdc], eax
cmp dword [ecx + 0xa4], 0
je case.default.0x50ab25
mov eax, 0x800
test dword [edi + 0x58], eax
jne case.default.0x50ab25
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x50f257
mov eax, dword [edi + 0xa8]
test eax, eax
je case.default.0x50ab25
push eax
push edi
call fcn.0050f851
mov ebx, dword [ebp - 0xd8]
mov esi, eax
push esi
push dword [ebx + 0xa8]
call dword [ebx + 0xa4]
push esi
push ebx
call fcn.004f6f34
add esp, 0x18
jmp 0x50f034
mov ecx, dword [ebp - 0xd8]
jmp 0x50ca47
mov ecx, dword [ebx + 4]
mov dword [edi + 0x50], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x4c], eax
test ecx, ecx
je 0x50f32c
mov al, byte [ebx + 3]
test al, al
je 0x50f2bd
movzx eax, al
mov eax, dword [eax*4 + 0x5e6180]
jmp 0x50f2bf
xor eax, eax
test eax, eax
je 0x50f2e6
cmp dword [ebx + 0x10], 0
je 0x50f2f6
push dword [ebx + 0x10]
lea esi, [edi + 0x2c]
push eax
push str._s_constraint_failed:__s
push dword [ebp - 0xd8]
push esi
call fcn.0050718c
add esp, 0x14
jmp 0x50f30e
cmp dword [ebx + 0x10], 0
je 0x50f2f6
push dword [ebx + 0x10]
push 0x60915c
jmp 0x50f2fc
push eax
push str._s_constraint_failed
push dword [ebp - 0xd8]
lea esi, [edi + 0x2c]
push esi
call fcn.0050718c
add esp, 0x10
push dword [esi]
push dword [edi + 0xa8]
push dword [ebp - 0xdc]
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.004d95da
add esp, 0x14
push edi
call fcn.0050fd1c
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x50f344
mov esi, ecx
mov dword [edi + 0x50], ecx
jmp 0x50f5a9
cmp dword [edi + 0x50], 0
push 0x65
pop esi
push 1
pop eax
cmovne esi, eax
jmp 0x50f5a9
push 9
pop ecx
mov dword [ebp - 0xd4], ecx
jmp 0x50f54f
lea eax, [ebp - 0x2e4]
push eax
call fcn.00510d83
pop ecx
mov ecx, esi
jmp 0x50f517
push 0x14
pop eax
jmp 0x50f45c
mov eax, dword [ebp - 0xdc]
mov edi, ebx
mov dword [edi + 0x4c], eax
mov byte [ecx + 0x3e], 0
mov esi, edx
mov dword [edi + 0x50], edx
jmp 0x50f5af
test esi, esi
je 0x50f3b6
push 0x204
push ecx
call fcn.0050511f
mov eax, dword [ebp - 0xd8]
pop ecx
pop ecx
mov byte [eax + 0x3e], 1
jmp 0x50f406
push 1
push edi
call fcn.0050a59d
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x50f5a9
mov eax, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xf0]
push edi
mov byte [eax + 0x3e], bl
call fcn.0050fd1c
pop ecx
push 5
pop edx
cmp eax, edx
jne 0x50f400
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd8]
mov dword [edi + 0x4c], eax
xor eax, eax
inc eax
sub al, bl
mov byte [ecx + 0x3e], al
jmp 0x50f38f
mov eax, dword [ebp - 0xd8]
push eax
call fcn.004f55b3
xor esi, esi
pop ecx
inc esi
cmp dword [edi + 0x50], 0
push 0x65
pop eax
cmove esi, eax
jmp 0x50f5a9
push 8
jmp 0x50f37a
mov edi, dword [ebp - 0xe4]
mov esi, edx
mov eax, dword [ebp - 0xdc]
mov dword [edi + 0x4c], eax
mov dword [edi + 0x50], edx
jmp 0x50f5a9
push 0x11473
call fcn.004f5f7f
pop ecx
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xd4]
cmp byte [ecx + 0x40], 0
mov ecx, eax
mov dword [ebp - 0xd4], eax
push 7
pop eax
cmovne ecx, eax
mov dword [ebp - 0xd4], ecx
cmp ecx, 0xc0a
je 0x50f549
push ecx
call fcn.004f842d
mov edi, dword [ebp - 0xe4]
push eax
push 0x60915c
push dword [ebp - 0xd8]
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0x14
mov ecx, dword [ebp - 0xd4]
jmp 0x50f54f
mov dword [ebp - 0xd4], 0xd
jmp 0x50f450
mov ecx, esi
jmp 0x50f456
mov edi, dword [ebp - 0xe4]
jmp 0x50f4d3
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd8]
push str.string_or_blob_too_big
push ecx
lea eax, [edi + 0x2c]
push eax
call fcn.0050718c
add esp, 0xc
push 0x12
jmp 0x50f358
mov ebx, ecx
jmp 0x50f4f3
push 9
pop eax
push eax
mov dword [ebp - 0xd4], eax
mov dword [edi + 0x50], eax
call fcn.004f842d
push eax
push 0x60915c
push ebx
jmp 0x50f498
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd8]
push str.out_of_memory
push ecx
lea eax, [edi + 0x2c]
mov byte [ecx + 0x40], 1
push eax
call fcn.0050718c
add esp, 0xc
push 7
pop eax
mov ecx, eax
jmp 0x50f359
mov edi, dword [ebp - 0xe4]
jmp 0x50f517
mov edi, dword [ebp - 0xe4]
mov ecx, ebx
jmp 0x50f517
mov edi, dword [ebp - 0xe4]
push dword [edi + 0x2c]
mov dword [edi + 0x50], ecx
push dword [edi + 0xa8]
push dword [ebp - 0xdc]
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.004d95da
push edi
call fcn.0050fd1c
mov ecx, dword [ebp - 0xd8]
add esp, 0x18
cmp dword [ebp - 0xd4], 0xc0a
jne 0x50f58b
mov byte [ecx + 0x40], 1
mov al, byte [ebp - 0x119]
xor esi, esi
inc esi
test al, al
je 0x50f5af
movzx eax, al
dec eax
push eax
push ecx
call fcn.00504ddf
pop ecx
pop ecx
jmp 0x50f5a9
mov edi, ebx
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x138]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x13c]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x140]
add dword [edi + 0x7c], eax
push edi
call fcn.0051022a
pop ecx
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057b676
mov esp, ebp
pop ebp
ret