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

Disassembly:
sub esp, 0x21c
push ebx
push ebp
mov ebp, dword [esp + 0x228]
push esi
mov esi, dword [ebp]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x14]
mov bl, byte [ecx + 0x59]
lea eax, [ebp + 0x114]
push edi
xor edi, edi
push eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
mov byte [esp + 0x44], bl
mov dword [esp + 0xa8], edi
mov dword [esp + 0x108], eax
call fcn.0051e100
add esp, 4
cmp dword [ebp + 0x74], 7
je 0x509b9b
mov dword [ebp + 0x74], edi
mov dword [ebp + 0xf8], edi
cmp dword [esi + 0xd8], edi
mov dword [esi + 0x144], edi
jne 0x50d0fb
mov edx, dword [ebp + 0x70]
mov dword [esp + 0x20], edx
jmp 0x5097d4
mov bl, byte [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
jne 0x509b9b
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x230]
mov edx, dword [ebp + 0x14]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, dword [ecx + 0xe8]
test eax, eax
je 0x50982f
mov edx, dword [esp + 0xa4]
cmp dword [ecx + 0xf0], edx
jne 0x509825
mov ecx, dword [ecx + 0xec]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x50cf26
xor edx, edx
add edx, 1
mov dword [esp + 0xa4], edx
movzx edx, byte [edi]
mov al, byte [edx + 0x5a8038]
test al, 2
je 0x50985d
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x4c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
mov dword [esp + 0x20], esi
call fcn.00507430
add esp, 4
mov word [esi + 0x1c], 1
jmp 0x5098d2
test al, 4
je 0x5098a8
test al, 8
mov ecx, dword [edi + 4]
mov ebp, dword [ebp + 0x4c]
lea edx, [ecx + ecx*4]
lea ecx, [ebp + edx*8]
mov dword [esp + 0x18], ecx
je 0x509898
test al, 0x20
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [ebp + edx*8]
mov dword [esp + 0x54], ecx
je 0x5098d2
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebp + edx*8]
mov dword [esp + 0x1c], eax
jmp 0x5098d2
test al, 0x10
je 0x5098d2
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea edx, [ebp + ecx*8]
jmp 0x5098ce
test al, 8
je 0x5098be
mov eax, dword [edi + 8]
mov ecx, dword [ebp + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x54], edx
jmp 0x5098d2
test al, 0x10
je 0x5098d2
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x5c], edx
mov al, byte [edi]
movzx edx, al
lea ecx, [edx - 1]
cmp ecx, 0x8d
mov dword [esp + 0x24], edx
ja case.0x5098f1.12
movzx ecx, byte [ecx + 0x50d2b8]
jmp dword [ecx*4 + 0x50d120]
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xd8], 0
jne 0x50d0f2
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [esp + 0x20]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x230]
mov edx, dword [eax + 0xe8]
mov dword [eax + edx*4 + 0x84], ecx
add dword [eax + 0xe8], 1
mov eax, dword [edi + 8]
sub eax, 1
mov dword [esp + 0x20], eax
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
add dword [eax + 0xe8], 0xffffffff
mov ecx, dword [eax + 0xe8]
mov eax, dword [eax + ecx*4 + 0x84]
sub eax, 1
mov dword [esp + 0x20], eax
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x1c]
mov word [ecx + 0x1c], 4
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x1c]
mov word [eax + 0x1c], 4
mov edi, dword [edi + 0x10]
mov ecx, dword [edi]
mov dword [eax], ecx
mov edx, dword [edi + 4]
mov dword [eax + 4], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x1c]
mov word [eax + 0x1c], 8
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x5098f1.12
mov edx, dword [edi + 0x10]
mov eax, edx
mov byte [edi], 0x1b
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x5099c6
sub eax, esi
cmp bl, 1
mov dword [edi + 4], eax
je 0x509a7a
mov esi, dword [esp + 0x1c]
push 0
push 1
push 0xffffffffffffffff
push edx
push esi
call fcn.00507940
movzx edx, bl
push edx
push esi
call fcn.00507130
add esp, 0x1c
test eax, eax
jne 0x509b9b
push esi
call fcn.00507ca0
add esp, 4
test eax, eax
jne 0x509b9b
mov dword [esi + 0x24], eax
mov ax, word [esi + 0x1c]
and ax, 0xffbf
or ax, 0x80
mov word [esi + 0x1c], ax
cmp byte [edi + 1], 0xff
jne 0x509a39
mov ecx, dword [edi + 0x10]
push ecx
call fcn.00504810
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [edi + 1], 0xff
mov edx, dword [esi + 0x14]
mov dword [edi + 0x10], edx
mov esi, dword [esi + 0x18]
mov dword [edi + 4], esi
cmp esi, dword [eax + 0x50]
jle case.0x5098f1.12
mov ebp, dword [esp + 0x230]
push 0
lea ecx, [ebp + 0xf4]
push str.string_or_blob_too_big
push ecx
call fcn.00508460
mov esi, 0x12
jmp 0x509bc2
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x50]
jg 0x509a56
mov eax, dword [esp + 0x1c]
mov word [eax + 0x1c], 0xa2
mov edx, dword [edi + 0x10]
mov dword [eax + 0x14], edx
mov ecx, dword [edi + 4]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1f], bl
jmp case.0x5098f1.12
mov edx, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x1c]
push 0
push 0
push edx
push eax
push esi
call fcn.00507940
add esp, 0x14
mov byte [esi + 0x1f], bl
jmp case.0x5098f1.12
mov edi, dword [edi + 4]
mov esi, dword [esp + 0x230]
mov eax, dword [esi + 0x38]
sub edi, 1
lea edi, [edi + edi*4]
add edi, edi
add edi, edi
add edi, edi
add eax, edi
push eax
call fcn.00507860
add esp, 4
test eax, eax
jne 0x509a56
mov ecx, dword [esi + 0x38]
mov edx, dword [esp + 0x1c]
push 0x80
add ecx, edi
push ecx
push edx
call fcn.00507890
add esp, 0xc
jmp case.0x5098f1.12
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
mov eax, dword [esp + 0x230]
mov eax, dword [eax + 0x4c]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
lea edx, [edi + edi*4]
mov edi, dword [eax + edx*8 + 0x24]
lea eax, [eax + edx*8]
push esi
push eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov dword [eax + 0x24], 0
call fcn.00507910
mov dword [esi + 0x24], edi
jmp 0x50cf03
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x230]
mov eax, dword [eax + 0x4c]
mov edi, dword [edi + 8]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
lea edx, [edi + edi*4]
push 0x100
lea esi, [eax + edx*8]
push ecx
push esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
call fcn.00507890
add esp, 0xc
test word [esi + 0x1c], 0x100
je case.0x5098f1.12
mov eax, esi
push eax
call fcn.00507d00
add esp, 4
test eax, eax
je case.0x5098f1.12
mov ebp, dword [esp + 0x230]
mov edx, dword [esp + 0x14]
push 0
lea eax, [ebp + 0xf4]
push str.out_of_memory
push eax
mov byte [edx + 0x1e], 1
call fcn.00508460
mov esi, 7
add esp, 0xc
mov dword [ebp + 0x74], esi
push ebp
mov esi, 1
call fcn.00506b80
add esp, 4
mov ecx, dword [esp + 0x104]
push ecx
call fcn.0051e150
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret
mov ecx, dword [esp + 0x230]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
lea edx, [edi + edi*4]
push 0x100
lea eax, [eax + edx*8]
push ecx
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
call fcn.00507890
add esp, 0xc
jmp case.0x5098f1.12
mov ebx, dword [esp + 0x18]
movzx eax, word [ebx + 0x1c]
mov ebp, dword [esp + 0x54]
mov cl, byte [ebp + 0x1c]
or cl, al
test cl, 1
je 0x509c53
mov edx, dword [esp + 0x1c]
push edx
call fcn.00507770
add esp, 4
jmp case.0x5098f1.12
test eax, 0x800
je 0x509c63
push ebx
call fcn.00507230
add esp, 4
test byte [ebx + 0x1c], 0x12
jne 0x509c80
movzx eax, byte [esp + 0x40]
push eax
push ebx
call fcn.005072e0
add esp, 8
test eax, eax
jne 0x509b9b
test word [ebp + 0x1c], 0x800
je 0x509c91
push ebp
call fcn.00507230
add esp, 4
test byte [ebp + 0x1c], 0x12
jne 0x509cae
movzx ecx, byte [esp + 0x40]
push ecx
push ebp
call fcn.005072e0
add esp, 8
test eax, eax
jne 0x509b9b
mov eax, dword [ebx + 0x18]
add eax, dword [ebp + 0x18]
cdq
mov ecx, edx
mov edx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
jg 0x509a56
jl 0x509cd3
cmp esi, eax
ja 0x509a56
mov edi, dword [esp + 0x1c]
mov ax, word [edi + 0x1c]
and ax, 0xffe2
xor ecx, ecx
or ax, 2
cmp edi, ebp
sete cl
lea edx, [esi + 2]
mov word [edi + 0x1c], ax
push ecx
push edx
push edi
call fcn.00507160
add esp, 0xc
test eax, eax
jne 0x509b9b
cmp edi, ebp
je 0x509d1c
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [edi + 0x14]
push eax
push ecx
push edx
call fcn.004b58f0
add esp, 0xc
mov eax, dword [ebx + 0x18]
mov edx, dword [edi + 0x14]
mov ecx, dword [ebx + 0x14]
add edx, dword [ebp + 0x18]
push eax
push ecx
push edx
call fcn.004b58f0
mov eax, dword [edi + 0x14]
mov dl, byte [esp + 0x4c]
mov byte [esi + eax], 0
mov ecx, dword [edi + 0x14]
mov byte [esi + ecx + 1], 0
add esp, 0xc
or word [edi + 0x1c], 0x20
mov dword [edi + 0x18], esi
mov byte [edi + 0x1f], dl
jmp case.0x5098f1.12
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
movzx edx, word [ebp + 0x1c]
movzx ecx, word [eax + 0x1c]
movzx ebx, cx
movzx edx, dx
or ebx, edx
test bl, 1
jne 0x509f05
movzx edx, word [ebp + 0x1c]
and cl, dl
test cl, 4
je 0x509e20
mov edi, dword [esp + 0x24]
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp]
mov edx, dword [ebp + 4]
add edi, 0xffffffb2
cmp edi, 3
ja case.default.0x509d9d
jmp dword [edi*4 + 0x50d348]
add eax, ecx
adc edx, esi
jmp 0x50afb1
sub eax, ecx
sbb edx, esi
jmp 0x50afb1
push esi
push ecx
push edx
push eax
call fcn.004b1e70
jmp 0x50afb1
mov edi, ecx
or edi, esi
je 0x509f05
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x509dea
test eax, eax
jne 0x509dea
cmp edx, 0x80000000
jne 0x509dea
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.004b6a40
jmp 0x50afb1
mov edi, ecx
or edi, esi
je 0x509f05
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x509e12
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.004c1ea0
jmp 0x50afb1
push eax
call fcn.005075e0
fstp qword [esp + 0x50]
push ebp
call fcn.005075e0
movzx eax, byte [edi]
add eax, 0xffffffb2
add esp, 8
cmp eax, 3
ja case.default.0x509e3e
jmp dword [eax*4 + 0x50d358]
fadd qword [esp + 0x4c]
jmp 0x509eb6
fsub qword [esp + 0x4c]
jmp 0x509eb6
fmul qword [esp + 0x4c]
jmp 0x509eb6
fldz
fld qword [esp + 0x4c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x509f01
fdivp st(1)
jmp 0x509eb6
fld qword [esp + 0x4c]
call fcn.004b5e06
mov esi, eax
mov edi, edx
call fcn.004b5e06
mov ecx, esi
or ecx, edi
je 0x509f05
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x509e98
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004c1ea0
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], edx
fild qword [esp + 0x164]
sub esp, 8
fst qword [esp + 0x54]
fstp qword [esp]
call fcn.005085e0
add esp, 8
test eax, eax
jne 0x509f05
mov eax, dword [esp + 0x1c]
fld qword [esp + 0x4c]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
and cx, 0xffe8
or cx, 8
test bl, 8
mov word [eax + 0x1c], cx
jne case.0x5098f1.12
mov edx, eax
push edx
call fcn.00507660
add esp, 4
jmp case.0x5098f1.12
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x1c]
push edx
call fcn.00507770
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
movzx esi, byte [edi + 3]
mov ebx, dword [ecx + 0x24]
mov eax, dword [edi + 8]
mov ecx, dword [ecx + 0x4c]
lea eax, [eax + eax*4]
xor edx, edx
test esi, esi
lea ecx, [ecx + eax*8]
jle 0x509f49
mov dword [ebx + edx*4], ecx
call fcn.00509490
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x509f37
cmp byte [edi + 1], 0xfb
jne 0x509f66
mov edx, dword [edi + 0x10]
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], 0
jmp 0x509f79
mov eax, dword [edi + 0x10]
mov dword [esp + 0x188], eax
mov eax, dword [eax]
mov dword [esp + 0x184], eax
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x230]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
lea ebp, [eax + ecx*8]
mov ecx, dword [esp + 0x14]
xor eax, eax
lea edx, [esp + 0x18c]
push ebp
push edx
mov dword [esp + 0x24], ebp
mov word [esp + 0x1b0], 1
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
call fcn.00507910
mov eax, dword [esp + 0x1b0]
and eax, 0xffe1
or eax, 1
mov word [esp + 0x1b0], ax
mov eax, dword [esp + 0x18c]
add esp, 8
mov dword [esp + 0x1b8], 0
cmp byte [eax + 3], 0
je 0x509fff
mov ecx, dword [edi - 4]
mov dword [esp + 0x1bc], ecx
mov eax, dword [eax + 0x10]
push ebx
lea edx, [esp + 0x188]
push esi
push edx
call eax
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp byte [ecx + 0x1e], 0
jne 0x50cff8
mov eax, dword [esp + 0x188]
test eax, eax
je 0x50a045
mov edx, dword [edi + 4]
push edx
push eax
call fcn.00505e60
mov eax, dword [esp + 0x190]
add esp, 8
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xf9
cmp dword [esp + 0x1b8], 0
je 0x50a083
lea ecx, [esp + 0x18c]
push 0
push ecx
call fcn.004ffb90
mov edx, dword [esp + 0x238]
add esp, 4
push eax
add edx, 0xf4
push edx
call fcn.00508460
mov eax, dword [esp + 0x1c4]
add esp, 0xc
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x40]
push ecx
lea edx, [esp + 0x190]
push edx
call fcn.00507130
lea eax, [esp + 0x194]
push eax
push ebp
call fcn.00507910
push ebp
call fcn.00507860
add esp, 0x14
test eax, eax
jne 0x509a56
jmp case.0x5098f1.12
mov eax, dword [esp + 0x54]
mov cl, byte [eax + 0x1c]
mov ebx, dword [esp + 0x18]
or cl, byte [ebx + 0x1c]
test cl, 1
je 0x50a0df
mov edx, dword [esp + 0x1c]
push edx
call fcn.00507770
add esp, 4
jmp case.0x5098f1.12
push eax
call fcn.00507540
push ebx
mov esi, eax
mov ebp, edx
call fcn.00507540
mov ecx, eax
movzx eax, byte [edi]
add esp, 8
sub eax, 0x4a
je 0x50a126
sub eax, 1
je 0x50a120
sub eax, 1
mov edx, ebp
mov eax, esi
je 0x50a115
call fcn.004fd650
mov esi, eax
mov ebp, edx
jmp 0x50a12a
call fcn.004b8190
mov esi, eax
mov ebp, edx
jmp 0x50a12a
or esi, ecx
or ebp, edx
jmp 0x50a12a
and esi, ecx
and ebp, edx
mov eax, dword [esp + 0x1c]
mov cx, word [eax + 0x1c]
and cx, 0xffe4
or cx, 4
mov dword [eax], esi
mov dword [eax + 4], ebp
mov word [eax + 0x1c], cx
jmp case.0x5098f1.12
mov esi, dword [esp + 0x18]
push esi
call fcn.00507690
mov eax, dword [edi + 8]
cdq
add esp, 4
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x5098f1.12
mov esi, dword [esp + 0x18]
call fcn.005095d0
test byte [esi + 0x1c], 8
je 0x50a17c
push esi
call fcn.00507660
add esp, 4
movzx ebx, word [esi + 0x1c]
test bl, 0xc
jne 0x50a194
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
test bl, 4
je 0x50a1c0
cmp dword [edi + 0xc], 0
je 0x50a1b1
mov eax, 1
xor ecx, ecx
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov ebp, eax
mov edx, ecx
jmp 0x50a21a
xor eax, eax
xor ecx, ecx
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov ebp, eax
mov edx, ecx
jmp 0x50a21a
fld qword [esi + 8]
call fcn.004b5e06
mov ebp, eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edx
fild qword [esp + 0x9c]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x50a1fd
add ebp, 1
adc edx, 0
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edx
cmp dword [edi + 0xc], 0
je 0x50a21a
fild qword [esp + 0x9c]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x44
jp 0x50a21a
add ebp, 1
adc edx, 0
and ebx, 0xffe4
or ebx, 4
mov dword [esi], ebp
mov dword [esi + 4], edx
mov word [esi + 0x1c], bx
jmp case.0x5098f1.12
mov esi, dword [esp + 0x18]
call fcn.005095d0
test byte [esi + 0x1c], 8
je 0x50a249
push esi
call fcn.00507660
add esp, 4
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x50a268
mov edi, dword [edi + 8]
test edi, edi
je 0x50d00d
add edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
and eax, 0xffe4
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x5098f1.12
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 4
je case.0x5098f1.12
mov eax, edx
push eax
call fcn.005076c0
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x18]
movzx ecx, word [ecx + 0x1c]
test cl, 1
jne case.0x5098f1.12
mov esi, dword [esp + 0x18]
movzx eax, cl
shr al, 3
and eax, 2
or eax, ecx
test al, 2
mov word [esi + 0x1c], ax
jne 0x50a2d0
test al, 0xc
je 0x50a2d0
movzx edx, bl
push edx
push esi
call fcn.005072e0
add esp, 8
and word [esi + 0x1c], 0xfff3
movzx eax, word [esi + 0x1c]
test eax, 0x800
je 0x50a2f9
push esi
call fcn.00507230
add esp, 4
and word [esi + 0x1c], 0xffe3
mov dword [esp + 0x10], eax
jmp case.0x5098f1.12
and word [esi + 0x1c], 0xffe3
mov dword [esp + 0x10], 0
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x1c]
test al, 1
jne case.0x5098f1.12
test al, 0x10
jne 0x50a34d
test al, 2
jne 0x50a341
test al, 0xc
je 0x50a341
mov esi, dword [esp + 0x18]
movzx ecx, bl
push ecx
push esi
call fcn.005072e0
add esp, 8
and word [esi + 0x1c], 0xfff3
jmp 0x50a351
mov esi, dword [esp + 0x18]
and word [esi + 0x1c], 0xfff3
jmp 0x50a351
mov esi, dword [esp + 0x18]
mov dx, word [esi + 0x1c]
and dx, 0xfff0
or dx, 0x10
mov word [esi + 0x1c], dx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 0xd
jne case.0x5098f1.12
mov ecx, eax
push ecx
call fcn.005076f0
add esp, 4
jmp case.0x5098f1.12
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 1
jne case.0x5098f1.12
mov eax, edx
push eax
call fcn.00507690
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 1
jne case.0x5098f1.12
mov edx, ecx
push edx
call fcn.005076c0
add esp, 4
jmp case.0x5098f1.12
mov esi, dword [esp + 0x18]
mov al, byte [esi + 0x1c]
mov ebp, dword [esp + 0x5c]
or al, byte [ebp + 0x1c]
test al, 1
je 0x50a439
mov al, byte [edi + 3]
test al, 0x10
je 0x50a4a7
mov ecx, 4
mov word [esp + 0x220], cx
movzx eax, word [esi + 0x1c]
not eax
and eax, 1
cdq
mov dword [esp + 0x204], eax
mov word [esp + 0x1f8], cx
movzx eax, word [ebp + 0x1c]
not eax
and eax, 1
mov dword [esp + 0x208], edx
cdq
lea esi, [esp + 0x204]
lea ebp, [esp + 0x1dc]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x5c], ebp
mov bl, byte [edi + 3]
and bl, 0x67
je 0x50a460
mov edx, dword [esp + 0x40]
push edx
mov al, bl
mov ecx, esi
call fcn.00509660
mov eax, dword [esp + 0x44]
push eax
mov al, bl
mov ecx, ebp
call fcn.00509660
add esp, 8
mov ebx, 0x800
test word [esi + 0x1c], bx
je 0x50a474
push esi
call fcn.00507230
add esp, 4
test word [ebp + 0x1c], bx
je 0x50a483
push ebp
call fcn.00507230
add esp, 4
mov ecx, dword [edi + 0x10]
push ecx
push esi
push ebp
call fcn.00508050
movzx ecx, byte [edi]
add ecx, 0xffffffbd
add esp, 0xc
cmp ecx, 4
ja case.default.0x50a4a0
jmp dword [ecx*4 + 0x50d368]
test al, al
jns 0x50a4d8
mov edi, dword [edi + 8]
mov edx, dword [esp + 0x230]
mov eax, dword [edx + 0x4c]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*8]
mov cx, word [eax + 0x1c]
and cx, 0xffe1
or cx, 1
mov dword [esp + 0x1c], eax
mov word [eax + 0x1c], cx
jmp case.0x5098f1.12
test al, 8
je case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
xor edx, edx
test eax, eax
sete dl
mov eax, edx
jmp 0x50a52b
xor ecx, ecx
test eax, eax
setne cl
jmp 0x50a529
xor edx, edx
test eax, eax
setl dl
mov eax, edx
jmp 0x50a52b
xor ecx, ecx
test eax, eax
setle cl
jmp 0x50a529
xor edx, edx
test eax, eax
setg dl
mov eax, edx
jmp 0x50a52b
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test byte [edi + 3], 0x80
je 0x50a69b
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x230]
mov ecx, dword [ecx + 0x4c]
lea edx, [edi + edi*4]
lea ecx, [ecx + edx*8]
mov dx, word [ecx + 0x1c]
and dx, 0xffe4
or dx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [esp + 0x1c], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
je 0x50a579
mov esi, 2
jmp 0x50a58f
push eax
call fcn.00507540
add esp, 4
or eax, edx
je 0x50a58d
mov esi, 1
jmp 0x50a58f
xor esi, esi
mov eax, dword [esp + 0x54]
test byte [eax + 0x1c], 1
je 0x50a5a0
mov eax, 2
jmp 0x50a5b6
push eax
call fcn.00507540
add esp, 4
or eax, edx
je 0x50a5b4
mov eax, 1
jmp 0x50a5b6
xor eax, eax
cmp byte [edi], 0x3d
jne 0x50a5c8
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x56c394]
jmp 0x50a5d3
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x56c3a0]
cmp eax, 2
jne 0x50afb0
mov eax, dword [esp + 0x1c]
mov dx, word [eax + 0x1c]
and dx, 0xffe1
or dx, 1
mov word [eax + 0x1c], dx
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 1
jne case.0x5098f1.12
mov esi, ecx
push esi
call fcn.00507690
mov edx, dword [esi]
add esp, 4
or edx, dword [esi + 4]
jne 0x50a626
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x5098f1.12
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
jne case.0x5098f1.12
mov esi, eax
push esi
call fcn.00507690
mov ecx, dword [esi]
mov edx, dword [esi + 4]
not ecx
not edx
add esp, 4
mov dword [esi], ecx
mov dword [esi + 4], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
je 0x50a66e
mov eax, dword [edi + 0xc]
jmp 0x50a69b
push eax
call fcn.005075e0
fcomp qword [0x54c930]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x50a68b
mov eax, 1
jmp 0x50a68d
xor eax, eax
cmp byte [edi], 0x49
jne 0x50a69b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [edi + 0xc]
jmp 0x50a6c0
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 1
jne 0x509909
add dword [esp + 0x18], 0x28
sub eax, 1
test eax, eax
jg 0x50a6c0
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x230]
mov ecx, dword [edi + 4]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x4c]
xor ebx, ebx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov word [esp + 0xc8], bx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xd0], ebx
mov dx, word [eax + 0x1c]
and dx, 0xffe1
or dx, 1
mov word [eax + 0x1c], dx
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x30]
mov ebp, dword [eax + ecx*4]
cmp dword [ebp], ebx
je 0x50a7c8
push ebp
call fcn.00505ec0
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp byte [ebp + 0x1c], bl
mov eax, dword [ebp]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], eax
je 0x50a77c
mov dword [esp + 0x60], ebx
jmp 0x50a7dd
mov ecx, dword [ebp + 0x68]
cmp ecx, dword [esi + 0x54]
jne 0x50a794
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 0x78]
mov dword [esp + 0x48], eax
jmp 0x50a7dd
cmp byte [ebp + 0x22], 0
je 0x50a7b8
lea ecx, [esp + 0x1d4]
push ecx
push eax
call fcn.00514b70
mov edx, dword [esp + 0x1dc]
mov dword [esp + 0x68], edx
add esp, 8
jmp 0x50a7dd
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.00514c00
add esp, 8
jmp 0x50a7dd
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x60], eax
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x48], ecx
mov dword [ebp + 0x68], ebx
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0x60]
cmp eax, ebx
mov edx, dword [ebp + 0x50]
mov dword [esp + 0x34], edx
je case.0x5098f1.12
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x50]
ja 0x509a56
mov edx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x70]
mov ecx, esi
cmp edx, dword [ecx + 0x54]
mov dword [esp + 0x44], eax
jne 0x50a81a
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x38], eax
jmp 0x50a9b6
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x48]
test esi, esi
lea eax, [eax + edx*4]
mov dword [ebp + 0x74], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
mov dword [ebp + 0x6c], eax
mov ecx, dword [ecx + 0x54]
mov dword [ebp + 0x68], ecx
jne 0x50a885
cmp byte [ebp + 0x22], 0
je 0x50a854
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.005105b0
jmp 0x50a863
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x7c]
push ecx
push edx
call fcn.00510620
mov esi, eax
mov eax, dword [esp + 0x84]
add esp, 8
cmp eax, dword [esp + 0x60]
jb 0x50a87e
mov dword [esp + 0x48], esi
mov dword [ebp + 0x78], esi
jmp 0x50a885
mov dword [ebp + 0x78], 0
mov al, byte [esi]
cmp al, 0x80
jae 0x50a899
movzx ecx, al
mov dword [esp + 0x64], ecx
mov ebx, 1
jmp 0x50a8ad
lea ecx, [esp + 0x64]
push ecx
push esi
call fcn.00509240
mov ecx, dword [esp + 0x6c]
add esp, 8
mov ebx, eax
cmp dword [esp + 0x48], 0
jne 0x50a8fe
cmp dword [esp + 0x7c], ecx
jae 0x50a8fe
xor esi, esi
mov word [esp + 0xc8], si
mov dword [esp + 0xbc], esi
movzx eax, byte [ebp + 0x22]
lea edx, [esp + 0xac]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x3c]
push esi
push ecx
call fcn.00507ad0
add esp, 0x14
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov esi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x64]
lea edx, [ecx + esi]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x34]
add ebx, esi
test edx, edx
jbe 0x50a974
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
sub eax, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], edx
cmp ebx, dword [esp + 0x10]
jae 0x50a963
mov dword [eax + esi], ecx
mov al, byte [ebx]
cmp al, 0x80
jae 0x50a93c
movzx eax, al
mov dword [esi], eax
mov eax, 1
jmp 0x50a946
push esi
push ebx
call fcn.00509240
add esp, 8
mov ecx, dword [esi]
push ecx
add ebx, eax
call fcn.00506020
mov ecx, dword [esp + 0x68]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ecx
jmp 0x50a96a
mov dword [eax + esi], 0
add esi, 4
sub dword [esp + 0x34], 1
jne 0x50a921
lea edx, [esp + 0xac]
push edx
call fcn.00507480
mov edx, dword [esp + 0x14]
add esp, 4
cmp ebx, edx
mov word [esp + 0xc8], 1
ja 0x50ab1e
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
ja 0x50ab1e
cmp ebx, edx
jne 0x50a9b6
cmp eax, ecx
jne 0x50ab1e
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
mov eax, dword [ebx + esi*4]
test eax, eax
je 0x50aabb
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x50aa45
mov edi, dword [esp + 0x3c]
add eax, ecx
test byte [edi + 0x1c], 0x40
je 0x50aa27
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x48]
mov edx, dword [edx + esi*4]
push edx
push eax
call fcn.00506100
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xb8]
push ecx
push edi
mov dword [esp + 0xd0], eax
call fcn.00507d10
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov al, byte [esp + 0x40]
mov byte [edi + 0x1f], al
jmp 0x50aadd
mov edx, dword [esp + 0x44]
mov edx, dword [edx + esi*4]
push edi
push edx
push eax
call fcn.00506100
mov al, byte [esp + 0x4c]
add esp, 0xc
mov byte [edi + 0x1f], al
jmp 0x50aadd
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + esi*4]
push ecx
call fcn.00506020
mov edx, dword [esp + 0x40]
mov edi, eax
push edx
lea eax, [esp + 0xb4]
push eax
call fcn.00507910
movzx edx, byte [ebp + 0x22]
mov eax, dword [ebx + esi*4]
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push edi
push eax
push ecx
call fcn.00507ad0
add esp, 0x20
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0xc0]
push edi
push ecx
push edx
call fcn.00506100
mov al, byte [esp + 0x4c]
add esp, 0xc
mov byte [edi + 0x1f], al
jmp 0x50aadd
cmp byte [edi + 1], 0xf8
jne 0x50aad9
mov ecx, dword [edi + 0x10]
mov edi, dword [esp + 0x3c]
push 0x80
push ecx
push edi
call fcn.00507890
add esp, 0xc
jmp 0x50aadd
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0xd0], 0
je 0x50ab0c
mov dx, word [edi + 0x1c]
and dx, 0xfe7f
or dx, 0x20
mov word [edi + 0x1c], dx
mov eax, dword [esp + 0xc0]
mov dword [edi + 0x14], eax
mov ecx, dword [esp + 0xd0]
mov dword [edi + 0x24], ecx
push edi
call fcn.00507d00
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x5098f1.12
mov dword [esp + 0x10], 0xb
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x230]
mov ecx, dword [eax + 0x4c]
lea eax, [ecx + edx*8]
lea edx, [edi + edi*4]
lea ebp, [eax + edx*8 - 0x28]
cmp eax, ebp
mov edi, eax
ja case.0x5098f1.12
xor esi, esi
test word [edi + 0x1c], 0x800
je 0x50ab68
push edi
call fcn.00507230
add esp, 4
mov eax, dword [esp + 0x40]
push eax
mov eax, 0x66666667
imul esi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, byte [ecx + ebx]
mov ecx, edi
call fcn.00509660
add edi, 0x28
add esp, 4
add esi, 0x28
cmp edi, ebp
jbe 0x50ab57
jmp case.0x5098f1.12
mov edx, dword [edi + 0x10]
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x4c]
movzx ecx, byte [ecx + 0x100]
lea ebp, [edx + eax*8]
mov eax, dword [edi + 8]
xor esi, esi
lea eax, [eax + eax*4]
lea eax, [ebp + eax*8 - 0x28]
cmp ebp, eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
ja 0x50acab
mov eax, 0xffffffe8
sub eax, ebp
mov dword [esp + 0x24], eax
lea esp, [esp]
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x50ac33
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
lea ecx, [eax + ebp + 0x18]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, byte [ecx + esi]
mov ecx, ebp
call fcn.00509660
add esp, 4
test word [ebp + 0x1c], 0x800
je 0x50ac4a
cmp dword [ebp + 0x18], 0
jle 0x50ac4a
push ebp
call fcn.00507230
add esp, 4
mov edx, dword [esp + 0x34]
push edx
push ebp
call fcn.00505f40
mov esi, eax
push esi
call fcn.00506020
mov ebx, eax
cdq
add dword [esp + 0x94], eax
push 0
push esi
adc dword [esp + 0xa0], edx
call fcn.00509320
add dword [esp + 0x50], eax
add esp, 0x14
test word [ebp + 0x1c], 0x800
je 0x50ac8e
mov eax, dword [ebp]
add dword [esp + 0x44], eax
jmp 0x50ac9a
test ebx, ebx
je 0x50ac9a
mov dword [esp + 0x44], 0
add ebp, 0x28
cmp ebp, dword [esp + 0x30]
jbe 0x50ac00
mov esi, dword [esp + 0x3c]
mov eax, esi
cdq
push edx
push eax
call fcn.00509320
mov ebx, eax
add esi, ebx
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x4c], esi
call fcn.00509320
add esp, 0x10
cmp ebx, eax
jge 0x50acd5
add esi, 1
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x44]
cdq
mov ebx, eax
mov dword [esp + 0xf0], edx
mov eax, esi
cdq
mov ebp, eax
mov ecx, edx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x50]
sub ebp, ebx
sbb ecx, dword [esp + 0xf0]
add ebp, dword [esp + 0x88]
cdq
adc ecx, dword [esp + 0x8c]
mov dword [esp + 0xec], ebx
cmp ecx, edx
ja 0x509a56
jb 0x50ad22
cmp ebp, eax
ja 0x509a56
mov edi, dword [edi + 0xc]
mov ecx, dword [esp + 0x230]
mov edx, dword [ecx + 0x4c]
push 0
lea eax, [edi + edi*4]
lea eax, [edx + eax*8]
push ebp
push eax
mov dword [esp + 0x28], eax
call fcn.00507160
add esp, 0xc
test eax, eax
jne 0x509b9b
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
cmp eax, 0x80
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x48], ecx
jae 0x50ad6c
mov byte [ecx], al
mov edi, 1
jmp 0x50ad78
push eax
push ecx
call fcn.00509020
add esp, 8
mov edi, eax
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x30]
ja 0x50adc1
mov eax, dword [esp + 0x34]
push eax
push esi
call fcn.00505f40
add esp, 8
cmp eax, 0x80
jae 0x50ada5
mov ecx, dword [esp + 0x48]
mov byte [edi + ecx], al
mov eax, 1
jmp 0x50adb6
mov edx, dword [esp + 0x48]
push eax
lea eax, [edi + edx]
push eax
call fcn.00509020
add esp, 8
add esi, 0x28
add edi, eax
cmp esi, dword [esp + 0x30]
jbe 0x50ad82
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x30]
ja 0x50adf6
jmp 0x50add0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
push ecx
mov edx, ebp
push esi
sub edx, edi
push edx
lea ecx, [edi + eax]
push ecx
call fcn.00506040
add esi, 0x28
add esp, 0x10
add edi, eax
cmp esi, dword [esp + 0x30]
jbe 0x50add0
cmp dword [esp + 0x44], 0
mov dword [ebx + 0x18], ebp
mov word [ebx + 0x1c], 0x50
mov dword [ebx + 0x20], 0
je 0x50ae26
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0xf0]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov word [ebx + 0x1c], 0x850
mov byte [ebx + 0x1f], 1
jmp case.0x5098f1.12
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1c], 0
je 0x50ae46
cmp dword [eax + 0x90], 1
jle case.0x5098f1.12
mov edi, dword [edi + 4]
mov edx, dword [eax + 8]
lea ecx, [edi + edi*2]
mov esi, dword [edx + ecx*8 + 4]
push esi
call fcn.00512460
add esp, 4
test eax, eax
jne case.0x5098f1.12
push esi
call fcn.0050fea0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x234]
add esp, 4
mov dword [eax + 0x14c], 1
jmp case.0x5098f1.12
mov esi, dword [esp + 0x14]
mov bl, byte [edi + 4]
mov al, byte [edi + 8]
mov ebp, 1
cmp dword [esi + 0x90], ebp
jle 0x50aee2
test bl, bl
je 0x50aee2
cmp byte [esi + 0x1c], 0
jne 0x50aee2
test al, al
mov eax, str.rollback
jne 0x50aeb6
mov eax, str.commit
mov ecx, dword [esp + 0x230]
push 0
push str._transaction___SQL_statements_in_progress
push eax
add ecx, 0xf4
push str.cannot
push ecx
call fcn.00508460
add esp, 0x14
mov dword [esp + 0x10], ebp
jmp case.0x5098f1.12
cmp bl, byte [esi + 0x1c]
jne 0x50d01a
test bl, bl
jne 0x50aef6
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x50af04
test al, al
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x50af04
mov eax, str.cannot_commit___no_transaction_is_active
mov edx, dword [esp + 0x230]
push 0
push eax
add edx, 0xf4
push edx
call fcn.00508460
add esp, 0xc
mov dword [esp + 0x10], ebp
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
test eax, eax
je case.0x5098f1.12
mov ecx, dword [edi + 8]
push ecx
push eax
call fcn.0050f8b0
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x50d076
test eax, eax
je case.0x5098f1.12
cmp eax, 8
jne 0x50d0ad
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
test eax, eax
mov edi, dword [edi + 0xc]
jge 0x50af82
or edx, 0xffffffff
sub edx, eax
mov eax, edx
neg edi
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xf4]
push ecx
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*8 + 4]
add edi, 1
push edi
push edx
call fcn.005119d0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x100]
add esp, 0xc
cdq
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 0x1c]
and ax, 0xffe4
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 0x5c]
lea ecx, [eax + eax*2]
push ebx
lea esi, [edx + ecx*8]
call fcn.00507690
mov eax, dword [ebx]
mov ecx, dword [edi + 8]
mov edx, dword [esi + 4]
push eax
add ecx, 1
push ecx
push edx
call fcn.00511af0
mov dword [esp + 0x20], eax
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x50b017
mov eax, dword [esi + 0x14]
mov ecx, dword [ebx]
mov dword [eax], ecx
or dword [ebp + 0xc], 0x10
jmp 0x50b024
cmp eax, 1
jne 0x50b024
mov edx, dword [esi + 0x14]
mov al, byte [ebx]
mov byte [edx + 0x58], al
cmp dword [edi + 4], 1
jne case.0x5098f1.12
mov ecx, ebp
push ecx
call fcn.00506940
add esp, 4
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + edx*8 + 4]
xor esi, esi
cmp eax, esi
je 0x50b0eb
lea edx, [esp + 0x80]
push edx
push 1
push eax
call fcn.005119d0
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov eax, dword [esp + 0x80]
cmp eax, dword [edi + 8]
je case.0x5098f1.12
mov ebx, dword [esp + 0x230]
mov ecx, dword [ebx + 0xf4]
push ecx
call fcn.00504810
mov esi, dword [esp + 0x18]
push str.database_schema_has_changed
push esi
call fcn.005083c0
mov dword [ebx + 0xf4], eax
mov edi, dword [edi + 4]
mov eax, dword [esi + 8]
lea edx, [edi + edi*2]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [ecx]
add esp, 0xc
cmp edx, dword [esp + 0x80]
je 0x50b0d5
push edi
push esi
call fcn.005173d0
add esp, 8
push esi
call fcn.00506940
add esp, 4
mov dword [esp + 0x10], 0x11
jmp case.0x5098f1.12
mov dword [esp + 0x10], esi
mov dword [esp + 0x80], esi
jmp 0x50b078
cmp al, 9
mov ecx, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov ebx, dword [esp + 0x14]
mov ebx, dword [ebx + 8]
mov edx, dword [edi + 8]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + esi*2]
lea ecx, [ebx + ecx*8]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x230]
mov dword [esp + 0x38], edx
jne 0x50b146
mov eax, dword [ecx + 0x14]
mov al, byte [eax + 0x58]
cmp al, byte [ebx + 0x100]
mov dword [esp + 0x24], 1
jae 0x50b14e
mov byte [ebx + 0x100], al
jmp 0x50b14e
mov dword [esp + 0x24], 0
cmp byte [edi + 3], 0
je 0x50b171
lea ecx, [edx + edx*4]
mov edx, dword [ebx + 0x4c]
lea ebp, [edx + ecx*8]
push ebp
mov dword [esp + 0x58], ebp
call fcn.00507690
mov eax, dword [ebp]
add esp, 4
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x4c]
push 1
push esi
lea ecx, [edi - 0x14]
push edx
mov eax, ebx
call fcn.005094e0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x509b9b
mov eax, dword [ebp]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x3c]
mov byte [ebp + 0x1c], 1
mov ecx, dword [edi + 0x10]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ecx
call fcn.00514b30
add esp, 0x14
cmp byte [edi + 1], 0xfa
mov dword [esp + 0x10], eax
jne 0x50b1dc
mov ecx, dword [edi + 0x10]
mov dword [ebp + 0x4c], ecx
add ecx, 5
mov dword [ebp + 0x48], ecx
mov edx, dword [ebx]
mov ecx, dword [edx + 8]
mov edx, dword [ecx + 0x14]
mov ecx, dword [ebp + 0x4c]
mov dl, byte [edx + 0x59]
mov byte [ecx + 4], dl
jmp 0x50b1e9
lea ecx, [ebp + 0x23]
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x48], ecx
test eax, eax
je 0x50b225
cmp eax, 5
je 0x50d091
cmp eax, 0x10
jne 0x50d0ad
cmp byte [edi + 1], 0xfa
mov dword [ebp], 0
setne al
test al, al
sete dl
mov byte [ebp + 0x21], al
mov byte [ebp + 0x22], dl
mov dword [esp + 0x10], 0
jmp case.0x5098f1.12
mov eax, dword [ebp]
push eax
call fcn.00514f30
add esp, 4
test al, 0xf0
jne 0x50b26f
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x50b244
cmp ecx, 2
jne 0x50b26f
mov cl, al
shr eax, 1
and cl, 1
and al, 1
test cl, cl
mov byte [ebp + 0x21], cl
mov byte [ebp + 0x22], al
je 0x50b25d
cmp byte [edi + 1], 0xfa
je 0x50b26f
test al, al
je case.0x5098f1.12
cmp byte [edi + 1], 0xfa
je case.0x5098f1.12
mov dword [esp + 0x10], 0xb
jmp 0x50d0ad
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x230]
push 1
push 0xffffffffffffffff
push eax
mov ecx, edi
mov eax, ebx
call fcn.005094e0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x509b9b
mov edx, dword [esp + 0x14]
lea esi, [ebp + 0x30]
push esi
push 0x41e
push 0x1f4
push 1
push 0
push edx
mov byte [ebp + 0x1c], 1
call fcn.00501870
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50b37f
mov eax, dword [esi]
push 1
push eax
call fcn.0050f8b0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50b37f
cmp dword [edi + 0x10], eax
je 0x50b35c
mov edx, dword [esi]
push 2
lea ecx, [esp + 0x128]
push ecx
push edx
call fcn.00514430
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50b349
mov eax, dword [ebp]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x124]
push eax
mov eax, dword [esi]
push ecx
push 1
push edx
push eax
call fcn.00514b30
mov edi, dword [edi + 0x10]
mov dword [ebp + 0x4c], edi
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x14]
mov cl, byte [eax + 0x59]
mov byte [edi + 4], cl
mov edx, dword [ebp + 0x4c]
add esp, 0x14
add edx, 5
mov dword [ebp + 0x48], edx
mov byte [ebp + 0x21], 0
cmp byte [ebp + 0x21], 0
sete al
mov byte [ebp + 0x22], al
jmp case.0x5098f1.12
mov eax, dword [ebp]
mov ecx, dword [esi]
push eax
push 0
push 1
push 1
push ecx
call fcn.00514b30
lea edx, [ebp + 0x23]
add esp, 0x14
mov dword [esp + 0x10], eax
mov byte [ebp + 0x21], 1
mov dword [ebp + 0x48], edx
cmp byte [ebp + 0x21], 0
sete al
mov byte [ebp + 0x22], al
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x23c]
lea ecx, [edi - 0x14]
call fcn.005094e0
add esp, 0xc
test eax, eax
je 0x509b9b
mov byte [eax + 0x1c], 1
mov byte [eax + 0x1e], 1
mov cl, byte [edi + 8]
lea edx, [eax + 0x23]
mov byte [eax + 0x1f], cl
mov dword [eax + 0x48], edx
mov byte [eax + 0x21], 1
mov byte [eax + 0x22], 0
jmp case.0x5098f1.12
mov esi, dword [esp + 0x230]
mov edi, dword [edi + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edi*4]
push ecx
push esi
call fcn.00505730
mov edx, dword [esi + 0x30]
mov dword [edx + edi*4], 0
jmp 0x50cf03
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 0x30]
mov ebp, dword [ecx + eax*4]
cmp dword [ebp], 0
je case.0x5098f1.12
cmp edx, 6
mov byte [ebp + 0x1c], 0
je 0x50b423
cmp edx, 0x40
je 0x50b423
xor eax, eax
jmp 0x50b428
mov eax, 1
mov edx, dword [ebp + 0x48]
mov byte [edx], al
cmp byte [ebp + 0x21], 0
je 0x50b494
mov eax, dword [esp + 0x5c]
push eax
call fcn.00507540
add esp, 4
cmp dword [edi + 8], 0
mov esi, eax
mov ebx, edx
jne 0x50b45d
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], ebx
mov byte [ebp + 0x19], 0
mov byte [ebp + 0x20], 1
jmp case.0x5098f1.12
mov edx, dword [ebp]
lea ecx, [esp + 0x58]
push ecx
push 0
push ebx
push esi
push 0
push 0
push edx
call fcn.00512f60
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp dword [esp + 0x58], eax
mov dword [ebp + 8], esi
sete al
mov dword [ebp + 0xc], ebx
mov byte [ebp + 0x19], al
jmp 0x50b504
mov ecx, dword [ebp + 0x4c]
mov dx, word [edi + 0x10]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x230]
mov word [esp + 0x12c], dx
mov edx, dword [ecx + 0x4c]
lea ecx, [esp + 0x58]
push ecx
push 0
lea eax, [eax + eax*4]
push 0
lea eax, [edx + eax*8]
push 0
lea edx, [esp + 0x138]
push edx
mov dword [esp + 0x144], eax
mov eax, dword [ebp]
push 0
push eax
mov byte [esp + 0x14a], 0
mov byte [esp + 0x14b], 0
call fcn.00512f60
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
mov byte [ebp + 0x19], al
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 0x48]
xor ecx, ecx
cmp eax, 0x75
mov byte [ebp + 0x20], 0
mov dword [ebp + 0x68], ecx
mov byte [edx], cl
je 0x50b560
cmp eax, 6
je 0x50b560
cmp dword [esp + 0x58], ecx
jl 0x50b536
mov ecx, dword [ebp]
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.00514de0
jmp 0x50b574
mov edx, dword [ebp]
push edx
call fcn.005106e0
add esp, 4
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
cmp dword [esp + 0x58], ecx
jge 0x50b588
mov ecx, dword [ebp]
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.00514cc0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
mov byte [ebp + 0x19], al
jmp 0x50b546
mov dword [esp + 0x58], ecx
jmp case.0x5098f1.12
mov esi, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov esi, dword [esi + 0x30]
mov esi, dword [esi + edx*4]
xor ecx, ecx
cmp dword [esi], ecx
je 0x50b5fc
cmp al, 0x7a
jne 0x50b5b2
mov eax, dword [esi + 0x4c]
mov byte [eax + 6], 1
lea ecx, [esp + 0x110]
push ecx
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 0x18]
cdq
push 0
push edx
mov edx, dword [ecx + 0x14]
push eax
mov eax, dword [esi]
push 0
push edx
push eax
call fcn.00512f60
mov ecx, dword [esi + 0x4c]
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
mov byte [ecx + 6], 0
jne case.0x5098f1.12
xor ecx, ecx
cmp dword [esp + 0x110], ecx
mov byte [esi + 0x20], al
sete cl
mov dword [esi + 0x68], eax
cmp byte [edi], 0x7a
jne 0x50b608
test ecx, ecx
jmp 0x50a69d
test ecx, ecx
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x5c]
mov ebp, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x230]
mov ecx, dword [eax + 0x4c]
push esi
lea ebx, [ecx + edx*8]
call fcn.00507690
mov edx, dword [esi]
mov ecx, dword [esp + 0x234]
mov eax, dword [esi + 4]
mov dword [esp + 0x100], edx
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + ebp*4]
mov ebp, dword [esi]
add esp, 4
test ebp, ebp
mov dword [esp + 0x100], eax
je case.0x5098f1.12
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x18]
push eax
mov dword [esp + 0x28], eax
call fcn.00506680
mov ecx, dword [esp + 0x28]
sub ebx, eax
lea eax, [esp + 0x70]
push eax
push 0
mov eax, ebx
cdq
push edx
push eax
push 0
push ecx
push ebp
mov dword [esi + 0x68], 0
call fcn.00512f60
add esp, 0x20
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp dword [esp + 0x6c], eax
jge 0x50b6db
lea edx, [esp + 0x6c]
push edx
push ebp
call fcn.00514cc0
add esp, 8
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x10], eax
je 0x50b6db
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x6c]
push eax
push ecx
push ebx
push 0
push esi
call fcn.005067f0
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp dword [esp + 0x6c], eax
jle 0x50b712
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
lea edx, [esp + 0x16c]
push edx
push ebp
call fcn.005066e0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
mov ecx, dword [esp + 0x16c]
cmp ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x170]
jne 0x50b75e
cmp edx, dword [esp + 0x100]
jne 0x50b75e
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [esp + 0x5c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
test eax, eax
je case.0x5098f1.12
mov ebp, dword [esp + 0x5c]
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
lea ebx, [esp + 0x144]
push ebx
push 0
push edx
push ecx
push 0
push 0
push eax
call fcn.00512f60
mov dword [esp + 0x2c], eax
mov eax, dword [ebp]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x160]
mov ecx, dword [ebp + 4]
add esp, 0x1c
test eax, eax
sete dl
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
mov byte [esi + 0x1c], 0
mov dword [esi + 0x68], 0
jmp 0x50a69b
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x230]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + edi*4]
mov esi, dword [eax + 0x58]
mov ecx, dword [esp + 0x1c]
mov dword [ecx], esi
mov eax, dword [eax + 0x5c]
mov dword [ecx + 4], eax
mov edx, dword [edx + 0x30]
mov eax, dword [edx + edi*4]
add dword [eax + 0x58], 1
adc dword [eax + 0x5c], 0
jmp 0x50afba
mov esi, dword [esp + 0x230]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x30]
xor ebp, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov ebx, dword [edx + ecx*4]
mov eax, dword [ebx]
cmp eax, ebp
je 0x50ba33
push eax
mov dword [esp + 0x28], ebp
call fcn.00514f30
and al, 3
add esp, 4
cmp al, 1
jne 0x50b26f
cmp byte [ebx + 0x1b], 0
jne 0x50b962
cmp byte [ebx + 0x1d], 0
je 0x50b865
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x2c], ecx
jmp 0x50b8c5
mov eax, dword [ebx]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.00512ee0
add esp, 8
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp dword [esp + 0x70], ebp
je 0x50b895
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ebp
jmp 0x50b8c5
mov edx, dword [ebx]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00514b70
add esp, 8
cmp dword [esp + 0x28], 0xffffffff
jne 0x50b8bc
cmp dword [esp + 0x2c], 0x7fffffff
jne 0x50b8bc
mov byte [ebx + 0x1b], 1
jmp 0x50b8c5
add dword [esp + 0x28], 1
adc dword [esp + 0x2c], ebp
mov edi, dword [edi + 0xc]
cmp edi, ebp
je 0x50b928
mov ecx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00507690
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add esp, 4
cmp eax, 0xffffffff
jne 0x50b8f4
cmp ecx, 0x7fffffff
je 0x50d0a5
cmp byte [ebx + 0x1b], 0
jne 0x50d0a5
mov edx, dword [esp + 0x2c]
add eax, 1
adc ecx, ebp
cmp edx, ecx
jg 0x50b91b
jl 0x50b913
cmp dword [esp + 0x28], eax
jae 0x50b91b
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x28]
mov dword [esi], eax
mov ecx, dword [esp + 0x2c]
mov dword [esi + 4], ecx
cmp dword [esp + 0x2c], 0x7fffffff
ja 0x50b954
jb 0x50b93b
cmp dword [esp + 0x28], 0xffffffff
jae 0x50b954
mov byte [ebx + 0x1d], 1
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add edx, 1
adc eax, ebp
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], eax
jmp 0x50b958
mov byte [ebx + 0x1d], 0
cmp byte [ebx + 0x1b], 0
je 0x50ba24
mov ebp, dword [esp + 0x14]
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
xor edi, edi
test edi, edi
jne 0x50b99b
mov ecx, eax
and ecx, 0xffffff
xor esi, esi
cmp ecx, eax
jne 0x50b99b
cmp esi, edx
jne 0x50b99b
add eax, 1
adc edx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x50b9c8
lea ecx, [esp + 0x28]
push ecx
push 8
call fcn.005223e0
mov eax, dword [esp + 0x30]
add esp, 8
cmp edi, 5
jge 0x50b9c4
and eax, 0xffffff
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x50b9c8
mov edx, dword [esp + 0x2c]
mov ecx, eax
or ecx, edx
je 0x50b9f9
lea ecx, [esp + 0x70]
push ecx
push 0
push edx
mov edx, dword [ebx]
push eax
push 0
push 0
push edx
call fcn.00512f60
mov edx, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [esp + 0x44]
add esp, 0x1c
mov dword [esp + 0x24], ecx
add edi, 1
jmp 0x50b9fd
mov ecx, dword [esp + 0x24]
cmp edi, 0x64
jge 0x50ba10
test ecx, ecx
jne 0x50ba10
cmp dword [esp + 0x70], ecx
je 0x50b976
test ecx, ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], edx
jne 0x50ba24
cmp dword [esp + 0x70], ecx
je 0x50d0a5
mov byte [ebx + 0x19], 0
mov byte [ebx + 0x20], 0
mov dword [ebx + 0x68], 0
mov eax, dword [esp + 0x1c]
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x28]
and cx, 0xffe4
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x2c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x5098f1.12
test byte [edi + 3], 1
mov edx, dword [esp + 0x230]
mov ecx, dword [edi + 8]
mov eax, dword [edx + 0x4c]
mov ebx, dword [edx + 0x30]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [edi + 4]
mov ebp, dword [ebx + ecx*4]
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov dword [esp + 0x10c], ecx
je 0x50ba98
add dword [edx + 0x104], 1
test byte [edi + 3], 2
je 0x50baad
mov edx, dword [eax]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x34], edx
cmp byte [ebp + 0x1d], 0
je 0x50bac8
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp + 0x14]
jl 0x50bac8
jg 0x50bac4
mov edx, dword [eax]
cmp edx, dword [ebp + 0x10]
jb 0x50bac8
mov byte [ebp + 0x1d], 0
movzx eax, word [esi + 0x1c]
test al, 1
je 0x50bad8
xor ecx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
cmp byte [ebp + 0x1e], 0
je 0x50bb7e
cmp byte [ebp + 0x1f], 0
jne 0x50baf4
mov eax, dword [ebp + 0x38]
push eax
call fcn.00504810
add esp, 4
mov ecx, dword [esp + 0x10c]
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ecx
mov eax, dword [esi + 0x18]
mov dword [ebp + 0x34], eax
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x24]
je 0x50bb58
cmp byte [ebp + 0x1f], 0
jne 0x50bb58
add eax, 2
push eax
call fcn.00504700
add esp, 4
test eax, eax
mov dword [ebp + 0x38], eax
je 0x509b9b
mov edx, dword [ebp + 0x34]
mov ecx, dword [esi + 0x14]
push edx
push ecx
push eax
call fcn.004b58f0
mov edx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x34]
mov byte [edx + eax], 0
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x34]
mov byte [ecx + edx + 1], 0
add esp, 0xc
mov byte [ebp + 0x1c], 0
jmp 0x50bbb7
cmp byte [ebp + 0x1f], 0
mov dword [ebp + 0x38], ecx
jne 0x50bb78
mov ax, word [esi + 0x1c]
and ax, 0xffbf
or ax, 0x100
mov word [esi + 0x1c], ax
mov dword [esi + 0x24], 0
mov byte [ebp + 0x1c], 0
jmp 0x50bbb7
test eax, 0x800
je 0x50bb89
mov eax, dword [esi]
jmp 0x50bb8b
xor eax, eax
movzx ecx, byte [edi + 3]
mov edx, dword [esi + 0x18]
and ecx, 8
push ecx
mov ecx, dword [esp + 0x110]
push eax
mov eax, dword [esi + 0x14]
push edx
mov edx, dword [ebp]
push eax
push ecx
push ebx
push 0
push edx
call fcn.00515170
add esp, 0x20
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
mov byte [ebp + 0x19], 0
mov byte [ebp + 0x20], 0
mov dword [ebp + 0x68], 0
jne case.0x5098f1.12
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je case.0x5098f1.12
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x5098f1.12
mov edx, dword [esp + 0x10c]
mov ebp, dword [ebp + 4]
push edx
push ebx
push eax
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xb4]
lea edx, [ebp + ebp*2]
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [edi + 3]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x5098f1.12
mov edx, dword [esp + 0x230]
mov ebx, dword [esp + 0x14]
cmp dword [ebx + 0xb8], 0
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x30]
mov esi, dword [eax + ecx*4]
je 0x50bc63
cmp dword [edi + 0x10], 0
je 0x50bc63
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], edx
push esi
call fcn.00505ec0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
mov eax, dword [esi]
push eax
call fcn.00515360
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
mov byte [esi + 0x1d], 0
mov dword [esi + 0x68], 0
jne 0x50bcd3
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
je 0x50bcd3
mov eax, dword [edi + 0x10]
test eax, eax
je 0x50bcd3
mov edx, dword [esp + 0x118]
mov esi, dword [esi + 4]
push edx
mov edx, dword [esp + 0x118]
push edx
mov edx, dword [ebx + 8]
push eax
lea eax, [esi + esi*2]
mov eax, dword [edx + eax*8]
mov edx, dword [ebx + 0xb4]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [edi + 8], 1
je case.0x5098f1.12
mov eax, dword [esp + 0x230]
add dword [eax + 0x104], 1
jmp case.0x5098f1.12
cmp dword [edi + 4], 0
je 0x50bd11
mov eax, dword [esp + 0x230]
mov ecx, dword [eax + 0x104]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00506920
add esp, 8
mov eax, dword [esp + 0x230]
mov dword [eax + 0x104], 0
jmp case.0x5098f1.12
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x230]
mov edx, dword [eax + 0x4c]
lea ebp, [edx + ecx*8]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 0x30]
mov esi, dword [edx + ecx*4]
mov edi, dword [esi]
push esi
mov dword [esp + 0x20], ebp
call fcn.00505ec0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp byte [esi + 0x22], al
je 0x50bda4
lea eax, [esp + 0x154]
push eax
push edi
call fcn.00514b70
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x50]
mov ecx, dword [esp + 0x160]
cdq
add esp, 8
cmp ecx, edx
jg 0x509a56
mov ecx, dword [esp + 0x154]
jl 0x50bd9c
cmp ecx, eax
ja 0x509a56
mov eax, ecx
mov dword [esp + 0x68], eax
jmp 0x50bdc3
lea edx, [esp + 0x68]
push edx
push edi
call fcn.00514c00
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp eax, dword [ecx + 0x50]
ja 0x509a56
push 0
push eax
push ebp
call fcn.00507160
add esp, 0xc
test eax, eax
jne 0x509b9b
mov ax, word [ebp + 0x1c]
mov edx, dword [esp + 0x68]
and ax, 0xfff0
or ax, 0x10
mov dword [ebp + 0x18], edx
mov word [ebp + 0x1c], ax
cmp byte [esi + 0x22], 0
je 0x50be15
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
push ecx
push edx
push 0
push edi
call fcn.00510560
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [ebp + 0x1f], 1
jmp case.0x5098f1.12
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x68]
push eax
push ecx
push 0
push edi
call fcn.00514c80
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [ebp + 0x1f], 1
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + edx*4]
push esi
call fcn.00505ec0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
cmp byte [esi + 0x19], al
je 0x50be76
mov edx, dword [esi + 8]
mov dword [esp + 0x90], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x94], eax
jmp 0x50beaf
cmp byte [esi + 0x1e], 0
je 0x50be92
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x90], ecx
mov edx, dword [esi + 0x44]
mov dword [esp + 0x94], edx
jmp 0x50beaf
cmp byte [esi + 0x1c], 0
jne case.0x5098f1.12
mov ecx, dword [esi]
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.00514b70
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov dword [eax], edx
mov dx, word [eax + 0x1c]
and dx, 0xffe4
or dx, 4
mov dword [eax + 4], ecx
mov word [eax + 0x1c], dx
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x230]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov byte [eax + 0x1c], 1
mov byte [eax + 0x19], 0
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
lea ecx, [esp + 0x98]
push ecx
push eax
call fcn.00512ee0
mov dl, byte [esp + 0xa0]
add esp, 8
mov byte [esi + 0x1c], dl
mov byte [esi + 0x20], 0
mov dword [esi + 0x68], 0
cmp dword [esp + 0x98], 0
mov dword [esp + 0x10], eax
je case.0x5098f1.12
mov edi, dword [edi + 8]
test edi, edi
jle case.0x5098f1.12
add edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x50bfa9
lea ecx, [esp + 0x74]
push ecx
push eax
call fcn.00512ea0
add esp, 8
cmp dword [esp + 0x74], 0
mov byte [esi + 0x20], 0
sete dl
mov byte [esi + 0x1a], dl
mov dword [esi + 0x68], 0
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x74]
mov byte [esi + 0x1c], al
cmp dword [esp + 0x74], 0
jmp 0x50a69d
mov dword [esp + 0x74], 1
mov al, byte [esp + 0x74]
mov byte [esi + 0x1c], al
cmp dword [esp + 0x74], 0
jmp 0x50a69d
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xd8], 0
jne 0x50d0f2
mov eax, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + edx*4]
test esi, esi
je case.0x5098f1.12
cmp byte [esi + 0x1c], 0
mov eax, dword [esi]
jne 0x50c047
mov dword [esp + 0x84], 1
cmp byte [edi], 0x67
jne 0x50c013
lea edx, [esp + 0x84]
push edx
push eax
call fcn.00514cc0
jmp 0x50c021
lea ecx, [esp + 0x84]
push ecx
push eax
call fcn.00514de0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x8c]
add esp, 8
test eax, eax
mov byte [esi + 0x1c], al
mov dword [esi + 0x68], 0
jne 0x50c047
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov byte [esi + 0x19], 0
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + edx*4]
mov ebx, dword [esi]
test ebx, ebx
je case.0x5098f1.12
mov ecx, dword [esp + 0x54]
test word [ecx + 0x1c], 0x800
je 0x50c08f
push ecx
call fcn.00507230
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov ecx, dword [esp + 0x54]
mov edx, dword [edi + 0xc]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x14]
push edx
push 0
push 0
push 0x54a619
cdq
push edx
push eax
push ecx
push ebx
call fcn.00515170
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [esi + 0x68], 0
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov ebx, dword [edx + eax*4]
mov esi, dword [ebx]
test esi, esi
je case.0x5098f1.12
mov eax, dword [ebx + 0x4c]
mov cx, word [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x230]
mov word [esp + 0x13c], cx
mov ecx, dword [eax + 0x4c]
lea eax, [esp + 0x11c]
push eax
push 0
push 0
lea edx, [edi + edi*4]
lea edx, [ecx + edx*8]
push 0
lea ecx, [esp + 0x148]
push ecx
push 0
push esi
mov byte [esp + 0x15a], 0
mov byte [esp + 0x15b], 0
mov dword [esp + 0x15c], edx
call fcn.00512f60
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50c158
cmp dword [esp + 0x11c], eax
jne 0x50c158
push esi
call fcn.00515360
add esp, 4
mov dword [esp + 0x10], eax
mov dword [ebx + 0x68], 0
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
mov ecx, dword [eax + 0x30]
mov edx, dword [edi + 4]
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x5098f1.12
cmp byte [eax + 0x1c], 0
jne case.0x5098f1.12
lea edx, [esp + 0x15c]
push edx
push ecx
call fcn.005066e0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x50d0ad
mov eax, dword [esp + 0x1c]
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x15c]
and cx, 0xffe4
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x160]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + edx*4]
cmp dword [esi], 0
je case.0x5098f1.12
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x148], edx
mov ax, word [edi + 0x10]
mov edx, dword [esp + 0x230]
mov word [esp + 0x14c], ax
mov byte [esp + 0x14e], 0
mov byte [esp + 0x14f], 0
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
mov edx, dword [esi + 0x48]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x150], ecx
mov al, byte [edi + 3]
lea ecx, [esp + 0x78]
push ecx
push 0
mov byte [edx], al
push 0
lea edx, [esp + 0x154]
push edx
push esi
call fcn.005067f0
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x48]
mov byte [eax], 0
mov eax, dword [esp + 0x8c]
add esp, 0x14
cmp byte [edi], 0x28
jne 0x50c267
neg eax
jmp 0x50c26a
add eax, 1
test eax, eax
mov dword [esp + 0x78], eax
jle case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x8c]
xor edx, edx
test eax, eax
je 0x50c2d7
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x50c2b0
cmp byte [eax + 0x101], 2
jae 0x50c2b0
cmp dword [eax + 0x70], 0
jl 0x50c2b0
add edx, 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x50c295
cmp edx, 1
jle 0x50c2d7
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x10], 6
mov dword [ecx + 0x7c], 2
jmp case.0x5098f1.12
mov esi, dword [edi + 0xc]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 8]
lea esi, [esi + esi*2]
add esi, esi
lea edx, [esp + 0xf8]
push edx
add esi, esi
add esi, esi
mov edx, dword [ecx + esi + 4]
push eax
push edx
call fcn.005158b0
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x104]
mov ebx, eax
mov ax, word [ecx + 0x1c]
and ax, 0xffe4
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, ebp
cdq
add esp, 0xc
test ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne case.0x5098f1.12
test ebp, ebp
je case.0x5098f1.12
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
push ecx
add eax, esi
push ebp
push eax
call fcn.00518520
add esp, 0xc
jmp case.0x5098f1.12
mov ecx, dword [edi + 4]
mov edi, dword [edi + 8]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [eax + 8]
lea edx, [edi + edi*2]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.005155e0
mov dword [esp + 0x18], eax
jmp 0x50cf03
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 8]
sub al, 0x32
neg al
lea ecx, [edi + edi*2]
lea ecx, [edx + ecx*8]
mov ecx, dword [ecx + 4]
sbb eax, eax
and eax, 0xfffffffd
add eax, 5
push eax
lea eax, [esp + 0x138]
push eax
push ecx
call fcn.00514430
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov eax, dword [esp + 0x134]
mov ecx, dword [esp + 0x1c]
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x1c]
and dx, 0xffe4
or dx, 4
mov dword [ecx], eax
mov word [ecx + 0x1c], dx
jmp case.0x5098f1.12
cmp dword [edi + 8], 0
mov eax, dword [edi + 4]
jne 0x50c3fd
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 8]
lea ecx, [eax + eax*2]
mov ecx, dword [edx + ecx*8 + 0x14]
test byte [ecx + 0x5a], 1
je case.0x5098f1.12
cmp eax, 1
mov ecx, str.sqlite_temp_master
je 0x50c40c
mov ecx, str.sqlite_master
mov edx, dword [esp + 0x230]
mov ebp, dword [esp + 0x14]
add edx, 0xf4
mov dword [esp + 0x1cc], edx
mov edx, dword [edi + 0x10]
push edx
push ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1d0], eax
lea eax, [eax + eax*2]
mov dword [esp + 0x1cc], ebp
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ebp
call fcn.00504450
mov esi, eax
add esp, 0x14
test esi, esi
je 0x509b9b
push 0
lea eax, [esp + 0x1c8]
push eax
push fcn.00502610
push esi
push ebp
mov byte [ebp + 0x80], 1
call fcn.005022c0
mov edi, eax
add esp, 0x14
cmp edi, 4
mov dword [esp + 0x10], eax
jne 0x50c48f
mov edi, dword [esp + 0x1d0]
mov dword [esp + 0x10], edi
push esi
call fcn.00504810
add esp, 4
cmp edi, 7
mov byte [ebp + 0x80], 0
je 0x509b9b
jmp case.0x5098f1.12
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edi
push ecx
call fcn.00522ba0
mov dword [esp + 0x18], eax
jmp 0x50cf03
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00517690
add esp, 0xc
jmp case.0x5098f1.12
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00517340
add esp, 0xc
jmp case.0x5098f1.12
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00524140
add esp, 0xc
jmp case.0x5098f1.12
mov ebx, dword [edi + 8]
lea edx, [ebx*4 + 4]
push edx
call fcn.00504700
add esp, 4
test eax, eax
mov dword [esp + 0x34], eax
je 0x509b9b
mov eax, dword [esp + 0x230]
mov ecx, dword [edi + 0xc]
mov eax, dword [eax + 0x4c]
lea ecx, [ecx + ecx*4]
lea ebp, [eax + ecx*8]
mov ecx, dword [edi + 4]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
xor esi, esi
test ebx, ebx
mov dword [esp + 0x18], eax
jle 0x50c580
mov dword [esp + 0x38], eax
jmp 0x50c560
mov eax, dword [esp + 0x38]
push eax
call fcn.00507540
mov ecx, dword [esp + 0x38]
add dword [esp + 0x3c], 0x28
mov dword [ecx + esi*4], eax
add esi, 1
add esp, 4
cmp esi, ebx
jl 0x50c560
mov eax, dword [esp + 0x34]
mov dword [eax + esi*4], 0
mov ecx, dword [ebp]
lea edx, [esp + 0xa8]
push edx
push ecx
push ebx
push eax
movzx eax, byte [edi + 3]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.005145a0
mov esi, eax
mov eax, dword [esp + 0xbc]
cdq
sub dword [ebp], eax
mov eax, dword [esp + 0x2c]
push eax
sbb dword [ebp + 4], edx
call fcn.00507770
add esp, 0x18
cmp dword [esp + 0xa8], 0
je 0x50c5ef
mov ecx, dword [esp + 0x18]
push fcn.00504810
push 1
push 0xffffffffffffffff
push esi
push ecx
call fcn.00507940
add esp, 0x14
movzx edx, byte [esp + 0x40]
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.00507130
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00504810
add esp, 0xc
jmp case.0x5098f1.12
mov edx, dword [esp + 0x18]
push edx
call fcn.00507540
push edx
push eax
mov eax, dword [esp + 0x23c]
add eax, 0x58
push eax
call fcn.005237e0
add esp, 0x10
cmp eax, 7
je 0x509b9b
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xd8], 0
jne 0x50d0f2
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x230]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x4c]
lea eax, [eax + edx*8]
mov dx, word [eax + 0x1c]
and dx, 0xffe4
push eax
add ecx, 0x58
or dx, 4
push ecx
mov dword [esp + 0x24], eax
mov word [eax + 0x1c], dx
call fcn.00523890
add esp, 8
cmp eax, 0x65
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov edi, dword [esp + 0x230]
mov esi, dword [edi + 0x64]
cmp esi, dword [edi + 0x68]
mov ebx, dword [esp + 0x14]
lea eax, [esi + 1]
mov dword [edi + 0x64], eax
jl 0x50c6db
mov ecx, dword [edi + 0x6c]
mov dword [edi + 0x68], eax
lea eax, [esi + esi*2 + 3]
add eax, eax
add eax, eax
add eax, eax
push eax
push ecx
push ebx
call fcn.005082f0
add esp, 0xc
test eax, eax
mov dword [edi + 0x6c], eax
je 0x509b9b
mov eax, dword [edi + 0x6c]
mov ecx, dword [ebx + 0x30]
lea edx, [esi + esi*2]
lea eax, [eax + edx*8]
mov dword [eax], ecx
mov edx, dword [ebx + 0x34]
mov dword [eax + 4], edx
mov ecx, dword [edi + 0x104]
mov dword [eax + 8], ecx
mov edx, dword [edi + 0x58]
lea ecx, [edi + 0x58]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 4]
mov dword [eax + 0x10], edx
mov edx, dword [ecx + 8]
push ecx
mov dword [eax + 0x14], edx
call fcn.005237d0
add esp, 4
jmp case.0x5098f1.12
mov edi, dword [esp + 0x230]
add dword [edi + 0x64], 0xffffffff
mov eax, dword [edi + 0x64]
mov ecx, dword [edi + 0x6c]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8]
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x30], edx
mov ecx, dword [esi + 4]
mov dword [eax + 0x34], ecx
mov edx, dword [esi + 8]
mov dword [edi + 0x104], edx
add edi, 0x58
push edi
call fcn.005238f0
mov eax, dword [esi + 0xc]
mov dword [edi], eax
mov ecx, dword [esi + 0x10]
mov dword [edi + 4], ecx
mov edx, dword [esi + 0x14]
add esp, 4
mov dword [edi + 8], edx
jmp case.0x5098f1.12
mov edi, dword [esp + 0x18]
push edi
call fcn.00507690
mov esi, dword [esp + 0x58]
push esi
call fcn.00507690
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
add esp, 8
cmp ecx, esi
jg case.0x5098f1.12
jl 0x50c7a2
mov edx, edi
mov ecx, dword [edx]
cmp ecx, eax
jae case.0x5098f1.12
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x5098f1.12
mov edx, dword [esp + 0x18]
cmp dword [edx + 4], 0
jl case.0x5098f1.12
jg 0x50a6a3
mov eax, edx
cmp dword [eax], 0
jbe case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 4], 0
jg case.0x5098f1.12
jl 0x50a6a3
mov edx, ecx
cmp dword [edx], 0
jae case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov eax, dword [edi + 8]
mov ebp, dword [esp + 0x230]
movzx esi, byte [edi + 3]
mov ebx, dword [ebp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x4c]
lea ecx, [eax + edx*8]
xor edx, edx
test esi, esi
jle 0x50c862
lea ebx, [ebx]
mov dword [ebx + edx*4], ecx
call fcn.00509490
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x50c850
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0xac], ecx
lea eax, [eax + edx*8]
mov dword [esp + 0xdc], eax
mov ecx, 1
add dword [eax + 0x18], ecx
xor eax, eax
mov word [esp + 0xd0], cx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xc4], ecx
cmp byte [eax + 3], 0
je 0x50c8d6
mov edx, dword [edi - 4]
mov dword [esp + 0xe4], edx
mov edx, dword [eax + 0x14]
push ebx
lea ecx, [esp + 0xb0]
push esi
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0xe0], 0
je 0x50c91f
lea eax, [esp + 0xb4]
push 0
push eax
call fcn.004ffb90
add esp, 4
push eax
add ebp, 0xf4
push ebp
call fcn.00508460
mov ecx, dword [esp + 0xec]
add esp, 0xc
mov dword [esp + 0x10], ecx
lea edx, [esp + 0xb4]
push edx
call fcn.00507480
add esp, 4
jmp case.0x5098f1.12
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x230]
mov ecx, dword [ebx + 0x4c]
mov edx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push edx
push esi
call fcn.005073c0
add esp, 8
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x50c978
push 0
push esi
call fcn.004ffb90
add esp, 4
push eax
add ebx, 0xf4
push ebx
call fcn.00508460
add esp, 0xc
movzx eax, byte [esp + 0x40]
push eax
push esi
call fcn.00507130
push esi
call fcn.00507860
add esp, 0xc
test eax, eax
jne 0x509a56
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x230]
push ecx
add edx, 0xf4
push edx
call fcn.00523a70
mov dword [esp + 0x18], eax
jmp 0x50cf03
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.00512850
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], 0
jmp case.0x5098f1.12
cmp dword [edi + 4], 0
jne 0x50ca11
mov eax, dword [esp + 0x14]
push eax
call fcn.00506940
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov byte [ecx + 0xff], 1
jmp case.0x5098f1.12
mov dl, byte [edi + 0xc]
mov eax, dword [edi + 4]
mov byte [esp + 0x120], dl
mov ecx, dword [esp + 0x120]
mov edx, dword [edi + 8]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
push eax
call fcn.00512560
add esp, 0xc
cmp eax, 6
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0x230]
push 0
push ecx
add edx, 0xf4
push str.database_table_is_locked:
push edx
call fcn.00508460
add esp, 0x10
jmp case.0x5098f1.12
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.00516bb0
mov dword [esp + 0x18], eax
jmp 0x50cf03
mov edx, dword [esp + 0x230]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 4]
add edx, 0xf4
push edx
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
call fcn.00516810
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.0x5098f1.12
mov esi, dword [esp + 0x230]
mov edx, dword [esp + 0x14]
mov byte [esi + 0x101], 2
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 4]
push eax
push ecx
push edx
call fcn.005169d0
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 0x101], 0
jmp case.0x5098f1.12
mov esi, dword [edi + 0x10]
mov dword [esp + 0x30], 0
mov ebx, dword [esi]
mov ecx, dword [ebx + 0x18]
lea eax, [esp + 0x30]
push eax
push esi
call ecx
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x5098f1.12
mov edx, dword [esp + 0x30]
push eax
mov dword [edx], esi
mov eax, dword [edi + 4]
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x23c]
lea ecx, [edi - 0x14]
call fcn.005094e0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
je 0x50cb5e
mov dword [eax + 0x60], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [edx]
mov edx, dword [ecx]
mov dword [eax + 0x64], edx
jmp case.0x5098f1.12
mov eax, dword [esp + 0x14]
mov byte [eax + 0x1e], 1
mov edx, dword [ebx + 0x1c]
push ecx
call edx
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 0xc]
mov edx, dword [ecx + 0x4c]
mov esi, dword [ecx + 0x30]
mov ebp, dword [ecx + 0x24]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [edi + 4]
mov ebx, dword [esi + edx*4]
mov edx, dword [ebx + 0x60]
mov edx, dword [edx]
mov edx, dword [edx]
mov esi, dword [eax + 0x28]
mov dword [esp + 0x24], edx
mov edx, dword [eax]
mov dword [esp + 0x4c], edx
xor edx, edx
test esi, esi
jle 0x50cbc3
lea ecx, [eax + 0x50]
mov dword [ebp + edx*4], ecx
call fcn.00509490
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x50cbb0
mov eax, dword [esp + 0x230]
mov edx, dword [esp + 0x4c]
push ebp
mov byte [eax + 0x101], 1
mov ecx, dword [edi + 0x10]
mov eax, dword [ebx + 0x60]
push esi
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [ecx + 0x20]
push eax
call edx
mov ecx, dword [esp + 0x244]
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
mov byte [ecx + 0x101], 0
jne 0x50cc20
mov edx, dword [ebx + 0x60]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
je 0x50cc20
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov byte [ebx + 0x1c], 0
jmp case.0x5098f1.12
mov eax, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx + edx*4]
cmp byte [eax + 0x1c], 0
jne case.0x5098f1.12
mov eax, dword [eax + 0x60]
mov edx, dword [eax]
mov ecx, dword [edx]
lea edx, [esp + 0x174]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov edx, dword [esp + 0x17c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov cx, word [eax + 0x1c]
and cx, 0xffe4
add esp, 8
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x178]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov edx, dword [edi + 4]
mov eax, dword [ecx + 0x30]
mov ebp, dword [eax + edx*4]
cmp byte [ebp + 0x1c], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x4c]
lea esi, [eax + edx*8]
je 0x50ccbc
push esi
call fcn.00507770
add esp, 4
jmp case.0x5098f1.12
mov ecx, dword [ebp + 0x60]
mov edx, dword [ecx]
mov ebx, dword [edx]
push 0x40
lea eax, [esp + 0xb0]
push 0
push eax
call fcn.004af7d0
lea ecx, [esp + 0xc0]
push esi
push ecx
call fcn.00507910
mov edx, dword [esp + 0xe4]
mov eax, dword [edi + 8]
and edx, 0xffe1
or edx, 1
push eax
mov word [esp + 0xe8], dx
mov edx, dword [ebp + 0x60]
mov eax, dword [ebx + 0x2c]
lea ecx, [esp + 0xc4]
push ecx
push edx
call eax
movzx ecx, byte [esp + 0x60]
push ecx
lea edx, [esp + 0xd8]
push edx
mov dword [esp + 0x38], eax
call fcn.00507130
lea eax, [esp + 0xdc]
push eax
push esi
call fcn.00507910
push esi
call fcn.00507860
add esp, 0x34
test eax, eax
jne 0x509a56
jmp case.0x5098f1.12
mov edx, dword [esp + 0x230]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x30]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x1c], 0
jne case.0x5098f1.12
mov ecx, dword [esi + 0x60]
mov edx, dword [ecx]
mov ebx, dword [edx]
mov ebp, dword [esp + 0x230]
mov byte [ebp + 0x101], 1
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 0x24]
push eax
call ecx
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
mov byte [ebp + 0x101], 0
jne 0x50a6a3
mov edx, dword [esi + 0x60]
mov eax, dword [ebx + 0x28]
push edx
call eax
add esp, 4
test eax, eax
jne case.0x5098f1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x5098f1.12
mov esi, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov edx, dword [esp + 0x230]
mov eax, dword [edx + 0x4c]
lea ecx, [edi + edi*4]
test byte [eax + ecx*8 + 0x1c], 0x12
lea edi, [eax + ecx*8]
jne 0x50cded
movzx ecx, bl
push ecx
push edi
call fcn.005072e0
add esp, 8
test eax, eax
jne 0x509b9b
push esi
call fcn.00515fd0
mov eax, dword [edi + 0x14]
mov edx, dword [esi]
mov ecx, dword [edx + 0x4c]
push eax
push esi
call ecx
mov edx, dword [esp + 0x20]
push esi
push edx
mov dword [esp + 0x24], eax
call fcn.00515fe0
add esp, 0x14
jmp case.0x5098f1.12
mov ebx, dword [edi + 0x10]
mov eax, dword [ebx]
cmp dword [eax + 0x34], 0
mov esi, dword [edi + 8]
mov dword [esp + 0x4c], eax
jne 0x50ce51
mov eax, dword [esp + 0x230]
push 0
add eax, 0xf4
push str.read_only_table
push eax
call fcn.00508460
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x5098f1.12
mov ecx, dword [esp + 0x230]
mov eax, dword [edi + 0xc]
mov ebp, dword [ecx + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x4c]
lea ecx, [eax + edx*8]
xor edx, edx
test esi, esi
jle 0x50ce83
lea ecx, [ecx]
call fcn.00509490
mov dword [ebp + edx*4], ecx
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x50ce70
push ebx
call fcn.00515fd0
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x34]
lea ecx, [esp + 0x180]
push ecx
push ebp
push esi
push ebx
call eax
mov esi, dword [esp + 0x28]
push ebx
push esi
mov dword [esp + 0x2c], eax
call fcn.00515fe0
add esp, 0x1c
cmp dword [edi + 4], 0
je 0x50ced0
cmp dword [esp + 0x10], 0
jne 0x50ced0
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x180]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edx
mov eax, dword [esp + 0x230]
add dword [eax + 0x104], 1
jmp case.0x5098f1.12
mov edi, dword [edi + 0x10]
test edi, edi
je case.0x5098f1.12
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x94]
test eax, eax
je case.0x5098f1.12
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x98]
push edi
push edx
call eax
add esp, 8
add dword [esp + 0x20], 1
cmp dword [esp + 0x10], 0
je 0x5097d0
mov ebp, dword [esp + 0x230]
mov esi, dword [esp + 0x10]
jmp 0x509bc5
mov esi, 9
jmp 0x509bc5
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x230]
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x70], ecx
mov edx, dword [edi + 8]
mov dword [ebx + 0x7c], edx
mov edi, dword [edi + 0x10]
test edi, edi
je 0x50cf63
push 0
lea eax, [ebx + 0xf4]
push edi
push eax
call fcn.00508460
add esp, 0xc
push ebx
call fcn.00506b80
mov esi, 5
add esp, 4
cmp eax, esi
je 0x50d09d
mov esi, dword [ebx + 0x74]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x509bd6
mov esi, dword [esp + 0x230]
mov ecx, dword [esi + 0x54]
add ecx, 2
or ecx, 1
mov dword [esi + 0x54], ecx
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ebx, [eax + edx*8]
xor ebp, ebp
mov dword [esi + 0xf8], ebx
cmp dword [edi + 8], ebp
jle 0x50cfd2
push ebx
call fcn.00507290
add esp, 4
mov ecx, ebx
call fcn.00509490
add ebp, 1
add ebx, 0x28
cmp ebp, dword [edi + 8]
jl 0x50cfb7
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
jne 0x509b9b
add dword [esi + 0x50], 1
mov edx, dword [esp + 0x20]
add edx, 1
mov dword [esi + 0x70], edx
mov esi, 0x64
jmp 0x509bd6
lea eax, [esp + 0x18c]
push eax
call fcn.00507480
add esp, 4
jmp 0x509b9b
mov dword [esp + 0x10], 0x14
jmp 0x50d0ad
cmp dword [edi + 8], 0
je 0x50d046
push esi
call fcn.00501020
mov edi, dword [esp + 0x234]
add esp, 4
mov byte [esi + 0x1c], 1
mov esi, dword [edi + 0x74]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x509bd6
mov edi, dword [esp + 0x230]
push edi
mov byte [esi + 0x1c], bl
call fcn.00506b80
add esp, 4
cmp eax, 5
jne 0x50d034
mov ecx, dword [esp + 0x20]
mov dl, 1
sub dl, bl
mov dword [edi + 0x70], ecx
mov byte [esi + 0x1c], dl
mov esi, eax
mov dword [edi + 0x74], esi
jmp 0x509bd6
mov eax, dword [esp + 0x230]
mov ecx, dword [esp + 0x20]
mov esi, 5
mov dword [eax + 0x70], ecx
mov dword [eax + 0x74], esi
jmp 0x509bd6
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x70], edx
mov esi, 5
mov dword [ebx + 0x74], esi
jmp 0x509bd6
mov dword [esp + 0x10], 0xd
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1e], 0
je 0x50d0bf
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x10]
push 0
push ecx
call fcn.005010e0
mov edx, dword [esp + 0x238]
add esp, 4
push eax
add edx, 0xf4
push edx
call fcn.00508460
mov ebp, dword [esp + 0x23c]
mov esi, dword [esp + 0x1c]
jmp 0x509bc2
mov ebp, dword [esp + 0x230]
xor edi, edi
mov esi, 9
push edi
push esi
mov dword [ebp + 0x74], esi
call fcn.005010e0
add esp, 4
push eax
lea eax, [ebp + 0xf4]
push eax
call fcn.00508460
jmp 0x509bc2