Function at 0x517b40
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.0052c4f0
add esp, 4
cmp dword [ebp + 0x74], 7
je 0x517f8b
mov dword [ebp + 0x74], edi
mov dword [ebp + 0xf8], edi
cmp dword [esi + 0xd8], edi
mov dword [esi + 0x144], edi
jne 0x51b4eb
mov edx, dword [ebp + 0x70]
mov dword [esp + 0x20], edx
jmp 0x517bc4
mov bl, byte [esp + 0x40]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
jne 0x517f8b
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 0x517c1f
mov edx, dword [esp + 0xa4]
cmp dword [ecx + 0xf0], edx
jne 0x517c15
mov ecx, dword [ecx + 0xec]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x51b316
xor edx, edx
add edx, 1
mov dword [esp + 0xa4], edx
movzx edx, byte [edi]
mov al, byte [edx + 0x5c00d8]
test al, 2
je 0x517c4d
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.00515830
add esp, 4
mov word [esi + 0x1c], 1
jmp 0x517cc2
test al, 4
je 0x517c98
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 0x517c88
test al, 0x20
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [ebp + edx*8]
mov dword [esp + 0x54], ecx
je 0x517cc2
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ebp + edx*8]
mov dword [esp + 0x1c], eax
jmp 0x517cc2
test al, 0x10
je 0x517cc2
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea edx, [ebp + ecx*8]
jmp 0x517cbe
test al, 8
je 0x517cae
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 0x517cc2
test al, 0x10
je 0x517cc2
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.0x517ce1.12
movzx ecx, byte [ecx + 0x51b6a8]
jmp dword [ecx*4 + 0x51b510]
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xd8], 0
jne 0x51b4e2
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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.0x517ce1.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.0x517ce1.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.0x517ce1.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.0x517ce1.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.0x517ce1.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 0x517db6
sub eax, esi
cmp bl, 1
mov dword [edi + 4], eax
je 0x517e6a
mov esi, dword [esp + 0x1c]
push 0
push 1
push 0xffffffffffffffff
push edx
push esi
call fcn.00515d40
movzx edx, bl
push edx
push esi
call fcn.00515530
add esp, 0x1c
test eax, eax
jne 0x517f8b
push esi
call fcn.005160a0
add esp, 4
test eax, eax
jne 0x517f8b
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 0x517e29
mov ecx, dword [edi + 0x10]
push ecx
call fcn.00512c00
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.0x517ce1.12
mov ebp, dword [esp + 0x230]
push 0
lea ecx, [ebp + 0xf4]
push str.string_or_blob_too_big
push ecx
call fcn.00516860
mov esi, 0x12
jmp 0x517fb2
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x50]
jg 0x517e46
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.0x517ce1.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.00515d40
add esp, 0x14
mov byte [esi + 0x1f], bl
jmp case.0x517ce1.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.00515c60
add esp, 4
test eax, eax
jne 0x517e46
mov ecx, dword [esi + 0x38]
mov edx, dword [esp + 0x1c]
push 0x80
add ecx, edi
push ecx
push edx
call fcn.00515c90
add esp, 0xc
jmp case.0x517ce1.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.00515d10
mov dword [esi + 0x24], edi
jmp 0x51b2f3
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.00515c90
add esp, 0xc
test word [esi + 0x1c], 0x100
je case.0x517ce1.12
mov eax, esi
push eax
call fcn.00516100
add esp, 4
test eax, eax
je case.0x517ce1.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.00516860
mov esi, 7
add esp, 0xc
mov dword [ebp + 0x74], esi
push ebp
mov esi, 1
call fcn.00514f80
add esp, 4
mov ecx, dword [esp + 0x104]
push ecx
call fcn.0052c540
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.00515c90
add esp, 0xc
jmp case.0x517ce1.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 0x518043
mov edx, dword [esp + 0x1c]
push edx
call fcn.00515b70
add esp, 4
jmp case.0x517ce1.12
test eax, 0x800
je 0x518053
push ebx
call fcn.00515630
add esp, 4
test byte [ebx + 0x1c], 0x12
jne 0x518070
movzx eax, byte [esp + 0x40]
push eax
push ebx
call fcn.005156e0
add esp, 8
test eax, eax
jne 0x517f8b
test word [ebp + 0x1c], 0x800
je 0x518081
push ebp
call fcn.00515630
add esp, 4
test byte [ebp + 0x1c], 0x12
jne 0x51809e
movzx ecx, byte [esp + 0x40]
push ecx
push ebp
call fcn.005156e0
add esp, 8
test eax, eax
jne 0x517f8b
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 0x517e46
jl 0x5180c3
cmp esi, eax
ja 0x517e46
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.00515560
add esp, 0xc
test eax, eax
jne 0x517f8b
cmp edi, ebp
je 0x51810c
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
mov edx, dword [edi + 0x14]
push eax
push ecx
push edx
call fcn.0048eff0
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.0048eff0
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.0x517ce1.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 0x5182f5
movzx edx, word [ebp + 0x1c]
and cl, dl
test cl, 4
je 0x518210
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.0x51818d
jmp dword [edi*4 + 0x51b738]
add eax, ecx
adc edx, esi
jmp 0x5193a1
sub eax, ecx
sbb edx, esi
jmp 0x5193a1
push esi
push ecx
push edx
push eax
call fcn.0048b670
jmp 0x5193a1
mov edi, ecx
or edi, esi
je 0x5182f5
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x5181da
test eax, eax
jne 0x5181da
cmp edx, 0x80000000
jne 0x5181da
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.00490110
jmp 0x5193a1
mov edi, ecx
or edi, esi
je 0x5182f5
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x518202
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.00499bc0
jmp 0x5193a1
push eax
call fcn.005159e0
fstp qword [esp + 0x50]
push ebp
call fcn.005159e0
movzx eax, byte [edi]
add eax, 0xffffffb2
add esp, 8
cmp eax, 3
ja case.default.0x51822e
jmp dword [eax*4 + 0x51b748]
fadd qword [esp + 0x4c]
jmp 0x5182a6
fsub qword [esp + 0x4c]
jmp 0x5182a6
fmul qword [esp + 0x4c]
jmp 0x5182a6
fldz
fld qword [esp + 0x4c]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x5182f1
fdivp st(1)
jmp 0x5182a6
fld qword [esp + 0x4c]
call fcn.0048f506
mov esi, eax
mov edi, edx
call fcn.0048f506
mov ecx, esi
or ecx, edi
je 0x5182f5
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x518288
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00499bc0
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.005169d0
add esp, 8
test eax, eax
jne 0x5182f5
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.0x517ce1.12
mov edx, eax
push edx
call fcn.00515a60
add esp, 4
jmp case.0x517ce1.12
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x1c]
push edx
call fcn.00515b70
add esp, 4
jmp case.0x517ce1.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 0x518339
mov dword [ebx + edx*4], ecx
call fcn.00517880
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x518327
cmp byte [edi + 1], 0xfb
jne 0x518356
mov edx, dword [edi + 0x10]
mov dword [esp + 0x184], edx
mov dword [esp + 0x188], 0
jmp 0x518369
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.00515d10
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 0x5183ef
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 0x51b3e8
mov eax, dword [esp + 0x188]
test eax, eax
je 0x518435
mov edx, dword [edi + 4]
push edx
push eax
call fcn.00514260
mov eax, dword [esp + 0x190]
add esp, 8
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xf9
cmp dword [esp + 0x1b8], 0
je 0x518473
lea ecx, [esp + 0x18c]
push 0
push ecx
call fcn.0050df80
mov edx, dword [esp + 0x238]
add esp, 4
push eax
add edx, 0xf4
push edx
call fcn.00516860
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.00515530
lea eax, [esp + 0x194]
push eax
push ebp
call fcn.00515d10
push ebp
call fcn.00515c60
add esp, 0x14
test eax, eax
jne 0x517e46
jmp case.0x517ce1.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 0x5184cf
mov edx, dword [esp + 0x1c]
push edx
call fcn.00515b70
add esp, 4
jmp case.0x517ce1.12
push eax
call fcn.00515940
push ebx
mov esi, eax
mov ebp, edx
call fcn.00515940
mov ecx, eax
movzx eax, byte [edi]
add esp, 8
sub eax, 0x4a
je 0x518516
sub eax, 1
je 0x518510
sub eax, 1
mov edx, ebp
mov eax, esi
je 0x518505
call fcn.0050b050
mov esi, eax
mov ebp, edx
jmp 0x51851a
call fcn.00490dd0
mov esi, eax
mov ebp, edx
jmp 0x51851a
or esi, ecx
or ebp, edx
jmp 0x51851a
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.0x517ce1.12
mov esi, dword [esp + 0x18]
push esi
call fcn.00515a90
mov eax, dword [edi + 8]
cdq
add esp, 4
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x517ce1.12
mov esi, dword [esp + 0x18]
call fcn.005179c0
test byte [esi + 0x1c], 8
je 0x51856c
push esi
call fcn.00515a60
add esp, 4
movzx ebx, word [esi + 0x1c]
test bl, 0xc
jne 0x518584
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
test bl, 4
je 0x5185b0
cmp dword [edi + 0xc], 0
je 0x5185a1
mov eax, 1
xor ecx, ecx
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov ebp, eax
mov edx, ecx
jmp 0x51860a
xor eax, eax
xor ecx, ecx
add eax, dword [esi]
adc ecx, dword [esi + 4]
mov ebp, eax
mov edx, ecx
jmp 0x51860a
fld qword [esi + 8]
call fcn.0048f506
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 0x5185ed
add ebp, 1
adc edx, 0
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edx
cmp dword [edi + 0xc], 0
je 0x51860a
fild qword [esp + 0x9c]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x44
jp 0x51860a
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.0x517ce1.12
mov esi, dword [esp + 0x18]
call fcn.005179c0
test byte [esi + 0x1c], 8
je 0x518639
push esi
call fcn.00515a60
add esp, 4
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x518658
mov edi, dword [edi + 8]
test edi, edi
je 0x51b3fd
add edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
and eax, 0xffe4
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x517ce1.12
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 4
je case.0x517ce1.12
mov eax, edx
push eax
call fcn.00515ac0
add esp, 4
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x18]
movzx ecx, word [ecx + 0x1c]
test cl, 1
jne case.0x517ce1.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 0x5186c0
test al, 0xc
je 0x5186c0
movzx edx, bl
push edx
push esi
call fcn.005156e0
add esp, 8
and word [esi + 0x1c], 0xfff3
movzx eax, word [esi + 0x1c]
test eax, 0x800
je 0x5186e9
push esi
call fcn.00515630
add esp, 4
and word [esi + 0x1c], 0xffe3
mov dword [esp + 0x10], eax
jmp case.0x517ce1.12
and word [esi + 0x1c], 0xffe3
mov dword [esp + 0x10], 0
jmp case.0x517ce1.12
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x1c]
test al, 1
jne case.0x517ce1.12
test al, 0x10
jne 0x51873d
test al, 2
jne 0x518731
test al, 0xc
je 0x518731
mov esi, dword [esp + 0x18]
movzx ecx, bl
push ecx
push esi
call fcn.005156e0
add esp, 8
and word [esi + 0x1c], 0xfff3
jmp 0x518741
mov esi, dword [esp + 0x18]
and word [esi + 0x1c], 0xfff3
jmp 0x518741
mov esi, dword [esp + 0x18]
mov dx, word [esi + 0x1c]
and dx, 0xfff0
or dx, 0x10
mov word [esi + 0x1c], dx
jmp case.0x517ce1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 0xd
jne case.0x517ce1.12
mov ecx, eax
push ecx
call fcn.00515af0
add esp, 4
jmp case.0x517ce1.12
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 1
jne case.0x517ce1.12
mov eax, edx
push eax
call fcn.00515a90
add esp, 4
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 1
jne case.0x517ce1.12
mov edx, ecx
push edx
call fcn.00515ac0
add esp, 4
jmp case.0x517ce1.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 0x518829
mov al, byte [edi + 3]
test al, 0x10
je 0x518897
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 0x518850
mov edx, dword [esp + 0x40]
push edx
mov al, bl
mov ecx, esi
call fcn.00517a50
mov eax, dword [esp + 0x44]
push eax
mov al, bl
mov ecx, ebp
call fcn.00517a50
add esp, 8
mov ebx, 0x800
test word [esi + 0x1c], bx
je 0x518864
push esi
call fcn.00515630
add esp, 4
test word [ebp + 0x1c], bx
je 0x518873
push ebp
call fcn.00515630
add esp, 4
mov ecx, dword [edi + 0x10]
push ecx
push esi
push ebp
call fcn.00516450
movzx ecx, byte [edi]
add ecx, 0xffffffbd
add esp, 0xc
cmp ecx, 4
ja case.default.0x518890
jmp dword [ecx*4 + 0x51b758]
test al, al
jns 0x5188c8
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.0x517ce1.12
test al, 8
je case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
xor edx, edx
test eax, eax
sete dl
mov eax, edx
jmp 0x51891b
xor ecx, ecx
test eax, eax
setne cl
jmp 0x518919
xor edx, edx
test eax, eax
setl dl
mov eax, edx
jmp 0x51891b
xor ecx, ecx
test eax, eax
setle cl
jmp 0x518919
xor edx, edx
test eax, eax
setg dl
mov eax, edx
jmp 0x51891b
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test byte [edi + 3], 0x80
je 0x518a8b
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.0x517ce1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
je 0x518969
mov esi, 2
jmp 0x51897f
push eax
call fcn.00515940
add esp, 4
or eax, edx
je 0x51897d
mov esi, 1
jmp 0x51897f
xor esi, esi
mov eax, dword [esp + 0x54]
test byte [eax + 0x1c], 1
je 0x518990
mov eax, 2
jmp 0x5189a6
push eax
call fcn.00515940
add esp, 4
or eax, edx
je 0x5189a4
mov eax, 1
jmp 0x5189a6
xor eax, eax
cmp byte [edi], 0x3d
jne 0x5189b8
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x5820fc]
jmp 0x5189c3
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x582108]
cmp eax, 2
jne 0x5193a0
mov eax, dword [esp + 0x1c]
mov dx, word [eax + 0x1c]
and dx, 0xffe1
or dx, 1
mov word [eax + 0x1c], dx
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x1c], 1
jne case.0x517ce1.12
mov esi, ecx
push esi
call fcn.00515a90
mov edx, dword [esi]
add esp, 4
or edx, dword [esi + 4]
jne 0x518a16
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x517ce1.12
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x517ce1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
jne case.0x517ce1.12
mov esi, eax
push esi
call fcn.00515a90
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.0x517ce1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
je 0x518a5e
mov eax, dword [edi + 0xc]
jmp 0x518a8b
push eax
call fcn.005159e0
fcomp qword [0x55ca60]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x518a7b
mov eax, 1
jmp 0x518a7d
xor eax, eax
cmp byte [edi], 0x49
jne 0x518a8b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov eax, dword [edi + 0xc]
jmp 0x518ab0
mov edx, dword [esp + 0x18]
test byte [edx + 0x1c], 1
jne 0x517cf9
add dword [esp + 0x18], 0x28
sub eax, 1
test eax, eax
jg 0x518ab0
jmp case.0x517ce1.12
mov eax, dword [esp + 0x18]
test byte [eax + 0x1c], 1
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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 0x518bb8
push ebp
call fcn.005142c0
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp byte [ebp + 0x1c], bl
mov eax, dword [ebp]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], eax
je 0x518b6c
mov dword [esp + 0x60], ebx
jmp 0x518bcd
mov ecx, dword [ebp + 0x68]
cmp ecx, dword [esi + 0x54]
jne 0x518b84
mov edx, dword [ebp + 0x6c]
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 0x78]
mov dword [esp + 0x48], eax
jmp 0x518bcd
cmp byte [ebp + 0x22], 0
je 0x518ba8
lea ecx, [esp + 0x1d4]
push ecx
push eax
call fcn.00522f60
mov edx, dword [esp + 0x1dc]
mov dword [esp + 0x68], edx
add esp, 8
jmp 0x518bcd
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.00522ff0
add esp, 8
jmp 0x518bcd
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.0x517ce1.12
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x50]
ja 0x517e46
mov edx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x70]
mov ecx, esi
cmp edx, dword [ecx + 0x54]
mov dword [esp + 0x44], eax
jne 0x518c0a
mov eax, dword [ebp + 0x74]
mov dword [esp + 0x38], eax
jmp 0x518da6
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 0x518c75
cmp byte [ebp + 0x22], 0
je 0x518c44
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.0051e9a0
jmp 0x518c53
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x7c]
push ecx
push edx
call fcn.0051ea10
mov esi, eax
mov eax, dword [esp + 0x84]
add esp, 8
cmp eax, dword [esp + 0x60]
jb 0x518c6e
mov dword [esp + 0x48], esi
mov dword [ebp + 0x78], esi
jmp 0x518c75
mov dword [ebp + 0x78], 0
mov al, byte [esi]
cmp al, 0x80
jae 0x518c89
movzx ecx, al
mov dword [esp + 0x64], ecx
mov ebx, 1
jmp 0x518c9d
lea ecx, [esp + 0x64]
push ecx
push esi
call fcn.00517630
mov ecx, dword [esp + 0x6c]
add esp, 8
mov ebx, eax
cmp dword [esp + 0x48], 0
jne 0x518cee
cmp dword [esp + 0x7c], ecx
jae 0x518cee
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.00515ed0
add esp, 0x14
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x517ce1.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 0x518d64
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 0x518d53
mov dword [eax + esi], ecx
mov al, byte [ebx]
cmp al, 0x80
jae 0x518d2c
movzx eax, al
mov dword [esi], eax
mov eax, 1
jmp 0x518d36
push esi
push ebx
call fcn.00517630
add esp, 8
mov ecx, dword [esi]
push ecx
add ebx, eax
call fcn.00514420
mov ecx, dword [esp + 0x68]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ecx
jmp 0x518d5a
mov dword [eax + esi], 0
add esi, 4
sub dword [esp + 0x34], 1
jne 0x518d11
lea edx, [esp + 0xac]
push edx
call fcn.00515880
mov edx, dword [esp + 0x14]
add esp, 4
cmp ebx, edx
mov word [esp + 0xc8], 1
ja 0x518f0e
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
ja 0x518f0e
cmp ebx, edx
jne 0x518da6
cmp eax, ecx
jne 0x518f0e
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
mov eax, dword [ebx + esi*4]
test eax, eax
je 0x518eab
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x518e35
mov edi, dword [esp + 0x3c]
add eax, ecx
test byte [edi + 0x1c], 0x40
je 0x518e17
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x48]
mov edx, dword [edx + esi*4]
push edx
push eax
call fcn.00514500
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xb8]
push ecx
push edi
mov dword [esp + 0xd0], eax
call fcn.00516110
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x517ce1.12
mov al, byte [esp + 0x40]
mov byte [edi + 0x1f], al
jmp 0x518ecd
mov edx, dword [esp + 0x44]
mov edx, dword [edx + esi*4]
push edi
push edx
push eax
call fcn.00514500
mov al, byte [esp + 0x4c]
add esp, 0xc
mov byte [edi + 0x1f], al
jmp 0x518ecd
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + esi*4]
push ecx
call fcn.00514420
mov edx, dword [esp + 0x40]
mov edi, eax
push edx
lea eax, [esp + 0xb4]
push eax
call fcn.00515d10
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.00515ed0
add esp, 0x20
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x517ce1.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.00514500
mov al, byte [esp + 0x4c]
add esp, 0xc
mov byte [edi + 0x1f], al
jmp 0x518ecd
cmp byte [edi + 1], 0xf8
jne 0x518ec9
mov ecx, dword [edi + 0x10]
mov edi, dword [esp + 0x3c]
push 0x80
push ecx
push edi
call fcn.00515c90
add esp, 0xc
jmp 0x518ecd
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0xd0], 0
je 0x518efc
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.00516100
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x517ce1.12
mov dword [esp + 0x10], 0xb
jmp case.0x517ce1.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.0x517ce1.12
xor esi, esi
test word [edi + 0x1c], 0x800
je 0x518f58
push edi
call fcn.00515630
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.00517a50
add edi, 0x28
add esp, 4
add esi, 0x28
cmp edi, ebp
jbe 0x518f47
jmp case.0x517ce1.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 0x51909b
mov eax, 0xffffffe8
sub eax, ebp
mov dword [esp + 0x24], eax
lea esp, [esp]
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x519023
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.00517a50
add esp, 4
test word [ebp + 0x1c], 0x800
je 0x51903a
cmp dword [ebp + 0x18], 0
jle 0x51903a
push ebp
call fcn.00515630
add esp, 4
mov edx, dword [esp + 0x34]
push edx
push ebp
call fcn.00514340
mov esi, eax
push esi
call fcn.00514420
mov ebx, eax
cdq
add dword [esp + 0x94], eax
push 0
push esi
adc dword [esp + 0xa0], edx
call fcn.00517710
add dword [esp + 0x50], eax
add esp, 0x14
test word [ebp + 0x1c], 0x800
je 0x51907e
mov eax, dword [ebp]
add dword [esp + 0x44], eax
jmp 0x51908a
test ebx, ebx
je 0x51908a
mov dword [esp + 0x44], 0
add ebp, 0x28
cmp ebp, dword [esp + 0x30]
jbe 0x518ff0
mov esi, dword [esp + 0x3c]
mov eax, esi
cdq
push edx
push eax
call fcn.00517710
mov ebx, eax
add esi, ebx
mov eax, esi
cdq
push edx
push eax
mov dword [esp + 0x4c], esi
call fcn.00517710
add esp, 0x10
cmp ebx, eax
jge 0x5190c5
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 0x517e46
jb 0x519112
cmp ebp, eax
ja 0x517e46
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.00515560
add esp, 0xc
test eax, eax
jne 0x517f8b
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
cmp eax, 0x80
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x48], ecx
jae 0x51915c
mov byte [ecx], al
mov edi, 1
jmp 0x519168
push eax
push ecx
call fcn.00517410
add esp, 8
mov edi, eax
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x30]
ja 0x5191b1
mov eax, dword [esp + 0x34]
push eax
push esi
call fcn.00514340
add esp, 8
cmp eax, 0x80
jae 0x519195
mov ecx, dword [esp + 0x48]
mov byte [edi + ecx], al
mov eax, 1
jmp 0x5191a6
mov edx, dword [esp + 0x48]
push eax
lea eax, [edi + edx]
push eax
call fcn.00517410
add esp, 8
add esi, 0x28
add edi, eax
cmp esi, dword [esp + 0x30]
jbe 0x519172
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x30]
ja 0x5191e6
jmp 0x5191c0
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.00514440
add esi, 0x28
add esp, 0x10
add edi, eax
cmp esi, dword [esp + 0x30]
jbe 0x5191c0
cmp dword [esp + 0x44], 0
mov dword [ebx + 0x18], ebp
mov word [ebx + 0x1c], 0x50
mov dword [ebx + 0x20], 0
je 0x519216
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.0x517ce1.12
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1c], 0
je 0x519236
cmp dword [eax + 0x90], 1
jle case.0x517ce1.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.00520850
add esp, 4
test eax, eax
jne case.0x517ce1.12
push esi
call fcn.0051e290
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x234]
add esp, 4
mov dword [eax + 0x14c], 1
jmp case.0x517ce1.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 0x5192d2
test bl, bl
je 0x5192d2
cmp byte [esi + 0x1c], 0
jne 0x5192d2
test al, al
mov eax, str.rollback
jne 0x5192a6
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.00516860
add esp, 0x14
mov dword [esp + 0x10], ebp
jmp case.0x517ce1.12
cmp bl, byte [esi + 0x1c]
jne 0x51b40a
test bl, bl
jne 0x5192e6
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x5192f4
test al, al
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x5192f4
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.00516860
add esp, 0xc
mov dword [esp + 0x10], ebp
jmp case.0x517ce1.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.0x517ce1.12
mov ecx, dword [edi + 8]
push ecx
push eax
call fcn.0051dca0
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x51b466
test eax, eax
je case.0x517ce1.12
cmp eax, 8
jne 0x51b49d
jmp case.0x517ce1.12
mov eax, dword [edi + 4]
test eax, eax
mov edi, dword [edi + 0xc]
jge 0x519372
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.0051fdc0
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.0x517ce1.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.00515a90
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.0051fee0
mov dword [esp + 0x20], eax
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x519407
mov eax, dword [esi + 0x14]
mov ecx, dword [ebx]
mov dword [eax], ecx
or dword [ebp + 0xc], 0x10
jmp 0x519414
cmp eax, 1
jne 0x519414
mov edx, dword [esi + 0x14]
mov al, byte [ebx]
mov byte [edx + 0x58], al
cmp dword [edi + 4], 1
jne case.0x517ce1.12
mov ecx, ebp
push ecx
call fcn.00514d40
add esp, 4
jmp case.0x517ce1.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 0x5194db
lea edx, [esp + 0x80]
push edx
push 1
push eax
call fcn.0051fdc0
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x517ce1.12
mov eax, dword [esp + 0x80]
cmp eax, dword [edi + 8]
je case.0x517ce1.12
mov ebx, dword [esp + 0x230]
mov ecx, dword [ebx + 0xf4]
push ecx
call fcn.00512c00
mov esi, dword [esp + 0x18]
push str.database_schema_has_changed
push esi
call fcn.005167c0
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 0x5194c5
push edi
push esi
call fcn.005257c0
add esp, 8
push esi
call fcn.00514d40
add esp, 4
mov dword [esp + 0x10], 0x11
jmp case.0x517ce1.12
mov dword [esp + 0x10], esi
mov dword [esp + 0x80], esi
jmp 0x519468
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 0x519536
mov eax, dword [ecx + 0x14]
mov al, byte [eax + 0x58]
cmp al, byte [ebx + 0x100]
mov dword [esp + 0x24], 1
jae 0x51953e
mov byte [ebx + 0x100], al
jmp 0x51953e
mov dword [esp + 0x24], 0
cmp byte [edi + 3], 0
je 0x519561
lea ecx, [edx + edx*4]
mov edx, dword [ebx + 0x4c]
lea ebp, [edx + ecx*8]
push ebp
mov dword [esp + 0x58], ebp
call fcn.00515a90
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.005178d0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x517f8b
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.00522f20
add esp, 0x14
cmp byte [edi + 1], 0xfa
mov dword [esp + 0x10], eax
jne 0x5195cc
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 0x5195d9
lea ecx, [ebp + 0x23]
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x48], ecx
test eax, eax
je 0x519615
cmp eax, 5
je 0x51b481
cmp eax, 0x10
jne 0x51b49d
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.0x517ce1.12
mov eax, dword [ebp]
push eax
call fcn.00523320
add esp, 4
test al, 0xf0
jne 0x51965f
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x519634
cmp ecx, 2
jne 0x51965f
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 0x51964d
cmp byte [edi + 1], 0xfa
je 0x51965f
test al, al
je case.0x517ce1.12
cmp byte [edi + 1], 0xfa
je case.0x517ce1.12
mov dword [esp + 0x10], 0xb
jmp 0x51b49d
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x230]
push 1
push 0xffffffffffffffff
push eax
mov ecx, edi
mov eax, ebx
call fcn.005178d0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x517f8b
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.0050fc60
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51976f
mov eax, dword [esi]
push 1
push eax
call fcn.0051dca0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51976f
cmp dword [edi + 0x10], eax
je 0x51974c
mov edx, dword [esi]
push 2
lea ecx, [esp + 0x128]
push ecx
push edx
call fcn.00522820
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x519739
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.00522f20
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.0x517ce1.12
mov eax, dword [ebp]
mov ecx, dword [esi]
push eax
push 0
push 1
push 1
push ecx
call fcn.00522f20
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.0x517ce1.12
mov eax, dword [edi + 4]
push 0
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x23c]
lea ecx, [edi - 0x14]
call fcn.005178d0
add esp, 0xc
test eax, eax
je 0x517f8b
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.0x517ce1.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.00513b30
mov edx, dword [esi + 0x30]
mov dword [edx + edi*4], 0
jmp 0x51b2f3
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.0x517ce1.12
cmp edx, 6
mov byte [ebp + 0x1c], 0
je 0x519813
cmp edx, 0x40
je 0x519813
xor eax, eax
jmp 0x519818
mov eax, 1
mov edx, dword [ebp + 0x48]
mov byte [edx], al
cmp byte [ebp + 0x21], 0
je 0x519884
mov eax, dword [esp + 0x5c]
push eax
call fcn.00515940
add esp, 4
cmp dword [edi + 8], 0
mov esi, eax
mov ebx, edx
jne 0x51984d
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], ebx
mov byte [ebp + 0x19], 0
mov byte [ebp + 0x20], 1
jmp case.0x517ce1.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.00521350
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp dword [esp + 0x58], eax
mov dword [ebp + 8], esi
sete al
mov dword [ebp + 0xc], ebx
mov byte [ebp + 0x19], al
jmp 0x5198f4
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.00521350
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
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 0x519950
cmp eax, 6
je 0x519950
cmp dword [esp + 0x58], ecx
jl 0x519926
mov ecx, dword [ebp]
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.005231d0
jmp 0x519964
mov edx, dword [ebp]
push edx
call fcn.0051ead0
add esp, 4
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
cmp dword [esp + 0x58], ecx
jge 0x519978
mov ecx, dword [ebp]
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.005230b0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
mov byte [ebp + 0x19], al
jmp 0x519936
mov dword [esp + 0x58], ecx
jmp case.0x517ce1.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 0x5199ec
cmp al, 0x7a
jne 0x5199a2
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.00521350
mov ecx, dword [esi + 0x4c]
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
mov byte [ecx + 6], 0
jne case.0x517ce1.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 0x5199f8
test ecx, ecx
jmp 0x518a8d
test ecx, ecx
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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.00515a90
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.0x517ce1.12
mov eax, dword [ebx + 0x14]
mov ebx, dword [ebx + 0x18]
push eax
mov dword [esp + 0x28], eax
call fcn.00514a80
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.00521350
add esp, 0x20
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp dword [esp + 0x6c], eax
jge 0x519acb
lea edx, [esp + 0x6c]
push edx
push ebp
call fcn.005230b0
add esp, 8
cmp dword [esp + 0x6c], 0
mov dword [esp + 0x10], eax
je 0x519acb
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x6c]
push eax
push ecx
push ebx
push 0
push esi
call fcn.00514bf0
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp dword [esp + 0x6c], eax
jle 0x519b02
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
lea edx, [esp + 0x16c]
push edx
push ebp
call fcn.00514ae0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
mov ecx, dword [esp + 0x16c]
cmp ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x170]
jne 0x519b4e
cmp edx, dword [esp + 0x100]
jne 0x519b4e
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov eax, dword [esp + 0x5c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x517ce1.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.0x517ce1.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.00521350
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 0x518a8b
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 0x5193aa
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 0x519e23
push eax
mov dword [esp + 0x28], ebp
call fcn.00523320
and al, 3
add esp, 4
cmp al, 1
jne 0x51965f
cmp byte [ebx + 0x1b], 0
jne 0x519d52
cmp byte [ebx + 0x1d], 0
je 0x519c55
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0x2c], ecx
jmp 0x519cb5
mov eax, dword [ebx]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.005212d0
add esp, 8
cmp eax, ebp
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp dword [esp + 0x70], ebp
je 0x519c85
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], ebp
jmp 0x519cb5
mov edx, dword [ebx]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00522f60
add esp, 8
cmp dword [esp + 0x28], 0xffffffff
jne 0x519cac
cmp dword [esp + 0x2c], 0x7fffffff
jne 0x519cac
mov byte [ebx + 0x1b], 1
jmp 0x519cb5
add dword [esp + 0x28], 1
adc dword [esp + 0x2c], ebp
mov edi, dword [edi + 0xc]
cmp edi, ebp
je 0x519d18
mov ecx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00515a90
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add esp, 4
cmp eax, 0xffffffff
jne 0x519ce4
cmp ecx, 0x7fffffff
je 0x51b495
cmp byte [ebx + 0x1b], 0
jne 0x51b495
mov edx, dword [esp + 0x2c]
add eax, 1
adc ecx, ebp
cmp edx, ecx
jg 0x519d0b
jl 0x519d03
cmp dword [esp + 0x28], eax
jae 0x519d0b
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 0x519d44
jb 0x519d2b
cmp dword [esp + 0x28], 0xffffffff
jae 0x519d44
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 0x519d48
mov byte [ebx + 0x1d], 0
cmp byte [ebx + 0x1b], 0
je 0x519e14
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 0x519d8b
mov ecx, eax
and ecx, 0xffffff
xor esi, esi
cmp ecx, eax
jne 0x519d8b
cmp esi, edx
jne 0x519d8b
add eax, 1
adc edx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x519db8
lea ecx, [esp + 0x28]
push ecx
push 8
call fcn.005307e0
mov eax, dword [esp + 0x30]
add esp, 8
cmp edi, 5
jge 0x519db4
and eax, 0xffffff
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x519db8
mov edx, dword [esp + 0x2c]
mov ecx, eax
or ecx, edx
je 0x519de9
lea ecx, [esp + 0x70]
push ecx
push 0
push edx
mov edx, dword [ebx]
push eax
push 0
push 0
push edx
call fcn.00521350
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 0x519ded
mov ecx, dword [esp + 0x24]
cmp edi, 0x64
jge 0x519e00
test ecx, ecx
jne 0x519e00
cmp dword [esp + 0x70], ecx
je 0x519d66
test ecx, ecx
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], edx
jne 0x519e14
cmp dword [esp + 0x70], ecx
je 0x51b495
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.0x517ce1.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 0x519e88
add dword [edx + 0x104], 1
test byte [edi + 3], 2
je 0x519e9d
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 0x519eb8
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp + 0x14]
jl 0x519eb8
jg 0x519eb4
mov edx, dword [eax]
cmp edx, dword [ebp + 0x10]
jb 0x519eb8
mov byte [ebp + 0x1d], 0
movzx eax, word [esi + 0x1c]
test al, 1
je 0x519ec8
xor ecx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
cmp byte [ebp + 0x1e], 0
je 0x519f6e
cmp byte [ebp + 0x1f], 0
jne 0x519ee4
mov eax, dword [ebp + 0x38]
push eax
call fcn.00512c00
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 0x519f48
cmp byte [ebp + 0x1f], 0
jne 0x519f48
add eax, 2
push eax
call fcn.00512af0
add esp, 4
test eax, eax
mov dword [ebp + 0x38], eax
je 0x517f8b
mov edx, dword [ebp + 0x34]
mov ecx, dword [esi + 0x14]
push edx
push ecx
push eax
call fcn.0048eff0
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 0x519fa7
cmp byte [ebp + 0x1f], 0
mov dword [ebp + 0x38], ecx
jne 0x519f68
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 0x519fa7
test eax, 0x800
je 0x519f79
mov eax, dword [esi]
jmp 0x519f7b
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.00523560
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.0x517ce1.12
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xb8]
test ecx, ecx
je case.0x517ce1.12
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x517ce1.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.0x517ce1.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 0x51a053
cmp dword [edi + 0x10], 0
je 0x51a053
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], edx
push esi
call fcn.005142c0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
mov eax, dword [esi]
push eax
call fcn.00523750
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
mov byte [esi + 0x1d], 0
mov dword [esi + 0x68], 0
jne 0x51a0c3
mov ecx, dword [ebx + 0xb8]
test ecx, ecx
je 0x51a0c3
mov eax, dword [edi + 0x10]
test eax, eax
je 0x51a0c3
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.0x517ce1.12
mov eax, dword [esp + 0x230]
add dword [eax + 0x104], 1
jmp case.0x517ce1.12
cmp dword [edi + 4], 0
je 0x51a101
mov eax, dword [esp + 0x230]
mov ecx, dword [eax + 0x104]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00514d20
add esp, 8
mov eax, dword [esp + 0x230]
mov dword [eax + 0x104], 0
jmp case.0x517ce1.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.005142c0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp byte [esi + 0x22], al
je 0x51a194
lea eax, [esp + 0x154]
push eax
push edi
call fcn.00522f60
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x50]
mov ecx, dword [esp + 0x160]
cdq
add esp, 8
cmp ecx, edx
jg 0x517e46
mov ecx, dword [esp + 0x154]
jl 0x51a18c
cmp ecx, eax
ja 0x517e46
mov eax, ecx
mov dword [esp + 0x68], eax
jmp 0x51a1b3
lea edx, [esp + 0x68]
push edx
push edi
call fcn.00522ff0
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp eax, dword [ecx + 0x50]
ja 0x517e46
push 0
push eax
push ebp
call fcn.00515560
add esp, 0xc
test eax, eax
jne 0x517f8b
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 0x51a205
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x68]
push ecx
push edx
push 0
push edi
call fcn.0051e950
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [ebp + 0x1f], 1
jmp case.0x517ce1.12
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x68]
push eax
push ecx
push 0
push edi
call fcn.00523070
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [ebp + 0x1f], 1
jmp case.0x517ce1.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.005142c0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
cmp byte [esi + 0x19], al
je 0x51a266
mov edx, dword [esi + 8]
mov dword [esp + 0x90], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x94], eax
jmp 0x51a29f
cmp byte [esi + 0x1e], 0
je 0x51a282
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x90], ecx
mov edx, dword [esi + 0x44]
mov dword [esp + 0x94], edx
jmp 0x51a29f
cmp byte [esi + 0x1c], 0
jne case.0x517ce1.12
mov ecx, dword [esi]
lea eax, [esp + 0x90]
push eax
push ecx
call fcn.00522f60
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.0x517ce1.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.0x517ce1.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.005212d0
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.0x517ce1.12
mov edi, dword [edi + 8]
test edi, edi
jle case.0x517ce1.12
add edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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 0x51a399
lea ecx, [esp + 0x74]
push ecx
push eax
call fcn.00521290
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 0x518a8d
mov dword [esp + 0x74], 1
mov al, byte [esp + 0x74]
mov byte [esi + 0x1c], al
cmp dword [esp + 0x74], 0
jmp 0x518a8d
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xd8], 0
jne 0x51b4e2
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.0x517ce1.12
cmp byte [esi + 0x1c], 0
mov eax, dword [esi]
jne 0x51a437
mov dword [esp + 0x84], 1
cmp byte [edi], 0x67
jne 0x51a403
lea edx, [esp + 0x84]
push edx
push eax
call fcn.005230b0
jmp 0x51a411
lea ecx, [esp + 0x84]
push ecx
push eax
call fcn.005231d0
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 0x51a437
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov byte [esi + 0x19], 0
jmp case.0x517ce1.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.0x517ce1.12
mov ecx, dword [esp + 0x54]
test word [ecx + 0x1c], 0x800
je 0x51a47f
push ecx
call fcn.00515630
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x517ce1.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 0x559dcd
cdq
push edx
push eax
push ecx
push ebx
call fcn.00523560
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [esi + 0x68], 0
jmp case.0x517ce1.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.0x517ce1.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.00521350
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51a548
cmp dword [esp + 0x11c], eax
jne 0x51a548
push esi
call fcn.00523750
add esp, 4
mov dword [esp + 0x10], eax
mov dword [ebx + 0x68], 0
jmp case.0x517ce1.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.0x517ce1.12
cmp byte [eax + 0x1c], 0
jne case.0x517ce1.12
lea edx, [esp + 0x15c]
push edx
push ecx
call fcn.00514ae0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x51b49d
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.0x517ce1.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.0x517ce1.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.00514bf0
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 0x51a657
neg eax
jmp 0x51a65a
add eax, 1
test eax, eax
mov dword [esp + 0x78], eax
jle case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x8c]
xor edx, edx
test eax, eax
je 0x51a6c7
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x51a6a0
cmp byte [eax + 0x101], 2
jae 0x51a6a0
cmp dword [eax + 0x70], 0
jl 0x51a6a0
add edx, 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x51a685
cmp edx, 1
jle 0x51a6c7
mov ecx, dword [esp + 0x230]
mov dword [esp + 0x10], 6
mov dword [ecx + 0x7c], 2
jmp case.0x517ce1.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.00523ca0
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.0x517ce1.12
test ebp, ebp
je case.0x517ce1.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.00526910
add esp, 0xc
jmp case.0x517ce1.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.005239d0
mov dword [esp + 0x18], eax
jmp 0x51b2f3
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.00522820
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x517ce1.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.0x517ce1.12
cmp dword [edi + 8], 0
mov eax, dword [edi + 4]
jne 0x51a7ed
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.0x517ce1.12
cmp eax, 1
mov ecx, str.sqlite_temp_master
je 0x51a7fc
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.00512840
mov esi, eax
add esp, 0x14
test esi, esi
je 0x517f8b
push 0
lea eax, [esp + 0x1c8]
push eax
push fcn.00510a00
push esi
push ebp
mov byte [ebp + 0x80], 1
call fcn.005106b0
mov edi, eax
add esp, 0x14
cmp edi, 4
mov dword [esp + 0x10], eax
jne 0x51a87f
mov edi, dword [esp + 0x1d0]
mov dword [esp + 0x10], edi
push esi
call fcn.00512c00
add esp, 4
cmp edi, 7
mov byte [ebp + 0x80], 0
je 0x517f8b
jmp case.0x517ce1.12
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edi
push ecx
call fcn.00530fa0
mov dword [esp + 0x18], eax
jmp 0x51b2f3
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00525a80
add esp, 0xc
jmp case.0x517ce1.12
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00525730
add esp, 0xc
jmp case.0x517ce1.12
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00532540
add esp, 0xc
jmp case.0x517ce1.12
mov ebx, dword [edi + 8]
lea edx, [ebx*4 + 4]
push edx
call fcn.00512af0
add esp, 4
test eax, eax
mov dword [esp + 0x34], eax
je 0x517f8b
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 0x51a970
mov dword [esp + 0x38], eax
jmp 0x51a950
mov eax, dword [esp + 0x38]
push eax
call fcn.00515940
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 0x51a950
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.00522990
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.00515b70
add esp, 0x18
cmp dword [esp + 0xa8], 0
je 0x51a9df
mov ecx, dword [esp + 0x18]
push fcn.00512c00
push 1
push 0xffffffffffffffff
push esi
push ecx
call fcn.00515d40
add esp, 0x14
movzx edx, byte [esp + 0x40]
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.00515530
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00512c00
add esp, 0xc
jmp case.0x517ce1.12
mov edx, dword [esp + 0x18]
push edx
call fcn.00515940
push edx
push eax
mov eax, dword [esp + 0x23c]
add eax, 0x58
push eax
call fcn.00531be0
add esp, 0x10
cmp eax, 7
je 0x517f8b
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xd8], 0
jne 0x51b4e2
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.00531c90
add esp, 8
cmp eax, 0x65
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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 0x51aacb
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.005166f0
add esp, 0xc
test eax, eax
mov dword [edi + 0x6c], eax
je 0x517f8b
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.00531bd0
add esp, 4
jmp case.0x517ce1.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.00531cf0
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.0x517ce1.12
mov edi, dword [esp + 0x18]
push edi
call fcn.00515a90
mov esi, dword [esp + 0x58]
push esi
call fcn.00515a90
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
add esp, 8
cmp ecx, esi
jg case.0x517ce1.12
jl 0x51ab92
mov edx, edi
mov ecx, dword [edx]
cmp ecx, eax
jae case.0x517ce1.12
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x517ce1.12
mov edx, dword [esp + 0x18]
cmp dword [edx + 4], 0
jl case.0x517ce1.12
jg 0x518a93
mov eax, edx
cmp dword [eax], 0
jbe case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 4], 0
jg case.0x517ce1.12
jl 0x518a93
mov edx, ecx
cmp dword [edx], 0
jae case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.12
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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 0x51ac52
lea ebx, [ebx]
mov dword [ebx + edx*4], ecx
call fcn.00517880
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x51ac40
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 0x51acc6
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 0x51ad0f
lea eax, [esp + 0xb4]
push 0
push eax
call fcn.0050df80
add esp, 4
push eax
add ebp, 0xf4
push ebp
call fcn.00516860
mov ecx, dword [esp + 0xec]
add esp, 0xc
mov dword [esp + 0x10], ecx
lea edx, [esp + 0xb4]
push edx
call fcn.00515880
add esp, 4
jmp case.0x517ce1.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.005157c0
add esp, 8
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x51ad68
push 0
push esi
call fcn.0050df80
add esp, 4
push eax
add ebx, 0xf4
push ebx
call fcn.00516860
add esp, 0xc
movzx eax, byte [esp + 0x40]
push eax
push esi
call fcn.00515530
push esi
call fcn.00515c60
add esp, 0xc
test eax, eax
jne 0x517e46
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x230]
push ecx
add edx, 0xf4
push edx
call fcn.00531e70
mov dword [esp + 0x18], eax
jmp 0x51b2f3
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.00520c40
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], 0
jmp case.0x517ce1.12
cmp dword [edi + 4], 0
jne 0x51ae01
mov eax, dword [esp + 0x14]
push eax
call fcn.00514d40
add esp, 4
jmp case.0x517ce1.12
mov ecx, dword [esp + 0x230]
mov byte [ecx + 0xff], 1
jmp case.0x517ce1.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.00520950
add esp, 0xc
cmp eax, 6
mov dword [esp + 0x10], eax
jne case.0x517ce1.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.00516860
add esp, 0x10
jmp case.0x517ce1.12
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.00524fa0
mov dword [esp + 0x18], eax
jmp 0x51b2f3
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.00524c00
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.0x517ce1.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.00524dc0
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 0x101], 0
jmp case.0x517ce1.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.0x517ce1.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.005178d0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
je 0x51af4e
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.0x517ce1.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.0x517ce1.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 0x51afb3
lea ecx, [eax + 0x50]
mov dword [ebp + edx*4], ecx
call fcn.00517880
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x51afa0
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 0x51b010
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 0x51b010
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
mov byte [ebx + 0x1c], 0
jmp case.0x517ce1.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.0x517ce1.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.0x517ce1.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 0x51b0ac
push esi
call fcn.00515b70
add esp, 4
jmp case.0x517ce1.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.00488f20
lea ecx, [esp + 0xc0]
push esi
push ecx
call fcn.00515d10
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.00515530
lea eax, [esp + 0xdc]
push eax
push esi
call fcn.00515d10
push esi
call fcn.00515c60
add esp, 0x34
test eax, eax
jne 0x517e46
jmp case.0x517ce1.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.0x517ce1.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 0x518a93
mov edx, dword [esi + 0x60]
mov eax, dword [ebx + 0x28]
push edx
call eax
add esp, 4
test eax, eax
jne case.0x517ce1.12
mov edi, dword [edi + 8]
sub edi, 1
mov dword [esp + 0x20], edi
jmp case.0x517ce1.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 0x51b1dd
movzx ecx, bl
push ecx
push edi
call fcn.005156e0
add esp, 8
test eax, eax
jne 0x517f8b
push esi
call fcn.005243c0
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.005243d0
add esp, 0x14
jmp case.0x517ce1.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 0x51b241
mov eax, dword [esp + 0x230]
push 0
add eax, 0xf4
push str.read_only_table
push eax
call fcn.00516860
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x517ce1.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 0x51b273
lea ecx, [ecx]
call fcn.00517880
mov dword [ebp + edx*4], ecx
add edx, 1
add ecx, 0x28
cmp edx, esi
jl 0x51b260
push ebx
call fcn.005243c0
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.005243d0
add esp, 0x1c
cmp dword [edi + 4], 0
je 0x51b2c0
cmp dword [esp + 0x10], 0
jne 0x51b2c0
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.0x517ce1.12
mov edi, dword [edi + 0x10]
test edi, edi
je case.0x517ce1.12
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x94]
test eax, eax
je case.0x517ce1.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 0x517bc0
mov ebp, dword [esp + 0x230]
mov esi, dword [esp + 0x10]
jmp 0x517fb5
mov esi, 9
jmp 0x517fb5
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 0x51b353
push 0
lea eax, [ebx + 0xf4]
push edi
push eax
call fcn.00516860
add esp, 0xc
push ebx
call fcn.00514f80
mov esi, 5
add esp, 4
cmp eax, esi
je 0x51b48d
mov esi, dword [ebx + 0x74]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x517fc6
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 0x51b3c2
push ebx
call fcn.00515690
add esp, 4
mov ecx, ebx
call fcn.00517880
add ebp, 1
add ebx, 0x28
cmp ebp, dword [edi + 8]
jl 0x51b3a7
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
jne 0x517f8b
add dword [esi + 0x50], 1
mov edx, dword [esp + 0x20]
add edx, 1
mov dword [esi + 0x70], edx
mov esi, 0x64
jmp 0x517fc6
lea eax, [esp + 0x18c]
push eax
call fcn.00515880
add esp, 4
jmp 0x517f8b
mov dword [esp + 0x10], 0x14
jmp 0x51b49d
cmp dword [edi + 8], 0
je 0x51b436
push esi
call fcn.0050f410
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 0x517fc6
mov edi, dword [esp + 0x230]
push edi
mov byte [esi + 0x1c], bl
call fcn.00514f80
add esp, 4
cmp eax, 5
jne 0x51b424
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 0x517fc6
mov eax, dword [esp + 0x230]
mov ecx, dword [esp + 0x20]
mov esi, 5
mov dword [eax + 0x70], ecx
mov dword [eax + 0x74], esi
jmp 0x517fc6
mov edx, dword [esp + 0x20]
mov dword [ebx + 0x70], edx
mov esi, 5
mov dword [ebx + 0x74], esi
jmp 0x517fc6
mov dword [esp + 0x10], 0xd
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1e], 0
je 0x51b4af
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x10]
push 0
push ecx
call fcn.0050f4d0
mov edx, dword [esp + 0x238]
add esp, 4
push eax
add edx, 0xf4
push edx
call fcn.00516860
mov ebp, dword [esp + 0x23c]
mov esi, dword [esp + 0x1c]
jmp 0x517fb2
mov ebp, dword [esp + 0x230]
xor edi, edi
mov esi, 9
push edi
push esi
mov dword [ebp + 0x74], esi
call fcn.0050f4d0
add esp, 4
push eax
lea eax, [ebp + 0xf4]
push eax
call fcn.00516860
jmp 0x517fb2