Function at 0x510428
Capabilities:
Enumerate pe sections
Reference sql statements

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x118
mov eax, dword [0x5afee0]
xor eax, ebp
mov dword [ebp + 0x70], eax
push ebx
mov ebx, dword [ebp + 0x7c]
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx]
mov dword [ebp - 0x64], eax
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
xor ecx, ecx
push esi
mov byte [ebp - 0x6c], al
mov eax, dword [ebx + 0x4c]
push edi
push ebx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x54], ecx
mov byte [ebp - 0x75], cl
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x88], ecx
call fcn.00500093
cmp dword [ebx + 0x58], 7
pop ecx
je 0x510872
mov esi, dword [ebp - 0x64]
xor eax, eax
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x2c], eax
mov ecx, dword [esi + 0xd8]
mov dword [esi + 0x1a0], eax
test ecx, ecx
jne 0x5140b0
cmp dword [esi + 0x100], eax
mov eax, dword [ebx + 0x54]
setne cl
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x94], ecx
cmp byte [esi + 0x1e], 0
jne 0x510872
mov edi, dword [ebp - 0x58]
mov esi, dword [ebp - 0x64]
imul edi, edi, 0x14
add edi, dword [ebp - 0x7c]
xor ecx, ecx
cmp dword [ebp - 0x94], ecx
je 0x510513
mov eax, dword [esi + 0x108]
cmp eax, dword [ebp - 0x84]
jne 0x51050d
push dword [esi + 0x104]
call dword [esi + pe_nt_image_headers32]
pop ecx
test eax, eax
jne 0x513f32
and dword [ebp - 0x84], eax
xor ecx, ecx
inc dword [ebp - 0x84]
test byte [edi + 2], 2
je 0x510538
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push eax
mov dword [ebp - 0x5c], eax
call fcn.00508727
pop ecx
mov ecx, dword [ebp - 0x5c]
push 4
pop eax
mov word [ecx + 0x1c], ax
xor ecx, ecx
movzx eax, byte [edi]
mov edx, dword [ebp - 0x60]
dec eax
cmp eax, 0x90
ja case.0x51054a.17
jmp dword [eax*4 + 0x5140bc]
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x5140b0
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0x58], edi
jmp case.0x51054a.17
mov ecx, dword [edi + 4]
imul ecx, ecx, 0x28
add ecx, edx
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x58]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0x58], eax
jmp case.0x51054a.17
mov eax, dword [edi + 4]
imul eax, eax, 0x28
mov eax, dword [eax + edx]
jmp 0x510587
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
push 4
pop eax
mov word [edi + 0x1c], ax
mov eax, dword [edi]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x58]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, dword [ebp - 0x50]
jmp 0x510587
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
test byte [eax + edx + 0x1c], 1
je case.0x51054a.17
cmp dword [edi + 4], ecx
jne 0x513f3e
lea eax, [ebx + 0xd4]
mov edx, dword [eax]
mov dword [ebp - 0x7c], edx
cmp edx, ecx
je 0x513f3e
push dword [ebx + 0x6c]
mov ecx, edx
mov ecx, dword [ecx + 0x3c]
dec dword [ebx + 0xd8]
push esi
mov dword [eax], ecx
call fcn.005009ae
push dword [ebp - 0x7c]
call fcn.004ffad3
add esp, 0xc
cmp dword [edi + 8], 4
mov dword [ebp - 0x58], eax
jne 0x510621
mov ecx, dword [ebx + 0x14]
imul eax, eax, 0x14
mov eax, dword [eax + ecx + 8]
dec eax
mov dword [ebp - 0x58], eax
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x60], eax
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x5c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x51054a.17
mov edi, dword [edi + 0x10]
mov ecx, dword [edi]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
jmp case.0x51054a.17
mov eax, dword [ebp - 0x5c]
push 8
pop ecx
mov word [eax + 0x1c], cx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x51054a.17
push dword [edi + 0x10]
mov byte [edi], 9
call fcn.004fad8b
cmp byte [ebp - 0x6c], 1
pop ecx
mov dword [edi + 4], eax
je 0x5106fe
push 0
push 1
push 0xffffffffffffffff
push dword [edi + 0x10]
push dword [ebp - 0x5c]
call fcn.00508957
add esp, 0x14
mov dword [ebp - 0x54], eax
cmp eax, 0x12
je 0x510e13
movzx eax, byte [ebp - 0x6c]
push eax
push dword [ebp - 0x5c]
call fcn.005081a5
pop ecx
pop ecx
test eax, eax
jne 0x510875
mov eax, dword [ebp - 0x5c]
mov cx, word [eax + 0x1c]
and dword [eax + 0x24], 0
mov edx, 0xfbff
and cx, dx
mov edx, 0x800
or cx, dx
mov word [eax + 0x1c], cx
cmp byte [edi + 1], 0xff
jne 0x5106ee
push dword [edi + 0x10]
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x5c]
pop ecx
pop ecx
mov byte [edi + 1], 0xff
mov ecx, dword [eax + 0x14]
mov dword [edi + 0x10], ecx
mov eax, dword [eax + 0x18]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
cmp eax, dword [esi + 0x48]
jg 0x510e13
mov eax, dword [ebp - 0x5c]
mov ecx, 0xa02
mov word [eax + 0x1c], cx
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 0x18], ecx
mov cl, byte [ebp - 0x6c]
mov byte [eax + 0x1f], cl
jmp case.0x51054a.17
mov ecx, dword [ebp - 0x5c]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
jmp case.0x51054a.17
mov esi, dword [ebp - 0x5c]
push 0
push 0
push dword [edi + 4]
push dword [edi + 0x10]
push esi
call fcn.00508957
mov al, byte [ebp - 0x6c]
add esp, 0x14
mov byte [esi + 0x1f], al
jmp case.0x51054a.17
mov edx, dword [edi + 4]
dec edx
mov dword [ebp - 0x50], edx
mov eax, dword [edi + 8]
mov dword [ebp - 0x4c], eax
mov edi, dword [edi + 0xc]
cmp edi, ecx
jle 0x5107ce
jmp 0x510776
mov edx, dword [ebp - 0x50]
mov eax, edx
imul eax, eax, 0x28
add eax, dword [ebx + 0x3c]
dec edi
inc edx
push eax
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x50], edx
call fcn.00508678
pop ecx
test eax, eax
jne 0x510e10
mov esi, dword [ebp - 0x4c]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
inc dword [ebp - 0x4c]
push esi
mov dword [ebp - 0x5c], esi
call fcn.00508727
xor eax, eax
inc eax
mov word [esi + 0x1c], ax
mov dword [esp], 0x800
push dword [ebp - 0x44]
push esi
call fcn.0050888b
mov edi, dword [ebp - 0x48]
add esp, 0xc
test edi, edi
jg 0x510773
dec edi
mov dword [ebp - 0x48], edi
jmp case.0x51054a.17
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x48], eax
imul eax, eax, 0x28
mov edi, dword [edi + 8]
mov dword [ebp - 0x44], edi
imul edi, edi, 0x28
add eax, edx
add edi, edx
mov esi, eax
mov dword [ebp - 0x5c], edi
cmp dword [ebp - 0x4c], ecx
je 0x510828
dec dword [ebp - 0x4c]
mov eax, dword [edi + 0x24]
push esi
mov dword [ebp - 0x50], eax
and dword [edi + 0x24], 0
push edi
call fcn.00508929
mov eax, dword [ebp - 0x50]
mov dword [esi + 0x24], eax
pop ecx
add esi, 0x28
add edi, 0x28
cmp dword [ebp - 0x4c], 0
pop ecx
jne 0x5107fd
mov dword [ebp - 0x5c], edi
dec dword [ebp - 0x4c]
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
push 0x1000
push eax
push esi
mov dword [ebp - 0x5c], esi
call fcn.0050888b
mov eax, 0x1000
add esp, 0xc
test word [esi + 0x1c], ax
je case.0x51054a.17
push esi
call fcn.005086c6
pop ecx
test eax, eax
je case.0x51054a.17
mov esi, dword [ebp - 0x64]
push 0x56bce4
lea eax, [ebx + 0x5c]
push esi
push eax
mov byte [esi + 0x1e], 1
call fcn.004f9447
mov dword [ebp - 0x54], 7
jmp 0x510e29
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
push 0x1000
push ecx
mov dword [ebp - 0x5c], eax
push eax
call fcn.0050888b
add esp, 0xc
jmp case.0x51054a.17
xor esi, esi
push esi
push ebx
call fcn.005000a2
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
cmp eax, esi
jne case.0x51054a.17
push 1
push ebx
call fcn.004fffd8
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
cmp eax, esi
jne case.0x51054a.17
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebp - 0x60]
inc eax
inc eax
or eax, 1
mov dword [ebx + 0x50], eax
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, ecx
mov dword [ebx + 0x2c], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], esi
cmp dword [edi + 8], esi
jle 0x510937
mov eax, dword [ebp - 0x4c]
imul eax, eax, 0x28
add eax, dword [ebp - 0x50]
push eax
call fcn.005082ec
mov eax, dword [ebp - 0x4c]
imul eax, eax, 0x28
add eax, dword [ebp - 0x50]
push eax
call fcn.00510201
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
cmp eax, dword [edi + 8]
pop ecx
pop ecx
jl 0x51090c
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x1e], 0
jne 0x510872
mov eax, dword [ebp - 0x58]
inc eax
push 0x64
mov dword [ebx + 0x54], eax
pop edi
jmp 0x510e71
mov eax, dword [edi + 4]
mov esi, dword [edi + 8]
imul eax, eax, 0x28
mov edi, dword [edi + 0xc]
imul esi, esi, 0x28
imul edi, edi, 0x28
add eax, edx
add esi, edx
add edi, edx
mov dl, byte [esi + 0x1c]
mov dword [ebp - 0x68], eax
movzx eax, word [eax + 0x1c]
or dl, al
mov dword [ebp - 0x5c], edi
test dl, 1
je 0x51098b
push edi
call fcn.0050863d
pop ecx
jmp case.0x51054a.17
test eax, 0x4000
je 0x51099d
push dword [ebp - 0x68]
call fcn.00508296
pop ecx
jmp 0x51099f
xor eax, eax
test eax, eax
jne 0x510872
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x5109bb
push esi
call fcn.00508296
pop ecx
jmp 0x5109bd
xor eax, eax
test eax, eax
jne 0x510872
mov eax, dword [ebp - 0x68]
test byte [eax + 0x1c], 0x12
jne 0x5109e3
movzx ecx, byte [ebp - 0x6c]
push ecx
push eax
call fcn.0050833b
pop ecx
pop ecx
test eax, eax
jne 0x510872
test byte [esi + 0x1c], 0x12
jne 0x5109fe
movzx eax, byte [ebp - 0x6c]
push eax
push esi
call fcn.0050833b
pop ecx
pop ecx
test eax, eax
jne 0x510872
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x18]
add eax, dword [esi + 0x18]
cdq
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x4c], edx
mov eax, dword [eax + 0x48]
cdq
cmp dword [ebp - 0x4c], edx
jg 0x510e10
jl 0x510a29
cmp dword [ebp - 0x50], eax
ja 0x510e10
mov eax, dword [ebp - 0x5c]
mov cx, word [eax + 0x1c]
mov edx, 0xbf02
and cx, dx
or cx, 2
mov word [eax + 0x1c], cx
xor ecx, ecx
cmp eax, esi
sete cl
push ecx
mov ecx, dword [ebp - 0x50]
add ecx, 2
push ecx
push eax
call fcn.005081c9
add esp, 0xc
test eax, eax
jne 0x510872
mov edi, dword [ebp - 0x5c]
cmp edi, esi
je 0x510a78
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [edi + 0x14]
call fcn.00537090
add esp, 0xc
mov eax, dword [ebp - 0x68]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [edi + 0x14]
add eax, dword [esi + 0x18]
push eax
call fcn.00537090
mov ecx, dword [ebp - 0x50]
mov eax, dword [edi + 0x14]
mov byte [ecx + eax], 0
mov ecx, dword [ebp - 0x50]
mov eax, dword [edi + 0x14]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
add esp, 0xc
or word [edi + 0x1c], ax
mov eax, dword [ebp - 0x50]
mov dword [edi + 0x18], eax
mov al, byte [ebp - 0x6c]
mov byte [edi + 0x1f], al
jmp case.0x51054a.17
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
mov dword [ebp - 0x68], esi
call fcn.005102e9
mov esi, dword [edi + 8]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.005102e9
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x68]
imul eax, eax, 0x28
movzx ecx, word [esi + 0x1c]
movzx edx, word [edx + 0x1c]
add eax, dword [ebp - 0x60]
or ecx, edx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], ecx
test cl, 1
jne 0x510cd2
mov cl, byte [esi + 0x1c]
mov edx, dword [ebp - 0x68]
and cl, byte [edx + 0x1c]
test cl, 4
je 0x510be2
mov ecx, dword [edx]
mov dword [ebp - 0x48], ecx
mov edx, dword [edx + 4]
mov dword [ebp - 0x44], edx
mov edx, dword [esi]
mov dword [ebp - 0x40], edx
mov esi, dword [esi + 4]
mov dword [ebp - 0x3c], esi
movzx edx, byte [edi]
sub edx, 0x56
je 0x510bcc
dec edx
je 0x510bc4
dec edx
je 0x510bac
dec edx
mov edx, ecx
je 0x510b72
or edx, dword [ebp - 0x44]
je 0x510cd2
mov eax, ecx
and eax, dword [ebp - 0x44]
cmp eax, 0xffffffff
jne 0x510b63
xor ecx, ecx
inc ecx
and dword [ebp - 0x44], 0
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x44]
push ecx
push esi
push dword [ebp - 0x40]
call fcn.00538e10
jmp 0x510bb9
or edx, dword [ebp - 0x44]
je 0x510cd2
mov eax, ecx
and eax, dword [ebp - 0x44]
cmp eax, 0xffffffff
jne 0x510b9d
cmp dword [ebp - 0x40], 0
jne 0x510b9d
cmp esi, 0x80000000
jne 0x510b9d
xor ecx, ecx
inc ecx
and dword [ebp - 0x44], 0
mov dword [ebp - 0x48], ecx
push dword [ebp - 0x44]
push ecx
push esi
push dword [ebp - 0x40]
call fcn.00538d60
jmp 0x510bb9
push dword [ebp - 0x44]
push ecx
push esi
push dword [ebp - 0x40]
call fcn.00538c40
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x3c], edx
jmp 0x510bd5
sub dword [ebp - 0x40], ecx
sbb esi, dword [ebp - 0x44]
jmp 0x510bd2
add dword [ebp - 0x40], ecx
adc esi, dword [ebp - 0x44]
mov dword [ebp - 0x3c], esi
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x3c]
jmp 0x510f18
push edx
call fcn.005084c8
fstp qword [ebp - 0x38]
push esi
call fcn.005084c8
fst qword [ebp - 0x30]
movzx eax, byte [edi]
sub eax, 0x56
pop ecx
pop ecx
je 0x510c82
dec eax
je 0x510c7d
dec eax
je 0x510c78
dec eax
je 0x510c67
fld qword [ebp - 0x38]
call fcn.00538bc6
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
call fcn.00538bc6
mov ecx, dword [ebp - 0x48]
or ecx, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
je 0x510ccf
mov ecx, dword [ebp - 0x48]
and ecx, dword [ebp - 0x44]
cmp ecx, 0xffffffff
jne 0x510c46
and dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 1
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push edx
push eax
call fcn.00538e10
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], edx
fild qword [ebp - 0x9c]
jmp 0x510c85
fldz
fcomp qword [ebp - 0x38]
fnstsw ax
test ah, 0x44
jnp 0x510ccd
fdiv qword [ebp - 0x38]
jmp 0x510c85
fmul qword [ebp - 0x38]
jmp 0x510c85
fsub qword [ebp - 0x38]
jmp 0x510c85
fadd qword [ebp - 0x38]
fstp qword [ebp - 0x30]
push ecx
fld qword [ebp - 0x30]
push ecx
fstp qword [esp]
call fcn.004fad62
pop ecx
pop ecx
test eax, eax
jne 0x510ccf
mov eax, dword [ebp - 0x5c]
fld qword [ebp - 0x30]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
mov edx, 0xbf08
and cx, dx
or cx, 8
mov word [eax + 0x1c], cx
test byte [ebp - 0x50], 8
jne case.0x51054a.17
push eax
call fcn.00508527
jmp 0x510985
fstp st(0)
mov eax, dword [ebp - 0x5c]
push eax
jmp 0x510980
movzx esi, byte [edi + 3]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 8], eax
mov dword [ebp - 4], esi
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, edx
cmp esi, ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], ecx
jle 0x510d1d
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x50]
mov dword [ecx + edx*4], eax
push dword [ebp - 0x4c]
call fcn.00510201
inc dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
pop ecx
mov ecx, dword [ebp - 0x50]
add eax, 0x28
cmp ecx, dword [ebp - 4]
mov dword [ebp - 0x4c], eax
jl 0x510cf7
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 0x10]
jne 0x510d2c
and dword [ebp - 0x44], 0
jmp 0x510d31
mov dword [ebp - 0x44], eax
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov esi, dword [edi + 0xc]
and dword [ebp - 0x20], 0
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
and dword [ebp - 0x1c], 0
xor eax, eax
inc eax
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x40]
push esi
push eax
mov dword [ebp - 0x5c], esi
call fcn.00508929
mov eax, dword [ebp - 0x24]
and dword [ebp - 0x14], 0
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x48]
test byte [eax + 3], 8
pop ecx
pop ecx
je 0x510d83
mov ecx, dword [edi - 4]
mov dword [ebp - 0x10], ecx
push dword [ebp - 8]
lea ecx, [ebp - 0x48]
push dword [ebp - 4]
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0x64]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x513fc3
cmp dword [ebp - 0x44], 0
je 0x510dbd
push dword [edi + 4]
push dword [ebp - 0x44]
call fcn.00500101
mov eax, dword [ebp - 0x44]
pop ecx
pop ecx
mov dword [edi + 0x10], eax
mov byte [edi + 1], 0xf9
cmp dword [ebp - 0x14], 0
je 0x510de7
lea eax, [ebp - 0x40]
push eax
call fcn.004f5b57
push eax
push 0x577674
push dword [ebp - 0x64]
lea eax, [ebx + 0x5c]
push eax
call fcn.004f9447
mov eax, dword [ebp - 0x14]
add esp, 0x14
mov dword [ebp - 0x54], eax
movzx eax, byte [ebp - 0x6c]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.005081a5
lea eax, [ebp - 0x40]
push eax
push esi
call fcn.00508929
push esi
call fcn.00508678
add esp, 0x14
test eax, eax
je case.0x51054a.17
mov esi, dword [ebp - 0x64]
push str.string_or_blob_too_big
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
mov dword [ebp - 0x54], 0x12
add esp, 0xc
push dword [ebx + 0x5c]
mov edi, dword [ebp - 0x54]
push dword [ebx + 0xb8]
mov dword [ebx + 0x58], edi
push dword [ebp - 0x58]
push str.statement_aborts_at__d:___s___s
push edi
call fcn.00509ea7
push ebx
call fcn.00500cf6
add esp, 0x18
cmp edi, 0xc0a
jne 0x510e5e
mov byte [esi + 0x1e], 1
xor edi, edi
inc edi
cmp byte [ebp - 0x75], 0
je 0x510e71
push 0
push esi
call fcn.004fbe73
pop ecx
pop ecx
sub ebx, 0xffffff80
push ebx
call fcn.0050a0ee
pop ecx
mov ecx, dword [ebp + 0x70]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0052f7d0
add ebp, 0x74
leave
ret
mov eax, dword [edi + 8]
mov esi, dword [edi + 4]
imul eax, eax, 0x28
mov ecx, dword [edi + 0xc]
imul esi, esi, 0x28
imul ecx, ecx, 0x28
add eax, edx
add ecx, edx
add esi, edx
mov dl, byte [eax + 0x1c]
or dl, byte [esi + 0x1c]
mov dword [ebp - 0x5c], ecx
test dl, 1
je 0x510ebb
push ecx
jmp 0x510980
push eax
call fcn.00508454
push esi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
call fcn.00508454
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
movzx eax, byte [edi]
sub eax, 0x52
je 0x510f07
dec eax
je 0x510eff
mov edx, dword [ebp - 0x4c]
dec eax
mov eax, dword [ebp - 0x50]
je 0x510ef2
call fcn.00539220
jmp 0x510ef7
call fcn.00539200
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
jmp 0x510f0d
or dword [ebp - 0x50], ecx
or dword [ebp - 0x4c], edx
jmp 0x510f0d
and dword [ebp - 0x50], ecx
and dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 4], ecx
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x51054a.17
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
push esi
call fcn.00508581
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp case.0x51054a.17
mov eax, dword [edi + 4]
push dword [ebp - 0x6c]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push 0x63
mov dword [ebp - 0x68], eax
call fcn.005103b3
mov eax, dword [ebp - 0x68]
movzx eax, word [eax + 0x1c]
pop ecx
pop ecx
test al, 4
jne 0x510f8c
mov edi, dword [edi + 8]
test edi, edi
jne 0x510562
mov dword [ebp - 0x54], 0x14
jmp 0x514076
mov ecx, dword [ebp - 0x68]
and eax, 0xbf04
or eax, 4
jmp 0x510733
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
test byte [edi + 0x1c], 4
je case.0x51054a.17
push edi
call fcn.005085aa
jmp 0x510985
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x51054a.17
push dword [ebp - 0x6c]
mov ecx, eax
shr ecx, 3
and ecx, 2
or ecx, eax
push 0x61
mov eax, edi
mov word [edi + 0x1c], cx
call fcn.005103b3
mov eax, 0x4000
pop ecx
pop ecx
test word [edi + 0x1c], ax
je 0x511000
push edi
call fcn.00508296
pop ecx
mov dword [ebp - 0x54], eax
jmp 0x511004
and dword [ebp - 0x54], 0
mov eax, 0xbfe3
and word [edi + 0x1c], ax
jmp case.0x51054a.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x51054a.17
test al, 0x10
jne 0x51104a
push dword [ebp - 0x6c]
mov eax, edi
push 0x61
call fcn.005103b3
mov ax, word [edi + 0x1c]
pop ecx
pop ecx
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
jmp 0x51104f
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x51054a.17
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
test byte [edi + 0x1c], 0xd
jne case.0x51054a.17
push edi
call fcn.005085d1
jmp 0x510985
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
test byte [edi + 0x1c], 1
jne case.0x51054a.17
push edi
call fcn.00508581
jmp 0x510985
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
test byte [edi + 0x1c], 1
jne case.0x51054a.17
jmp 0x510fae
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
imul ecx, ecx, 0x28
imul eax, eax, 0x28
add ecx, edx
add eax, edx
mov dword [ebp - 0x70], ecx
mov cx, word [eax + 0x1c]
mov word [ebp - 0x4a], cx
mov ecx, dword [ebp - 0x70]
mov cx, word [ecx + 0x1c]
mov word [ebp - 0x48], cx
mov ecx, dword [ebp - 0x70]
movzx ecx, word [ecx + 0x1c]
mov dword [ebp - 0x68], eax
movzx eax, word [eax + 0x1c]
mov dword [ebp - 0x74], ecx
or cl, al
mov al, byte [edi + 3]
test cl, 1
je 0x511138
test al, al
jns 0x511107
mov eax, dword [ebp - 0x68]
movzx ecx, word [eax + 0x1c]
mov al, byte [ebp - 0x74]
and al, cl
test al, 1
push 0
pop eax
sete al
jmp 0x5111a3
test al, 0x10
je 0x51112b
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, edx
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
mov dword [ebp - 0x5c], edi
or ax, 1
jmp 0x51104f
test al, 8
je case.0x51054a.17
jmp 0x51055f
and al, 0x67
mov byte [ebp - 0x4c], al
je 0x511168
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
push dword [ebp - 0x4c]
call fcn.005103b3
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
push dword [ebp - 0x4c]
call fcn.005103b3
add esp, 0x10
cmp byte [esi + 0x1e], 0
jne 0x510872
mov eax, dword [ebp - 0x68]
mov esi, 0x4000
mov ecx, esi
test word [eax + 0x1c], cx
je 0x51117f
push eax
call fcn.00508296
pop ecx
mov eax, esi
mov esi, dword [ebp - 0x70]
test word [esi + 0x1c], ax
je 0x511191
push esi
call fcn.00508296
pop ecx
push dword [edi + 0x10]
push dword [ebp - 0x68]
push esi
call fcn.00508c78
mov edx, dword [ebp - 0x60]
add esp, 0xc
mov esi, eax
mov dword [ebp - 0x50], esi
movzx eax, byte [edi]
sub eax, 0x4b
je 0x5111e9
dec eax
je 0x5111e0
dec eax
je 0x5111d7
dec eax
je 0x5111ce
dec eax
je 0x5111c5
xor eax, eax
test esi, esi
setge al
jmp 0x5111f0
xor eax, eax
test esi, esi
setl al
jmp 0x5111f0
xor eax, eax
test esi, esi
setle al
jmp 0x5111f0
xor eax, eax
test esi, esi
setg al
jmp 0x5111f0
xor eax, eax
test esi, esi
sete al
jmp 0x5111f0
xor eax, eax
test esi, esi
setne al
mov dword [ebp - 0x50], eax
test byte [edi + 3], 0x10
je 0x511223
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, edx
mov ax, word [edi + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x5c], edi
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x511230
cmp dword [ebp - 0x50], 0
je 0x511230
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0x58], edi
mov al, byte [ebp - 0x4a]
mov ecx, dword [ebp - 0x68]
mov byte [ecx + 0x1c], al
mov al, byte [ebp - 0x48]
mov ecx, dword [ebp - 0x70]
mov byte [ecx + 0x1c], al
jmp case.0x51054a.17
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x88], eax
jmp case.0x51054a.17
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x50], esi
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x40], edx
mov eax, dword [edi + 4]
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x44], eax
xor eax, eax
cmp esi, ecx
mov dword [ebp - 0x4c], eax
jle 0x5112df
mov edi, dword [ebp - 0x88]
jmp 0x511281
mov edx, dword [ebp - 0x40]
test edi, edi
je 0x51128a
mov ecx, dword [edi + eax*4]
jmp 0x51128c
mov ecx, eax
mov dword [ebp - 0x3c], ecx
mov esi, dword [edx + eax*4 + 0xc]
mov dword [ebp - 0x38], esi
mov edx, dword [edx + 8]
movzx eax, byte [edx + eax]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x44]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push esi
push eax
mov eax, dword [ebp - 0x48]
add ecx, eax
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
push ecx
call fcn.00508c78
add esp, 0xc
mov dword [ebp - 0x80], eax
test eax, eax
jne 0x5112d6
mov eax, dword [ebp - 0x4c]
inc eax
cmp eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
jl 0x51127e
jmp 0x5112df
cmp dword [ebp - 0x34], 0
je 0x5112df
neg dword [ebp - 0x80]
and dword [ebp - 0x88], 0
jmp case.0x51054a.17
cmp dword [ebp - 0x80], ecx
jge 0x5112f8
mov edi, dword [edi + 4]
jmp 0x510562
je 0x51055f
mov edi, dword [edi + 0xc]
jmp 0x510562
mov eax, dword [edi + 4]
imul eax, eax, 0x28
xor esi, esi
add eax, edx
inc esi
test byte [eax + 0x1c], 1
je 0x51131c
push 2
pop ecx
jmp 0x51132d
push eax
call fcn.00508454
or eax, edx
pop ecx
je 0x51132b
mov ecx, esi
jmp 0x51132d
xor ecx, ecx
mov dword [ebp - 0x50], ecx
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
test byte [eax + 0x1c], 1
je 0x511348
mov dword [ebp - 0x4c], 2
jmp 0x51135f
push eax
call fcn.00508454
or eax, edx
pop ecx
mov ecx, dword [ebp - 0x50]
je 0x51135b
mov dword [ebp - 0x4c], esi
jmp 0x51135f
and dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x4c]
imul ecx, ecx, 3
cmp byte [edi], 0x45
jne 0x511374
movzx eax, byte [ecx + eax + 0x56e314]
jmp 0x51137c
movzx eax, byte [ecx + eax + 0x56e320]
mov dword [ebp - 0x50], eax
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x5c], edi
cmp eax, 2
jne 0x5113a4
mov ax, word [edi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, si
jmp 0x51104f
cdq
mov dword [edi], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xbf04
and ax, cx
mov dword [edi + 4], edx
or ax, 4
jmp 0x51104f
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
imul eax, eax, 0x28
imul edi, edi, 0x28
add eax, edx
add edi, edx
test byte [eax + 0x1c], 1
mov dword [ebp - 0x5c], edi
jne 0x51097f
push eax
call fcn.00508454
or eax, edx
pop ecx
jne 0x5113ea
inc eax
jmp 0x5113ec
xor eax, eax
cdq
push edx
push eax
push edi
call fcn.005087de
jmp 0x5108b5
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
imul eax, eax, 0x28
imul edi, edi, 0x28
add eax, edx
add edi, edx
test byte [eax + 0x1c], 1
mov dword [ebp - 0x5c], edi
jne 0x51097f
push eax
call fcn.00508454
not edx
push edx
not eax
push eax
push edi
call fcn.005087de
add esp, 0x10
jmp case.0x51054a.17
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, edx
test byte [eax + 0x1c], 1
je 0x511444
mov eax, dword [edi + 0xc]
jmp 0x511472
push eax
call fcn.005084c8
fcomp qword [0x591b88]
pop ecx
fnstsw ax
test ah, 0x44
jnp 0x511461
mov dword [ebp - 0x50], 1
jmp 0x511465
and dword [ebp - 0x50], 0
cmp byte [edi], 0x1b
jne 0x511475
xor eax, eax
cmp dword [ebp - 0x50], eax
sete al
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
jmp 0x51112d
mov eax, dword [edi + 4]
imul eax, eax, 0x28
test byte [eax + edx + 0x1c], 1
jmp 0x51112d
mov eax, dword [edi + 4]
imul eax, eax, 0x28
test byte [eax + edx + 0x1c], 1
jne case.0x51054a.17
jmp 0x51055f
mov eax, dword [edi + 4]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 8]
and dword [ebp - 0x38], 0
push 0x28
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x10]
push 0
push eax
call fcn.00537010
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov edx, 0xbf01
mov dword [ebp - 0x14], eax
mov cx, word [eax + 0x1c]
and cx, dx
or cx, 1
mov word [eax + 0x1c], cx
and dword [ebp - 0x34], 0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x38], eax
mov ecx, dword [eax]
add esp, 0xc
mov dword [ebp - 0x30], ecx
test ecx, ecx
je 0x511569
push eax
call fcn.00500145
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514076
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x14], 0
je 0x511521
and dword [ebp - 0x50], 0
jmp case.0x51054a.17
mov ecx, dword [eax + 0x44]
cmp ecx, dword [ebx + 0x50]
jne 0x511537
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x50], ecx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0x34], ecx
jmp 0x51159e
cmp byte [eax + 0x17], 0
je 0x511556
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
call fcn.00503d0c
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
mov dword [ebp - 0x50], eax
jmp 0x511595
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x30]
call fcn.00503d3c
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jmp 0x511595
mov ecx, dword [eax + 0x24]
test ecx, ecx
jle 0x51159a
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp + 0x30], ecx
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x50], edx
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x34], ecx
test byte [edi + 3], 0x20
je 0x51158f
xor ecx, ecx
jmp 0x511592
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x44], ecx
mov eax, dword [ebp - 0x38]
jmp 0x51159e
and dword [ebp - 0x50], 0
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je case.0x51054a.17
cmp ecx, dword [esi + 0x48]
ja 0x510e10
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0x24], edx
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x2c], ecx
mov esi, dword [eax + 0x44]
cmp esi, dword [ebx + 0x50]
jne 0x5115d1
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x28], eax
jmp 0x51178e
and dword [ebp + 0x2c], 0
lea ecx, [ecx + edx*4]
mov dword [ebp - 0x28], ecx
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x48], ecx
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x5115fc
mov dword [ebp - 0x18], eax
jmp 0x511637
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x17], 0
lea eax, [ebp + 0x2c]
push eax
push dword [ebp - 0x30]
je 0x511613
call fcn.0050410e
jmp 0x511618
call fcn.00504129
pop ecx
pop ecx
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x18], eax
cmp ecx, dword [ebp + 0x2c]
ja 0x511630
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov dword [ecx + 0x54], eax
jmp 0x511637
mov eax, dword [ebp - 0x38]
and dword [eax + 0x54], 0
mov ecx, dword [ebp - 0x18]
mov al, byte [ecx]
cmp al, 0x80
jae 0x51164b
movzx eax, al
mov dword [ebp + 0x20], eax
xor eax, eax
inc eax
jmp 0x51165a
lea eax, [ebp + 0x20]
push eax
push ecx
call fcn.004fb70a
pop ecx
pop ecx
movzx eax, al
cmp dword [ebp + 0x20], 0x18003
movzx eax, al
mov dword [ebp + 0x28], eax
jbe 0x511673
push 0xa54
jmp 0x5118ad
mov eax, dword [ebp - 0x24]
imul eax, eax, 5
add eax, 3
cmp eax, dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
jle 0x51168a
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x20], eax
xor esi, esi
cmp dword [ebp - 0x34], esi
jne 0x5116ce
cmp dword [ebp + 0x2c], eax
jge 0x5116ce
xor ecx, ecx
mov word [ebp + 0xc], cx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 0x38]
mov dword [ebp], esi
movzx ecx, byte [ecx + 0x17]
push ecx
push eax
push esi
push dword [ebp - 0x30]
call fcn.00508aab
add esp, 0x14
mov dword [ebp - 0x54], eax
cmp eax, esi
jne case.0x51054a.17
mov ecx, dword [ebp + 4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
jmp 0x5116d1
mov ecx, dword [ebp - 0x18]
add eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x28]
add eax, ecx
mov dword [ebp + 0x18], eax
xor eax, eax
cmp dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], eax
jle 0x511754
mov ecx, dword [ebp + 0x1c]
cmp dword [ebp + 0x18], ecx
mov ecx, dword [ebp - 0x28]
jae 0x5117d2
mov edx, dword [ebp + 0x20]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp + 0x18]
mov al, byte [ecx]
mov edx, dword [ebp - 0x2c]
cmp al, 0x80
jae 0x511717
mov ecx, dword [ebp - 0x1c]
movzx eax, al
mov dword [edx + ecx*4], eax
xor eax, eax
inc eax
jmp 0x511729
mov eax, dword [ebp - 0x1c]
lea eax, [edx + eax*4]
push eax
push ecx
call fcn.004fb70a
pop ecx
pop ecx
movzx eax, al
mov ecx, dword [ebp - 0x2c]
movzx eax, al
add dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x1c]
push dword [ecx + eax*4]
call fcn.0050028d
add dword [ebp + 0x20], eax
pop ecx
mov dword [ebp + 0x24], eax
cmp dword [ebp + 0x20], eax
jae 0x5117d6
mov eax, dword [ebp + 0x1c]
inc eax
mov dword [ebp + 0x18], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00508789
xor eax, eax
pop ecx
mov ecx, dword [ebp + 0x18]
inc eax
mov word [ebp + 0xc], ax
cmp ecx, dword [ebp + 0x1c]
ja 0x5118a8
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x50]
ja 0x5118a8
cmp ecx, dword [ebp + 0x1c]
jne 0x51178b
cmp eax, dword [ebp - 0x50]
jne 0x5118a8
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
shl eax, 2
xor esi, esi
cmp dword [eax + edx], esi
je 0x511856
cmp dword [ebp - 0x34], esi
je 0x5117eb
push dword [ebp - 0x14]
call fcn.00508727
mov eax, dword [ebp - 0x3c]
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
shl eax, 2
push dword [eax + ecx]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + ecx]
add eax, dword [ebp - 0x34]
push eax
call fcn.00500358
add esp, 0x10
jmp 0x51184b
and dword [ecx + eax*4], 0
mov eax, dword [ebp - 0x1c]
inc eax
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
jl 0x5116e8
jmp 0x511754
push dword [eax + ecx]
call fcn.0050028d
push dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x10]
push eax
call fcn.00508929
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x38]
movzx eax, byte [eax + 0x17]
push eax
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
push dword [eax + ecx*4]
push dword [ebp - 0x30]
call fcn.00508aab
add esp, 0x20
mov dword [ebp - 0x54], eax
cmp eax, esi
jne case.0x51054a.17
mov eax, dword [ebp + 4]
push dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x18], eax
push dword [ecx + edx*4]
push eax
call fcn.00500358
add esp, 0xc
mov eax, dword [ebp - 0x14]
mov cl, byte [ebp - 0x6c]
mov byte [eax + 0x1f], cl
jmp 0x51186f
cmp byte [edi + 1], 0xf8
jne 0x51186f
push 0x800
push dword [edi + 0x10]
push dword [ebp - 0x14]
call fcn.0050888b
add esp, 0xc
cmp dword [ebp + 0x14], esi
je 0x51189e
mov eax, dword [ebp - 0x14]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x14]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 4]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x24], eax
push dword [ebp - 0x14]
call fcn.005086c6
jmp 0x5118b2
push 0xa9e
call fcn.004f3aea
pop ecx
mov dword [ebp - 0x54], eax
jmp case.0x51054a.17
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, edx
jmp 0x5118f5
inc dword [ebp - 0x50]
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x5118e0
push edi
call fcn.00508296
pop ecx
push dword [ebp - 0x6c]
mov eax, edi
push dword [ebp - 0x4c]
call fcn.005103b3
mov eax, dword [ebp - 0x50]
pop ecx
pop ecx
add edi, 0x28
mov al, byte [eax]
mov byte [ebp - 0x4c], al
test al, al
jne 0x5118cb
inc dword [ebp - 0x50]
jmp case.0x51054a.17
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
mov eax, dword [edi + 4]
mov dword [ebp - 0x1c], eax
imul eax, eax, 0x28
mov ecx, dword [edi + 0x10]
add eax, edx
mov edx, eax
mov dword [ebp - 0x18], ecx
movzx ecx, byte [ebx + 0x64]
mov dword [ebp - 0x24], edx
mov eax, dword [edi + 8]
mov dword [ebp - 0x1c], eax
imul eax, eax, 0x28
lea eax, [eax + edx - 0x28]
mov dword [ebp - 0x14], ecx
mov ecx, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x4c], ecx
cmp edx, eax
ja 0x5119f0
jmp 0x511957
mov edx, dword [ebp - 0x24]
cmp dword [ebp - 0x18], 0
je 0x51197e
push dword [ebp - 0x6c]
mov eax, ecx
sub eax, edx
cdq
push 0x28
pop esi
idiv esi
mov edx, dword [ebp - 0x18]
movzx eax, byte [eax + edx]
push eax
mov eax, ecx
call fcn.005103b3
pop ecx
pop ecx
mov ecx, dword [ebp - 0x4c]
mov esi, 0x4000
mov eax, esi
test word [ecx + 0x1c], ax
je 0x51199b
cmp dword [ecx + 0x18], 0
jle 0x51199b
push ecx
call fcn.00508296
pop ecx
mov ecx, dword [ebp - 0x4c]
push dword [ebp - 0x14]
push ecx
call fcn.005001c6
push eax
mov dword [ebp - 0x28], eax
call fcn.0050028d
mov dword [ebp - 0xc], eax
cdq
add dword [ebp - 0x48], eax
push 0
push dword [ebp - 0x28]
adc dword [ebp - 0x44], edx
call fcn.004fb77f
mov ecx, dword [ebp - 0x4c]
add dword [ebp - 0x40], eax
add esp, 0x14
test word [ecx + 0x1c], si
je 0x5119d7
mov eax, dword [ecx]
add dword [ebp - 0x30], eax
jmp 0x5119e1
cmp dword [ebp - 0xc], 0
je 0x5119e1
and dword [ebp - 0x30], 0
add ecx, 0x28
mov dword [ebp - 0x4c], ecx
cmp ecx, dword [ebp - 0x20]
jbe 0x511954
mov eax, dword [ebp - 0x40]
cdq
push edx
push eax
call fcn.004fb77f
add dword [ebp - 0x40], eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x40]
cdq
push edx
push eax
call fcn.004fb77f
add esp, 0x10
cmp dword [ebp - 0x2c], eax
jge 0x511a17
inc dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
cdq
mov ecx, eax
mov eax, dword [ebp - 0x30]
mov esi, edx
cdq
sub ecx, eax
mov eax, dword [ebp - 0x64]
sbb esi, edx
add ecx, dword [ebp - 0x48]
adc esi, dword [ebp - 0x44]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], esi
mov eax, dword [eax + 0x48]
cdq
cmp esi, edx
jg 0x510e10
jl 0x511a4c
cmp ecx, eax
ja 0x510e10
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
push 0
push ecx
push edi
mov dword [ebp - 0x5c], edi
call fcn.005081c9
add esp, 0xc
test eax, eax
jne 0x510872
mov eax, dword [edi + 0x14]
mov esi, 0x80
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x40], esi
jae 0x511a86
mov cl, byte [ebp - 0x40]
mov byte [eax], cl
xor eax, eax
inc eax
jmp 0x511a91
push dword [ebp - 0x40]
push eax
call fcn.004fb54e
pop ecx
pop ecx
movzx eax, al
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
jmp 0x511ae2
push dword [ebp - 0x14]
push dword [ebp - 0x4c]
call fcn.005001c6
pop ecx
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
jae 0x511ac4
mov eax, dword [ebp - 0x10]
mov cl, byte [ebp - 0x28]
mov edx, dword [ebp - 0x50]
mov byte [eax + edx], cl
xor eax, eax
inc eax
jmp 0x511ad5
mov ecx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x50]
add ecx, eax
push ecx
call fcn.004fb54e
pop ecx
pop ecx
movzx eax, al
add dword [ebp - 0x10], eax
add dword [ebp - 0x4c], 0x28
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x20]
jbe 0x511a9f
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x4c], eax
jmp 0x511b16
push dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x38]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x50]
add eax, ecx
push eax
call fcn.005002a4
add dword [ebp - 0x10], eax
add esp, 0x10
add dword [ebp - 0x4c], 0x28
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x20]
jbe 0x511aef
mov eax, dword [ebp - 0x38]
and dword [edi + 0x20], 0
mov dword [edi + 0x18], eax
mov eax, 0x410
mov word [edi + 0x1c], ax
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x511b40
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
cmp eax, ecx
je 0x511b6c
lea ecx, [ebp - 0x50]
push ecx
push eax
call fcn.005078cc
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jmp 0x511b72
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x510650
mov eax, dword [edi + 4]
mov dword [ebp - 0x50], eax
mov edi, dword [edi + 0x10]
mov dword [ebp - 0x4c], edi
cmp eax, ecx
jne 0x511c39
cmp dword [esi + 0x90], ecx
jle 0x511bb5
push str.cannot_open_savepoint___SQL_statements_in_progress
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
add esp, 0xc
jmp 0x511e1b
push edi
call fcn.004fad8b
mov dword [ebp - 0x48], eax
add eax, 0x19
push eax
push esi
call fcn.004f98b0
add esp, 0xc
mov dword [ebp - 0x44], eax
test eax, eax
je case.0x51054a.17
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0x48]
inc eax
push eax
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
push dword [eax]
call fcn.00537090
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x511c03
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1d4], 1
jmp 0x511c09
inc dword [esi + 0x1cc]
mov edx, dword [ebp - 0x44]
lea eax, [esi + 0x1c8]
mov ecx, dword [eax]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov eax, dword [esi + 0x1d8]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x1dc]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0xc], eax
jmp case.0x51054a.17
mov dword [ebp - 0x38], ecx
mov edx, dword [esi + 0x1c8]
mov dword [ebp - 0x40], edx
cmp edx, ecx
je 0x511c74
push dword [ebp - 0x4c]
push dword [edx]
call fcn.004faec0
pop ecx
pop ecx
test eax, eax
je 0x511c6b
mov eax, dword [ebp - 0x40]
inc dword [ebp - 0x38]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x40], edx
test edx, edx
jne 0x511c49
jmp 0x511c6e
mov edx, dword [ebp - 0x40]
xor eax, eax
cmp edx, eax
jne 0x511c90
push dword [ebp - 0x4c]
lea eax, [ebx + 0x5c]
push str.no_such_savepoint:__s
push dword [ebp - 0x64]
push eax
call fcn.004f9447
add esp, 0x10
jmp 0x511ea1
mov esi, dword [ebp - 0x64]
cmp dword [esi + 0x90], eax
jg 0x511df6
cmp dword [ebp - 0x50], 2
jne 0x511cb2
cmp dword [esi + 0x8c], 1
jg 0x511dfc
cmp dword [edx + 0x10], eax
jne 0x511d0b
cmp byte [esi + 0x1d4], 0
je 0x511d0b
xor ecx, ecx
inc ecx
mov dword [ebp - 0x74], ecx
cmp dword [ebp - 0x50], ecx
jne 0x511d0e
push ecx
push ebx
call fcn.005000a2
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x510e71
push ebx
mov byte [esi + 0x1c], 1
call fcn.00500cf6
pop ecx
push 5
pop edi
cmp eax, edi
je 0x513fd2
mov byte [esi + 0x1d4], 0
mov eax, dword [ebx + 0x58]
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x54], eax
mov edi, esi
jmp 0x511da6
mov dword [ebp - 0x74], eax
mov ecx, dword [esi + 0x1cc]
sub ecx, dword [ebp - 0x38]
mov dword [ebp - 0x34], eax
dec ecx
mov dword [ebp - 0x38], ecx
cmp dword [esi + 4], eax
jle 0x511d5c
jmp 0x511d28
mov ecx, dword [ebp - 0x38]
push ecx
push dword [ebp - 0x50]
mov ecx, esi
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.00503b30
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
mov eax, dword [ebp - 0x34]
inc eax
mov ecx, esi
mov dword [ebp - 0x34], eax
cmp eax, dword [ecx + 4]
jl 0x511d25
mov edx, dword [ebp - 0x40]
cmp dword [ebp - 0x50], 2
jne 0x511d04
mov edi, esi
test dword [edi + 0xc], 0x200
je 0x511da6
push edi
call fcn.005009c6
push 0
push edi
call fcn.004fbe73
add esp, 0xc
jmp 0x511da3
mov eax, dword [edi + 0x1c8]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax + 0x10]
mov dword [edi + 0x1c8], eax
push dword [ebp - 0x3c]
push edi
call fcn.004f9417
dec dword [edi + 0x1cc]
pop ecx
pop ecx
mov edx, dword [ebp - 0x40]
cmp dword [edi + 0x1c8], edx
jne 0x511d80
cmp dword [ebp - 0x50], 1
jne 0x511ddf
mov eax, dword [edx + 0x10]
mov dword [edi + 0x1c8], eax
push dword [ebp - 0x40]
push edi
call fcn.004f9417
cmp dword [ebp - 0x74], 0
pop ecx
pop ecx
jne case.0x51054a.17
mov eax, esi
dec dword [eax + 0x1cc]
jmp case.0x51054a.17
mov eax, dword [edx + 8]
mov dword [edi + 0x1d8], eax
mov eax, dword [edx + 0xc]
mov dword [edi + 0x1dc], eax
jmp case.0x51054a.17
cmp dword [ebp - 0x50], 2
jne 0x511e03
mov eax, str.rollback
jmp 0x511e08
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
add esp, 0x10
mov dword [ebp - 0x54], 5
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov dword [ebp - 0x50], eax
mov edx, dword [edi + 8]
mov dword [ebp - 0x4c], edx
cmp eax, ecx
je 0x511e59
cmp byte [esi + 0x1c], 0
jne 0x511e59
xor edi, edi
inc edi
mov dword [ebp - 0x48], edi
cmp edx, ecx
je 0x511e73
cmp dword [esi + 0x8c], edi
jle 0x511e5c
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x511ba3
mov dword [ebp - 0x48], ecx
movzx edi, byte [esi + 0x1c]
cmp eax, edi
jne 0x513fe4
cmp eax, ecx
jne 0x511e85
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x511e93
cmp dword [esi + 0x90], ecx
jle 0x511e5c
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x511ba3
mov eax, str.cannot_rollback___no_transaction_is_active
cmp edx, ecx
jne 0x511e93
mov eax, str.cannot_commit___no_transaction_is_active
push eax
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
add esp, 0xc
mov dword [ebp - 0x54], 1
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov edx, dword [esi + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [ebp - 0x50], eax
cmp eax, ecx
je case.0x51054a.17
push dword [edi + 8]
push eax
call fcn.005035ca
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
push 5
pop eax
cmp dword [ebp - 0x54], eax
je 0x514043
cmp dword [ebp - 0x54], 0
jne 0x514073
cmp dword [edi + 8], 0
je case.0x51054a.17
cmp byte [ebx + 0x66], 0
je case.0x51054a.17
cmp byte [esi + 0x1c], 0
je 0x511f10
cmp dword [esi + 0x8c], 1
jle case.0x51054a.17
lea ecx, [ebx + 0xd0]
cmp dword [ecx], 0
jne 0x511f2f
mov edx, dword [esi + 0x1cc]
lea eax, [esi + 0x1d0]
inc dword [eax]
mov eax, dword [eax]
add edx, eax
mov dword [ecx], edx
push dword [ecx]
push dword [ebp - 0x50]
call fcn.00503af4
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 0x1d8]
mov dword [ebx + 0xc8], eax
mov eax, dword [esi + 0x1dc]
pop ecx
pop ecx
mov dword [ebx + 0xcc], eax
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov dword [ebp - 0x4c], eax
mov edi, dword [edi + 0xc]
lea ecx, [ebp - 0x50]
push ecx
mov dword [ebp - 0x48], edi
mov ecx, dword [esi + 8]
shl eax, 4
push edi
push dword [eax + ecx + 4]
call fcn.005051a5
mov eax, dword [ebp - 0x50]
add esp, 0xc
jmp 0x510635
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [esi + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push eax
mov dword [ebp - 0x70], eax
call fcn.00508581
mov eax, dword [ebp - 0x70]
push dword [eax]
mov eax, dword [ebp - 0x50]
push dword [edi + 8]
push dword [eax + 4]
call fcn.005051da
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 8]
add esp, 0x10
cmp eax, 1
jne 0x511fdb
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x70]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx]
mov dword [eax], ecx
or dword [esi + 0xc], 0x200
jmp 0x511fee
cmp eax, 2
jne 0x511fee
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x70]
mov eax, dword [eax + 0xc]
mov cl, byte [ecx]
mov byte [eax + 0x48], cl
cmp dword [edi + 4], 1
jne case.0x51054a.17
push esi
call fcn.005009c6
pop ecx
mov byte [ebx + 0x62], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov edx, dword [esi + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [ebp - 0x4c], eax
cmp eax, ecx
je 0x51202d
lea ecx, [ebp - 0x50]
push ecx
push 1
push eax
call fcn.005051a5
add esp, 0xc
jmp 0x512030
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x50]
cmp eax, dword [edi + 8]
je case.0x51054a.17
push dword [ebx + 0x5c]
push esi
call fcn.004f9417
push str.database_schema_has_changed
push esi
call fcn.004f99d0
mov dword [ebx + 0x5c], eax
mov edi, dword [edi + 4]
mov ecx, dword [esi + 8]
mov eax, edi
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
add esp, 0x10
cmp eax, dword [ebp - 0x50]
je 0x512075
push edi
push esi
call fcn.004fbe73
pop ecx
pop ecx
push esi
call fcn.005009c6
pop ecx
mov dword [ebp - 0x54], 0x11
jmp case.0x51054a.17
cmp byte [ebx + 0x62], 0
je 0x51209a
mov dword [ebp - 0x54], 4
jmp case.0x51054a.17
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov eax, dword [edi + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x44], eax
shl eax, 4
add eax, dword [esi + 8]
mov dword [ebp - 0x34], eax
mov edx, dword [eax + 4]
mov dword [ebp - 0x3c], edx
cmp byte [edi], 0x27
jne 0x5120d7
mov dword [ebp - 0x40], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x48]
cmp al, byte [ebx + 0x64]
jae 0x5120da
mov byte [ebx + 0x64], al
jmp 0x5120da
mov dword [ebp - 0x40], ecx
cmp byte [edi + 3], 0
je 0x512104
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
push eax
mov dword [ebp - 0x74], eax
call fcn.00508581
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
cmp eax, 2
pop ecx
mov dword [ebp - 0x48], eax
jl 0x514053
mov cl, byte [edi + 1]
mov eax, dword [ebp - 0x50]
cmp cl, 0xfa
jne 0x51212d
mov eax, dword [edi + 0x10]
mov ecx, dword [ebx]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x49]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0x4c]
movzx eax, word [eax + 6]
inc eax
jmp 0x512135
cmp cl, 0xf2
jne 0x512138
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x50], eax
push 1
push dword [ebp - 0x44]
push eax
push dword [edi + 4]
call fcn.00510230
add esp, 0x10
mov dword [ebp - 0x38], eax
test eax, eax
je 0x510872
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0x38]
push dword [eax]
push dword [ebp - 0x4c]
push dword [ebp - 0x40]
push dword [ebp - 0x48]
push dword [ebp - 0x3c]
call fcn.00503be4
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x4c]
add esp, 0x14
mov dword [ebp - 0x54], eax
mov dword [ecx + 0x28], edx
cmp eax, 0x10
jne 0x51218c
mov eax, dword [ebp - 0x38]
and dword [eax], 0
and dword [ebp - 0x54], 0
cmp byte [edi + 1], 0xfa
mov ecx, dword [ebp - 0x38]
setne al
mov byte [ecx + 0x16], al
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x16], 0
sete cl
mov byte [eax + 0x17], cl
jmp case.0x51054a.17
push 1
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
call fcn.00510230
add esp, 0x10
mov dword [ebp - 0x50], eax
test eax, eax
je 0x510872
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0x50]
add eax, 0x20
push eax
push 0x41e
xor esi, esi
push 0x1f4
inc esi
push esi
push 0
push dword [ebp - 0x64]
call fcn.004f3933
add esp, 0x18
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x512296
mov eax, dword [ebp - 0x50]
push esi
push dword [eax + 0x20]
call fcn.005035ca
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x512296
cmp dword [edi + 0x10], eax
je 0x512278
push 2
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x50]
push dword [eax + 0x20]
call fcn.00507564
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x51226f
mov eax, dword [ebp - 0x50]
push dword [eax]
push dword [edi + 0x10]
push esi
push dword [ebp - 0x90]
push dword [eax + 0x20]
call fcn.00503be4
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx + 0x28]
mov al, byte [eax + 0x49]
add esp, 0x14
mov byte [ecx + 4], al
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x16], 0
jmp 0x512296
mov eax, dword [ebp - 0x50]
push dword [eax]
push 0
push esi
push esi
push dword [eax + 0x20]
call fcn.00503be4
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
add esp, 0x14
mov byte [eax + 0x16], 1
mov eax, dword [ebp - 0x50]
jmp 0x51219c
push 0
push 0xffffffffffffffff
push dword [edi + 0xc]
push dword [edi + 4]
call fcn.00510230
add esp, 0x10
mov dword [ebp - 0x50], eax
test eax, eax
je 0x510872
mov byte [eax + 0x14], 1
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x16], 1
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x17], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x34]
push dword [ecx + eax*4]
push ebx
call fcn.004ffa8f
mov eax, dword [edi + 4]
pop ecx
pop ecx
mov ecx, dword [ebx + 0x34]
and dword [ecx + eax*4], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov esi, dword [ebx + 0x34]
mov eax, dword [esi + eax*4]
mov dword [ebp - 0x48], eax
cmp dword [eax], ecx
je 0x51055f
movzx ecx, byte [edi]
mov dword [ebp - 0x4c], ecx
mov byte [eax + 0x14], 0
mov ecx, dword [ebp - 0x48]
cmp byte [ecx + 0x16], 0
je 0x512476
mov esi, dword [edi + 0xc]
imul esi, esi, 0x28
add esi, dword [ebp - 0x60]
call fcn.005102e9
push esi
call fcn.00508454
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x1c], edx
mov byte [eax + 0x11], 0
movzx eax, word [esi + 0x1c]
pop ecx
test al, 4
jne 0x51242c
test al, 8
je 0x51055f
cmp dword [ebp - 0x20], 0
jne 0x5123f4
mov eax, 0x80000000
cmp dword [ebp - 0x1c], eax
jne 0x5123f4
and dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], eax
fild qword [ebp - 0xa4]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x51239d
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x5123f4
fldz
mov dword [ebp - 0x50], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x5123ca
cmp dword [ebp - 0x4c], 0x2d
jl 0x51055f
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00506595
jmp 0x5123e2
cmp dword [ebp - 0x4c], 0x2c
jg 0x51055f
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.005065c4
pop ecx
mov dword [ebp - 0x54], eax
pop ecx
test eax, eax
jne 0x514073
jmp 0x511475
cmp dword [ebp - 0x4c], 0x2b
je 0x512417
cmp dword [ebp - 0x4c], 0x2d
je 0x512417
fild qword [ebp - 0x20]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x51242c
add dword [ebp - 0x20], 0xffffffff
adc dword [ebp - 0x1c], 0xffffffff
jmp 0x51242c
fild qword [ebp - 0x20]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x51242c
add dword [ebp - 0x20], 1
adc dword [ebp - 0x1c], 0
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push 0
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push dword [eax]
call fcn.0050660d
add esp, 0x18
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
cmp dword [ebp - 0x50], eax
jne 0x5124e1
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x11], 1
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 0xc], eax
jmp 0x5124e1
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x40], eax
mov ax, word [ebp - 0x28]
mov word [ebp - 0x3c], ax
mov eax, dword [ebp - 0x4c]
dec eax
and eax, 1
shl eax, 3
mov word [ebp - 0x3a], ax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
mov edx, 0x4000
mov dword [ebp - 0x30], eax
test word [eax + 0x1c], dx
je 0x5124b8
push eax
call fcn.00508296
pop ecx
mov ecx, dword [ebp - 0x48]
lea eax, [ebp - 0x50]
push eax
xor esi, esi
push esi
push esi
push esi
lea eax, [ebp - 0x40]
push eax
push dword [ecx]
call fcn.0050660d
add esp, 0x18
mov dword [ebp - 0x54], eax
cmp eax, esi
jne 0x514073
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x48]
xor esi, esi
mov dword [eax + 0x44], esi
cmp dword [ebp - 0x4c], 0x2d
jl 0x51251b
cmp dword [ebp - 0x50], esi
jl 0x51250b
jne 0x512503
cmp dword [ebp - 0x4c], 0x2e
je 0x51250b
mov dword [ebp - 0x50], esi
jmp case.0x51054a.17
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00507b8c
jmp 0x512546
cmp dword [ebp - 0x50], esi
jg 0x512538
jne 0x512528
cmp dword [ebp - 0x4c], 0x2b
je 0x512538
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00504160
pop ecx
jmp 0x511472
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00507c95
pop ecx
mov dword [ebp - 0x54], eax
pop ecx
cmp eax, esi
jne 0x514073
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x11], 0
jmp 0x511475
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
cmp dword [eax], ecx
je case.0x51054a.17
mov byte [eax + 0x14], 0
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
push edi
call fcn.00508454
pop ecx
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x15], 1
jmp case.0x51054a.17
mov dword [ebp - 0x50], ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x34]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x4c], ecx
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
cmp dword [ecx], 0
mov dword [ebp - 0x70], eax
je 0x51267e
cmp dword [edi + 0x10], 0
jle 0x5125ef
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x40], edx
mov dx, word [edi + 0x10]
mov dword [ebp - 0x30], eax
push 0x10
pop eax
mov word [ebp - 0x3a], ax
lea eax, [ebp - 0x40]
mov word [ebp - 0x3c], dx
mov dword [ebp - 0x44], eax
jmp 0x512636
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x512606
push dword [ebp - 0x70]
call fcn.00508296
pop ecx
mov ecx, dword [ebp - 0x4c]
push 0x97
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x70]
push dword [eax + 0x14]
push dword [eax + 0x18]
push dword [ecx + 0x28]
call fcn.0050053c
add esp, 0x14
mov dword [ebp - 0x44], eax
test eax, eax
je 0x510875
or word [eax + 6], 0x10
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x48]
push eax
xor esi, esi
push esi
push esi
push esi
push dword [ebp - 0x44]
push dword [ecx]
call fcn.0050660d
add esp, 0x18
mov dword [ebp - 0x54], eax
cmp dword [edi + 0x10], esi
jne 0x51265d
push dword [ebp - 0x44]
call fcn.00500658
pop ecx
cmp dword [ebp - 0x54], esi
jne case.0x51054a.17
xor eax, eax
cmp dword [ebp - 0x48], esi
sete al
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x4c]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x44], esi
cmp byte [edi], 0x31
je 0x511475
cmp dword [ebp - 0x50], 0
jmp 0x511499
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
imul esi, esi, 0x28
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 4]
add esi, edx
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x4c], eax
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x44], ecx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov dword [ebp - 0x48], edx
mov eax, dword [eax + 0x28]
mov ax, word [eax + 6]
xor edx, edx
mov word [ebp - 0x50], dx
cmp dx, ax
mov edx, dword [ebp - 0x40]
mov word [ebp - 0x44], ax
jae 0x512701
movzx eax, word [ebp - 0x50]
imul eax, eax, 0x28
test byte [eax + edx + 0x1c], 1
jne 0x5126f7
mov ax, word [ebp - 0x44]
inc word [ebp - 0x50]
cmp word [ebp - 0x50], ax
jb 0x5126d9
jmp 0x512701
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], ecx
je case.0x51054a.17
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
inc eax
push 0x20
mov word [ebp - 0x34], ax
pop eax
push esi
mov word [ebp - 0x32], ax
mov dword [ebp - 0x28], edx
call fcn.00508581
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x4c]
add eax, 0x40
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x48]
call fcn.0050660d
add esp, 0x1c
test byte [ebp - 0x32], 0x20
mov dword [ebp - 0x54], eax
jne 0x51055f
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0x20]
jne 0x512772
mov ecx, dword [ebp - 0x2c]
cmp ecx, dword [ebp - 0x1c]
je 0x51055f
mov dword [esi], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 4], eax
jmp case.0x51054a.17
mov esi, dword [edi + 0xc]
mov eax, dword [edi + 4]
imul esi, esi, 0x28
add esi, edx
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
cmp edx, ecx
je 0x51280f
and dword [ebp - 0x48], 0
mov eax, dword [esi]
mov dword [ebp - 0x40], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x48]
push ecx
push 0
push dword [ebp - 0x3c]
push eax
push 0
push edx
call fcn.0050660d
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], eax
mov eax, dword [esi]
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0x50]
add esp, 0x18
cmp dword [ebp - 0x48], 0
sete al
mov byte [ecx + 0x11], al
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x14], 0
mov eax, dword [ebp - 0x50]
and dword [eax + 0x44], 0
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x512804
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0x58], edi
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x40], eax
jmp case.0x51054a.17
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0x58], edi
mov dword [eax + 0x40], ecx
jmp case.0x51054a.17
mov edx, dword [ebx + 0x34]
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov esi, dword [eax + 0x30]
mov edx, dword [ebp - 0x5c]
mov dword [edx], esi
mov eax, dword [eax + 0x34]
mov dword [edx + 4], eax
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], ecx
jmp case.0x51054a.17
mov edx, dword [ebx + 0x34]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], ecx
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x48], eax
cmp dword [eax], ecx
je 0x511b72
mov dword [ebp - 0x40], ecx
cmp byte [eax + 0x13], 0
jne 0x5129ad
push dword [eax]
call fcn.00503c52
mov dword [ebp - 0x50], eax
or eax, edx
pop ecx
mov dword [ebp - 0x4c], edx
jne 0x5128e5
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.005065c4
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
cmp dword [ebp - 0x44], eax
je 0x5128b2
and dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], 1
jmp 0x5128e5
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00503d0c
cmp dword [ebp - 0x50], 0xffffffff
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jne 0x5128dd
cmp dword [ebp - 0x4c], 0x7fffffff
jne 0x5128dd
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x13], 1
jmp 0x5128e5
add dword [ebp - 0x50], 1
adc dword [ebp - 0x4c], 0
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x512956
mov eax, dword [ebx + 0xd4]
test eax, eax
jne 0x512975
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov edi, ecx
push edi
mov dword [ebp - 0x3c], edi
call fcn.00508581
mov edx, dword [ebp - 0x3c]
mov eax, dword [edx]
pop ecx
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x512921
cmp ecx, 0x7fffffff
je 0x514063
mov edi, dword [ebp - 0x48]
cmp byte [edi + 0x13], 0
jne 0x514063
mov esi, dword [ebp - 0x4c]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x512948
jl 0x512942
cmp dword [ebp - 0x50], eax
jae 0x512948
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov eax, dword [ebp - 0x50]
mov dword [edx], eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x7fffffff
jg 0x51298d
mov eax, dword [ebp - 0x50]
jl 0x51296b
cmp eax, 0xffffffff
jae 0x51298d
add eax, 1
adc ecx, 0
jmp 0x512991
mov eax, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
jne 0x512973
mov edi, dword [edi + 0xc]
imul edi, edi, 0x28
add edi, dword [eax + 0x10]
jmp 0x5128fe
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00503c2b
mov eax, dword [ebp - 0x48]
add esp, 0xc
cmp byte [eax + 0x13], 0
je 0x512a42
mov ecx, dword [ebp - 0x64]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x50], edx
mov ecx, dword [ecx + 0x34]
and dword [ebp - 0x40], 0
mov dword [ebp - 0x4c], ecx
mov esi, 0xffffff
xor edi, edi
jmp 0x5129cc
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x40], edi
jne 0x5129eb
mov ecx, dword [ebp - 0x50]
and ecx, esi
xor edx, edx
cmp ecx, dword [ebp - 0x50]
jne 0x5129eb
cmp edx, dword [ebp - 0x4c]
jne 0x5129eb
add dword [ebp - 0x50], 1
adc dword [ebp - 0x4c], edi
jmp 0x512a07
lea eax, [ebp - 0x50]
push eax
push 8
call fcn.0050d4c4
cmp dword [ebp - 0x40], 5
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
jge 0x512a07
and dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], edi
lea ecx, [ebp - 0x44]
push ecx
push edi
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
push edi
push dword [eax]
call fcn.0050660d
add esp, 0x18
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], 0x64
mov dword [ebp - 0x54], eax
jge 0x512a32
cmp eax, edi
jne 0x512a3f
cmp dword [ebp - 0x44], edi
je 0x5129c9
cmp eax, edi
jne 0x512a3f
cmp dword [ebp - 0x44], edi
je 0x51406c
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x48]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x48]
and dword [eax + 0x44], 0
jmp 0x511b72
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x40], eax
cmp byte [edi], 0x36
jne 0x512a8d
mov ecx, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, edx
mov dword [ebp - 0x4c], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x48], eax
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x44], ecx
jmp 0x512a97
mov eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
test byte [edi + 3], 1
je 0x512aa0
inc dword [ebx + 0x6c]
test byte [edi + 3], 2
je 0x512aaf
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x50]
test byte [eax + 0x1c], 1
je 0x512ac6
and dword [eax + 0x14], 0
mov eax, dword [ebp - 0x50]
and dword [eax + 0x18], 0
mov eax, dword [ebp - 0x50]
test byte [edi + 3], 0x10
je 0x512ad7
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x40]
mov dword [ebp - 0x38], ecx
jmp 0x512adb
and dword [ebp - 0x38], 0
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x512aed
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
jmp 0x512af1
and dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x40]
push 0
push 0
push dword [eax]
call fcn.00503c2b
push dword [ebp - 0x38]
movzx eax, byte [edi + 3]
and eax, 8
push eax
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x50]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [ebp - 0x40]
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push 0
push dword [eax]
call fcn.00507da0
mov ecx, dword [ebp - 0x40]
mov byte [ecx + 0x11], 0
mov ecx, dword [ebp - 0x40]
mov byte [ecx + 0x15], 0
mov ecx, dword [ebp - 0x40]
and dword [ecx + 0x44], 0
add esp, 0x30
mov dword [ebp - 0x54], eax
test eax, eax
jne case.0x51054a.17
cmp dword [esi + 0xb8], eax
je case.0x51054a.17
cmp dword [edi + 0x10], eax
je case.0x51054a.17
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 8]
push dword [ebp - 0x44]
shl eax, 4
mov ecx, dword [eax + ecx]
push dword [ebp - 0x48]
mov dword [ebp - 0x34], ecx
mov edx, dword [edi + 0x10]
mov dword [ebp - 0x30], edx
mov al, byte [edi + 3]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
push edx
and eax, 5
add eax, 0x12
push ecx
push eax
mov dword [ebp - 0x2c], eax
push dword [esi + 0xb4]
call dword [esi + 0xb8]
jmp 0x513f1a
mov edx, dword [ebx + 0x34]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x48], eax
cmp dword [esi + 0xb8], ecx
je 0x512bd2
cmp dword [edi + 0x10], ecx
je 0x512bd2
mov ecx, dword [eax + 8]
mov dword [ebp - 0x50], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x4c], ecx
push eax
call fcn.00500145
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
push eax
push eax
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00503c2b
mov eax, dword [ebp - 0x48]
push dword [eax]
call fcn.00507f5f
mov ecx, dword [ebp - 0x48]
and dword [ecx + 0x44], 0
add esp, 0x10
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x512c3f
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x512c3f
mov eax, dword [edi + 0x10]
test eax, eax
je 0x512c3f
push dword [ebp - 0x4c]
mov edx, dword [esi + 8]
push dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 4]
shl eax, 4
push dword [eax + edx]
push 9
push dword [esi + 0xb4]
call ecx
add esp, 0x18
test byte [edi + 8], 1
je case.0x51054a.17
inc dword [ebx + 0x6c]
jmp case.0x51054a.17
push dword [ebx + 0x6c]
push esi
call fcn.005009ae
and dword [ebx + 0x6c], 0
pop ecx
pop ecx
jmp case.0x51054a.17
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x50], eax
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x4c], ecx
call fcn.00500145
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x17], 0
je 0x512ccc
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x4c]
call fcn.00503d0c
mov eax, dword [esi + 0x48]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x3c]
cdq
cmp ecx, edx
jg 0x510e10
mov ecx, dword [ebp - 0x40]
jl 0x512cc7
cmp ecx, eax
ja 0x510e10
mov dword [ebp - 0x48], ecx
jmp 0x512ce6
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x4c]
call fcn.00503d3c
mov eax, dword [ebp - 0x48]
pop ecx
pop ecx
cmp eax, dword [esi + 0x48]
ja 0x510e10
mov edi, dword [ebp - 0x5c]
push 0
push dword [ebp - 0x48]
push edi
call fcn.005081c9
add esp, 0xc
test eax, eax
jne 0x510875
mov eax, dword [ebp - 0x48]
push dword [edi + 0x14]
mov dword [edi + 0x18], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
push dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x17], 0
push 0
push dword [ebp - 0x4c]
je 0x512d34
call fcn.0050409e
jmp 0x512d39
call fcn.00507b51
mov dword [ebp - 0x54], eax
add esp, 0x10
jmp 0x511b40
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
cmp byte [eax + 0x14], 0
jne case.0x51054a.10
cmp byte [eax + 0x15], 0
je 0x512d6b
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x48], ecx
mov eax, dword [eax + 0x1c]
jmp 0x512dc9
cmp dword [eax + 0x38], ecx
je 0x512da5
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ecx]
lea edx, [ebp - 0x48]
push edx
mov dword [ebp - 0x3c], ecx
push dword [eax + 0x38]
call dword [ecx + 0x30]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [ebx + 0x5c], ecx
and dword [eax + 8], 0
jmp 0x512dde
push eax
call fcn.00500145
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
mov eax, dword [ebp - 0x50]
cmp byte [eax + 0x11], 0
je 0x512dce
mov ecx, dword [eax + 8]
mov dword [ebp - 0x48], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x44], eax
jmp 0x512dde
lea ecx, [ebp - 0x48]
push ecx
push dword [eax]
call fcn.00503d0c
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x44]
jmp 0x510650
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
cmp eax, ecx
je case.0x51054a.17
push eax
call fcn.00502074
jmp 0x510985
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov esi, dword [edx + eax*4]
mov dword [ebp - 0x50], esi
mov eax, dword [esi]
mov dword [ebp - 0x4c], eax
cmp eax, ecx
jne 0x512e3b
mov dword [ebp - 0x48], 1
jmp 0x512e4f
lea ecx, [ebp - 0x48]
push ecx
push eax
call fcn.005065c4
mov esi, dword [ebp - 0x50]
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
xor ecx, ecx
mov al, byte [ebp - 0x48]
mov byte [esi + 0x14], al
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x44], ecx
mov edi, dword [edi + 8]
cmp edi, ecx
jle case.0x51054a.17
cmp dword [ebp - 0x48], ecx
je case.0x51054a.17
jmp 0x510562
inc dword [ebx + 0xb4]
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
cmp edx, ecx
je 0x512ed3
lea eax, [ebp - 0x48]
push eax
push edx
call fcn.00506595
cmp dword [ebp - 0x48], 0
mov dword [ebp - 0x54], eax
pop ecx
sete al
pop ecx
mov ecx, dword [ebp - 0x50]
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x15], 0
mov eax, dword [ebp - 0x50]
and dword [eax + 0x44], 0
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0x50]
jmp 0x512eda
mov dword [ebp - 0x48], 1
mov cl, byte [ebp - 0x48]
mov byte [eax + 0x14], cl
cmp dword [ebp - 0x48], 0
jmp 0x51112d
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x5140b0
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
cmp eax, ecx
je case.0x51054a.17
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
cmp edx, ecx
jne 0x512f1d
mov byte [eax + 0x14], 1
jmp case.0x51054a.17
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 1
cmp byte [edi], 0x42
push eax
push edx
jne 0x512f35
call fcn.00507b8c
jmp 0x512f3a
call fcn.00507c95
pop ecx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
pop ecx
mov cl, byte [ebp - 0x48]
mov byte [eax + 0x14], cl
mov eax, dword [ebp - 0x50]
and dword [eax + 0x44], 0
cmp dword [ebp - 0x48], 0
jne 0x512f6f
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0x58], eax
mov al, byte [edi + 3]
test al, al
je 0x512f6f
movzx eax, al
lea eax, [ebx + eax*4 + 0xac]
inc dword [eax]
mov eax, dword [ebp - 0x50]
mov byte [eax + 0x11], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov esi, dword [ebx + 0x34]
mov eax, dword [esi + eax*4]
mov dword [ebp - 0x50], eax
mov esi, dword [edi + 8]
imul esi, esi, 0x28
add esi, edx
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
cmp edx, ecx
je case.0x51054a.17
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x512fb6
push esi
call fcn.00508296
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
pop ecx
jmp 0x512fb9
mov dword [ebp - 0x54], ecx
xor edx, edx
cmp dword [ebp - 0x54], edx
jne case.0x51054a.17
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x48], ecx
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x44], esi
test byte [edi + 3], 0x10
je 0x512fdb
mov eax, dword [eax + 0x40]
jmp 0x512fdd
xor eax, eax
push eax
push dword [edi + 0xc]
mov eax, ecx
push edx
push edx
push 0x577673
cdq
push edx
push eax
push esi
push dword [ebp - 0x4c]
call fcn.00507da0
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
add esp, 0x24
and dword [eax + 0x44], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
mov edx, dword [eax]
mov dword [ebp - 0x4c], edx
cmp edx, ecx
je case.0x51054a.17
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x40], eax
mov ax, word [edi + 0xc]
mov word [ebp - 0x3c], ax
xor eax, eax
mov word [ebp - 0x3a], ax
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
xor esi, esi
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x48]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x40]
push eax
push edx
call fcn.0050660d
add esp, 0x18
mov dword [ebp - 0x54], eax
cmp eax, esi
jne 0x51306f
cmp dword [ebp - 0x48], esi
jne 0x51306f
push dword [ebp - 0x4c]
call fcn.00507f5f
pop ecx
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x44], esi
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
xor eax, eax
inc eax
mov word [edx + 0x1c], ax
cmp dword [ebp - 0x50], ecx
je case.0x51054a.17
push dword [ebp - 0x4c]
call fcn.00500145
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
mov eax, dword [ebp - 0x4c]
cmp byte [eax + 0x14], 0
jne case.0x51054a.17
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x50]
push esi
call fcn.0050081b
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x514073
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x44]
push 4
mov dword [eax + 4], ecx
pop ecx
jmp 0x510f2b
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x50], eax
cmp dword [eax], ecx
je case.0x51054a.17
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x48], ecx
mov cx, word [edi + 0x10]
mov word [ebp - 0x44], cx
cmp byte [edi + 3], 0
je 0x51311c
push 0xc
jmp 0x51311e
push 4
pop ecx
mov word [ebp - 0x42], cx
mov ecx, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x48]
push ecx
push eax
call fcn.00500919
add esp, 0xc
cmp byte [edi], 0x48
mov dword [ebp - 0x54], eax
jne 0x51314d
neg dword [ebp - 0x4c]
jmp 0x513150
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0
jle case.0x51054a.17
jmp 0x51055f
mov dword [ebp - 0x4c], ecx
mov eax, dword [esi + 0x88]
jmp 0x513184
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x513181
cmp byte [eax + 0x65], 2
jae 0x513181
cmp dword [eax + 0x54], ecx
jl 0x513181
inc dword [ebp - 0x4c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x48], eax
cmp eax, ecx
jne 0x51316a
mov ecx, dword [ebp - 0x5c]
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
cmp dword [ebp - 0x4c], eax
jle 0x5131aa
mov dword [ebp - 0x54], 6
mov byte [ebx + 0x38], 2
jmp case.0x51054a.17
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x50]
push ecx
push dword [edi + 4]
mov ecx, dword [esi + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.005078a0
mov ecx, dword [ebp - 0x5c]
add esp, 0xc
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x50]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne case.0x51054a.17
cmp dword [ebp - 0x50], 0
je case.0x51054a.17
push dword [edi + 4]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x50]
shl eax, 4
add eax, dword [esi + 8]
push eax
call fcn.004fcb03
add esp, 0xc
mov byte [ebp - 0x75], 1
jmp case.0x51054a.17
and dword [ebp - 0x50], 0
mov eax, dword [edi + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x50]
and eax, ecx
mov ecx, dword [esi + 8]
push eax
mov eax, dword [edi + 8]
push dword [edi + 4]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.005076b5
add esp, 0xc
cmp dword [edi + 0xc], 0
mov dword [ebp - 0x54], eax
je case.0x51054a.17
mov eax, dword [ebp - 0x50]
add dword [ebx + 0x6c], eax
mov edi, dword [edi + 0xc]
test edi, edi
jle case.0x51054a.17
mov ecx, dword [ebp - 0x60]
imul edi, edi, 0x28
add ecx, edi
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x51054a.17
and dword [ebp - 0x50], 0
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [esi + 8]
xor ecx, ecx
mov dword [ebp - 0x48], eax
cmp byte [edi], 0x61
setne cl
dec ecx
and ecx, 3
inc ecx
inc ecx
push ecx
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x50]
push ecx
push dword [eax + 4]
call fcn.00507564
mov dword [ebp - 0x54], eax
jmp 0x511f7b
mov eax, dword [edi + 4]
push esi
mov dword [ebp - 0x50], eax
call fcn.00509fa5
cmp dword [edi + 8], 0
mov eax, dword [ebp - 0x50]
pop ecx
jne 0x5132d0
mov edx, dword [esi + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
test byte [ecx + 0x4a], 1
je 0x51335a
mov dword [ebp - 0x4c], str.sqlite_temp_master
cmp eax, 1
je 0x5132e3
mov dword [ebp - 0x4c], str.sqlite_master
mov dword [ebp - 0x44], esi
mov ecx, dword [edi + 4]
mov dword [ebp - 0x40], ecx
lea ecx, [ebx + 0x5c]
mov dword [ebp - 0x3c], ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 8]
push dword [ebp - 0x4c]
shl eax, 4
push dword [eax + ecx]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.00509d20
add esp, 0x14
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x51331f
mov dword [ebp - 0x54], 7
jmp 0x51335a
push 0
lea eax, [ebp - 0x44]
push eax
mov byte [esi + 0x7c], 1
and dword [ebp - 0x38], 0
push fcn.004f4f97
push dword [ebp - 0x48]
push esi
call fcn.004f4c8a
add esp, 0x14
mov dword [ebp - 0x54], eax
test eax, eax
jne 0x51334b
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x54], eax
push dword [ebp - 0x48]
push esi
call fcn.004f9417
pop ecx
pop ecx
mov byte [esi + 0x7c], 0
push esi
call fcn.0050a02e
cmp dword [ebp - 0x54], 7
pop ecx
je 0x510875
jmp case.0x51054a.17
push dword [edi + 4]
push esi
call fcn.0050f855
pop ecx
jmp 0x5118b2
push dword [edi + 0x10]
push dword [edi + 4]
push esi
call fcn.004fc077
jmp 0x5108b5
push dword [edi + 0x10]
push dword [edi + 4]
push esi
call fcn.004fbdfc
jmp 0x5108b5
push dword [edi + 0x10]
push dword [edi + 4]
push esi
call fcn.00522553
jmp 0x5108b5
mov eax, dword [edi + 8]
mov dword [ebp - 0x50], eax
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.004f98b0
pop ecx
pop ecx
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x510875
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 4]
and dword [ebp - 0x48], 0
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
cmp dword [ebp - 0x50], 0
mov dword [ebp - 0x68], eax
jle 0x513419
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x28
add eax, dword [ebp - 0x68]
push eax
call fcn.00508454
mov edx, dword [ebp - 0x4c]
pop ecx
mov ecx, dword [ebp - 0x48]
mov dword [edx + ecx*4], eax
inc dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x50]
jl 0x5133f5
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
and dword [eax + ecx*4], 0
mov ecx, dword [esi + 8]
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0x3c]
push dword [eax]
movzx eax, byte [edi + 3]
push dword [ebp - 0x50]
shl eax, 4
push dword [ebp - 0x4c]
push dword [eax + ecx + 4]
call fcn.00505acc
push dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
push dword [ebp - 0x68]
cdq
sub dword [ecx], eax
mov eax, dword [ebp - 0x3c]
sbb dword [eax + 4], edx
call fcn.0050863d
add esp, 0x20
cmp dword [ebp - 0x44], 0
je 0x513492
cmp dword [ebp - 0x40], 0
je 0x510875
push fcn.004f93c9
push 1
push 0xffffffffffffffff
push dword [ebp - 0x40]
push dword [ebp - 0x68]
call fcn.00508957
add esp, 0x14
movzx eax, byte [ebp - 0x6c]
push eax
push dword [ebp - 0x68]
call fcn.005081a5
pop ecx
jmp 0x510985
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
imul eax, eax, 0x28
imul edi, edi, 0x28
add eax, edx
add edi, edx
test byte [eax + 0x1c], 0x20
mov dword [ebp - 0x68], eax
jne 0x5134d2
push eax
call fcn.00508843
mov eax, dword [ebp - 0x68]
test byte [eax + 0x1c], 0x20
pop ecx
je 0x510875
push dword [edi + 4]
mov eax, dword [ebp - 0x68]
push dword [edi]
push dword [eax]
call fcn.00524236
jmp 0x5108b5
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x5140b0
mov esi, dword [edi + 4]
imul esi, esi, 0x28
add esi, edx
test byte [esi + 0x1c], 0x20
je 0x513528
lea eax, [ebp - 0x50]
push eax
push dword [esi]
call fcn.005244ae
pop ecx
pop ecx
test eax, eax
je 0x513528
mov eax, dword [edi + 0xc]
push dword [ebp - 0x4c]
imul eax, eax, 0x28
push dword [ebp - 0x50]
add eax, dword [ebp - 0x60]
push eax
jmp 0x5113f0
push esi
call fcn.0050863d
pop ecx
jmp 0x51055f
mov esi, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul esi, esi, 0x28
mov ecx, dword [edi + 0x10]
imul eax, eax, 0x28
add esi, edx
add eax, edx
mov dword [ebp - 0x50], ecx
test byte [esi + 0x1c], 0x20
mov dword [ebp - 0x70], eax
jne 0x51356a
push esi
call fcn.00508843
test byte [esi + 0x1c], 0x20
pop ecx
je 0x510872
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x70]
test ecx, ecx
je 0x5135a3
jl 0x513575
and ecx, 0xf
jmp 0x51357a
mov ecx, 0xff
push dword [eax + 4]
push dword [eax]
push ecx
push dword [esi]
call fcn.005244ec
add esp, 0x10
mov dword [ebp - 0x4c], eax
test eax, eax
jne 0x51055f
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x70]
test ecx, ecx
jl case.0x51054a.17
push dword [eax + 4]
push dword [eax]
push dword [esi]
jmp 0x5134dc
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x48], eax
cmp byte [edi + 3], 0
je 0x5135f9
mov edi, dword [edx + 0x14]
mov dword [ebp - 0x34], edi
mov edi, dword [ebx + 0xd4]
mov dword [ebp - 0x3c], edi
cmp edi, ecx
je 0x5135f9
mov edx, dword [edi + 0x20]
cmp edx, dword [ebp - 0x34]
je 0x5135ee
mov edi, dword [edi + 0x3c]
mov dword [ebp - 0x3c], edi
cmp edi, ecx
jne 0x5135dc
cmp edi, ecx
jne case.0x51054a.17
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebx + 0xd8]
cmp ecx, dword [esi + 0x70]
jl 0x51361f
push str.too_many_levels_of_trigger_recursion
lea eax, [ebx + 0x5c]
push esi
push eax
mov dword [ebp - 0x54], 1
call fcn.004f9447
jmp 0x5108b5
test byte [eax + 0x1c], 0x40
jne 0x513715
mov eax, dword [edx + 8]
add eax, dword [edx + 0xc]
mov dword [ebp - 0x50], eax
imul eax, eax, 0xa
add eax, dword [edx + 0xc]
lea eax, [eax*4 + 0x40]
push eax
push esi
mov dword [ebp - 0x4c], eax
call fcn.004f9a4a
pop ecx
pop ecx
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x510872
push dword [ebp - 0x48]
call fcn.00508789
pop ecx
mov ecx, dword [ebp - 0x48]
push 0x40
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x48]
mov dword [ecx], eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], ebx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x50]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x58]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x14], eax
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x18], eax
mov ax, word [ebx + 0x32]
mov ecx, dword [ebp - 0x3c]
mov word [ecx + 0x1c], ax
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x14]
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x64]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x24]
imul ecx, ecx, 0x28
lea edx, [ecx + eax + 0x40]
lea ecx, [eax + 0x40]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x44], ecx
cmp ecx, edx
je 0x51371a
xor eax, eax
inc eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x10], esi
mov ecx, dword [ebp - 0x44]
add ecx, 0x28
mov dword [ebp - 0x44], ecx
cmp ecx, dword [ebp - 0x40]
jne 0x5136f5
mov eax, dword [ebp - 0x3c]
jmp 0x51371a
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
inc dword [ebx + 0xd8]
mov ecx, dword [ebx + 0xd4]
mov dword [eax + 0x3c], ecx
mov eax, dword [esi + 0x30]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x30], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x34], eax
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0x3c]
and dword [ebx + 0x6c], 0
lea ecx, [eax + 0x18]
mov dword [ebx + 0xd4], eax
mov dword [ebx + 0x4c], ecx
mov edx, dword [eax + 0x24]
mov dword [ebx + 0x48], edx
mov ax, word [eax + 0x28]
mov word [ebx + 0x32], ax
mov eax, edx
inc eax
imul eax, eax, 0x28
add eax, ecx
or dword [ebp - 0x58], 0xffffffff
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x60], ecx
mov ecx, dword [eax]
mov dword [ebx + 0x14], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0x7c], ecx
mov dword [ebx + 0xc], eax
jmp case.0x51054a.17
mov ecx, dword [ebx + 0xd4]
mov dword [ebp - 0x50], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
imul eax, eax, 0x14
mov eax, dword [eax + edx + 4]
add eax, dword [edi + 4]
push 0x1000
imul eax, eax, 0x28
add eax, dword [ecx + 0x10]
push eax
push dword [ebp - 0x5c]
mov dword [ebp - 0x4c], eax
jmp 0x5108b0
mov eax, dword [edi + 8]
cdq
cmp dword [edi + 4], ecx
je 0x5137d1
lea ecx, [esi + 0x1d8]
jmp 0x513264
lea ecx, [ebx + 0xc0]
jmp 0x513264
cmp dword [edi + 4], ecx
je 0x5137f2
mov eax, dword [esi + 0x1d8]
or eax, dword [esi + 0x1dc]
jmp 0x511499
mov eax, dword [ebx + 0xc0]
or eax, dword [ebx + 0xc4]
jmp 0x511499
mov eax, dword [ebx + 0xd4]
cmp eax, ecx
je 0x513824
mov edx, eax
mov dword [ebp - 0x4c], edx
mov eax, dword [edx + 0x3c]
cmp eax, ecx
jne 0x51380d
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [edx + 0x10]
jmp 0x51382c
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, edx
push eax
mov dword [ebp - 0x50], eax
call fcn.00508581
mov edi, dword [edi + 8]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
push edi
call fcn.00508581
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 4]
pop ecx
pop ecx
mov ecx, dword [edi]
mov edi, dword [edi + 4]
cmp edx, edi
jg case.0x51054a.17
jl 0x513865
mov edx, dword [eax]
cmp edx, ecx
jae case.0x51054a.17
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov dword [eax + 4], edi
jmp case.0x51054a.17
mov eax, dword [edi + 4]
imul eax, eax, 0x28
cmp dword [eax + edx + 4], ecx
jl case.0x51054a.17
jg 0x51055f
cmp dword [eax + edx], ecx
jbe case.0x51054a.17
jmp 0x51055f
mov eax, dword [edi + 4]
imul eax, eax, 0x28
cmp dword [eax + edx + 4], ecx
jg case.0x51054a.17
jl 0x51055f
cmp dword [eax + edx], ecx
jae case.0x51054a.17
jmp 0x51055f
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
imul ecx, ecx, 0x28
add ecx, edx
cdq
add dword [ecx], eax
mov eax, dword [ecx]
adc dword [ecx + 4], edx
or eax, dword [ecx + 4]
jmp 0x511499
movzx esi, byte [edi + 3]
mov dword [ebp - 0x50], esi
mov eax, dword [edi + 8]
imul eax, eax, 0x28
add eax, edx
cmp esi, ecx
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x44], eax
mov dword [ebp], edx
mov dword [ebp - 0x4c], ecx
jle 0x51391a
mov ecx, dword [ebp]
mov edx, dword [ebp - 0x4c]
mov dword [ecx + edx*4], eax
push dword [ebp - 0x44]
call fcn.00510201
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
pop ecx
mov ecx, dword [ebp - 0x4c]
add eax, 0x28
cmp ecx, dword [ebp - 0x50]
mov dword [ebp - 0x44], eax
jl 0x5138f4
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
xor esi, esi
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], esi
test byte [eax + 3], 8
je 0x51395f
mov ecx, dword [edi - 4]
mov dword [ebp - 8], ecx
push dword [ebp]
lea ecx, [ebp - 0x40]
push dword [ebp - 0x50]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0xc], esi
je 0x513998
lea eax, [ebp - 0x38]
push eax
call fcn.004f5b57
push eax
push 0x577674
push dword [ebp - 0x64]
lea eax, [ebx + 0x5c]
push eax
call fcn.004f9447
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x38]
push eax
call fcn.00508789
jmp 0x510985
mov eax, dword [edi + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x50], eax
push dword [edi + 0x10]
push eax
call fcn.005083b0
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
test eax, eax
je 0x5139df
push dword [ebp - 0x50]
call fcn.004f5b57
push eax
push 0x577674
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
add esp, 0x14
movzx eax, byte [ebp - 0x6c]
push eax
push dword [ebp - 0x50]
call fcn.005081a5
push dword [ebp - 0x50]
call fcn.00508678
add esp, 0xc
jmp 0x510e08
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.00527d0b
jmp 0x513379
mov eax, dword [edi + 4]
mov ecx, dword [esi + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
mov dword [ebp - 0x50], eax
call fcn.005060e5
pop ecx
mov dword [ebp - 0x54], eax
cmp eax, 0x65
jne case.0x51054a.17
mov edi, dword [edi + 8]
dec edi
and dword [ebp - 0x54], 0
mov dword [ebp - 0x58], edi
jmp case.0x51054a.17
cmp dword [edi + 4], ecx
jne 0x513a4e
push esi
call fcn.005009c6
jmp 0x510985
mov byte [ebx + 0x62], 1
jmp case.0x51054a.17
mov al, byte [edi + 0xc]
mov byte [ebp - 0x8c], al
test al, al
jne 0x513a71
test dword [esi + 0xc], 0x80000
jne case.0x51054a.17
push dword [ebp - 0x8c]
mov eax, dword [edi + 4]
push dword [edi + 8]
mov ecx, dword [esi + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.00505dd5
add esp, 0xc
mov dword [ebp - 0x54], eax
cmp al, 6
jne case.0x51054a.17
push dword [edi + 0x10]
lea eax, [ebx + 0x5c]
push str.database_table_is_locked:__s
push esi
push eax
call fcn.004f9447
jmp 0x511429
mov edi, dword [edi + 0x10]
push edi
push esi
mov dword [ebp - 0x50], edi
call fcn.00501ca6
cmp dword [ebp - 0x50], 0
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je case.0x51054a.17
push dword [ebx + 0x5c]
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x50]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dword [ebx + 0x5c], ecx
mov eax, dword [eax + 8]
and dword [eax + 8], 0
jmp case.0x51054a.17
lea eax, [ebx + 0x5c]
push eax
push dword [edi + 0x10]
push dword [edi + 4]
push esi
call fcn.00501979
add esp, 0x10
jmp 0x5118b3
mov byte [ebx + 0x65], 2
push dword [edi + 0x10]
push dword [edi + 4]
push esi
call fcn.00501b4a
add esp, 0xc
mov dword [ebp - 0x54], eax
mov byte [ebx + 0x65], 0
jmp case.0x51054a.17
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x48], eax
mov ecx, dword [eax]
push edx
push eax
mov dword [ebp - 0x44], ecx
call dword [ecx + 0x18]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x5c], ecx
and dword [eax + 8], 0
add esp, 0x10
cmp dword [ebp - 0x54], 0
jne case.0x51054a.17
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
push 0
push 0xffffffffffffffff
mov dword [ecx], eax
push 0
push dword [edi + 4]
call fcn.00510230
add esp, 0x10
mov dword [ebp - 0x50], eax
test eax, eax
je 0x513ba3
mov ecx, dword [ebp - 0x4c]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
jmp case.0x51054a.17
mov eax, dword [ebp - 0x64]
mov byte [eax + 0x1e], 1
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x44]
call dword [eax + 0x1c]
jmp 0x510985
mov eax, dword [edi + 0xc]
mov esi, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0x44], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0x40], edx
mov edx, dword [edi + 4]
mov edx, dword [esi + edx*4]
mov dword [ebp - 0x34], edx
mov edx, dword [edx + 0x38]
mov dword [ebp - 0x3c], edx
mov esi, dword [edx]
mov dword [ebp - 0x38], esi
mov esi, dword [esi]
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0x40]
mov esi, dword [esi]
cmp esi, ecx
mov dword [ebp - 0x50], esi
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
jle 0x513c2f
mov edx, dword [ebp - 0x28]
lea eax, [ecx + 1]
imul eax, eax, 0x28
add eax, dword [ebp - 0x40]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
push dword [ecx + eax*4]
call fcn.00510201
pop ecx
mov ecx, dword [ebp - 0x2c]
inc ecx
cmp ecx, dword [ebp - 0x50]
mov dword [ebp - 0x2c], ecx
jl 0x513c02
mov edx, dword [ebp - 0x3c]
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x50]
mov byte [ebx + 0x65], 1
push dword [edi + 0x10]
push dword [ebp - 0x4c]
push edx
call dword [eax + 0x20]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push dword [ebp - 0x64]
mov byte [ebx + 0x65], 0
call fcn.004f9417
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 8]
xor esi, esi
add esp, 0x1c
mov dword [ebx + 0x5c], ecx
mov dword [eax + 8], esi
cmp dword [ebp - 0x54], esi
jne 0x513c7b
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], esi
je 0x513c87
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0x58], edi
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x14], 0
jmp case.0x51054a.17
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x34]
mov ecx, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0x48], eax
cmp byte [ecx + 0x14], 0
mov dword [ebp - 0x74], ecx
jne 0x510cd2
mov eax, ecx
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov eax, dword [eax]
push 0x40
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00537010
push dword [ebp - 0x48]
lea eax, [ebp - 0x38]
push eax
call fcn.00508929
mov eax, dword [ebp - 0x1c]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x1c], ax
push dword [edi + 8]
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x74]
push dword [eax + 0x38]
mov eax, dword [ebp - 0x4c]
call dword [eax + 0x2c]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x5c], ecx
and dword [eax + 8], 0
mov eax, dword [ebp - 0xc]
add esp, 0x28
test eax, eax
je 0x513d24
mov dword [ebp - 0x54], eax
movzx eax, byte [ebp - 0x6c]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.005081a5
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x48]
call fcn.00508929
push dword [ebp - 0x48]
jmp 0x510e00
mov dword [ebp - 0x48], ecx
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x44], eax
cmp byte [eax + 0x14], 0
jne case.0x51054a.17
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [ebp - 0x50], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0x4c], ecx
mov byte [ebx + 0x65], 1
push dword [eax + 0x38]
call dword [ecx + 0x24]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
mov byte [ebx + 0x65], 0
call fcn.004f9417
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x5c], ecx
and dword [eax + 8], 0
add esp, 0xc
cmp dword [ebp - 0x54], 0
jne 0x513dac
mov eax, dword [ebp - 0x44]
push dword [eax + 0x38]
mov eax, dword [ebp - 0x4c]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jmp 0x511499
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x50], eax
mov edi, dword [edi + 4]
imul edi, edi, 0x28
add edi, dword [ebp - 0x60]
mov dword [ebp - 0x4c], edi
push dword [edi + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [ebx + 0x5c], ecx
jmp 0x513ae7
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x4c]
cmp dword [eax + 0x34], ecx
je case.0x51054a.17
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0xc]
imul eax, eax, 0x28
add eax, edx
cmp dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x44], ecx
jle 0x513e50
push eax
call fcn.00510201
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
pop ecx
mov ecx, dword [ebp - 0x44]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x34]
add eax, 0x28
inc dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
jl 0x513e29
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x48]
push dword [ebp - 0x50]
call dword [eax + 0x34]
push dword [ebx + 0x5c]
mov dword [ebp - 0x54], eax
push esi
call fcn.004f9417
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x5c], ecx
and dword [eax + 8], 0
add esp, 0x18
cmp dword [ebp - 0x54], 0
jne 0x512c49
cmp dword [edi + 4], 0
je 0x512c49
mov eax, dword [ebp - 0x40]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x34], eax
jmp 0x512c49
mov edi, dword [edi + 4]
mov dword [ebp - 0x50], edi
mov eax, dword [esi + 8]
shl edi, 4
push dword [edi + eax + 4]
call fcn.00505230
lea ecx, [ebp - 0x4c]
push ecx
push eax
mov dword [ebp - 0x48], eax
call fcn.0050b007
add esp, 0xc
mov dword [ebp - 0x54], eax
test eax, eax
jne case.0x51054a.17
mov eax, dword [ebp - 0x4c]
jmp 0x510635
mov edi, dword [edi + 0x10]
cmp edi, ecx
je 0x513ee4
mov dword [ebp - 0x50], edi
jmp 0x513eed
mov eax, dword [ebx + 0xb8]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], ecx
je case.0x51054a.17
lea edi, [esi + 0x94]
cmp dword [edi], ecx
je case.0x51054a.17
push dword [ebp - 0x50]
push ebx
call fcn.005279f2
push eax
push dword [esi + 0x98]
mov dword [ebp - 0x74], eax
call dword [edi]
push dword [ebp - 0x74]
push esi
call fcn.004f9417
add esp, 0x18
inc dword [ebp - 0x58]
cmp dword [ebp - 0x54], 0
mov esi, dword [ebp - 0x64]
je 0x5104c2
jmp 0x510e2c
mov dword [ebp - 0x54], 9
jmp 0x510e2c
mov eax, dword [edi + 4]
mov dword [ebx + 0x58], eax
mov al, byte [edi + 8]
mov byte [ebx + 0x38], al
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x54], eax
mov eax, dword [edi + 0x10]
cmp eax, ecx
je 0x513f85
push eax
push 0x577674
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
push dword [edi + 0x10]
push dword [ebx + 0xb8]
push dword [ebp - 0x58]
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.00509ea7
add esp, 0x24
jmp 0x513fa3
cmp dword [ebx + 0x58], ecx
je 0x513fa3
push dword [ebx + 0xb8]
push dword [ebp - 0x58]
push str.constraint_failed_at__d_in___s_
push dword [edi + 4]
call fcn.00509ea7
add esp, 0x10
push ebx
call fcn.00500cf6
pop ecx
push 5
pop edi
cmp eax, edi
je 0x513fdc
mov edi, dword [ebx + 0x58]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x510e71
lea eax, [ebp - 0x40]
push eax
call fcn.00508789
pop ecx
jmp 0x510872
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x54], eax
mov byte [esi + 0x1c], 0
mov dword [ebx + 0x58], edi
jmp 0x510e71
cmp edx, ecx
je 0x51400b
push esi
call fcn.004f3604
pop ecx
mov byte [esi + 0x1c], 1
push esi
call fcn.004f35c5
mov edi, dword [ebx + 0x58]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x510e70
push 1
push ebx
call fcn.005000a2
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x510e71
mov al, byte [ebp - 0x50]
push ebx
mov byte [esi + 0x1c], al
call fcn.00500cf6
pop ecx
push 5
pop edi
cmp eax, edi
jne 0x513ff3
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x54], eax
mov al, 1
sub al, byte [ebp - 0x50]
mov byte [esi + 0x1c], al
jmp 0x513fdc
mov ecx, dword [ebp - 0x58]
mov dword [ebx + 0x54], ecx
mov edi, eax
mov dword [ebx + 0x58], eax
jmp 0x510e71
push 0xd94
call fcn.004f3aea
pop ecx
mov dword [ebp - 0x54], eax
jmp 0x514076
mov dword [ebp - 0x54], 0xd
jmp 0x514076
mov dword [ebp - 0x54], 0xd
mov esi, dword [ebp - 0x64]
cmp byte [esi + 0x1e], 0
je 0x514083
mov dword [ebp - 0x54], 7
cmp dword [ebp - 0x54], 0xc0a
je 0x510e2c
push dword [ebp - 0x54]
call fcn.004f36b5
push eax
push 0x577674
lea eax, [ebx + 0x5c]
push esi
push eax
call fcn.004f9447
add esp, 0x14
jmp 0x510e2c
push 9
pop eax
mov dword [ebp - 0x54], eax
mov dword [ebx + 0x58], eax
push eax
jmp 0x514093