Function at 0x57c0d4
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2dc
mov eax, dword [0x6651c0]
xor eax, esp
mov dword [esp + 0x2d8], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2f0]
xor ecx, ecx
mov ebx, ecx
mov dword [esp + 0x18], edi
xorps xmm0, xmm0
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x1c], ebx
mov esi, dword [edi]
mov eax, dword [edi + 0x68]
mov ebp, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], esi
mov al, byte [esi + 0x54]
mov byte [esp + 0x54], al
mov eax, dword [edi + 0x58]
mov byte [esp + 0x77], cl
mov dword [esp + 0x70], ecx
movlpd qword [esp + 0x9c], xmm0
mov dword [esp + 0x20], eax
mov dword [esp + 0xa4], ecx
cmp dword [edi + 0xa0], ecx
je 0x57c14f
push edi
call fcn.0057c050
pop ecx
xor ecx, ecx
cmp dword [esi + 0x174], ecx
je 0x57c178
mov ecx, dword [esi + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov dword [esp + 0x7c], ecx
xor ecx, ecx
mov dword [esp + 0x80], ecx
jmp 0x57c187
or eax, 0xffffffff
or dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x7c], eax
cmp dword [edi + 0x24], 7
mov dword [esp + 0xd0], 0x14
je 0x581db4
mov dword [edi + 0x24], ecx
mov dword [edi + 0x38], ecx
mov dword [edi + 0x3c], ecx
mov dword [esi + 0x1c8], ecx
cmp dword [esi + 0x128], ecx
jne 0x581d93
imul ebp, dword [edi + 0x20], 0x14
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
add ebp, eax
add ecx, 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x94], ecx
push 0
pop ecx
adc edx, ecx
mov dword [esp + 0x98], edx
mov dl, byte [ebp]
movzx ecx, dl
mov dword [esp + 0x24], ecx
cmp ecx, 0xb8
ja case.0x57c1ff.89
jmp dword [ecx*4 + 0x581ee0]
imul ecx, dword [ebp + 4], 0x28
push 4
pop eax
add ecx, dword [esp + 0x20]
mov word [ecx + 0x10], ax
mov eax, ebp
sub eax, dword [esp + 0x14]
cdq
idiv dword [esp + 0xd0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x57c1ff.9
imul eax, dword [ebp + 4], 0x28
push 4
pop ecx
add eax, dword [esp + 0x20]
test byte [eax + 0x10], cl
je 0x57c4a3
imul ebp, dword [eax], 0x14
mov eax, dword [esp + 0x14]
add ebp, eax
jmp case.0x57c1ff.89
imul ecx, dword [ebp + 4], 0x28
mov eax, dword [ebp + 0xc]
push 4
add ecx, dword [esp + 0x24]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 0x10], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebp + 8], eax
jne 0x5818e1
jmp 0x57c4a3
imul ecx, dword [ebp + 4], 0x28
mov edx, dword [esp + 0x14]
add ecx, dword [esp + 0x20]
lea ebp, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebp, eax
xor eax, eax
mov word [ecx + 0x10], ax
jmp 0x57c4a3
imul esi, dword [ebp + 4], 0x28
sub ebp, eax
push 4
pop ecx
mov eax, ebp
push 0x14
cdq
pop ebp
idiv ebp
add esi, dword [esp + 0x20]
cdq
mov word [esi + 0x10], cx
mov ecx, dword [esi]
mov dword [esi], eax
mov dword [esi + 4], edx
imul ebp, ecx, 0x14
mov eax, dword [esp + 0x14]
add ebp, eax
mov esi, dword [esp + 0x10]
jmp case.0x57c1ff.89
imul eax, dword [ebp + 0xc], 0x28
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x57c4a3
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x5818fc
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x5818fc
mov eax, dword [edx + 4]
dec dword [edi + 0xd8]
mov ecx, dword [edi + 0x2c]
mov dword [edi + 0xd0], eax
mov eax, dword [edi + 0x28]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x10]
push edx
mov dword [esi + 0x6c], ecx
adc dword [eax + 0x74], ecx
call fcn.005825ff
pop ecx
push 4
pop ecx
cmp dword [ebp + 8], ecx
jne 0x57c33d
imul ecx, eax, 0x14
mov eax, dword [edi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x14], ecx
mov ecx, dword [edi + 0x58]
mov dword [esp + 0x20], ecx
imul ebp, eax, 0x14
jmp 0x57c2c1
push ebp
push edi
call fcn.0054d59a
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
pop ecx
pop ecx
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
pop ecx
pop ecx
push 8
pop ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebp + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
push dword [ebp + 0x10]
mov esi, eax
call fcn.00578223
xor ecx, ecx
mov dword [ebp + 4], eax
inc ecx
add esp, 0xc
cmp byte [esp + 0x54], cl
je 0x57c434
xor eax, eax
push eax
push ecx
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 0x10]
push esi
call fcn.00583961
mov ebx, eax
add esp, 0x18
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x581ac9
movzx ecx, byte [esp + 0x54]
push ecx
push esi
call fcn.0057ba87
pop ecx
pop ecx
test eax, eax
jne 0x57d8f4
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ebp + 1], 0xfa
jne 0x57c424
cmp dword [ebp + 0x10], ebx
je 0x57c424
push dword [ebp + 0x10]
push dword [esp + 0x14]
call fcn.00560283
pop ecx
pop ecx
mov byte [ebp + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ebp + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ebp + 4], eax
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 0x78]
jg 0x581ac9
mov byte [ebp], 0x49
push ebp
push edi
call fcn.0054d59a
mov esi, eax
mov eax, 0x2202
pop ecx
pop ecx
mov word [esi + 0x10], ax
mov ecx, dword [ebp + 0x10]
mov al, byte [esp + 0x54]
mov dword [esi + 8], ecx
mov ecx, dword [ebp + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0x12], al
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x57c49f
mov edi, dword [esp + 0x20]
imul ecx, eax, 0x28
movzx eax, word [ebp + 2]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [esp + 0x18]
jne 0x580784
mov eax, dword [esp + 0x20]
cmp dword [ecx + eax + 4], edx
jne 0x57c49f
mov eax, 0x2210
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x98]
push 0x14
pop ecx
add ebp, ecx
mov ecx, dword [esp + 0x94]
jmp 0x57c1cf
push ebp
push edi
call fcn.0054d59a
mov edi, dword [ebp + 0xc]
mov esi, 0x101
mov edx, dword [ebp + 8]
pop ecx
pop ecx
xor ecx, ecx
inc ecx
cmp dword [ebp + 4], 0
cmovne ecx, esi
lea esi, [eax + 0xc]
movzx ecx, cx
sub edi, edx
mov word [eax + 0x10], cx
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esi], eax
test edi, edi
jle 0x57c515
mov ebx, ecx
lea esi, [esi + 0x28]
lea eax, [esi - 0xc]
push eax
call fcn.0058388a
xor eax, eax
mov word [esi + 4], bx
dec edi
mov dword [esi], eax
pop ecx
test edi, edi
jg 0x57c4f7
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x57c49f
imul ecx, dword [ebp + 4], 0x28
mov edx, 0xffc1
add ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x10]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x57c294
push ebp
push edi
call fcn.0054d59a
cmp dword [ebp + 0x10], 0
mov esi, eax
pop ecx
pop ecx
jne 0x57c567
push dword [ebp + 4]
push esi
call fcn.00583b48
push esi
call fcn.00583371
add esp, 0xc
test eax, eax
jne 0x57d8f4
jmp 0x57c57d
xor eax, eax
push eax
push eax
mov eax, dword [ebp + 4]
cdq
push edx
push eax
push dword [ebp + 0x10]
push esi
call fcn.00583961
add esp, 0x18
mov dl, byte [esp + 0x54]
mov byte [esi + 0x12], dl
jmp 0x57c49f
imul ecx, dword [ebp + 4], 0x28
mov edi, dword [edi + 0x64]
add ecx, 0xffffffd8
add edi, ecx
push edi
call fcn.00583c2f
pop ecx
test eax, eax
jne 0x581ac5
imul esi, dword [ebp + 8], 0x28
mov eax, 0x9000
add esi, dword [esp + 0x20]
test word [esi + 0x10], ax
je 0x57c5be
push esi
call fcn.0058388a
pop ecx
push 0x14
pop eax
push eax
push edi
push esi
call sub.VCRUNTIME140.dll_memcpy
mov ax, word [esi + 0x10]
mov ecx, 0xafff
and ax, cx
add esp, 0xc
mov ecx, 0x2040
or ax, cx
mov word [esi + 0x10], ax
jmp 0x57c515
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
add edi, dword [esp + 0x20]
add esi, dword [esp + 0x20]
push edi
push esi
call fcn.005836f0
mov eax, 0x4000
pop ecx
pop ecx
test word [esi + 0x10], ax
je 0x57c623
push esi
call fcn.005836a6
pop ecx
test eax, eax
jne 0x57d8f0
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x44], 1
jne 0x57c600
jmp 0x57c515
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
add edi, dword [esp + 0x20]
add esi, dword [esp + 0x20]
mov eax, 0x4000
push eax
push edi
push esi
call fcn.00583b78
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x10], ax
je 0x57c676
push esi
call fcn.005836a6
pop ecx
test eax, eax
jne 0x57d8f0
movzx eax, word [esi + 0x10]
bt eax, 0xb
jae 0x57c693
push 2
pop ecx
test byte [ebp + 2], cl
je 0x57c693
mov ecx, 0xf7ff
and eax, ecx
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x44]
mov eax, ecx
dec ecx
mov dword [esp + 0x44], ecx
test eax, eax
je 0x57c515
add esi, 0x28
add edi, 0x28
jmp 0x57c64c
mov eax, 0x4000
push eax
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x24]
push eax
imul eax, dword [ebp + 8], 0x28
add eax, dword [esp + 0x28]
push eax
call fcn.00583b78
add esp, 0xc
jmp 0x57c4a3
imul eax, dword [ebp + 4], 0x28
mov ecx, dword [esp + 0x20]
push dword [eax + ecx + 4]
push dword [eax + ecx]
imul eax, dword [ebp + 8], 0x28
add eax, ecx
push eax
call fcn.00583854
jmp 0x57c6cb
xor eax, eax
push eax
push edi
call fcn.0057bb7e
pop ecx
pop ecx
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
jmp 0x57c4a3
imul ecx, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
mov eax, dword [esp + 0x20]
imul edi, dword [ebp + 0xc], 0x28
add ecx, eax
add esi, eax
mov dword [esp + 0x24], ecx
add edi, eax
movzx edx, word [ecx + 0x10]
mov al, byte [esi + 0x10]
or al, dl
mov dword [esp + 0x58], edx
test al, 1
je 0x57c745
push edi
call fcn.0058388a
pop ecx
jmp 0x57c515
test dl, 0x12
jne 0x57c77b
xor eax, eax
push eax
push dword [esp + 0x58]
push ecx
call fcn.00583bce
add esp, 0xc
test eax, eax
jne 0x57d8f0
mov eax, dword [esp + 0x24]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [esp + 0x58], ecx
jmp 0x57c7a7
bt edx, 0xa
jae 0x57c7a7
push ecx
call fcn.00583371
pop ecx
test eax, eax
jne 0x57d8f0
mov eax, dword [esp + 0x24]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [esp + 0x58], eax
movzx eax, word [esi + 0x10]
mov dword [esp + 0x38], eax
test al, 0x12
jne 0x57c7c5
xor eax, eax
push eax
push dword [esp + 0x58]
push esi
call fcn.00583bce
add esp, 0xc
jmp 0x57c7d2
bt eax, 0xa
jae 0x57c7ed
push esi
call fcn.00583371
pop ecx
test eax, eax
jne 0x57d8f0
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0xc]
add eax, ecx
mov dword [esp + 0x30], eax
cdq
mov ecx, eax
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x44], edx
jg 0x581ac5
jl 0x57c824
cmp ecx, eax
ja 0x581ac5
xor eax, eax
cmp edi, esi
sete al
push eax
mov eax, dword [esp + 0x34]
add eax, 2
push eax
push edi
call fcn.0058350c
add esp, 0xc
test eax, eax
jne 0x57d8f0
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
push 2
pop ecx
or ax, cx
mov word [edi + 0x10], ax
cmp edi, esi
je 0x57c878
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x44]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x24]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x58]
mov dl, byte [esp + 0x54]
mov word [eax + 0x10], cx
xor eax, eax
mov ecx, dword [esp + 0x64]
inc eax
cmp dl, al
jbe 0x57c8b7
mov eax, dword [esp + 0x44]
and ecx, 0xfffffffe
mov dword [esp + 0x40], eax
mov eax, dword [edi + 8]
mov byte [ecx + eax], 0
mov eax, dword [edi + 8]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x10], ax
mov dword [edi + 0xc], ecx
mov byte [edi + 0x12], dl
jmp 0x57c515
imul edi, dword [ebp + 4], 0x28
imul esi, dword [ebp + 8], 0x28
add edi, dword [esp + 0x20]
add esi, dword [esp + 0x20]
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], esi
movzx edx, word [edi + 0x10]
movzx ecx, word [esi + 0x10]
mov eax, edx
mov dword [esp + 0x44], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
mov al, cl
and al, dl
test al, 4
jne 0x57c964
xor eax, eax
or cl, dl
inc eax
test al, cl
jne 0x57cb48
push 0x2d
pop eax
and edx, eax
je 0x57c931
movzx ecx, dx
mov dword [esp + 0x44], ecx
jmp 0x57c93f
push edi
call fcn.0053bf56
movzx eax, ax
pop ecx
mov dword [esp + 0x44], eax
mov ax, word [esi + 0x10]
push 0x2d
pop ecx
and ax, cx
jne 0x57c952
push esi
call fcn.0053bf56
pop ecx
movzx eax, ax
and al, byte [esp + 0x44]
push 4
pop ecx
test cl, al
je 0x57c9fc
mov eax, dword [esi + 4]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [esi]
mov dword [esp + 0xb4], eax
movzx eax, byte [ebp]
mov dword [esp + 0xb0], edi
sub eax, 0x6a
je 0x57caae
sub eax, 1
je 0x57ca9d
sub eax, 1
je 0x57ca8c
sub eax, 1
mov eax, ecx
je 0x57c9cb
or eax, edx
je 0x57cb48
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x57c9ba
xor eax, eax
mov edx, eax
lea ecx, [eax + 1]
mov eax, dword [esi + 4]
push edx
push ecx
push eax
push edi
call fcn.0059daa0
jmp 0x57cad6
or eax, edx
je 0x57cb48
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x57ca7e
xor eax, eax
cmp edi, eax
mov eax, dword [esi + 4]
jne 0x57ca81
cmp eax, 0x80000000
jne 0x57ca81
mov edi, dword [esp + 0x24]
push edi
call fcn.0058436b
fstp qword [esp + 0x60]
push esi
call fcn.0058436b
movzx eax, byte [ebp]
pop ecx
fstp qword [esp + 0x40]
pop ecx
sub eax, 0x6a
je 0x57cb24
sub eax, 1
je 0x57cb16
sub eax, 1
je 0x57cb08
sub eax, 1
je 0x57cae8
push edi
call fcn.00582c99
push dword [esp + 0x34]
mov esi, eax
mov edi, edx
call fcn.00582c99
pop ecx
pop ecx
mov ecx, esi
or ecx, edi
je 0x57cb48
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x57ca69
xor ecx, ecx
mov edi, ecx
lea esi, [ecx + 1]
push edi
push esi
push edx
push eax
call fcn.0059daa0
mov ecx, eax
call fcn.0059dd40
jmp 0x57cb30
mov eax, dword [esi + 4]
push edx
push ecx
push eax
push edi
call fcn.0059d8d0
jmp 0x57cad6
push edx
push ecx
lea eax, [esp + 0xb8]
push eax
call fcn.0056d145
jmp 0x57cabd
push edx
push ecx
lea eax, [esp + 0xb8]
push eax
call fcn.0057823d
jmp 0x57cabd
push edx
push ecx
lea eax, [esp + 0xb8]
push eax
call fcn.00557ee2
add esp, 0xc
test eax, eax
jne 0x57c9f8
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x58]
push 4
mov dword [ecx + 4], edx
mov edx, 0xf244
mov dword [ecx], eax
jmp 0x57cb67
movsd xmm1, qword [esp + 0x5c]
ucomisd xmm1, qword [0x65f4e8]
lahf
test ah, 0x44
jnp 0x57cb48
movsd xmm0, qword [esp + 0x3c]
divsd xmm0, xmm1
jmp 0x57cb30
movsd xmm0, qword [esp + 0x3c]
mulsd xmm0, qword [esp + 0x5c]
jmp 0x57cb30
movsd xmm0, qword [esp + 0x3c]
subsd xmm0, qword [esp + 0x5c]
jmp 0x57cb30
movsd xmm0, qword [esp + 0x3c]
addsd xmm0, qword [esp + 0x5c]
push ecx
push ecx
movsd qword [esp + 0x44], xmm0
movsd qword [esp], xmm0
call fcn.0056bccd
pop ecx
pop ecx
test eax, eax
je 0x57cb52
mov ecx, dword [esp + 0x58]
push ecx
jmp 0x57c73a
mov ecx, dword [esp + 0x58]
mov edx, 0xf248
movsd xmm0, qword [esp + 0x3c]
push 8
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
pop edx
or ax, dx
movzx eax, ax
mov word [ecx + 0x10], ax
jmp 0x57c515
mov eax, dword [ebp + 4]
test eax, eax
je 0x57c4a3
xor ecx, ecx
imul eax, eax, 0x28
push ecx
push ecx
add eax, dword [esp + 0x28]
jmp 0x57c6e8
imul ecx, dword [ebp + 8], 0x28
xor edx, edx
imul esi, dword [ebp + 4], 0x28
inc edx
mov eax, dword [esp + 0x20]
imul edi, dword [ebp + 0xc], 0x28
add ecx, eax
add esi, eax
add edi, eax
mov al, byte [ecx + 0x10]
or al, byte [esi + 0x10]
mov dword [esp + 0x38], edi
test dl, al
jne 0x57c739
push ecx
call fcn.00582c99
push esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
call fcn.00582c99
pop ecx
pop ecx
mov cl, byte [ebp]
mov esi, eax
mov byte [esp + 0x2f], cl
cmp cl, 0x66
jne 0x57cc01
and dword [esp + 0x84], esi
and dword [esp + 0x88], edx
jmp 0x57cd5c
cmp cl, 0x67
jne 0x57cc19
or dword [esp + 0x84], esi
or dword [esp + 0x88], edx
jmp 0x57cd5c
mov eax, esi
or eax, edx
je 0x57cd5c
xor eax, eax
cmp edx, eax
jg 0x57cc59
jl 0x57cc2f
cmp esi, eax
jae 0x57cc4e
mov al, 0xd1
sub al, cl
mov byte [esp + 0x2f], al
mov cl, al
cmp edx, 0xffffffff
jl 0x57cc59
jg 0x57cc45
cmp esi, 0xffffffc0
jbe 0x57cc59
neg esi
push 0
pop eax
adc edx, eax
neg edx
cmp edx, eax
jl 0x57cc9f
jg 0x57cc59
cmp esi, 0x40
jb 0x57cc9f
xor edx, edx
cmp dword [esp + 0x88], edx
jg 0x57cc7b
jl 0x57cc6f
cmp dword [esp + 0x84], edx
jae 0x57cc7b
cmp cl, 0x68
je 0x57cc7b
or eax, 0xffffffff
or ecx, eax
jmp 0x57cc8c
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
jmp 0x57cd5c
push 8
pop eax
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xb0]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0xb4]
add esp, 0xc
cmp byte [esp + 0x2f], 0x68
mov ecx, esi
mov edx, dword [esp + 0xac]
jne 0x57cce7
call fcn.0059db60
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
jmp 0x57cd40
call fcn.0059dc20
mov edi, eax
mov eax, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0xa8], edi
cmp dword [esp + 0x88], eax
jg 0x57cd3c
jl 0x57cd18
cmp dword [esp + 0x84], eax
jae 0x57cd3c
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0059db60
or eax, edi
or edx, dword [esp + 0x30]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov edi, dword [esp + 0x38]
push 8
pop eax
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x8c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov dword [edi], eax
mov ax, word [edi + 0x10]
mov dword [edi + 4], ecx
mov ecx, 0xf244
and ax, cx
push 4
pop ecx
or ax, cx
mov word [edi + 0x10], ax
jmp 0x57c515
imul esi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
push esi
call fcn.0058367d
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
pop ecx
adc dword [esi + 4], edx
jmp 0x57c49f
imul esi, dword [ebp + 4], 0x28
push 4
pop edx
add esi, dword [esp + 0x20]
movzx eax, word [esi + 0x10]
mov ecx, eax
test dl, al
jne 0x57cded
push dword [esp + 0x54]
push 0x43
push esi
call fcn.005354fa
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, eax
push 4
pop edx
test dl, al
jne 0x57cded
xor eax, eax
cmp dword [ebp + 8], eax
jne 0x5818dd
push 0x14
pop eax
mov ebx, eax
jmp 0x57e4b2
mov eax, 0xf244
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x57c49f
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
test byte [eax + 0x10], 0x24
je 0x57c4a3
push eax
call fcn.005837dc
pop ecx
jmp 0x57c4a3
imul esi, dword [ebp + 4], 0x28
mov eax, 0x400
add esi, dword [esp + 0x20]
test word [esi + 0x10], ax
je 0x57ce44
push esi
call fcn.00583371
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x57e4b2
push dword [esp + 0x54]
movzx eax, byte [ebp + 8]
push eax
push esi
call fcn.00583216
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
jmp 0x57c49f
imul esi, dword [ebp + 0xc], 0x28
imul eax, dword [ebp + 4], 0x28
push 4
add esi, dword [esp + 0x24]
add eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
movzx edx, word [esi + 0x10]
movzx eax, word [eax + 0x10]
mov edi, edx
and edi, eax
mov dword [esp + 0x54], eax
pop eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x24], edx
test byte [esp + 0x44], al
je 0x57cf14
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 4]
mov edx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x57ced8
jg 0x57ceb2
cmp edx, dword [edi]
jbe 0x57cecd
mov eax, dword [0x663394]
cmp byte [ecx + eax], 0
jne 0x5818dd
xor eax, eax
inc eax
mov dword [esp + 0x70], eax
jmp 0x57c515
cmp eax, dword [edi + 4]
jg 0x57cef9
jl 0x57ced8
cmp edx, dword [edi]
jae 0x57cef9
mov eax, dword [0x66338c]
mov esi, dword [esp + 0x10]
cmp byte [ecx + eax], 0
jne 0x5818e1
or dword [esp + 0x70], 0xffffffff
mov edi, dword [esp + 0x18]
jmp 0x57c4a3
mov eax, dword [0x663390]
mov esi, dword [esp + 0x10]
cmp byte [ecx + eax], 0
jne 0x5818e1
xor eax, eax
mov dword [esp + 0x70], eax
jmp 0x57cef0
mov ecx, dword [esp + 0x50]
mov eax, edx
or eax, ecx
mov dword [esp + 0x30], eax
test al, 1
je 0x57cfa2
movzx eax, word [ebp + 2]
test al, al
jns 0x57cf8b
xor ecx, ecx
inc ecx
test byte [esp + 0x44], cl
je 0x57cf75
test edx, 0x100
jne 0x57cf75
mov edi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x70], eax
movzx ecx, byte [ebp]
test eax, eax
mov eax, dword [0x663390]
je 0x57cf59
mov eax, dword [0x663394]
mov cl, byte [ecx + eax]
mov eax, dword [esp + 0x50]
mov word [esi + 0x10], dx
mov esi, dword [esp + 0x10]
mov word [edi + 0x10], ax
test cl, cl
je 0x57cef0
jmp 0x5818e1
mov edi, dword [esp + 0x28]
mov eax, edx
not eax
and eax, ecx
lea eax, [eax*2 - 1]
jmp 0x57d0ad
mov esi, dword [esp + 0x10]
push 0x10
pop ecx
test cl, al
jne 0x5818e1
xor eax, eax
inc eax
jmp 0x57cf0e
mov al, byte [ebp + 2]
and al, 0x47
mov byte [esp + 0x2f], al
cmp al, 0x43
mov eax, dword [esp + 0x30]
jb 0x57cffb
test al, 2
je 0x57d098
mov edi, dword [esp + 0x28]
mov al, cl
push 2
and al, 0x2e
pop ecx
cmp al, cl
jne 0x57cfe0
xor eax, eax
push eax
push edi
call fcn.0053555f
movzx edx, word [esi + 0x10]
pop ecx
pop ecx
push 2
mov dword [esp + 0x28], edx
pop ecx
and dl, 0x2e
cmp dl, cl
jne 0x57d09c
xor eax, eax
push eax
push esi
call fcn.0053555f
pop ecx
pop ecx
jmp 0x57d09c
cmp byte [esp + 0x2f], 0x42
jne 0x57d098
test al, 2
je 0x57d098
mov edi, dword [esp + 0x28]
push 2
pop eax
test al, cl
jne 0x57d060
test cl, 0x2c
je 0x57d060
xor eax, eax
inc eax
push eax
push dword [esp + 0x58]
push edi
call fcn.00583bce
movzx eax, word [edi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x50]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [esp + 0x50], ecx
cmp edi, esi
jne 0x57d05c
push 2
pop edx
mov eax, ecx
or eax, edx
movzx edx, ax
mov dword [esp + 0x24], edx
jmp 0x57d060
mov edx, dword [esp + 0x24]
push 2
pop ecx
test cl, dl
jne 0x57d09c
test dl, 0x2c
je 0x57d09c
xor eax, eax
inc eax
push eax
push dword [esp + 0x58]
push esi
call fcn.00583bce
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x24]
xor ecx, eax
and ecx, 0xdbf
xor ecx, eax
movzx ecx, cx
mov dword [esp + 0x24], ecx
jmp 0x57d09c
mov edi, dword [esp + 0x28]
push dword [ebp + 0x10]
push edi
push esi
call fcn.0056d025
mov edx, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x70], eax
test eax, eax
jns 0x57cf47
movzx ecx, byte [ebp]
mov eax, dword [0x66338c]
jmp 0x57cf59
cmp dword [esp + 0x70], 0
je 0x5818e1
jmp case.0x57c1ff.89
xor eax, eax
inc eax
test byte [ebp + 2], al
jne 0x57d0e5
xor eax, eax
mov edi, eax
jmp 0x57d0ed
mov edi, dword [ebp - 4]
push 4
pop eax
add edi, eax
mov edx, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x30], edx
xor edx, edx
mov dword [esp + 0x58], ecx
mov esi, edx
mov dword [esp + 0x44], eax
test ecx, ecx
jle 0x57c515
lea edx, [eax + 0x14]
mov dword [esp + 0x38], edx
test edi, edi
je 0x57d125
mov ecx, dword [edi + esi*4]
jmp 0x57d127
mov ecx, esi
mov eax, dword [eax + 0x10]
xor edx, edx
inc edx
movzx eax, byte [esi + eax]
and eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
add eax, ecx
push dword [edx]
imul eax, eax, 0x28
add eax, dword [esp + 0x24]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x60]
push dword [esp + 0x68]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x28]
push eax
mov dword [esp + 0x5c], eax
call fcn.0056d025
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x70], ecx
test ecx, ecx
jne 0x57d18d
push 4
pop eax
add dword [esp + 0x38], eax
inc esi
mov eax, dword [esp + 0x44]
cmp esi, dword [esp + 0x58]
jl 0x57d11c
jmp 0x57c515
mov eax, dword [esp + 0x44]
push 2
pop edx
mov eax, dword [eax + 0x10]
test byte [esi + eax], dl
je 0x57d1b7
mov eax, dword [esp + 0x50]
xor edx, edx
inc edx
test byte [eax + 0x10], dl
jne 0x57d1b1
mov eax, dword [esp + 0x64]
test byte [eax + 0x10], dl
je 0x57d1b7
neg ecx
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x24], 0
mov edi, dword [esp + 0x18]
je 0x57c49f
neg ecx
mov dword [esp + 0x70], ecx
jmp 0x57c49f
mov ecx, dword [esp + 0x70]
test ecx, ecx
jns 0x57d1df
imul ebp, dword [ebp + 4], 0x14
jmp 0x57d1eb
jne 0x57d1e7
imul ebp, dword [ebp + 8], 0x14
jmp 0x57d1eb
imul ebp, dword [ebp + 0xc], 0x14
add ebp, eax
add ebp, 0xffffffec
jmp case.0x57c1ff.89
mov edi, dword [esp + 0x20]
push 2
pop eax
push eax
imul eax, dword [ebp + 4], 0x28
add eax, edi
push eax
call fcn.0057ba41
imul ecx, dword [ebp + 8], 0x28
mov esi, eax
push 2
pop eax
push eax
add ecx, edi
push ecx
call fcn.0057ba41
add esp, 0x10
imul ecx, esi, 3
cmp byte [ebp], 0x2c
jne 0x57d230
mov al, byte [ecx + eax + 0x65804c]
jmp 0x57d237
mov al, byte [ecx + eax + 0x658058]
imul esi, dword [ebp + 0xc], 0x28
push 2
pop edx
add esi, edi
movzx ecx, word [esi + 0x10]
cmp al, dl
jne 0x57d254
mov eax, 0xf241
and ecx, eax
xor eax, eax
inc eax
jmp 0x57d267
movzx eax, al
cdq
mov dword [esi], eax
mov eax, 0xf244
push 4
and ecx, eax
mov dword [esi + 4], edx
pop eax
or ecx, eax
mov word [esi + 0x10], cx
jmp 0x57c515
imul eax, dword [ebp + 4], 0x28
push dword [ebp + 0xc]
add eax, dword [esp + 0x24]
push eax
call fcn.0057ba41
xor eax, dword [ebp + 0x10]
cdq
push edx
push eax
imul eax, dword [ebp + 8], 0x28
add eax, dword [esp + 0x30]
push eax
call fcn.00583854
add esp, 0x14
jmp 0x57c4a3
imul eax, dword [ebp + 4], 0x28
xor ecx, ecx
imul esi, dword [ebp + 8], 0x28
inc ecx
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x20]
test byte [eax + 0x10], cl
jne 0x57d2d7
xor ecx, ecx
push ecx
push eax
call fcn.0057ba41
neg eax
sbb eax, eax
xor ecx, ecx
push ecx
inc eax
push eax
push esi
call fcn.00583854
add esp, 0x14
jmp 0x57c49f
push esi
call fcn.0058388a
pop ecx
jmp 0x57c49f
imul esi, dword [ebp + 8], 0x28
imul edi, dword [ebp + 4], 0x28
add esi, dword [esp + 0x20]
add edi, dword [esp + 0x20]
push esi
call fcn.0058388a
xor eax, eax
inc eax
pop ecx
test byte [edi + 0x10], al
jne 0x57c515
push 4
pop eax
push edi
mov word [esi + 0x10], ax
call fcn.00582c99
not eax
not edx
pop ecx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x57c515
mov edi, dword [edi + 0xd0]
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x57d365
mov eax, ebp
mov edi, dword [edi + 0x14]
sub eax, dword [ecx + 0x68]
push 0x14
cdq
pop ecx
idiv ecx
xor edx, edx
mov ecx, eax
inc edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl edx, cl
movzx eax, byte [esi + edi]
test eax, edx
jne 0x5818dd
bts eax, ecx
mov byte [esi + edi], al
mov esi, dword [esp + 0x10]
jmp 0x57d374
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 4]
je 0x5818e1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov dword [ebp + 4], eax
jmp 0x57cef0
imul eax, dword [ebp + 4], 0x28
push dword [ebp + 0xc]
add eax, dword [esp + 0x24]
push eax
call fcn.0057ba41
pop ecx
pop ecx
test eax, eax
jmp 0x57c26e
xor eax, eax
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
sete al
push eax
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x24]
push eax
call fcn.0057ba41
pop ecx
pop ecx
test eax, eax
jne 0x57c4a3
jmp 0x5818e1
imul eax, dword [ebp + 4], 0x28
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
test byte [eax + ecx + 0x10], dl
jmp 0x57c26e
mov ecx, dword [ebp + 4]
test ecx, ecx
js 0x57d41b
mov eax, dword [edi + 0x60]
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x57d416
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x57d40d
xor ecx, ecx
inc ecx
push 4
test cl, al
pop eax
push 8
pop ecx
cmove eax, ecx
jmp 0x57d439
movzx eax, byte [eax + 0x658064]
jmp 0x57d43c
mov ecx, dword [ebp + 0x10]
jmp 0x57d432
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x20]
movzx eax, word [eax + ecx + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x657378]
xor eax, eax
dec ecx
inc eax
shl ax, cl
movzx eax, ax
test word [ebp + 2], ax
jmp 0x57c26e
imul eax, dword [ebp + 4], 0x28
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
test byte [eax + ecx + 0x10], dl
jne 0x57d469
imul eax, dword [ebp + 0xc], 0x28
test byte [eax + ecx + 0x10], dl
jne 0x57d469
xor eax, eax
push eax
push eax
jmp 0x57c6e2
imul eax, dword [ebp + 8], 0x28
add eax, ecx
push eax
call fcn.0058388a
jmp 0x57ce1a
imul eax, dword [ebp + 4], 0x28
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
test byte [eax + ecx + 0x10], dl
je 0x5818e1
jmp 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x57c4a3
cmp byte [eax + 2], 0
je 0x57c4a3
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
push eax
call fcn.0058388a
pop ecx
jmp 0x5818e1
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], ecx
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x28], edx
cmp eax, dword [edi + 0x1c]
je 0x57d53c
cmp byte [esi + 2], 0
jne 0x57d5a0
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x57d51c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x57d566
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x57d566
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x18]
jmp 0x57d4d7
cmp byte [edi], 0
je 0x57d57b
push esi
call fcn.00582ac4
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
jne 0x57e4ae
mov ecx, dword [esp + 0x24]
jmp 0x57d516
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x57d713
push esi
call fcn.00582ac4
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
jne 0x57e4b2
mov ecx, dword [esp + 0x24]
jmp 0x57d4d7
push esi
call fcn.005825a7
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
jne 0x57e4ae
push edi
call fcn.005443db
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x50], eax
lea eax, [esi + 0x54]
push eax
push edi
call fcn.0055ca3b
mov edx, dword [esp + 0x34]
add esp, 0xc
mov edi, dword [esp + 0x18]
mov ecx, eax
jmp 0x57d5c7
cmp byte [esi], 3
jne 0x57d705
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x57d705
imul ecx, eax, 0x28
add ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1c]
lea edi, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [edx], eax
mov dword [esp + 0x38], edi
cmp eax, 0x80
jae 0x57d5e8
xor eax, eax
inc eax
jmp 0x57d5fa
push edx
push dword [esi + 0x4c]
call fcn.00569f9c
mov edx, dword [esp + 0x30]
pop ecx
pop ecx
movzx eax, al
mov dword [edi], eax
xor eax, eax
lea edi, [esi + 0x3e]
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [edx]
jae 0x57d700
xor eax, eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x57d826
cmp eax, dword [esi + 0x50]
ja 0x57d826
mov ecx, dword [esp + 0x24]
movzx eax, word [edi]
cmp eax, ecx
ja 0x57d855
lea ecx, [esi + 0x34]
mov eax, dword [ecx]
mov dword [esp + 0x38], ecx
cmp eax, dword [edx]
jae 0x57d842
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x64], edx
test edx, edx
jne 0x57d6a0
xor eax, eax
push 0x28
push eax
lea eax, [esp + 0x244]
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [esp + 0x248]
push eax
mov eax, dword [esp + 0x38]
push dword [eax]
push dword [esi + 0x2c]
call fcn.005834c3
mov ebx, eax
add esp, 0x18
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
mov edx, dword [esp + 0x244]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x64], edx
movzx ebx, word [edi]
mov ebp, dword [esp + 0x28]
mov edi, dword [ecx]
add edi, edx
mov eax, dword [ebp + ebx*4]
mov dword [esp + 0x58], eax
xor eax, eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov eax, dword [ebp]
add eax, edx
lea edx, [esi + 0x5c]
mov esi, dword [esp + 0x50]
lea edx, [edx + ebx*4]
mov dword [esp + 0x5c], eax
mov ebp, eax
mov dword [esp + 0x38], edx
movzx eax, byte [edi]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [edx], eax
cmp eax, 0x80
jae 0x57d71b
movzx eax, al
inc edi
movzx eax, byte [eax + 0x656e58]
cdq
add ecx, eax
adc esi, edx
mov edx, dword [esp + 0x38]
jmp 0x57d74d
mov edx, dword [esi + 0x4c]
jmp 0x57d698
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
push eax
jmp 0x57d2d8
lea edi, [esi + 0x3e]
jmp 0x57d631
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00569f9c
mov edx, dword [esp + 0x40]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x58]
push eax
mov dword [esp + 0x58], eax
mov dword [edx], eax
call fcn.00584b6b
mov ecx, dword [esp + 0x64]
add esp, 0xc
add ecx, eax
push 0
pop eax
adc esi, eax
push 4
pop eax
add edx, eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x38], edx
mov dword [eax + ebx*4], ecx
cmp ebx, dword [esp + 0x24]
ja 0x57d770
cmp edi, ebp
jb 0x57d6d6
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x44]
cmp edi, edx
jb 0x57d7f6
ja 0x57d805
cmp ecx, dword [esi + 0x50]
jne 0x57d805
xor ecx, ecx
cmp dword [esp + 0x50], ecx
jne 0x57d805
mov eax, dword [esp + 0x38]
sub edi, dword [esp + 0x64]
mov word [esi + 0x3e], ax
xor eax, eax
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], eax
jne 0x57d7bf
lea eax, [esp + 0x23c]
push eax
call fcn.00583802
pop ecx
mov ecx, dword [esp + 0x4c]
movzx eax, word [esi + 0x3e]
cmp eax, dword [esp + 0x24]
ja 0x57d85d
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
cmp byte [ebp + 1], 0xf6
jne 0x57d84f
mov ecx, 0x2000
push ecx
push dword [ebp + 0x10]
push eax
call fcn.00583b78
add esp, 0xc
jmp 0x57c515
mov eax, dword [esp + 0x50]
test eax, eax
jb 0x57d79b
ja 0x57d805
cmp ecx, dword [esi + 0x50]
jbe 0x57d79b
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp dword [ecx], eax
jne 0x57d813
mov edi, edx
jmp 0x57d79f
cmp dword [esi + 0x4c], eax
jne 0x57d826
lea eax, [esp + 0x23c]
push eax
call fcn.00583802
pop ecx
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x5819bd
imul ebp, eax, 0x14
add esi, 0xffffffec
add ebp, esi
jmp 0x57c515
xor eax, eax
mov ecx, eax
mov dword [esp + 0x4c], ecx
jmp 0x57d7c3
push eax
jmp 0x57c73a
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [esp + 0x4c], ecx
imul edi, dword [ebp + 0xc], 0x28
mov eax, 0x9000
add edi, dword [esp + 0x20]
test word [edi + 0x10], ax
je 0x57d87b
push edi
call fcn.0058388a
pop ecx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esi + 0x54]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
cmp eax, dword [edx + esi*4 + 4]
mov esi, dword [esp + 0x44]
jb 0x57d94d
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x24]
add eax, dword [edx + esi*4]
mov dword [esp + 0x30], eax
cmp ecx, 0xc
jae 0x57d8b4
push edi
push ecx
push eax
call fcn.005849fb
jmp 0x57d7ee
mov al, byte [esp + 0x54]
lea esi, [ecx - 0xc]
shr esi, 1
mov byte [edi + 0x12], al
mov dword [edi + 0xc], esi
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
jge 0x57d914
mov ecx, dword [esp + 0x10]
cmp esi, dword [ecx + 0x78]
jg 0x581ac5
xor ecx, ecx
inc ecx
mov word [edi + 0x10], cx
xor ecx, ecx
push ecx
push eax
push edi
call fcn.0058350c
add esp, 0xc
test eax, eax
je 0x57d91a
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
push esi
call fcn.0056d4a3
mov dword [esp], str.out_of_memory
push edi
call fcn.0057c09f
pop ecx
pop ecx
push 7
jmp 0x581ad8
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x34]
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 8]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 8]
mov byte [eax + esi + 1], cl
inc ecx
mov eax, dword [esp + 0x4c]
and eax, ecx
mov ax, word [eax*2 + 0x658094]
jmp 0x57cd81
mov al, byte [esp + 0x54]
mov byte [edi + 0x12], al
mov al, byte [ebp + 2]
and al, 0xc0
je 0x57d96d
cmp al, 0x80
je 0x57d97a
cmp ecx, 0xc
jb 0x57d96d
test cl, 1
je 0x57d97a
cmp al, 0xc0
je 0x57d97a
push ecx
call fcn.00584b6b
add esp, 4
test eax, eax
jne 0x57d986
push edi
push ecx
push 0x657150
jmp 0x57d8aa
push edi
push dword [esp + 0xa8]
mov edi, dword [esp + 0x20]
xor eax, eax
push dword [edi + 0x1c]
push eax
mov eax, dword [esp + 0x34]
push dword [edx + eax*4]
push ecx
push eax
push esi
call fcn.0058e46e
mov ebx, eax
add esp, 0x20
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x57c49f
cmp ebx, 7
je 0x57d8f4
cmp ebx, 0x12
je 0x581ac9
jmp 0x57e4b2
imul edi, dword [ebp + 4], 0x28
xor edx, edx
mov eax, dword [ebp + 0x10]
mov esi, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], esi
add edi, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
cmp dx, word [eax + 0x22]
jge 0x57c515
add ecx, 8
mov dword [esp + 0x44], ecx
movzx eax, word [ecx + 6]
test al, 0x60
je 0x57da19
test al, 0x20
jne 0x57dae8
xor eax, eax
cmp dword [ebp + 0xc], eax
jne 0x57dae5
push dword [esp + 0x54]
movzx eax, byte [ecx]
push eax
push edi
call fcn.005354fa
movzx ecx, word [edi + 0x10]
xor eax, eax
inc eax
mov dword [esp + 0x68], ecx
add esp, 0xc
movzx edx, cx
test al, cl
jne 0x57dae1
mov esi, dword [esp + 0x44]
mov esi, dword [esi - 4]
shr esi, 4
and esi, 0xf
lea eax, [esi - 1]
sub eax, 1
je 0x57dad2
sub eax, 1
je 0x57dace
sub eax, 1
je 0x57dace
sub eax, 1
je 0x57da6d
sub eax, 1
jne 0x57dadd
push 2
jmp 0x57dad4
push 4
pop eax
test al, cl
je 0x57dac9
mov edx, dword [edi]
xor eax, eax
add edx, eax
mov eax, dword [edi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x57da9d
jb 0x57da90
cmp edx, 0xffffffff
ja 0x57da9d
push 0x10
pop eax
or ecx, 0x20
mov esi, eax
movzx eax, cx
jmp 0x57dabc
mov edx, dword [edi + 4]
mov ecx, dword [edi]
call fcn.0059dd40
push 0x10
pop eax
mov esi, eax
movsd qword [edi], xmm0
mov eax, dword [esp + 0x5c]
push 8
pop ecx
or eax, ecx
movzx eax, ax
mov edx, edi
and eax, 0xfffb
mov word [edx + esi], ax
jmp 0x57dadd
test cl, 0x28
jmp 0x57dad7
push 4
jmp 0x57dad4
push 0x10
pop eax
test al, cl
je 0x5819d3
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
add edi, 0x28
push 0x10
pop eax
add ecx, eax
inc esi
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], ecx
movsx eax, word [eax + 0x22]
cmp esi, eax
jl 0x57d9fe
jmp 0x57c515
imul esi, dword [ebp + 4], 0x28
mov edi, dword [ebp + 0x10]
add esi, dword [esp + 0x20]
mov al, byte [edi]
push dword [esp + 0x54]
mov byte [esp + 0xcc], al
push dword [esp + 0xcc]
push esi
call fcn.005354fa
add esp, 0xc
cmp byte [edi], 0x45
jne 0x57db92
movzx ecx, word [esi + 0x10]
push 4
pop eax
mov dword [esp + 0x30], ecx
test al, cl
je 0x57db92
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x57db72
jb 0x57db63
cmp edx, 0xffffffff
ja 0x57db72
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x57db92
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.0059dd40
mov eax, dword [esp + 0x30]
push 8
and eax, 0xfff9
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 0x10], ax
inc edi
mov al, byte [edi]
test al, al
je 0x57c515
add esi, 0x28
jmp 0x57db18
imul ecx, dword [ebp + 4], 0x28
xor eax, eax
mov edi, dword [ebp + 0x10]
mov esi, eax
imul eax, dword [ebp + 8], 0x28
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x28], esi
add ecx, dword [esp + 0x20]
movlpd qword [esp + 0x44], xmm0
add eax, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], eax
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
test edi, edi
je 0x57dc27
push 4
lea esi, [ecx + 0x10]
pop ebx
push dword [esp + 0x54]
movzx eax, byte [edi]
push eax
lea eax, [esi - 0x10]
push eax
call fcn.005354fa
add esp, 0xc
cmp byte [edi], 0x45
jne 0x57dc16
movzx eax, word [esi]
test bl, al
je 0x57dc16
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x57dbeb
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
add edx, 0xfffffff4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], edi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
movzx eax, word [edx - 0xc]
mov dword [esp + 0x64], edx
mov dword [esp + 0x44], eax
test al, 1
je 0x57dc79
inc esi
mov dword [esp + 0x28], esi
mov esi, 0x400
and eax, esi
movzx esi, ax
neg esi
sbb esi, esi
and esi, 0xa
jmp 0x57de68
test al, 0x24
je 0x57ddd9
mov eax, dword [edx - 0x18]
xor ecx, ecx
mov esi, dword [edx - 0x1c]
mov dword [esp + 0x3c], eax
cmp eax, ecx
jg 0x57dc9f
jl 0x57dc97
cmp esi, ecx
jae 0x57dc9f
mov ecx, esi
not eax
not ecx
jmp 0x57dca1
mov ecx, esi
inc dword [esp + 0x28]
test eax, eax
ja 0x57dd6b
jb 0x57dcb4
cmp ecx, 0x7f
ja 0x57dcf5
mov eax, esi
and eax, 1
cmp eax, esi
jne 0x57dcde
mov eax, dword [edx - 0x18]
cmp dword [esp + 0xd4], eax
jne 0x57dcde
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x95], 4
jb 0x57dcde
lea esi, [ecx + 8]
jmp 0x57de64
xor ecx, ecx
inc ecx
add dword [esp + 0x4c], ecx
mov esi, ecx
push 0
pop eax
adc edi, eax
mov dword [esp + 0x24], edi
jmp 0x57de64
test eax, eax
ja 0x57dd6b
jb 0x57dd03
cmp ecx, 0x7fff
ja 0x57dd23
mov ecx, dword [esp + 0x4c]
push 2
pop eax
push 0
add ecx, eax
pop eax
push 2
adc edi, eax
mov dword [esp + 0x50], ecx
pop eax
mov dword [esp + 0x24], edi
mov esi, eax
jmp 0x57de68
test eax, eax
ja 0x57dd6b
jb 0x57dd31
cmp ecx, 0x7fffff
ja 0x57dd4d
mov ecx, dword [esp + 0x4c]
push 0
pop eax
add ecx, 3
push 3
adc edi, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], edi
pop esi
jmp 0x57de68
test eax, eax
ja 0x57dd6b
jb 0x57dd5b
cmp ecx, 0x7fffffff
ja 0x57dd6b
mov ecx, dword [esp + 0x4c]
push 4
pop eax
push 0
add ecx, eax
pop eax
push 4
jmp 0x57dd11
cmp eax, 0x7fff
ja 0x57dd87
jb 0x57dd79
cmp ecx, 0xffffffff
ja 0x57dd87
mov ecx, dword [esp + 0x4c]
push 0
pop eax
add ecx, 6
push 5
jmp 0x57dd11
mov ecx, dword [esp + 0x4c]
push 8
pop eax
add ecx, eax
push 0
pop eax
adc edi, eax
mov dword [esp + 0x4c], ecx
test byte [esp + 0x44], 0x20
mov dword [esp + 0x24], edi
je 0x57ddd2
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.0059dd40
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x44]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edx - 0x1c], xmm0
or eax, ecx
push 7
mov word [edx - 0xc], ax
pop esi
jmp 0x57de64
push 6
jmp 0x57dd47
test al, 8
je 0x57ddf1
push 8
pop eax
inc esi
add ecx, eax
push 0
pop eax
mov dword [esp + 0x28], esi
push 7
jmp 0x57dd3d
mov ecx, dword [edx - 0x10]
shr eax, 1
and eax, 1
mov dword [esp + 0x3c], ecx
lea esi, [eax + 0xc]
mov eax, 0x400
lea esi, [esi + ecx*2]
test dword [esp + 0x44], eax
je 0x57de46
mov eax, dword [esp + 0x4c]
lea edi, [edx - 0x1c]
or eax, dword [esp + 0x24]
mov edx, dword [edi]
lea esi, [esi + edx*2]
je 0x57de37
push edi
call fcn.00583371
pop ecx
test eax, eax
jne 0x57d8f0
mov ecx, dword [esp + 0x3c]
add ecx, dword [edi]
jmp 0x57de42
mov eax, edx
cdq
add dword [esp + 0x50], eax
adc dword [esp + 0x38], edx
mov edi, dword [esp + 0x24]
add dword [esp + 0x4c], ecx
push 0
pop eax
push eax
adc edi, eax
push esi
mov dword [esp + 0x2c], edi
call fcn.0057b66f
add dword [esp + 0x30], eax
mov edx, dword [esp + 0x6c]
pop ecx
pop ecx
mov ecx, dword [esp + 0x4c]
mov eax, edx
mov dword [eax], esi
lea eax, [edx - 0x1c]
cmp eax, dword [esp + 0x5c]
je 0x57de81
mov esi, dword [esp + 0x28]
sub edx, 0x28
jmp 0x57dc4e
mov eax, dword [esp + 0x28]
cmp eax, 0x7e
jle 0x57deb1
cdq
push edx
push eax
call fcn.0057b66f
mov esi, eax
mov eax, dword [esp + 0x30]
add eax, esi
mov dword [esp + 0x30], eax
cdq
push edx
push eax
call fcn.0057b66f
add esp, 0x10
cmp esi, eax
mov eax, dword [esp + 0x28]
jge 0x57deb6
inc eax
mov dword [esp + 0x28], eax
cdq
mov esi, eax
mov ecx, edx
add esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
adc ecx, edi
mov edi, esi
add edi, dword [esp + 0x50]
mov eax, dword [eax + 0x18]
adc ecx, dword [esp + 0x38]
cdq
cmp ecx, edx
jg 0x57dee9
jl 0x57dedd
cmp edi, eax
ja 0x57dee9
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
jmp 0x57df1d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x581ac5
jl 0x57df03
cmp edi, eax
ja 0x581ac5
mov eax, esi
push eax
push dword [esp + 0x5c]
call fcn.005832dd
pop ecx
pop ecx
test eax, eax
jne 0x57d8f0
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
push 0x10
pop eax
mov word [ecx + 0x10], ax
mov eax, edx
or eax, dword [esp + 0x38]
mov dword [ecx + 0xc], esi
je 0x57df3e
mov eax, 0x410
mov dword [ecx], edx
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x28]
mov edi, dword [ecx + 8]
lea esi, [edi + eax]
cmp eax, 0x80
jge 0x57df54
mov byte [edi], al
inc edi
jmp 0x57df62
cdq
push edx
push eax
push edi
call fcn.0057335b
add esp, 0xc
add edi, eax
mov ecx, dword [esp + 0x5c]
add ecx, 0xc
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], eax
cmp eax, 7
ja 0x57e0a8
mov byte [edi], al
inc edi
test eax, eax
je 0x57e0ea
lea edx, [ecx - 0xc]
cmp eax, 7
jne 0x57dfa8
push 8
pop eax
push eax
push edx
lea eax, [esp + 0x70]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x74]
add esp, 0xc
jmp 0x57dfb5
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x3c]
movzx edx, byte [eax + 0x656e58]
mov eax, edx
sub eax, 1
je 0x57e09e
sub eax, 1
je 0x57e084
sub eax, 1
je 0x57e06a
sub eax, 1
je 0x57e050
dec eax
sub eax, 1
je 0x57e01c
mov byte [esi + 7], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov byte [esi + 6], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov byte [esi + 5], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ecx
mov byte [esi + 4], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov byte [esi + 2], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov byte [esi], cl
add esi, edx
mov ecx, dword [esp + 0x50]
jmp 0x57e0ea
cmp eax, 0x80
jae 0x57e0be
mov byte [edi], al
inc edi
cmp eax, 0xe
jb 0x57e0ea
cmp dword [ecx], 0
jle 0x57e0ea
jmp 0x57e0d6
xor ecx, ecx
push ecx
push eax
push edi
call fcn.0057335b
mov ecx, dword [esp + 0x5c]
add esp, 0xc
add edi, eax
cmp dword [ecx], 0
je 0x57e0ea
push dword [ecx]
push dword [ecx - 4]
push esi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x5c]
add esp, 0xc
add esi, dword [ecx]
mov eax, dword [esp + 0x30]
add eax, 0xffffffe4
cmp ecx, eax
je 0x57c515
add ecx, 0x28
jmp 0x57df69
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [eax + 0x2c]
cmp dword [ebp + 0xc], ecx
je 0x57e121
push eax
call fcn.0055cb96
pop ecx
mov esi, eax
mov edi, edx
jmp 0x57e152
lea ecx, [esp + 0x3c]
xorps xmm0, xmm0
push ecx
push eax
push dword [esp + 0x18]
movlpd qword [esp + 0x48], xmm0
call fcn.0055b07a
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
push ebp
push dword [esp + 0x1c]
call fcn.0054d59a
pop ecx
pop ecx
mov dword [eax], esi
mov dword [eax + 4], edi
mov edi, dword [esp + 0x18]
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x128], ecx
jne 0x581c40
mov edx, dword [esp + 0x80]
cmp dword [esp + 0x98], edx
jb 0x57cef0
mov ecx, dword [esp + 0x7c]
ja 0x57e1a0
cmp dword [esp + 0x94], ecx
jb 0x57cef0
mov eax, dword [esi + 0x174]
test eax, eax
je 0x57cef0
add ecx, dword [esi + 0x17c]
push 0
mov dword [esp + 0x80], ecx
pop ecx
push dword [esi + 0x178]
adc edx, ecx
mov dword [esp + 0x84], edx
call eax
pop ecx
test eax, eax
jne 0x581c33
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x98], edx
ja 0x57e1a0
jb 0x57c4a3
cmp dword [esp + 0x94], ecx
jae 0x57e1a0
jmp 0x57c4a3
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x57e2d9
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0xc4], eax
jg 0x581a1a
push edi
call fcn.00578223
mov ecx, dword [ebx + 0x1fc]
mov esi, eax
add ecx, dword [ebx + 0x1f8]
xor eax, eax
push ecx
push eax
push ebx
mov dword [esp + 0x4c], esi
call fcn.00585dba
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
xor ecx, ecx
lea eax, [esi + 0x21]
push ecx
push eax
push dword [esp + 0x18]
call fcn.00560346
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57e589
mov ecx, dword [esp + 0x3c]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [edx + 0x55], bl
je 0x57e29b
xor eax, eax
mov byte [edx + 0x55], al
inc eax
mov byte [edx + 0x5d], al
jmp 0x57e2a1
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jmp 0x57e589
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x1ec]
jmp 0x57e300
push edi
push dword [esi]
call fcn.005781b4
pop ecx
pop ecx
test eax, eax
je 0x57e321
inc dword [esp + 0x24]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x57e2eb
push edi
mov edi, dword [esp + 0x1c]
push str.no_such_savepoint:__s
push edi
call fcn.0057c09f
add esp, 0xc
xor eax, eax
lea ebx, [eax + 1]
jmp 0x57e4b2
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp dword [edx + 0xc4], eax
jle 0x57e33c
cmp ecx, 1
je 0x581a32
cmp dword [esi + 0x18], eax
jne 0x57e3ab
cmp byte [edx + 0x5d], al
je 0x57e3ab
xor eax, eax
inc eax
mov dword [esp + 0x44], eax
cmp ecx, eax
jne 0x57e3b7
mov edi, dword [esp + 0x18]
push eax
push edi
call fcn.0057bb7e
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x57e59d
mov eax, dword [esp + 0x10]
xor ecx, ecx
inc ecx
push edi
mov byte [eax + 0x55], cl
call fcn.0058276e
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x581a39
mov ebx, dword [edi + 0x24]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x57e39a
mov byte [eax + 0x55], cl
jmp 0x57e39d
mov byte [eax + 0x5d], cl
mov edx, dword [esp + 0x10]
xor eax, eax
lea edi, [eax + 1]
jmp 0x57e4aa
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x1f8]
sub eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
cmp ecx, 2
jne 0x57e4cc
mov eax, dword [edx + 0x18]
and dword [esp + 0x30], 0
and eax, 1
cmp dword [edx + 0x14], 0
mov dword [esp + 0x5c], eax
jle 0x57e433
xor ecx, ecx
inc ecx
xor eax, ecx
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov edi, ecx
push eax
mov eax, dword [edx + 0x10]
push 0x204
push dword [edi + eax + 4]
call fcn.0055d449
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
inc eax
push 0x10
pop ecx
add edi, ecx
mov dword [esp + 0x30], eax
cmp eax, dword [edx + 0x14]
mov eax, dword [esp + 0x3c]
jl 0x57e3f1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
and dword [esp + 0x30], 0
cmp dword [edx + 0x14], 0
jle 0x57e480
xor ebx, ebx
mov edi, ebx
push eax
mov eax, dword [edx + 0x10]
push ecx
push dword [edi + eax + 4]
call fcn.0055cbf0
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
inc eax
push 0x10
pop ecx
add edi, ecx
mov dword [esp + 0x30], eax
cmp eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
jl 0x57e446
cmp dword [esp + 0x5c], 0
je 0x57e4a6
xor eax, eax
push eax
push edx
call fcn.0056223e
push dword [esp + 0x18]
call fcn.00573fdd
mov edx, dword [esp + 0x1c]
xor eax, eax
inc eax
add esp, 0xc
or dword [edx + 0x18], eax
mov edi, dword [esp + 0x44]
test ebx, ebx
je 0x57e4f2
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
je 0x581dd5
push 7
pop ebx
jmp 0x581dea
and dword [esp + 0x5c], 0
jmp 0x57e437
mov eax, dword [ecx + 0x18]
push ecx
push edx
mov dword [edx + 0x1ec], eax
call fcn.00560283
mov edx, dword [esp + 0x18]
pop ecx
pop ecx
dec dword [edx + 0x1f8]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
jne 0x57e4d6
xor eax, eax
inc eax
cmp dword [esp + 0x28], eax
jne 0x57e52f
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x18]
push esi
push ecx
mov dword [ecx + 0x1ec], eax
call fcn.00560283
pop ecx
pop ecx
test edi, edi
jne 0x57e589
mov edx, dword [esp + 0x10]
dec dword [edx + 0x1f8]
mov edx, dword [esp + 0x28]
jmp 0x57e56a
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov eax, edx
mov dword [eax + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov esi, edx
mov edx, dword [esp + 0x28]
mov dword [esi + 0x208], eax
mov dword [esi + 0x20c], ecx
test edi, edi
je 0x57e56a
push 2
pop eax
cmp edx, eax
jne 0x57e589
push dword [esp + 0x24]
push edx
push dword [esp + 0x18]
call fcn.00585dba
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x97], 3
jne 0x57c49f
push 0x65
pop ebx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x80]
jb 0x581ea5
mov ecx, dword [esp + 0x7c]
ja 0x57e5cc
cmp dword [esp + 0x94], ecx
jb 0x581ea5
mov eax, dword [edx + 0x174]
test eax, eax
je 0x581ea5
add ecx, dword [edx + 0x17c]
push 0
mov dword [esp + 0x80], ecx
pop ecx
push dword [edx + 0x178]
adc dword [esp + 0x84], ecx
call eax
mov edx, dword [esp + 0x14]
pop ecx
test eax, eax
je 0x57e5a5
or eax, 0xffffffff
or dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x7c], eax
push 9
jmp 0x581a79
xor eax, eax
mov esi, eax
mov dword [esp + 0x44], esi
cmp dword [ebp + 8], eax
je 0x57e641
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x581a5d
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
mov edi, dword [eax + 4]
mov dword [esp + 0x30], edi
test edi, edi
je 0x57e73d
lea eax, [esp + 0x44]
push eax
push dword [ebp + 8]
push edi
call fcn.0055acb3
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x581a7f
mov esi, dword [esp + 0x18]
test byte [esi + 0x98], 0x20
je 0x57e7c9
xor edx, edx
cmp dword [ebp + 8], edx
je 0x57e7c9
mov ecx, dword [esp + 0x10]
cmp byte [ecx + 0x55], dl
je 0x57e6b2
inc eax
cmp dword [ecx + 0xc0], eax
jle 0x57e7c9
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x57e6ce
mov eax, dword [ecx + 0x1f8]
inc dword [ecx + 0x1fc]
add eax, dword [ecx + 0x1fc]
mov dword [esi + 0x30], eax
dec eax
push eax
push edx
push ecx
call fcn.00585dba
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e711
push dword [esp + 0x30]
mov esi, dword [esi + 0x30]
mov edi, dword [edi + 4]
call fcn.0055b585
push esi
push dword [edi]
call fcn.0056e86a
push dword [esp + 0x3c]
mov ebx, eax
mov dword [esp + 0x2c], ebx
call fcn.0055c2fd
mov esi, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
mov esi, dword [esp + 0x44]
test ebx, ebx
jne 0x57e4ae
xor eax, eax
cmp word [ebp + 2], ax
je 0x57c515
cmp esi, dword [ebp + 0xc]
jne 0x57e769
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 0x10]
je 0x57c515
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
cmp dword [edi + 0x7c], 0
je 0x57e782
push dword [edi + 0x7c]
push ebx
call fcn.00560283
pop ecx
pop ecx
push str.database_schema_has_changed
push ebx
call fcn.005605e0
pop ecx
mov dword [edi + 0x7c], eax
mov eax, dword [ebx + 0x10]
pop ecx
mov ecx, dword [ebp + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x57e7ad
push dword [ebp + 4]
push ebx
call fcn.0057403f
pop ecx
pop ecx
mov eax, dword [edi + 0x98]
xor ecx, ecx
and eax, 0xffffffed
inc ecx
push 0x11
or eax, ecx
pop ebx
mov dword [edi + 0x98], eax
jmp 0x57e4b2
mov esi, dword [esp + 0x44]
jmp 0x57e745
mov ecx, dword [ebp + 4]
lea eax, [esp + 0x110]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebp + 0xc]
push dword [eax + ecx*8 + 4]
call fcn.0055b60e
push ebp
push edi
call fcn.0054d59a
mov ecx, eax
add esp, 0x14
mov eax, dword [esp + 0x110]
jmp 0x57c361
mov ecx, dword [esp + 0x10]
mov esi, dword [ebp + 4]
push dword [ebp + 0xc]
shl esi, 4
add esi, dword [ecx + 0x10]
push dword [ebp + 8]
push dword [esi + 4]
call fcn.0055d4c7
xor edx, edx
add esp, 0xc
inc edx
mov ebx, eax
mov dword [esp + 0x1c], ebx
cmp dword [ebp + 8], edx
jne 0x57e857
movzx eax, word [ebp + 2]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
or dword [eax + 0x18], edx
push dword [ebp + 4]
push eax
call fcn.0056705b
pop ecx
xor edx, edx
pop ecx
inc edx
jmp 0x57e868
push 2
pop eax
cmp dword [ebp + 8], eax
jne 0x57e868
mov ecx, dword [esi + 0xc]
mov al, byte [ebp + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebp + 4], edx
jne 0x57ce5c
xor eax, eax
push eax
push dword [esp + 0x14]
call fcn.0056223e
and dword [edi + 0x98], 0xfffffffc
pop ecx
pop ecx
jmp 0x57ce5c
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x57e8ae
mov eax, dword [esi + 0x38]
cmp eax, dword [ebp + 8]
jne 0x57e8ae
push dword [esi + 0x2c]
call fcn.0055ad20
pop ecx
jmp 0x57e9b8
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 0x98]
xor ecx, ecx
and al, 3
inc ecx
cmp al, cl
je 0x581aa5
mov ecx, dword [ebp + 8]
xor eax, eax
mov ebx, eax
mov dword [esp + 0x30], ecx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x5c], ebx
mov esi, dword [eax + 4]
mov dword [esp + 0x64], esi
cmp dl, 0x71
jne 0x57e915
movzx edi, word [ebp + 2]
mov eax, dword [eax + 0xc]
push 8
pop edx
and edi, edx
mov al, byte [eax + 0x4c]
push 4
pop edx
or edi, edx
mov edx, dword [esp + 0x18]
cmp al, byte [edx + 0x95]
jae 0x57e919
mov byte [edx + 0x95], al
jmp 0x57e919
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebp + 2], al
je 0x57e935
imul esi, ecx, 0x28
add esi, dword [esp + 0x20]
push esi
call fcn.0058367d
mov eax, dword [esi]
pop ecx
mov dword [esp + 0x30], eax
mov al, byte [ebp + 1]
cmp al, 0xf8
jne 0x57e949
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x5c], ebx
movzx eax, word [ebx + 8]
jmp 0x57e954
cmp al, 0xfd
jne 0x57e952
mov eax, dword [ebp + 0x10]
jmp 0x57e954
mov eax, ebx
xor ecx, ecx
push ecx
push eax
push dword [ebp + 4]
push dword [esp + 0x24]
call fcn.00534477
mov esi, eax
add esp, 0x10
test esi, esi
je 0x57d8f0
mov eax, dword [esp + 0x44]
mov byte [esi + 1], al
xor eax, eax
push 4
inc eax
mov byte [esi + 2], al
pop eax
push dword [esi + 0x2c]
or dword [esi + 8], eax
mov eax, dword [esp + 0x34]
push ebx
push edi
push eax
push dword [esp + 0x74]
mov dword [esi + 0x38], eax
call fcn.0055b18f
mov edi, dword [esp + 0x2c]
mov ebx, eax
mov eax, dword [esp + 0x70]
add esp, 0x14
mov dword [esi + 0x30], eax
cmp byte [ebp + 1], 0xf8
mov dword [esp + 0x1c], ebx
setne al
mov byte [esi + 4], al
mov cl, byte [ebp + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
jmp 0x57ce5c
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 8]
mov edi, dword [eax + ecx*4]
xor eax, eax
push eax
movsx eax, word [edi + 0x3c]
push eax
push dword [ebp + 4]
push dword [esp + 0x24]
call fcn.00534477
mov esi, eax
add esp, 0x10
test esi, esi
je 0x57d8f0
mov edx, dword [esi + 8]
xor eax, eax
inc eax
or edx, eax
mov byte [esi + 2], al
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
push 4
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
pop ebx
xor ecx, edx
and ecx, ebx
xor ecx, edx
mov dword [esi + 8], ecx
mov eax, dword [edi + 0x10]
push 8
mov dword [esi + 0x10], eax
pop eax
or ecx, eax
mov dword [esi + 8], ecx
or dword [edi + 8], eax
push dword [esi + 0x2c]
push dword [esi + 0x30]
push ebx
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.0055b18f
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x1c], ebx
jmp 0x57c515
mov eax, dword [ebp + 0xc]
xor ebx, ebx
test eax, eax
jle 0x57ea73
mov ecx, dword [esp + 0x20]
imul eax, eax, 0x28
mov dword [eax + ecx + 0xc], ebx
imul eax, dword [ebp + 0xc], 0x28
mov dword [eax + ecx + 8], 0x658f34
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x57eabe
test byte [esi + 8], 8
jne 0x57eabe
movsx eax, word [esi + 0x3c]
cmp dword [ebp + 8], eax
jg 0x57eabe
push ebx
push dword [esi + 0x38]
mov dword [esi + 0x18], ebx
push dword [esi + 0x10]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
call fcn.0055ad37
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ebx
test ebx, ebx
jne 0x57e4b2
jmp 0x57ebbe
push ebx
push dword [ebp + 8]
push ecx
push edi
call fcn.00534477
mov esi, eax
add esp, 0x10
test esi, esi
je 0x57d8f4
push 0x41e
xor eax, eax
lea edi, [esi + 0x10]
inc eax
or dword [esi + 8], eax
movzx eax, word [ebp + 2]
push 5
pop ecx
or eax, ecx
push eax
mov eax, dword [esp + 0x18]
push edi
push eax
push ebx
push dword [eax]
call fcn.0055c403
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x57e4ae
push eax
inc eax
push eax
push dword [edi]
call fcn.0055acb3
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57eb98
mov eax, dword [ebp + 0x10]
lea ecx, [esi + 0x38]
mov dword [esp + 0x3c], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x57eb72
movzx eax, word [ebp + 2]
push 2
pop edx
or eax, edx
push eax
push ecx
push dword [edi]
call fcn.0055b163
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57eb6e
push dword [esi + 0x2c]
push dword [esp + 0x40]
push 4
pop eax
push eax
push dword [esi + 0x38]
push dword [edi]
call fcn.0055b18f
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x1c], ebx
xor eax, eax
jmp 0x57eb95
push dword [esi + 0x2c]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
inc edx
push eax
push edx
push dword [edi]
mov dword [ecx], edx
call fcn.0055b18f
mov ebx, eax
add esp, 0x14
xor eax, eax
mov dword [esp + 0x1c], ebx
inc eax
mov byte [esi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebp + 2], ax
push 4
pop eax
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test ebx, ebx
jne 0x581aaf
mov edi, dword [esp + 0x18]
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x57c49f
xor eax, eax
inc eax
push eax
push dword [ebp + 8]
push dword [ebp + 4]
push edi
call fcn.00534477
add esp, 0x10
test eax, eax
je 0x57d8f8
mov ecx, dword [ebp + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [ebp + 0xc]
push dword [esp + 0x18]
call fcn.00584d0e
jmp 0x57ce53
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + ecx*4]
xor eax, eax
inc eax
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, eax
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov esi, dword [esp + 0x10]
mov dword [edx + 0x1c], eax
jne 0x57cef0
jmp 0x5818e1
push 3
push dword [ebp + 0xc]
push dword [ebp + 4]
push edi
call fcn.00534477
add esp, 0x10
test eax, eax
je 0x57d8f8
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebp + 8]
mov dword [eax + 0x24], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x2c], 0x666484
jmp 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
cmp dword [eax + ecx*4], 0
je 0x57ec79
push dword [eax + ecx*4]
push edi
call fcn.0058267f
pop ecx
pop ecx
mov ecx, dword [ebp + 4]
xor edx, edx
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
push 2
pop edx
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov word [edi + 2], cx
mov dword [edi + 0x20], ecx
cmp byte [edi + 4], cl
je 0x57edae
imul esi, dword [ebp + 0xc], 0x28
add esi, dword [esp + 0x20]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x3c], eax
and al, 0x2e
cmp al, dl
jne 0x57ecca
push ecx
push esi
call fcn.0053555f
pop ecx
pop ecx
push esi
call fcn.00582c99
pop ecx
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x64], edx
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x57ed6f
test cl, 8
jne 0x57ed2d
xor eax, eax
inc eax
test al, cl
jne 0x5818dd
push 0x17
pop ecx
cmp dword [esp + 0x24], ecx
jae 0x5818dd
lea eax, [esp + 0x78]
push eax
push dword [edi + 0x2c]
call fcn.0055c2d7
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4ae
jmp 0x57eef5
movsd xmm0, qword [esi]
mov ebx, dword [esp + 0x44]
push ecx
push ecx
movsd qword [esp], xmm0
push dword [esp + 0x6c]
push ebx
call fcn.0056bb6b
add esp, 0x10
test eax, eax
jle 0x57ed5f
mov eax, dword [esp + 0x24]
xor ecx, ecx
inc ecx
test cl, al
jne 0x57ed73
dec eax
mov dword [esp + 0x24], eax
jmp 0x57ed73
jns 0x57ed73
mov eax, dword [esp + 0x24]
xor ecx, ecx
inc ecx
test cl, al
je 0x57ed73
inc eax
jmp 0x57ed59
mov ebx, dword [esp + 0x44]
lea eax, [esp + 0x78]
push eax
xor eax, eax
lea esi, [edi + 0x2c]
push eax
push dword [esp + 0x6c]
push ebx
push dword [esi]
call fcn.0055cf40
mov ebx, eax
add esp, 0x14
mov eax, dword [esp + 0x44]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], ebx
mov dword [edi + 0x44], eax
test ebx, ebx
jne 0x57e4ae
jmp 0x57ee4b
lea esi, [edi + 0x2c]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, dl
mov byte [esp + 0x33], al
pop eax
setne al
xor edx, edx
mov dword [esp + 0x38], eax
inc edx
mov eax, dword [edi + 0x30]
mov dword [esp + 0x18c], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x1a0], ax
mov eax, dword [esp + 0x24]
dec eax
mov byte [esp + 0x1a6], cl
and al, dl
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0x1a2], al
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x190], eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x190]
push eax
push dword [esi]
call fcn.0055b744
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
cmp byte [esp + 0x2f], al
je 0x57ee4b
mov eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
cmp byte [esp + 0x1a6], bl
je 0x57eef5
mov eax, dword [esp + 0x24]
push 0x17
pop ecx
cmp eax, ecx
mov ecx, dword [esp + 0x78]
jl 0x57eea8
test ecx, ecx
js 0x57ee70
jne 0x57ee65
cmp eax, 0x18
je 0x57ee70
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x57ef00
xor eax, eax
push eax
push dword [esi]
mov dword [esp + 0x80], eax
call fcn.0055c378
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x57ef00
cmp ebx, 0x65
jne 0x57e4ae
xor eax, eax
mov ebx, eax
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x78], eax
jmp 0x5818dd
test ecx, ecx
jg 0x57eec2
jne 0x57eeb3
cmp eax, 0x15
je 0x57eec2
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x78], ecx
jmp 0x57eef5
xor eax, eax
push eax
push dword [esi]
mov dword [esp + 0x80], eax
call fcn.0055ca61
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
je 0x57ef00
cmp ebx, 0x65
jne 0x57e4ae
xor eax, eax
mov ebx, eax
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
jne 0x5818dd
cmp dword [esp + 0x38], 0
mov edi, dword [esp + 0x18]
je 0x57c49f
push 0x14
pop eax
add ebp, eax
jmp 0x57c49f
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 0x18]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x57c49f
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov edi, dword [ebp + 4]
mov dword [esp + 0xec], eax
mov ax, word [ebp + 0x24]
mov word [esp + 0x100], ax
imul eax, dword [ebp + 0x20], 0x28
mov byte [esp + 0x102], cl
mov dword [esp + 0x30], ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xf0]
push eax
push esi
push dword [esp + 0x1c]
call fcn.00582afe
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0x30]
xor ecx, ecx
test eax, eax
jle 0x57ef9d
cmp word [ebp + 2], cx
je 0x57efd1
test eax, eax
jns 0x5818dd
test edi, edi
jle 0x57c515
push ecx
push dword [esi + 0x2c]
dec edi
mov dword [esi + 0x20], ecx
call fcn.0055c378
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x57ef63
cmp ebx, 0x65
jne 0x57e4ae
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ebx
push 0x14
pop eax
add ebp, eax
jmp 0x5818dd
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [ebp + 8]
jge 0x57effa
mov ax, word [ebp + 8]
mov word [ecx + 0xc], ax
jmp 0x57c4a3
cmp eax, dword [ebp + 0xc]
jle 0x57c4a3
mov ax, word [ebp + 0xc]
jmp 0x57eff1
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x57c1ff.9
cmp byte [eax + 2], 0
je 0x57c4a3
jmp case.0x57c1ff.9
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ebp + 0x10]
jge 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x20]
add ecx, eax
movzx eax, word [ebp + 0x10]
mov dword [esp + 0x148], ecx
mov word [esp + 0x158], ax
test ax, ax
je 0x57f09c
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [esp + 0x144], eax
xor eax, eax
mov byte [esp + 0x15a], al
lea eax, [esp + 0x144]
push edi
push eax
push dword [esi + 0x2c]
call fcn.0055b744
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
jmp 0x57f107
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x57f0b6
push ecx
call fcn.00583371
pop ecx
test eax, eax
jne 0x57d8f4
push dword [esi + 0x30]
call fcn.0057b9bd
mov edi, eax
pop ecx
test edi, edi
je 0x57d8f0
mov ecx, dword [esp + 0x148]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.00584811
xor eax, eax
mov byte [edi + 0x16], al
lea eax, [esi + 0x24]
push eax
push edi
push dword [esi + 0x2c]
call fcn.0055b744
push edi
push dword [esp + 0x30]
mov ebx, eax
mov dword [esp + 0x40], ebx
call fcn.00560283
add esp, 0x24
lea edi, [esi + 0x24]
test ebx, ebx
jne 0x57e4ae
mov ecx, dword [edi]
test ecx, ecx
setne al
xor edx, edx
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [ebp]
cmp al, 0x1d
jne 0x57f139
mov esi, dword [esp + 0x10]
test ecx, ecx
je 0x5818e1
jmp 0x57cef0
test ecx, ecx
jne 0x5818dd
cmp al, 0x1b
jne 0x57f177
mov ecx, edx
movzx edx, word [esp + 0x158]
test edx, edx
je 0x57c515
mov eax, dword [esp + 0x148]
add eax, 0x10
test byte [eax], 1
jne 0x5818dd
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x57f161
jmp 0x57c515
cmp byte [ebp], 0x1a
mov edi, dword [esp + 0x18]
jne 0x57c49f
mov ax, word [ebp + 0x10]
mov word [esi + 0xc], ax
jmp 0x57c49f
imul esi, dword [ebp + 0xc], 0x28
mov ecx, dword [esp + 0x20]
add esi, ecx
test byte [esi + 0x10], 0x24
jne 0x57f1e8
push 0xa
pop ecx
push dword [esp + 0x54]
lea eax, [esp + 0x268]
lea edi, [esp + 0x268]
push 0x43
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.005354fa
add esp, 0xc
push 4
pop eax
test byte [esp + 0x274], al
je 0x5818dd
mov edi, dword [esp + 0x264]
mov edx, dword [esp + 0x268]
jmp 0x57f1f3
mov ecx, dword [esp + 0x20]
imul eax, dword [ebp + 0xc], 0x28
mov edi, dword [eax + ecx]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x5c]
push eax
xor ecx, ecx
push ecx
push edx
push edi
push dword [esi + 0x2c]
mov dword [esp + 0x70], ecx
call fcn.0055cf40
mov ebx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov dword [esi + 0x44], eax
add esp, 0x14
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov word [esi + 2], cx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
test eax, eax
je 0x57f25b
cmp dword [ebp + 8], ecx
jne 0x5818dd
push 0x17ec5
call fcn.0055ed8e
pop ecx
mov ebx, eax
mov dword [esp + 0x1c], ebx
mov edi, dword [esp + 0x18]
jmp 0x57ce5c
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 0
mov ecx, dword [ecx + edx*4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], edx
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add dword [eax + 0x18], ecx
pop ecx
adc dword [eax + 0x1c], ecx
jmp 0x57c4a3
xorps xmm0, xmm0
xor eax, eax
push ebp
push edi
movlpd qword [esp + 0x94], xmm0
mov dword [esp + 0x40], eax
call fcn.0054d59a
mov edx, dword [ebp + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x60]
push 2
mov dword [esp + 0x34], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x3c], edi
test byte [edi + 8], al
jne 0x57f356
lea eax, [esp + 0x38]
push eax
push dword [edi + 0x2c]
call fcn.0055c2d7
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4ae
cmp dword [esp + 0x38], eax
je 0x57f309
inc eax
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x90], eax
jmp 0x57f356
mov esi, dword [edi + 0x2c]
push esi
call fcn.005443db
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
cmp ecx, 0x7fffffff
jl 0x57f33e
jg 0x57f336
cmp eax, 0xffffffff
jb 0x57f33e
push 2
pop eax
or dword [edi + 8], eax
jmp 0x57f356
xor edx, edx
inc edx
add eax, edx
push 0
pop edx
adc ecx, edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x57f3f7
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x57f3d7
imul esi, ecx, 0x28
add esi, dword [esp + 0x20]
push esi
call fcn.0058367d
mov edx, dword [esi + 4]
pop ecx
mov ecx, dword [esi]
cmp ecx, 0xffffffff
jne 0x57f393
cmp edx, 0x7fffffff
je 0x581abd
push 2
pop eax
test byte [edi + 8], al
jne 0x581abd
mov edi, dword [esp + 0x90]
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x57f3e7
jl 0x57f3c1
mov eax, dword [esp + 0x8c]
cmp eax, ecx
jae 0x57f3ee
mov eax, ecx
mov edi, edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edi
jmp 0x57f3ee
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x57f3d5
imul esi, dword [ebp + 0xc], 0x28
add esi, dword [eax + 0xc]
jmp 0x57f376
mov eax, dword [esp + 0x8c]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x3c]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x57f46f
xor ebx, ebx
mov esi, ebx
lea eax, [esp + 0x8c]
push eax
push 8
pop eax
push eax
call fcn.00531ada
mov eax, dword [esp + 0x98]
xor edx, edx
mov ecx, dword [esp + 0x94]
inc edx
and eax, 0x3fffffff
add ecx, edx
lea edx, [esp + 0x40]
mov dword [esp + 0x94], ecx
push edx
adc eax, ebx
push ebx
push eax
push ecx
mov dword [esp + 0xa8], eax
push dword [edi + 0x2c]
call fcn.0055cf40
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
cmp dword [esp + 0x38], eax
jne 0x57f46f
inc esi
cmp esi, 0x64
jge 0x581abd
jmp 0x57f403
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x30]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x57c515
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
imul edx, dword [ebp + 8], 0x28
mov ebx, dword [esp + 0x20]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
imul eax, dword [ebp + 0xc], 0x28
add edx, ebx
cmp byte [ebp + 1], 0xfb
mov edi, dword [eax + ebx]
mov ebx, dword [eax + ebx + 4]
mov dword [esp + 0x16c], edi
mov dword [esp + 0x170], ebx
jne 0x57f4ee
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xfc], ecx
je 0x57f4ee
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov dword [esp + 0x30], eax
jmp 0x57f4f6
mov dword [esp + 0x30], ecx
mov dword [esp + 0x5c], ecx
xor eax, eax
inc eax
test byte [ebp + 2], al
je 0x57f519
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], ecx
test byte [ebp + 2], 0x20
je 0x57f519
mov eax, dword [esp + 0x10]
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], ebx
mov eax, dword [edx + 8]
xor ebx, ebx
movzx ecx, word [ebp + 2]
mov dword [esp + 0x174], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [esp + 0x184], eax
pop eax
test al, cl
je 0x57f53f
mov edi, dword [esi + 0x24]
jmp 0x57f541
mov edi, ebx
mov eax, 0x400
test word [edx + 0x10], ax
je 0x57f557
mov eax, dword [edx]
mov dword [esp + 0x184], eax
jmp 0x57f55e
mov dword [esp + 0x184], ebx
push edi
and ecx, 0x8a
mov dword [esp + 0x168], ebx
push ecx
lea eax, [esp + 0x16c]
push eax
push dword [esi + 0x2c]
call fcn.0055bad7
xor ecx, ecx
add esp, 0x10
inc dword [esp + 0xa4]
mov ebx, eax
mov dword [esp + 0x1c], ebx
mov byte [esi + 3], cl
mov dword [esi + 0x20], ecx
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0x30]
test eax, eax
je 0x57c515
push dword [esp + 0x170]
push dword [esp + 0x170]
push dword [eax]
push dword [esp + 0x68]
push 4
pop eax
test byte [ebp + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x24]
push dword [eax + 0xf8]
call dword [eax + 0xfc]
add esp, 0x18
jmp 0x57c515
mov ecx, dword [edi + 0x60]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x57f60b
mov ebx, dword [esp + 0x20]
imul eax, eax, 0x28
mov ecx, dword [eax + ebx]
mov eax, dword [eax + ebx + 4]
jmp 0x57f61c
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.0055d137
add esp, 0x10
jmp 0x57ce56
cmp byte [ebp + 1], 0xfb
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x57f696
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 0xfc], ecx
je 0x57f696
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [ebp + 0x10]
push 2
mov dword [esp + 0x40], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x34], eax
pop eax
test byte [ebp + 2], al
je 0x57f69e
cmp byte [edi + 4], 0
je 0x57f69e
mov esi, dword [edi + 0x2c]
push esi
call fcn.005443db
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x3c]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x57f69e
xor eax, eax
mov dword [esp + 0x30], eax
mov esi, eax
movzx eax, byte [ebp + 2]
push eax
push dword [edi + 0x2c]
call fcn.0055b1dd
pop ecx
pop ecx
xor ecx, ecx
mov ebx, eax
inc dword [esp + 0xa4]
mov dword [esp + 0x1c], ebx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
test ebx, ebx
jne 0x57e4ae
xor edx, edx
inc edx
test byte [esp + 0x5c], dl
je 0x57c515
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], edx
adc dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xfc]
test eax, eax
je 0x57c515
test esi, esi
je 0x57c515
test byte [esi + 0x1c], 0x80
jne 0x57c515
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [esi]
push dword [esp + 0x3c]
push 9
push dword [ecx + 0xf8]
call eax
jmp 0x57f5dd
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
adc dword [esi + 0x74], ecx
xor eax, eax
mov dword [esi + 0x6c], ecx
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
jmp 0x57c4a3
mov eax, dword [edi + 0x60]
xor edx, edx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x30]
push edx
push dword [ebp + 0x10]
mov ecx, dword [eax + ecx*4]
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x28]
push eax
push ecx
call fcn.00584c80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
cmp dword [esp + 0x30], eax
jmp 0x57c26e
imul edx, dword [ebp + 8], 0x28
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
add edx, dword [esp + 0x20]
push edx
push dword [eax + ecx*4]
call fcn.005850af
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4b2
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x20], ecx
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
mov edi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov esi, dword [ecx + 0x2c]
push esi
call fcn.005443db
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esi + 0x2c]
cmp eax, dword [ecx + 0x78]
ja 0x581ac5
push edi
push eax
push esi
call fcn.005834c3
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
cmp dword [ebp + 0xc], eax
jne 0x57c515
mov eax, 0x4000
test word [edi + 0x10], ax
je 0x57c515
push edi
call fcn.005836a6
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
pop ecx
test eax, eax
jne 0x57d8f8
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
mov edi, eax
mov eax, dword [esp + 0x20]
pop ecx
pop ecx
mov ecx, dword [eax + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x57f85e
xor eax, eax
inc eax
jmp 0x57cd81
cmp byte [esi + 3], 0
je 0x57f86f
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x57f8f5
push 2
pop eax
cmp byte [esi], al
jne 0x57f8b4
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x9c]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
push esi
push dword [esp + 0x24]
mov ebx, eax
mov dword [esp + 0x2c], ebx
call fcn.00585c0c
add esp, 0x10
test ebx, ebx
jne 0x57e4ae
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
jmp 0x57f903
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x57f8d3
push esi
call fcn.00582ac4
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
jne 0x57e4ae
jmp 0x57f8db
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ebx
cmp byte [esi + 2], 0
jne 0x57f856
mov esi, dword [esi + 0x2c]
push esi
call fcn.005443db
mov eax, dword [esi + 0x20]
pop ecx
mov ecx, dword [esi + 0x24]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x57c515
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x57f948
push 3
inc eax
push eax
push ecx
push edi
call fcn.00534477
add esp, 0x10
test eax, eax
je 0x57d8f8
xor edx, edx
mov dword [eax + 0x2c], 0x666484
xor ecx, ecx
inc edx
or dword [eax + 8], 8
mov dword [eax + 0x24], ecx
mov byte [eax + 4], dl
jmp 0x57f94d
xor edx, edx
xor ecx, ecx
inc edx
cmp byte [eax], 0
mov byte [eax + 2], dl
mov dword [eax + 0x20], ecx
jne 0x57c4a3
push dword [eax + 0x2c]
call fcn.0055ad20
jmp 0x57ce1a
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov eax, dword [esi + 0x2c]
cmp dl, 0x89
jne 0x57f98c
or dword [esi + 0x24], 0xffffffff
cmp byte [eax], cl
je 0x57c49f
lea ecx, [esp + 0x30]
push ecx
push eax
call fcn.0055c2d7
pop ecx
mov ebx, eax
mov eax, dword [esp + 0x34]
pop ecx
xor ecx, ecx
mov dword [esp + 0x1c], ebx
mov byte [esi + 2], al
mov byte [esi + 3], cl
mov dword [esi + 0x20], ecx
test ebx, ebx
jne 0x57e4b2
mov esi, dword [esp + 0x10]
cmp dword [ebp + 8], ecx
jle 0x57cef0
jmp 0x57d399
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
lea eax, [esp + 0xcc]
push eax
push esi
call fcn.0055b5b2
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4b2
cmp dword [esp + 0xcc], eax
jne 0x5818dd
push esi
call fcn.0055cb96
pop ecx
xor ecx, ecx
cmp edx, ecx
jl 0x580784
jg 0x57fa1a
cmp eax, ecx
jb 0x580784
push edx
push eax
call fcn.0056ca22
mov esi, dword [esp + 0x18]
cwde
pop ecx
pop ecx
cmp eax, dword [ebp + 0xc]
jge 0x57cef0
xor eax, eax
inc eax
mov dword [esp + 0xcc], eax
jmp 0x5818e1
inc dword [edi + 0xac]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0x44], eax
cmp byte [esi], al
lea eax, [esp + 0x44]
push eax
jne 0x57fa6b
push esi
call fcn.0058504d
pop ecx
pop ecx
xor ecx, ecx
jmp 0x57fa7d
push dword [esi + 0x2c]
call fcn.0055b5b2
pop ecx
pop ecx
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x20], ecx
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
mov eax, dword [esp + 0x44]
mov byte [esi + 2], al
jmp 0x57f9b6
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
push esi
push dword [esp + 0x14]
call fcn.00584ed4
jmp 0x57fad6
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
push dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x2c]
call fcn.0055ca61
jmp 0x57fad6
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
push dword [ebp + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x2c]
call fcn.0055c378
pop ecx
mov ebx, eax
pop ecx
mov dword [esp + 0x1c], ebx
xor ecx, ecx
mov dword [esi + 0x20], ecx
test ebx, ebx
jne 0x57fafa
mov byte [esi + 2], cl
movzx eax, word [ebp + 2]
inc dword [edi + eax*4 + 0xa4]
jmp 0x581368
cmp ebx, 0x65
jne 0x57e4b2
xor eax, eax
mov ebx, ecx
inc eax
mov dword [esp + 0x1c], ebx
mov byte [esi + 2], al
jmp 0x57e169
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebp + 8], 0x28
mov edi, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
add esi, dword [esp + 0x20]
test byte [ebp + 2], cl
je 0x57fb3a
mov eax, dword [esp + 0x18]
push 0
add dword [eax + 0x28], ecx
pop ecx
adc dword [eax + 0x2c], ecx
mov eax, 0x400
test word [esi + 0x10], ax
je 0x57fb56
push esi
call fcn.00583371
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x21c], eax
mov dword [esp + 0x220], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x214], eax
imul eax, dword [ebp + 0xc], 0x28
push 0x10
pop ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x228], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x22c], ax
movzx eax, word [ebp + 2]
test cl, al
je 0x57fb9d
mov ecx, dword [edi + 0x24]
jmp 0x57fb9f
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x21c]
push eax
push dword [edi + 0x2c]
call fcn.0055bad7
add esp, 0x10
mov ebx, eax
xor eax, eax
mov dword [edi + 0x20], eax
jmp 0x57f257
imul esi, dword [ebp + 8], 0x28
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
add esi, dword [esp + 0x20]
mov edi, dword [eax + ecx*4]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x57fbf2
push esi
call fcn.00583371
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x57e4ae
push esi
push edi
call fcn.0058510b
pop ecx
jmp 0x57f254
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x1f4], eax
mov ax, word [ebp + 0xc]
mov word [esp + 0x208], ax
xor eax, eax
mov byte [esp + 0x20a], al
imul eax, dword [ebp + 8], 0x28
add eax, dword [esp + 0x20]
mov dword [esp + 0x1f8], eax
lea eax, [esp + 0x114]
push eax
lea eax, [esp + 0x1f8]
push eax
push edi
call fcn.0055b744
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4ae
cmp dword [esp + 0x114], eax
jne 0x57fc85
push 4
pop eax
push eax
push edi
call fcn.0055b1dd
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4ae
jmp 0x57fc9f
xor ecx, ecx
cmp word [ebp + 2], cx
je 0x57fca1
push dword [esp + 0x10]
call fcn.0058bc82
pop ecx
test eax, eax
je 0x581ade
xor ecx, ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], ecx
jmp 0x57c515
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x57fcd4
push esi
call fcn.00582ac4
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
jne 0x57e4b2
jmp 0x57fcdc
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ebx
cmp byte [esi + 2], 0
jne 0x57fd67
lea eax, [esp + 0x3c]
xorps xmm0, xmm0
push eax
push dword [esi + 0x2c]
movlpd qword [esp + 0x44], xmm0
push dword [esp + 0x18]
call fcn.00582b8e
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
cmp byte [ebp], 0x8d
jne 0x57fd4c
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esp + 0x40]
mov byte [edx + 2], al
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x40], eax
xor eax, eax
inc eax
mov dword [edx + 0x44], ecx
mov byte [edx + 3], al
xor eax, eax
mov dword [edx + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], esi
jmp 0x57c49f
push ebp
push edi
call fcn.0054d59a
mov edx, dword [esp + 0x48]
pop ecx
pop ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x57c49f
imul eax, dword [ebp + 8], 0x28
jmp 0x57d709
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x57c4a3
push eax
call fcn.005825a7
jmp 0x57c6fa
mov eax, dword [edi + 0x60]
cmp dl, 0x2a
mov ecx, dword [ebp + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0xec], eax
mov ax, word [ebp + 0x10]
mov word [esp + 0x100], ax
sbb al, al
mov byte [esp + 0x102], al
imul eax, dword [ebp + 0xc], 0x28
push esi
add eax, dword [esp + 0x24]
mov dword [esp + 0xf4], eax
call fcn.005443db
mov eax, dword [esi + 0x2c]
pop ecx
test eax, eax
je 0x581afc
cmp eax, 0x7fffffff
ja 0x581afc
xor ecx, ecx
mov word [esp + 0x1dc], cx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1e0], ecx
xor ecx, ecx
mov dword [esp + 0x1e4], ecx
lea ecx, [esp + 0x1cc]
push ecx
push eax
push esi
call fcn.005834c3
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
push eax
lea eax, [esp + 0xf0]
push eax
push dword [esp + 0x1dc]
push dword [esp + 0x1e4]
call fcn.005843c2
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x1e4], ebx
je 0x57fe5e
lea eax, [esp + 0x1cc]
push eax
call fcn.0058efa2
pop ecx
xor eax, eax
inc eax
test byte [ebp], al
jne 0x57fe6a
neg esi
jmp 0x57fe6b
inc esi
test esi, esi
mov esi, dword [esp + 0x10]
jg 0x5818e1
jmp 0x57c4a3
push ebp
push edi
call fcn.0054d59a
mov ebx, dword [esp + 0x18]
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x3c], eax
inc ecx
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 0xcc]
inc ecx
cmp dword [ebx + 0xc0], ecx
jg 0x581b0c
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov edi, dword [ebp + 4]
mov dword [esp + 0x30], ecx
mov ecx, eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x10]
shl ecx, 4
mov dword [esp + 0x5c], ecx
mov esi, dword [ecx + eax + 4]
push esi
call fcn.0055b585
lea eax, [esp + 0x34]
push eax
push edi
push esi
call fcn.00537dca
mov ebx, eax
push esi
mov dword [esp + 0x30], ebx
call fcn.0055c2fd
mov ecx, dword [esp + 0x50]
add esp, 0x14
mov esi, dword [esp + 0x30]
push 4
pop eax
mov word [ecx + 0x10], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
test ebx, ebx
jne 0x57e4ae
test esi, esi
je 0x580784
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 4]
mov edx, dword [eax + 0x10]
add edx, dword [esp + 0x5c]
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
jmp 0x57ff32
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x57ff30
mov dword [ecx + 0x14], edi
mov eax, dword [eax]
test eax, eax
jne 0x57ff25
mov eax, dword [edx + 0xc]
mov eax, dword [eax + 0x20]
jmp 0x57ff4b
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x57ff49
mov dword [ecx + 0x2c], edi
mov eax, dword [eax]
test eax, eax
jne 0x57ff3e
mov al, byte [esp + 0x44]
inc al
mov byte [esp + 0x77], al
jmp 0x57c515
mov ecx, dword [ebp + 8]
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [ebp + 4]
xorps xmm0, xmm0
movlpd qword [esp + 0xec], xmm0
push dword [eax + ecx*8 + 4]
call fcn.0055ad37
mov ebx, eax
add esp, 0xc
xor eax, eax
mov dword [esp + 0x1c], ebx
cmp dword [ebp + 0xc], eax
je 0x57c701
mov edx, dword [esp + 0xe4]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0xe8]
adc dword [edi + 0x2c], eax
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x57c701
imul ecx, eax, 0x28
mov eax, dword [esp + 0x20]
add dword [ecx + eax], edx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xe8]
adc dword [ecx + edx + 4], eax
jmp 0x57c701
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
inc ecx
cmp byte [eax], cl
jne 0x57fff9
push dword [eax + 0x2c]
push dword [esp + 0x14]
call fcn.00584f4d
pop ecx
jmp 0x57d2dd
mov eax, dword [eax + 0x2c]
xor ecx, ecx
push ecx
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.0055ad37
add esp, 0xc
jmp 0x57c6fb
push ebp
push edi
call fcn.0054d59a
mov ecx, dword [ebp + 4]
mov esi, eax
push dword [ebp + 0xc]
xor eax, eax
shl ecx, 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
add ecx, dword [eax + 0x10]
lea eax, [esp + 0x3c]
push eax
push dword [ecx + 4]
call fcn.0055b163
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x57e4b2
mov eax, dword [esp + 0x30]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], eax
jmp 0x57c49f
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0xb8], edx
inc byte [ecx + 0x60]
mov al, byte [ecx + 0x5e]
mov esi, dword [ecx + 0x16c]
mov byte [esp + 0x2f], al
cmp dword [ebp + 4], edx
je 0x58008a
mov dword [ecx + 0x16c], edx
mov byte [ecx + 0x5e], dl
lea eax, [esp + 0xb8]
push eax
push edx
push edx
push dword [ebp + 0x10]
push ecx
call fcn.00530eb6
mov ebx, eax
add esp, 0x14
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
dec byte [eax + 0x60]
cmp dword [esp + 0xb8], 0
mov dword [eax + 0x16c], esi
mov esi, dword [esp + 0x10]
mov al, byte [esp + 0x2f]
mov byte [esi + 0x5e], al
jne 0x5800d0
test ebx, ebx
je 0x57c4a3
push dword [esp + 0xb8]
push 0x65a88c
push edi
call fcn.0057c09f
mov esi, dword [esp + 0xc4]
add esp, 0xc
test esi, esi
je 0x581b25
cmp dword [0x6631a8], 0
je 0x581b1d
mov eax, dword [0x666550]
test eax, eax
je 0x580112
push eax
call dword [0x6631f8]
pop ecx
push esi
call dword [0x6631d4]
sub dword [0x6664e8], eax
dec dword [0x66650c]
push esi
call dword [0x6631cc]
mov eax, dword [0x666550]
pop ecx
pop ecx
test eax, eax
je 0x581b25
push eax
call dword [0x663200]
jmp 0x581b24
cmp dword [ebp + 0x10], 0
mov esi, dword [ebp + 4]
mov ebx, dword [esp + 0x10]
jne 0x580197
mov eax, dword [ebx + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00575104
and dword [ebx + 0x18], 0xffffffef
movzx eax, word [ebp + 2]
push eax
lea eax, [edi + 0x7c]
push eax
push esi
push ebx
call fcn.0056a87d
mov esi, dword [esp + 0x24]
mov ebx, eax
xor eax, eax
mov dword [esp + 0x30], ebx
inc eax
add esp, 0x14
or dword [esi + 0x18], eax
and dword [edi + 0x98], 0xfffffffc
jmp 0x58026d
mov ecx, dword [ebx + 0x10]
lea eax, [edi + 0x7c]
push dword [ebp + 0x10]
mov dword [esp + 0x134], esi
add esi, esi
mov dword [esp + 0x130], eax
xor eax, eax
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x13c], eax
mov eax, dword [ecx + esi*8 + 4]
push str.sqlite_master
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x148], eax
push dword [ecx + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.0056cc7e
mov esi, eax
add esp, 0x14
test esi, esi
je 0x581b33
xor eax, eax
inc eax
mov byte [ebx + 0xb1], al
xor eax, eax
push eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], eax
lea eax, [esp + 0x12c]
push eax
push fcn.0056a657
push esi
push ebx
call fcn.00530eb6
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x580255
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x580255
cmp dword [esp + 0x13c], ebx
jne 0x580255
push 0x184e4
call fcn.0055ed8e
mov ebx, eax
pop ecx
mov dword [esp + 0x1c], ebx
push esi
push dword [esp + 0x14]
call fcn.00560283
mov esi, dword [esp + 0x18]
xor eax, eax
pop ecx
pop ecx
mov byte [esi + 0xb1], al
test ebx, ebx
jne 0x581b36
jmp 0x57c4a3
push dword [ebp + 4]
push dword [esp + 0x14]
call fcn.005590b2
pop ecx
pop ecx
jmp 0x57ce56
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
push ecx
push dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
push 8
pop ecx
add eax, ecx
push eax
call fcn.0056a129
push eax
push dword [esp + 0x20]
call fcn.005610f7
mov esi, dword [esp + 0x24]
xor eax, eax
inc eax
add esp, 0x14
or dword [esi + 0x18], eax
jmp 0x57c4a3
push dword [ebp + 0x10]
push dword [ebp + 4]
push dword [esp + 0x18]
call fcn.005794f8
add esp, 0xc
jmp 0x57c49f
push dword [ebp + 0x10]
push dword [ebp + 4]
push dword [esp + 0x18]
call fcn.0057955a
jmp 0x5802d9
imul esi, dword [ebp + 0xc], 0x28
lea eax, [esp + 0xd8]
imul edi, dword [ebp + 4], 0x28
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x10]
push eax
add esi, dword [esp + 0x24]
lea eax, [esp + 0x110]
add edi, dword [esp + 0x24]
push eax
mov eax, dword [esi]
inc eax
push eax
push dword [ebp + 8]
lea eax, [ecx + 4]
movzx ecx, word [ebp + 2]
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
push edx
call fcn.0055bf3e
mov ebx, eax
push edi
mov dword [esp + 0x3c], ebx
call fcn.0058388a
mov eax, dword [esp + 0x12c]
add esp, 0x20
test eax, eax
je 0x58037e
test ebx, ebx
jne 0x581b41
dec eax
cdq
sub dword [esi], eax
mov eax, fcn.00531a22
push eax
sbb dword [esi + 4], edx
xor eax, eax
inc eax
push eax
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0xe8]
push edi
call fcn.00583961
add esp, 0x18
movzx eax, byte [esp + 0x54]
push eax
push edi
call fcn.0057ba87
pop ecx
pop ecx
jmp 0x57e163
imul esi, dword [ebp + 4], 0x28
imul edi, dword [ebp + 8], 0x28
push 0x10
pop eax
add esi, dword [esp + 0x20]
add edi, dword [esp + 0x20]
test byte [esi + 0x10], al
jne 0x5803b8
push esi
call fcn.005838ec
pop ecx
test eax, eax
jne 0x57d8f0
push dword [edi + 4]
push dword [edi]
push dword [esi + 8]
call fcn.00574649
jmp 0x57d7ee
imul esi, dword [ebp + 4], 0x28
push 0x10
pop eax
add esi, dword [esp + 0x20]
test byte [esi + 0x10], al
je 0x580414
lea eax, [esp + 0x120]
push eax
push dword [esi + 8]
call fcn.00574694
pop ecx
pop ecx
test eax, eax
je 0x580414
imul eax, dword [ebp + 0xc], 0x28
push dword [esp + 0x124]
push dword [esp + 0x124]
add eax, dword [esp + 0x28]
push eax
call fcn.00583854
add esp, 0xc
jmp 0x57e167
push esi
call fcn.0058388a
pop ecx
jmp 0x581368
imul esi, dword [ebp + 4], 0x28
imul edi, dword [ebp + 0xc], 0x28
mov eax, dword [ebp + 0x10]
push 0x10
pop ecx
add esi, dword [esp + 0x20]
add edi, dword [esp + 0x20]
mov dword [esp + 0x30], eax
test byte [esi + 0x10], cl
jne 0x580452
push esi
call fcn.005838ec
pop ecx
test eax, eax
jne 0x57d8f0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x580475
push dword [edi + 4]
push dword [edi]
push eax
push dword [esi + 8]
call fcn.005746e8
add esp, 0x10
test eax, eax
jne 0x5818dd
mov eax, dword [esp + 0x30]
test eax, eax
js 0x57c515
jmp 0x5803b8
imul edi, dword [ebp + 0xc], 0x28
xor edx, edx
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x30], esi
add edi, dword [esp + 0x20]
cmp word [ebp + 2], dx
je 0x5804b6
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xd0]
jmp 0x5804b2
cmp dword [eax + 0x18], ecx
je 0x57c515
mov eax, dword [eax + 4]
test eax, eax
jne 0x5804a6
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x581b52
push 0x10
pop eax
test byte [edi + 0x10], al
jne 0x580683
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov eax, dword [esi + 4]
mov dword [esp + 0x5c], ecx
add eax, 7
imul ecx, ecx, 0xa
add ecx, edx
mov eax, eax
test eax, eax
jns 0x580504
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
add eax, 0x58
mov dword [esp + 0x3c], eax
cdq
push edx
push eax
push dword [esp + 0x18]
call fcn.00560434
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57d8f0
push edi
call fcn.00583802
sub ebp, dword [esp + 0x18]
mov eax, 0x1010
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x40]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 8], esi
mov dword [edi + 0x24], 0x5825e9
mov edi, dword [esp + 0x34]
mov dword [esi], eax
pop ecx
mov ecx, dword [esp + 0x5c]
mov dword [esi + 0x3c], ecx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebp
cdq
push 0x14
pop ebp
idiv ebp
mov ebp, dword [esp + 0x18]
mov dword [esi + 0x30], eax
imul ecx, ecx, 0x28
mov eax, dword [ebp + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x38], eax
add ecx, 0x58
mov eax, dword [ebp + 0x60]
add ecx, esi
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x18], eax
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x5805c6
mov edx, dword [esp + 0x10]
xor ebp, ebp
mov dword [eax + 0x14], edx
mov word [eax + 0x10], bp
add eax, 0x28
cmp eax, ecx
jne 0x5805b2
mov ebp, dword [esp + 0x18]
xor edx, edx
mov ecx, dword [esp + 0x10]
xor eax, eax
inc eax
add dword [ebp + 0xd8], eax
mov eax, dword [ebp + 0xd0]
mov dword [esi + 4], eax
mov ecx, dword [ecx + 0x2c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], ecx
mov eax, dword [ebp + 0xe4]
mov dword [esi + 0x28], eax
mov dword [ebp + 0xe4], edx
mov dword [ebp + 0x28], edx
mov dword [ebp + 0x2c], edx
lea edx, [esi + 0x58]
mov dword [ebp + 0x58], edx
mov dword [ebp + 0xd0], esi
mov ecx, dword [esi + 0x3c]
mov dword [ebp + 0x14], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [ebp + 0x18], eax
mov dword [esp + 0x20], edx
add ecx, edx
mov dword [ebp + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x14], ecx
mov eax, dword [edi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
xor eax, eax
push eax
push ecx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [edi]
add esp, 0xc
mov dword [ebp + 0x68], ecx
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
lea ebp, [ecx - 0x14]
mov dword [edi + 0x6c], eax
jmp 0x57e167
mov esi, dword [edi + 8]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
jmp 0x5805c8
push ebp
push edi
call fcn.0054d59a
mov esi, dword [edi + 0xd0]
mov ecx, 0x4000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebp + 4]
imul ecx, ecx, 0x28
add ecx, dword [esi + 0xc]
push ecx
push eax
call fcn.00583b78
jmp 0x57d2cf
mov eax, dword [esi + 0x20]
xor ecx, ecx
and eax, 0x80000
or eax, ecx
mov eax, dword [ebp + 8]
cdq
je 0x5806e9
add dword [esi + 0x208], eax
adc dword [esi + 0x20c], edx
jmp 0x57c4a3
cmp dword [ebp + 4], ecx
je 0x5806ff
add dword [esi + 0x200], eax
adc dword [esi + 0x204], edx
jmp 0x57c4a3
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
jmp 0x57c4a3
xor eax, eax
cmp dword [ebp + 4], eax
je 0x58073c
mov eax, dword [esi + 0x200]
or eax, dword [esi + 0x204]
jne 0x57c4a3
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + 0x208]
or eax, dword [esi + 0x20c]
jmp 0x57d489
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x58071d
mov eax, dword [edi + 0xd0]
test eax, eax
jne 0x58078f
imul edi, dword [ebp + 4], 0x28
add edi, dword [esp + 0x20]
push edi
call fcn.0058367d
imul esi, dword [ebp + 8], 0x28
add esi, dword [esp + 0x24]
push esi
call fcn.0058367d
mov eax, dword [esi]
pop ecx
pop ecx
mov ecx, dword [esi + 4]
cmp dword [edi + 4], ecx
jg 0x580784
jl 0x57f903
cmp dword [edi], eax
jb 0x57f903
mov esi, dword [esp + 0x10]
jmp 0x57cef0
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x58078d
imul edi, dword [ebp + 4], 0x28
add edi, dword [eax + 0xc]
jmp 0x580756
imul ecx, dword [ebp + 4], 0x28
xor edx, edx
add ecx, dword [esp + 0x20]
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x5818f3
jg 0x5807c0
cmp esi, edx
jbe 0x5818f3
mov eax, dword [ebp + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x5818dd
imul esi, dword [ebp + 4], 0x28
imul edi, dword [ebp + 0xc], 0x28
push ebp
push dword [esp + 0x1c]
add esi, dword [esp + 0x28]
add edi, dword [esp + 0x28]
call fcn.0054d59a
mov edx, dword [esi]
pop ecx
pop ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], ecx
test ecx, ecx
jl 0x580860
jg 0x580811
xor ecx, ecx
cmp edx, ecx
jbe 0x580860
mov ecx, dword [edi + 4]
xor edx, edx
mov eax, dword [edi]
cmp ecx, edx
jl 0x580822
jg 0x580833
cmp eax, edx
ja 0x580833
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
push eax
lea eax, [esp + 0xe4]
push eax
call fcn.00557ee2
add esp, 0xc
test eax, eax
jne 0x58085c
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
jmp 0x57f485
mov eax, dword [esp + 0x30]
or dword [eax], 0xffffffff
or dword [eax + 4], 0xffffffff
jmp 0x57c515
imul ecx, dword [ebp + 4], 0x28
add ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x57c49f
xor eax, eax
cmp esi, eax
jl 0x5818dd
jg 0x580897
cmp edx, eax
jbe 0x5818dd
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x5818dd
imul edx, dword [ebp + 4], 0x28
add edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x5808cc
jg 0x5808c1
test eax, eax
je 0x5808cc
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x57d489
movzx eax, word [ebp + 2]
xor ecx, ecx
mov dword [esp + 0x30], eax
push ecx
lea eax, [eax*4 + 0x44]
push eax
push dword [esp + 0x18]
call fcn.00560346
mov esi, eax
add esp, 0xc
test esi, esi
je 0x57d8f4
mov eax, dword [esp + 0x30]
xor edx, edx
add eax, 7
mov dword [esi + 8], edx
push 0x14
lea ecx, [esi + eax*4]
xor eax, eax
inc eax
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], edx
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
mov eax, ebp
sub eax, dword [esp + 0x18]
cdq
pop ecx
idiv ecx
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
xor eax, eax
mov byte [esi + 0x19], al
mov dword [esi + 0x14], eax
mov al, byte [esp + 0x54]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x30]
mov byte [esi + 0x1a], al
mov word [ebp], 0xf1a3
mov dword [ebp + 0x10], esi
imul edx, dword [ebp + 0xc], 0x28
mov esi, dword [ebp + 0x10]
add edx, dword [esp + 0x20]
mov dword [esp + 0x3c], edx
cmp dword [esi + 8], edx
je 0x58099b
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edx
js 0x58099b
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x58097e
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebp + 4], 0
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x5809b6
call dword [ecx + 0x1c]
jmp 0x5809b9
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x580784
jle 0x5809e6
push dword [esi]
call fcn.00533181
push eax
push 0x65a88c
push edi
call fcn.0057c09f
mov ebx, dword [esi + 0x14]
add esp, 0x10
mov dword [esp + 0x1c], ebx
cmp byte [esi + 0x19], 0
je 0x580a0d
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x580a08
xor ecx, ecx
imul eax, eax, 0x28
push ecx
inc ecx
push ecx
add eax, dword [esp + 0x28]
push eax
call fcn.00583854
add esp, 0xc
xor eax, eax
mov byte [esi + 0x19], al
push dword [esi]
call fcn.00583802
mov eax, dword [esi]
pop ecx
xor ecx, ecx
inc ecx
mov word [eax + 0x10], cx
xor eax, eax
mov dword [esi + 0x14], eax
jmp 0x57ce5c
imul edi, dword [ebp + 4], 0x28
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
add edi, ecx
test eax, eax
je 0x580a9e
imul esi, eax, 0x28
xor eax, eax
push 0x20
push eax
lea eax, [esp + 0xf4]
push eax
add esi, ecx
call sub.VCRUNTIME140.dll_memset
push esi
call fcn.0058388a
mov eax, dword [edi + 0x14]
mov dword [esp + 0xfc], esi
mov dword [esp + 0x104], edi
mov dword [esp + 0x100], ebx
mov al, byte [eax + 0x54]
mov byte [esp + 0x114], al
lea eax, [esp + 0xfc]
push eax
call dword [ebx + 0x18]
imul edi, dword [ebp + 0xc], 0x28
add esp, 0x14
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0x10]
add edi, dword [esp + 0x20]
jmp 0x580aa9
push ebx
push edi
call fcn.005833c4
pop ecx
pop ecx
mov ebx, eax
mov dword [esp + 0x1c], ebx
test ebx, ebx
jne 0x581b6d
movzx eax, byte [esp + 0x54]
push eax
push edi
call fcn.0057ba87
pop ecx
pop ecx
jmp 0x57cef0
or dword [esp + 0x2e4], 0xffffffff
xor eax, eax
or dword [esp + 0x2e0], 0xffffffff
mov dword [esp + 0x2dc], eax
lea eax, [esp + 0x2e4]
push eax
lea eax, [esp + 0x2e4]
push eax
push dword [ebp + 8]
push dword [ebp + 4]
push dword [esp + 0x20]
call fcn.0055d66a
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x580b2c
push 5
pop eax
cmp ebx, eax
jne 0x57e4b2
xor eax, eax
xor ecx, ecx
mov ebx, eax
inc ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2dc], ecx
jmp 0x580b2e
xor eax, eax
imul esi, dword [ebp + 0xc], 0x28
mov edi, eax
add esi, dword [esp + 0x20]
mov eax, dword [esp + edi*4 + 0x2dc]
cdq
push edx
push eax
push esi
call fcn.00583854
add esp, 0xc
add esi, 0x28
inc edi
cmp edi, 3
jl 0x580b38
jmp 0x57c515
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
mov dword [esp + 0x38], eax
add edx, edx
mov eax, dword [esp + 0x18]
cmp dword [ebp + 0xc], 0xffffffff
pop ecx
pop ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x3c], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
mov esi, ecx
mov dword [esp + 0x24], ecx
cmovne esi, dword [ebp + 0xc]
cmp byte [edi + 0x11], 3
jae 0x580bac
mov eax, dword [edi + 0x44]
xor edx, edx
cmp dword [eax], edx
je 0x580bae
cmp dword [edi + 0x54], edx
jg 0x580bac
jl 0x580bae
cmp dword [edi + 0x50], edx
jbe 0x580bae
mov esi, ecx
xor edx, edx
inc edx
push edx
push edi
call fcn.0056e006
add esp, 8
cmp esi, 5
jne 0x580be8
push eax
call fcn.00578223
pop ecx
test eax, eax
je 0x580bd6
push edi
call fcn.0056ef7f
pop ecx
test eax, eax
jne 0x580be1
mov eax, dword [esp + 0x24]
mov esi, eax
jmp 0x580c6c
mov ecx, dword [esp + 0x24]
xor edx, edx
inc edx
cmp esi, ecx
je 0x580c68
push 5
pop eax
cmp ecx, eax
je 0x580bf7
cmp esi, eax
jne 0x580c68
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x55], 0
je 0x581b8b
cmp dword [eax + 0xc0], edx
jg 0x581b8b
cmp ecx, 5
jne 0x580c34
push eax
push edi
call fcn.0056dd29
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x580c72
push esi
push edi
call fcn.0056eb08
pop ecx
pop ecx
jmp 0x580c4b
push 4
pop eax
cmp ecx, eax
jne 0x580c47
push 2
pop eax
push eax
push edi
call fcn.0056eb08
pop ecx
pop ecx
test ebx, ebx
jne 0x580c72
push 5
pop ecx
xor eax, eax
cmp esi, ecx
sete al
inc eax
push eax
push dword [esp + 0x40]
call fcn.0055ceae
pop ecx
mov ebx, eax
pop ecx
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x24]
test ebx, ebx
je 0x580c78
jmp 0x580c76
mov eax, dword [esp + 0x24]
mov esi, eax
push esi
push edi
call fcn.0056eb08
mov esi, dword [esp + 0x38]
pop ecx
pop ecx
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x580c97
xor eax, eax
jmp 0x580c9e
mov eax, dword [eax*4 + 0x657e98]
push eax
mov dword [esi + 8], eax
call fcn.00578223
mov dword [esi + 0xc], eax
xor eax, eax
inc eax
mov byte [esi + 0x12], al
movzx eax, byte [esp + 0x58]
push eax
push esi
call fcn.0057ba87
add esp, 0xc
jmp 0x57f25b
mov eax, dword [ebp + 8]
test eax, eax
je 0x580cd4
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
jmp 0x580cd6
xor eax, eax
push eax
push dword [ebp + 4]
lea eax, [edi + 0x7c]
push dword [esp + 0x18]
push eax
call fcn.00574bb9
jmp 0x57f629
mov ecx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.0055b683
mov ebx, eax
mov dword [esp + 0x20], ebx
pop ecx
test ebx, ebx
je 0x57cef0
cmp ebx, 0x65
jne 0x57e4b2
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ebx
jmp 0x5818e1
xor eax, eax
cmp dword [ebp + 4], eax
jne 0x580d3a
push dword [ebp + 8]
push dword [esp + 0x14]
call fcn.0056223e
jmp 0x57fff3
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edi + 0x98], ecx
jmp 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
jmp 0x57c4a3
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
jmp 0x57c4a3
mov al, byte [ebp + 0xc]
mov byte [esp + 0xc4], al
test al, al
jne 0x580da4
mov eax, dword [esp + 0x10]
push 4
pop ecx
mov eax, dword [eax + 0x24]
and eax, ecx
xor ecx, ecx
cmp eax, ecx
jne 0x57c49f
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 4]
push dword [esp + 0xc4]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [ebp + 8]
push dword [eax + ecx*8 + 4]
call fcn.0055c327
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x57c49f
cmp bl, 6
jne 0x57e4b2
push dword [ebp + 0x10]
push str.database_table_is_locked:__s
jmp 0x581ba7
mov esi, dword [ebp + 0x10]
push esi
push dword [esp + 0x14]
call fcn.00585555
mov ebx, eax
mov dword [esp + 0x24], ebx
pop ecx
pop ecx
test esi, esi
je 0x57ce5c
push dword [esi + 8]
push edi
call fcn.00585c0c
pop ecx
pop ecx
jmp 0x57ce5c
xor eax, eax
push 0x28
push eax
lea eax, [esp + 0x294]
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2ac], eax
imul eax, dword [ebp + 8], 0x28
add eax, dword [esp + 0x2c]
push eax
lea eax, [esp + 0x29c]
push eax
call fcn.00583305
mov ebx, eax
xor eax, eax
inc eax
mov dword [esp + 0x30], ebx
push eax
lea eax, [esp + 0x2a4]
push eax
call fcn.0057b634
add esp, 0x1c
test eax, eax
je 0x580e82
lea ecx, [edi + 0x7c]
push ecx
push eax
push dword [ebp + 4]
push dword [esp + 0x1c]
call fcn.00585751
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x1c], ebx
lea eax, [esp + 0x28c]
push eax
call fcn.00583802
jmp 0x580e11
mov ecx, dword [esp + 0x10]
inc dword [ecx + 0xcc]
push dword [ebp + 0x10]
push dword [ebp + 4]
push ecx
call fcn.00585809
mov esi, dword [esp + 0x1c]
add esp, 0xc
dec dword [esi + 0xcc]
jmp 0x57c6fb
xor eax, eax
mov dword [esp + 0xbc], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x581bc9
mov edi, dword [esi]
test edi, edi
je 0x581bc5
lea eax, [esp + 0xbc]
push eax
push esi
call dword [edi + 0x18]
push esi
push dword [esp + 0x24]
mov ebx, eax
mov dword [esp + 0x2c], ebx
call fcn.00585c0c
add esp, 0x10
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0xbc]
push 2
mov dword [eax], esi
pop eax
push eax
xor eax, eax
push eax
push dword [ebp + 4]
push dword [esp + 0x24]
call fcn.00534477
add esp, 0x10
test eax, eax
je 0x581bb5
mov ecx, dword [esp + 0xbc]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x57c515
imul edi, dword [ebp + 8], 0x28
xor eax, eax
mov dword [esp + 0xc0], eax
add edi, dword [esp + 0x20]
push edi
call fcn.0058388a
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x3c], ecx
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x57cef0
mov edx, dword [eax + 8]
mov esi, dword [edx]
inc dword [eax + 0xc]
lea eax, [esp + 0xc0]
push eax
push dword [ebp + 0xc]
mov eax, dword [esp + 0x18]
push dword [ecx]
mov ecx, dword [ebp + 4]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
push edx
call dword [esi + 0x60]
mov ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x30], ebx
push dword [eax + 0x34]
call fcn.00585e71
mov esi, dword [esp + 0xd8]
add esp, 0x18
test ebx, ebx
jne 0x581bd0
test esi, esi
je 0x580784
mov eax, dword [edi + 0x14]
test eax, eax
je 0x580fc8
mov eax, dword [eax + 0x78]
mov dword [esp + 0x30], eax
jmp 0x580fd0
mov dword [esp + 0x30], 0x3b9aca00
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
pop ecx
mov ecx, eax
mov dword [esp + 0x5c], 0x202
mov eax, dword [esp + 0x30]
cdq
mov dword [esp + 0x44], ecx
cmp dword [esp + 0xd4], edx
jl 0x581083
jg 0x581001
cmp ecx, eax
jbe 0x581083
mov eax, fcn.00531a22
cmp eax, 0xffffffff
je 0x58106e
cmp eax, fcn.0056d46e
jne 0x58101e
push esi
push dword [edi + 0x14]
call fcn.00560283
pop ecx
jmp 0x58106d
cmp dword [0x6631a8], 0
je 0x581066
mov eax, dword [0x666550]
test eax, eax
je 0x581038
push eax
call dword [0x6631f8]
pop ecx
push esi
call dword [0x6631d4]
sub dword [0x6664e8], eax
dec dword [0x66650c]
push esi
call dword [0x6631cc]
mov eax, dword [0x666550]
pop ecx
pop ecx
test eax, eax
je 0x58106e
push eax
call dword [0x663200]
jmp 0x58106d
push esi
call dword [0x6631cc]
pop ecx
push edi
call fcn.0058388a
push 0x12
push dword [edi + 0x14]
call fcn.00561fb3
jmp 0x57d7ee
mov eax, fcn.00531a22
cmp eax, 0xffffffff
jne 0x5810ce
mov eax, ecx
xor ecx, ecx
inc ecx
add eax, ecx
push 0
pop edx
mov ecx, edx
mov dword [esp + 0x3c], eax
adc ecx, edx
cmp ecx, edx
ja 0x5810ab
cmp eax, 0x20
ja 0x5810ab
push 0x20
pop eax
push eax
push edi
call fcn.005832dd
pop ecx
pop ecx
test eax, eax
jne 0x580784
push dword [esp + 0x3c]
push esi
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x581102
push edi
call fcn.00583802
mov eax, fcn.00531a22
mov dword [edi + 8], esi
pop ecx
cmp eax, fcn.0056d46e
jne 0x5810f7
push esi
push dword [edi + 0x14]
mov dword [edi + 0x20], esi
call fcn.005603f9
pop ecx
pop ecx
mov dword [edi + 0x18], eax
jmp 0x581102
mov dword [edi + 0x24], eax
mov dword [esp + 0x5c], 0x1202
mov eax, dword [esp + 0x44]
and eax, 0x7fffffff
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x5c]
mov word [edi + 0x10], ax
xor eax, eax
inc eax
mov byte [edi + 0x12], al
jmp 0x57c515
mov eax, dword [edi + 0x60]
mov ecx, dword [ebp + 4]
mov edi, dword [eax + ecx*4]
xor eax, eax
push eax
push 8
pop eax
push eax
call fcn.005319be
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x57d8f0
mov ecx, dword [edi + 0x2c]
mov edi, dword [esp + 0x18]
mov dword [esi], ecx
imul ecx, dword [ebp + 0xc], 0x28
push ebp
push edi
add ecx, dword [esp + 0x28]
mov dword [esi + 4], ecx
call fcn.0054d59a
push 0x5854c7
push str.ValueList
xor ecx, ecx
inc ecx
push esi
push eax
mov word [eax + 0x10], cx
call fcn.005838a9
add esp, 0x18
jmp 0x57c49f
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul edx, dword [ebp + 0xc], 0x28
mov edi, dword [edi + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x44], eax
add edx, dword [esp + 0x20]
mov esi, dword [eax + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [esp + 0x30], eax
mov ebx, dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x5c], ebx
test ecx, ecx
jle 0x5811c1
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x5811b6
push edi
push ecx
push dword [ebp + 0x10]
push dword [esp + 0x48]
push esi
call dword [ebx + 0x20]
push dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov ebx, eax
push edi
mov dword [esp + 0x38], ebx
call fcn.00585c0c
add esp, 0x1c
test ebx, ebx
jne 0x57e4b2
mov eax, dword [esp + 0x5c]
push esi
call dword [eax + 0x28]
mov esi, dword [esp + 0x14]
xor edx, edx
pop ecx
mov ecx, dword [esp + 0x44]
mov byte [ecx + 2], dl
test eax, eax
je 0x57c4a3
jmp 0x5818e1
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
imul esi, dword [ebp + 0xc], 0x28
mov edi, dword [eax + ecx*4]
add esi, dword [esp + 0x20]
cmp byte [edi + 2], 0
je 0x58122d
push esi
jmp 0x57c73a
mov eax, dword [edi + 0x2c]
push 0x20
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov ebx, dword [eax]
xor eax, eax
push eax
lea eax, [esp + 0x1b4]
push eax
call sub.VCRUNTIME140.dll_memset
mov al, byte [esp + 0x60]
xor ecx, ecx
mov byte [esp + 0x1d0], al
inc ecx
xor eax, eax
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x2c8], eax
add esp, 0xc
lea eax, [esp + 0x2b4]
mov dword [esp + 0x2b8], 0x1000000
mov dword [esp + 0x1b0], eax
test byte [ebp + 2], cl
je 0x58129b
push esi
call fcn.0058388a
xor eax, eax
mov dword [esi], eax
mov eax, 0x401
pop ecx
jmp 0x5812ad
mov ax, word [esi + 0x10]
mov edx, 0xf241
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [esp + 0x1ac]
push dword [ebp + 8]
push eax
push dword [edi + 0x2c]
call dword [ebx + 0x2c]
push dword [esp + 0x48]
mov edi, dword [esp + 0x28]
mov ebx, eax
push edi
mov dword [esp + 0x30], ebx
call fcn.00585c0c
add esp, 0x14
cmp dword [esp + 0x1c0], 0
jle 0x581303
push esi
call fcn.00533181
push eax
push 0x65a88c
push edi
call fcn.0057c09f
mov ebx, dword [esp + 0x1d0]
add esp, 0x10
mov dword [esp + 0x1c], ebx
movzx eax, byte [esp + 0x54]
push eax
push esi
call fcn.0057ba87
jmp 0x580e10
mov ecx, dword [ebp + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x57cef0
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x40], ecx
call dword [ecx + 0x24]
push esi
push dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x28], ebx
call fcn.00585c0c
add esp, 0xc
test ebx, ebx
jne 0x57e4ae
mov eax, dword [esp + 0x3c]
push dword [edi + 0x2c]
call dword [eax + 0x28]
pop ecx
test eax, eax
jne 0x57e163
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x14]
add ebp, 0xffffffec
add ebp, eax
xor ecx, ecx
jmp 0x57e16d
mov ecx, dword [esp + 0x10]
mov edx, 0x4000000
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x20], edx
and eax, edx
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp + 0x10]
imul esi, dword [ebp + 4], 0x28
mov edi, dword [eax + 8]
xor eax, eax
inc eax
add esi, dword [esp + 0x20]
push eax
push esi
call fcn.0057ba87
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x57e4ae
push dword [esi + 8]
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
cmp dword [esp + 0x44], 0
mov ebx, eax
pop ecx
pop ecx
mov dword [esp + 0x1c], ebx
jne 0x5813e8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
push edi
mov edi, dword [esp + 0x1c]
push edi
call fcn.00585c0c
jmp 0x57e87d
cmp byte [esi + 0x57], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x118], xmm0
jne 0x57d8f8
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x581bc9
mov edi, dword [esi]
test edi, edi
je 0x581bc5
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp dword [edi + 0x34], ecx
je 0x57c515
mov eax, dword [esp + 0x10]
mov al, byte [eax + 0x5c]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x5c]
imul eax, dword [ebp + 0xc], 0x28
add eax, dword [esp + 0x20]
test edx, edx
jle 0x58145d
mov dword [ebx + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x581452
mov ecx, dword [esp + 0x10]
mov al, byte [ebp + 2]
mov byte [ecx + 0x5c], al
lea eax, [esp + 0x118]
push eax
push ebx
push edx
push esi
call dword [edi + 0x34]
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov al, byte [esp + 0x3f]
mov edi, dword [esp + 0x28]
push esi
push edi
mov dword [esp + 0x34], ebx
mov byte [ecx + 0x5c], al
call fcn.00585c0c
add esp, 0x18
test ebx, ebx
jne 0x5814b9
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp dword [ebp + 4], ecx
je 0x5814ea
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x5814e8
cmp bl, 0x13
jne 0x5814e4
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x5814e4
movzx ecx, word [ebp + 2]
push 4
pop eax
cmp cx, ax
jne 0x581c47
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ebx
jmp 0x57c49f
mov esi, dword [esp + 0x10]
xor ecx, ecx
xor eax, eax
inc eax
add dword [edi + 0x28], eax
adc dword [edi + 0x2c], ecx
jmp 0x57c701
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
add edx, edx
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
jmp 0x57c49f
push ebp
push edi
call fcn.0054d59a
mov edx, dword [ebp + 4]
mov dword [esp + 0x44], eax
add edx, edx
mov eax, dword [esp + 0x18]
pop ecx
pop ecx
mov ecx, dword [eax + 0x10]
xor eax, eax
mov esi, eax
mov edi, dword [ecx + edx*8 + 4]
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x581556
mov eax, dword [edi + 4]
mov esi, dword [eax + 0x30]
cmp esi, ecx
cmovb esi, ecx
push edi
call fcn.0055b585
mov eax, dword [edi + 4]
pop ecx
mov eax, dword [eax]
test esi, esi
je 0x58156c
mov dword [eax + 0xa0], esi
mov esi, dword [eax + 0xa0]
push edi
call fcn.0055c2fd
mov eax, dword [esp + 0x40]
pop ecx
xor ecx, ecx
mov dword [eax], esi
mov dword [eax + 4], ecx
jmp 0x57c515
imul esi, dword [ebp + 0xc], 0x28
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x5c], edi
add esi, dword [esp + 0x20]
cmp dword [edi], esi
je 0x5815d7
mov eax, dword [esp + 0x18]
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 0xc], eax
mov al, byte [esp + 0x54]
mov dword [edi], esi
mov byte [edi + 0x18], al
js 0x5815d7
lea edx, [ecx + 7]
push 4
lea edx, [edi + edx*4]
pop ebx
mov eax, dword [ebp + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x20]
mov dword [edx], eax
sub edx, ebx
sub ecx, 1
jns 0x5815be
mov ebx, dword [esp + 0x1c]
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [esi + 0x10], ax
lea eax, [edi + 0x1c]
mov ecx, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
push edi
call dword [ecx + 0x10]
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x580784
jle 0x58162c
push esi
call fcn.00533181
push eax
push 0x65a88c
push dword [esp + 0x24]
call fcn.0057c09f
mov ebx, dword [edi + 0x14]
add esp, 0x10
mov dword [esp + 0x1c], ebx
mov eax, dword [edi + 0x10]
mov edx, dword [ebp + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
add eax, 0xe4
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], eax
mov esi, dword [eax]
test esi, esi
je 0x5816b0
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x10]
test edi, edi
js 0x58167b
cmp dword [esi], edi
jne 0x581672
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x581672
cmp ecx, 0x1f
jg 0x58167b
xor eax, eax
inc eax
shl eax, cl
test edx, eax
je 0x58167b
lea eax, [esi + 0x10]
mov dword [esp + 0x44], eax
jmp 0x5816a2
mov eax, dword [esi + 0xc]
test eax, eax
je 0x581688
push dword [esi + 8]
call eax
pop ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 0x10]
push esi
push ebx
mov dword [ecx], eax
call fcn.00560283
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
pop ecx
pop ecx
mov esi, dword [eax]
test esi, esi
jne 0x581655
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x5c]
xor eax, eax
mov dword [edi + 0x14], eax
jmp 0x57f25b
imul eax, dword [ebp + 4], 0x28
mov ecx, 0xf7ff
add eax, dword [esp + 0x20]
and word [eax + 0x10], cx
jmp 0x57c4a3
imul eax, dword [ebp + 4], 0x28
mov edx, 0x800
imul ecx, dword [ebp + 8], 0x28
add eax, dword [esp + 0x20]
add ecx, dword [esp + 0x20]
test word [eax + 0x10], dx
je 0x5816f8
movzx eax, byte [eax + 0x13]
cdq
push edx
push eax
push ecx
jmp 0x57c6e9
push ecx
jmp 0x57d470
imul eax, dword [ebp + 4], 0x28
xor edx, edx
imul ecx, dword [ebp + 8], 0x28
inc edx
add eax, dword [esp + 0x20]
add ecx, dword [esp + 0x20]
test byte [eax + 0x10], dl
je 0x581724
mov eax, 0xf7ff
and word [ecx + 0x10], ax
jmp 0x57c4a3
mov edx, 0x800
or word [ecx + 0x10], dx
mov al, byte [eax]
mov byte [ecx + 0x13], al
jmp 0x57c4a3
imul edi, dword [ebp + 4], 0x28
mov eax, dword [esp + 0x20]
push ebp
push eax
add edi, eax
call fcn.0054134e
pop ecx
mov esi, eax
mov eax, dword [edi + 0xc]
pop ecx
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0059d380
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [edi + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x57c515
imul ebx, dword [ebp + 4], 0x28
mov eax, dword [esp + 0x20]
push ebp
push eax
add ebx, eax
call fcn.0054134e
pop ecx
mov esi, eax
mov eax, dword [ebx + 0xc]
pop ecx
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0059d380
mov ecx, dword [ebx + 8]
mov edi, eax
mov ebx, dword [esp + 0x1c]
mov esi, edi
shrd esi, edx, 3
xor eax, eax
and edi, 7
inc eax
movsx edx, byte [esi + ecx]
mov ecx, edi
mov esi, dword [esp + 0x10]
shl eax, cl
test eax, edx
jne 0x5817d4
mov eax, dword [esp + 0x18]
inc dword [eax + 0xc4]
jmp 0x5818e1
mov edi, dword [esp + 0x18]
inc dword [edi + 0xc0]
jmp 0x57c4a3
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x581897
cmp byte [edi + 0x95], 0xfe
je 0x581897
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x581815
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x581897
push eax
test cl, 0x40
je 0x58183f
push edi
call fcn.005821c4
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
push dword [eax + 0xdc]
call dword [eax + 0xd8]
push esi
call fcn.00531a22
add esp, 0x14
jmp 0x581897
mov ecx, dword [esp + 0x14]
xor edx, edx
inc edx
cmp dword [ecx + 0xc8], edx
jle 0x581886
push str.____s
push ecx
call fcn.0056cc7e
mov esi, eax
xor ecx, ecx
mov eax, dword [esp + 0x1c]
inc ecx
push esi
push edi
push dword [eax + 0xdc]
push ecx
call dword [eax + 0xd8]
add esp, 0x1c
test esi, esi
je 0x581897
push esi
push dword [esp + 0x14]
call fcn.00560283
pop ecx
pop ecx
jmp 0x581897
push edi
push dword [ecx + 0xdc]
push edx
call dword [ecx + 0xd8]
add esp, 0x10
mov eax, dword [ebp + 4]
cmp eax, dword [0x6632b4]
jl 0x5818d3
cmp byte [ebp], 0xb8
je 0x57c49f
xor eax, eax
inc eax
mov edx, eax
cmp dword [edi + 0x6c], eax
jle 0x5818d1
push 0x14
pop esi
mov eax, esi
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x5818c9
and dword [eax + ecx + 4], 0
inc edx
add eax, esi
cmp edx, dword [edi + 0x6c]
jl 0x5818bb
xor eax, eax
inc eax
mov dword [ebp + 4], eax
inc dword [edi + 0xbc]
mov esi, dword [esp + 0x10]
imul eax, dword [ebp + 8], 0x14
mov ebp, dword [esp + 0x14]
add ebp, 0xffffffec
add ebp, eax
jmp 0x57cef0
mov edi, dword [esp + 0x18]
jmp 0x57c2c7
mov ecx, dword [ebp + 4]
mov dword [edi + 0x24], ecx
mov al, byte [ebp + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x58198a
movzx eax, word [ebp + 2]
test ax, ax
je 0x58194f
push dword [eax*4 + 0x657f90]
push str._s_constraint_failed
push edi
call fcn.0057c09f
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x581960
push dword [ebp + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [esp + 0x1c]
call fcn.0056cc7e
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x581960
push dword [ebp + 0x10]
push 0x65a88c
push edi
call fcn.0057c09f
add esp, 0xc
push dword [edi + 0x7c]
mov esi, dword [esp + 0x18]
mov eax, ebp
push dword [edi + 0xc8]
sub eax, esi
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebp + 4]
call fcn.0052882c
add esp, 0x14
jmp 0x58198e
mov esi, dword [esp + 0x14]
push edi
call fcn.0058276e
mov edx, dword [esp + 0x14]
mov ebx, eax
pop ecx
push 5
pop eax
cmp ebx, eax
jne 0x5819aa
mov dword [edi + 0x24], eax
jmp 0x57e5a5
push 0x65
pop ebx
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne ebx, eax
jmp 0x57e5a5
push 0x175fd
call fcn.0055ed8e
mov edi, dword [esp + 0x1c]
mov ebx, eax
pop ecx
jmp 0x57e4b6
mov eax, dword [esp + 0x24]
and edx, 0x3f
mov ecx, dword [esp + 0x3c]
add eax, eax
mov edi, dword [esp + 0x18]
push dword [ecx + eax*8]
mov eax, dword [esp + 0x34]
push dword [eax]
movzx eax, byte [edx + 0x657378]
push dword [esi*4 + 0x663398]
push dword [eax*4 + 0x663c7c]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0057c09f
add esp, 0x18
mov ebx, 0xc13
jmp 0x57e4b2
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x1c]
push edi
call fcn.0057c09f
pop ecx
pop ecx
push 5
jmp 0x57cde5
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x581a1f
mov esi, dword [esp + 0x14]
mov eax, ebp
sub eax, esi
push 0x14
cdq
pop ebx
idiv ebx
mov dword [edi + 0x20], eax
xor eax, eax
mov edx, dword [esp + 0x10]
mov ebx, ecx
mov byte [edx + 0x55], al
mov dword [edi + 0x24], ecx
jmp 0x57e5a5
mov esi, dword [esp + 0x14]
and edx, 0x100000
xor eax, eax
or edx, eax
je 0x581a77
push 8
pop eax
mov ebx, eax
jmp 0x57e4b6
push 0xb
pop ebx
jmp 0x57e4b6
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp bl, 5
jne 0x57e4b6
mov eax, ebp
mov dword [edi + 0x24], ebx
sub eax, esi
push 0x14
cdq
pop ecx
idiv ecx
mov dword [edi + 0x20], eax
jmp 0x57e5a1
mov ebx, 0x204
jmp 0x57e4b2
push dword [esi + 0x10]
call fcn.0055ad96
pop ecx
jmp 0x57e4ae
push 0xd
pop ebx
jmp 0x57e4ae
mov edi, dword [esp + 0x18]
push str.string_or_blob_too_big
push edi
call fcn.0057c09f
pop ecx
pop ecx
push 0x12
pop ebx
jmp 0x57e4b2
push str.index_corruption
push 0x182ff
push 0x30b
call fcn.00573f4b
add esp, 0xc
mov ebx, eax
jmp 0x57e4ae
push 0x183cc
call fcn.0055ed8e
pop ecx
jmp 0x57cde6
push 6
pop ebx
push 2
pop eax
mov byte [edi + 0x94], al
jmp 0x57e4b2
push esi
call dword [0x6631cc]
pop ecx
cmp ebx, 7
je 0x57d8f4
jmp 0x57e4b2
push 7
pop ebx
push dword [esp + 0x10]
call fcn.00573fdd
jmp 0x581b24
push dword [esp + 0xd8]
call fcn.00531a22
jmp 0x581ab7
mov edi, dword [esp + 0x18]
xor eax, eax
push str.too_many_levels_of_trigger_recursion
push edi
lea ebx, [eax + 1]
call fcn.0057c09f
pop ecx
pop ecx
jmp 0x57e4b2
push edi
call fcn.00533181
mov edi, dword [esp + 0x1c]
push eax
push 0x65a88c
push edi
call fcn.0057c09f
add esp, 0x10
jmp 0x57e4b2
mov edi, dword [esp + 0x18]
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
mov ebx, edx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0057c09f
add esp, 0xc
jmp 0x57e4b2
push dword [esp + 0xbc]
call dword [edi + 0x1c]
pop ecx
jmp 0x57d8f0
mov edi, dword [esp + 0x18]
push 6
jmp 0x581ad8
test esi, esi
je 0x57e4ae
cmp dword [0x6631a8], 0
je 0x581c27
mov eax, dword [0x666550]
test eax, eax
je 0x581bf2
push eax
call dword [0x6631f8]
pop ecx
push esi
call dword [0x6631d4]
sub dword [0x6664e8], eax
dec dword [0x66650c]
push esi
call dword [0x6631cc]
mov eax, dword [0x666550]
pop ecx
pop ecx
test eax, eax
je 0x57e4ae
push eax
call dword [0x663200]
jmp 0x581ab7
push esi
call dword [0x6631cc]
jmp 0x581ab7
or dword [esp + 0x7c], 0xffffffff
or dword [esp + 0x80], 0xffffffff
push 9
jmp 0x581ad8
push 5
pop edx
movzx eax, cl
cmp cx, dx
push 2
pop ecx
cmove eax, ecx
jmp 0x581b12
mov eax, dword [edi + 0x1c]
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov dword [edi + 0x1c], eax
imul eax, dword [ebp + 4], 0x28
add eax, dword [esp + 0x20]
mov dword [edi + 0x78], eax
cmp byte [esi + 0x57], 0
jne 0x57d8f8
push 4
pop ecx
test byte [esi + 0x5e], cl
je 0x581c9c
xor eax, eax
push eax
push edi
push dword [esi + 0xdc]
push ecx
call dword [esi + 0xd8]
add esp, 0x10
mov esi, dword [esp + 0x14]
mov eax, ebp
sub eax, esi
push 0x14
pop ecx
cdq
idiv ecx
push 0x64
inc eax
mov dword [edi + 0x20], eax
pop ebx
jmp 0x57e5a1
mov ecx, dword [esp + 0x10]
mov ebx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov dword [esp + 0xc4], ebx
lea esi, [ecx + 0x55]
movzx eax, byte [esi]
cmp ebx, eax
je 0x581d6c
test edx, edx
je 0x581ceb
push 0x204
push ecx
call fcn.00574503
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x581d22
test ebx, ebx
je 0x581d03
xor eax, eax
cmp dword [ecx + 0xc4], eax
jle 0x581d03
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x581a23
xor eax, eax
inc eax
push eax
push edi
call fcn.0057bb7e
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x57e59d
mov ebx, dword [esp + 0xc4]
mov al, bl
push edi
mov byte [esi], al
call fcn.0058276e
pop ecx
push 5
pop ecx
cmp eax, ecx
jne 0x581d4f
mov esi, dword [esp + 0x14]
mov eax, ebp
sub eax, esi
cdq
idiv dword [esp + 0xd0]
mov dword [edi + 0x20], eax
xor eax, eax
inc eax
sub al, bl
jmp 0x581a4c
push dword [esp + 0x10]
call fcn.0055d88c
pop ecx
push 0x65
pop ebx
xor eax, eax
cmp dword [edi + 0x24], eax
push 1
pop eax
cmovne ebx, eax
jmp 0x57e59d
test edx, edx
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test ebx, ebx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.0057c09f
pop ecx
pop ecx
jmp 0x57e317
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x94], eax
jmp 0x581c40
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x94], eax
jmp 0x57d8f8
cmp ebx, 0x210a
jne 0x581dea
push 0x18cd0
call fcn.0055ed8e
pop ecx
mov ebx, eax
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x581e0e
cmp ebx, 0xc0a
je 0x581e0e
push ebx
call fcn.00561e8a
push eax
push 0x65a88c
push edi
call fcn.0057c09f
add esp, 0x10
push ebx
push dword [esp + 0x14]
mov dword [edi + 0x24], ebx
call fcn.005784de
push dword [edi + 0x7c]
mov eax, ebp
push dword [edi + 0xc8]
sub eax, esi
push 0x14
pop ecx
cdq
idiv ecx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.0052882c
add esp, 0x1c
push 2
pop ecx
cmp byte [edi + 0x97], cl
jne 0x581e52
push edi
call fcn.0058276e
pop ecx
push 2
pop ecx
cmp ebx, 0xc0a
jne 0x581e8b
push dword [esp + 0x10]
call fcn.0056d4a3
pop ecx
mov edx, dword [esp + 0x10]
xor eax, eax
lea ebx, [eax + 1]
mov al, byte [esp + 0x77]
test al, al
je 0x57e5a5
movzx eax, al
dec eax
push eax
push edx
call fcn.0057403f
pop ecx
pop ecx
jmp 0x57e5a1
cmp ebx, 0xb
jne 0x581e64
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x55], 0
jne 0x581e68
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], ecx
mov dword [edx + 0x20], eax
jmp 0x581e68
mov ecx, dword [esp + 0x94]
xor eax, eax
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], eax
je 0x581ec3
push edi
call fcn.00582d77
pop ecx
mov ecx, dword [esp + 0x2e8]
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0059d866
add esp, 0x2dc
ret