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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x100d20c0]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
mov esi, ecx
xorps xmm0, xmm0
xor ecx, ecx
mov dword [esp + 8], esi
push edi
mov edi, ecx
mov byte [esp + 0x6f], cl
mov eax, dword [esi + 0x68]
mov ebx, eax
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x88], ecx
mov ecx, esi
mov dword [esp + 0x10], edi
mov al, byte [eax + 0x4e]
mov byte [esp + 0x54], al
mov eax, dword [esi + 0x58]
movlpd qword [esp + 0x98], xmm0
mov dword [esp + 0x18], eax
call fcn.1004f0c2
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [eax + 0x158], ecx
je 0x100539f5
mov ecx, dword [eax + 0x160]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ecx
mov eax, dword [esp + 0x14]
sub ecx, edx
mov dword [esp + 0x78], ecx
xor ecx, ecx
mov dword [esp + 0x7c], ecx
jmp 0x10053a03
or dword [esp + 0x7c], 0xffffffff
or ecx, 0xffffffff
mov dword [esp + 0x78], ecx
xor ecx, ecx
cmp dword [esi + 0x28], 7
je 0x10058d7c
mov dword [esi + 0x28], ecx
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x78], ecx
mov dword [eax + 0x1ac], ecx
cmp dword [eax + 0x110], ecx
jne 0x10058d5b
imul ebx, dword [esi + 0x24], 0x14
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
add ebx, dword [esp + 0x44]
add ecx, 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x84], ecx
push 0
pop ecx
adc edx, ecx
mov cl, byte [ebx]
mov dword [esp + 0x8c], edx
movzx edx, cl
mov byte [esp + 0x2f], cl
mov dword [esp + 0x28], edx
cmp edx, 0xab
ja case.0x10053a74.85
jmp dword [edx*4 + 0x10058f14]
imul ecx, dword [ebx + 4], 0x28
push 4
pop eax
push 0x14
pop esi
add ecx, dword [esp + 0x18]
mov word [ecx + 8], ax
mov eax, ebx
sub eax, dword [esp + 0x44]
cdq
idiv esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x100588eb
imul eax, dword [ebx + 4], 0x28
mov ecx, 0x80
add eax, dword [esp + 0x18]
imul ebx, dword [eax], 0x14
add ebx, dword [esp + 0x44]
mov word [eax + 8], cx
jmp 0x1005890c
imul ecx, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0xc]
push 4
add ecx, dword [esp + 0x1c]
dec eax
cdq
mov dword [ecx], eax
pop eax
mov word [ecx + 8], ax
xor eax, eax
mov dword [ecx + 4], edx
cmp dword [ebx + 8], eax
jne 0x100588eb
jmp 0x1005890c
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [esp + 0x44]
add ecx, dword [esp + 0x18]
lea ebx, [edx - 0x14]
imul eax, dword [ecx], 0x14
imul eax, dword [eax + edx + 8], 0x14
add ebx, eax
mov eax, 0x80
mov word [ecx + 8], ax
jmp 0x1005890c
imul esi, dword [ebx + 4], 0x28
sub ebx, dword [esp + 0x44]
push 4
pop eax
push 0x14
add esi, dword [esp + 0x1c]
mov word [esi + 8], ax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov ecx, dword [esi]
imul ebx, ecx, 0x14
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebx, dword [esp + 0x44]
mov esi, dword [esp + 0xc]
jmp 0x1005890c
imul eax, dword [ebx + 0xc], 0x28
xor edx, edx
mov ecx, dword [esp + 0x18]
inc edx
test byte [eax + ecx + 8], dl
je 0x1005890c
mov eax, ebx
sub eax, dword [esp + 0x44]
push 0x14
pop ecx
cdq
idiv ecx
mov ecx, dword [ebx + 4]
mov esi, eax
test ecx, ecx
jne 0x10058928
mov edx, dword [esp + 0xc]
mov edi, dword [edx + 0xc8]
test edi, edi
je 0x10058928
mov eax, dword [edi + 4]
mov esi, edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x2c]
dec dword [esi + 0xd0]
mov dword [esi + 0xc8], eax
call fcn.10051a10
mov ecx, edi
call fcn.1004f982
push 4
pop ecx
cmp dword [ebx + 8], ecx
jne 0x10053bb8
imul ecx, eax, 0x14
mov eax, dword [esi + 0x68]
mov eax, dword [ecx + eax + 8]
dec eax
mov edx, dword [esi + 0x68]
mov ecx, dword [esi + 0x58]
imul ebx, eax, 0x14
mov dword [esp + 0x44], edx
mov dword [esp + 0x18], ecx
add ebx, edx
jmp 0x10058908
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x1005890c
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x1005890c
mov edx, ebx
mov ecx, esi
call fcn.1005393a
push 8
pop ecx
mov word [eax + 8], cx
mov ecx, dword [ebx + 0x10]
movsd xmm0, qword [ecx]
movsd qword [eax], xmm0
jmp 0x1005890c
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 0x10]
mov esi, eax
test edx, edx
jne 0x10053c3c
xor eax, eax
mov ecx, eax
jmp 0x10053c58
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10053c45
sub ecx, dword [esp + 0x20]
and ecx, 0x3fffffff
xor eax, eax
cmp byte [esp + 0x54], 1
mov dword [ebx + 4], ecx
je 0x10053cc0
push eax
xor eax, eax
mov ecx, esi
inc eax
push eax
push 0xffffffffffffffff
call fcn.1004dd25
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x10057dde
movzx edx, byte [esp + 0x54]
mov ecx, esi
call fcn.1004d39d
test eax, eax
jne 0x10055106
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ebx + 1], 0xf9
jne 0x10053cb0
mov edx, dword [ebx + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.100364e3
mov byte [ebx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [esp + 0x14]
cmp ecx, dword [eax + 0x6c]
jg 0x10057dde
mov esi, dword [esp + 0xc]
mov byte [ebx], 0x47
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov esi, eax
mov eax, 0xa02
mov word [esi + 8], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [esp + 0x54]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebx + 4]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x100587f2
mov edi, dword [esp + 0x18]
imul ecx, eax, 0x28
movzx eax, word [ebx + 2]
cdq
cmp dword [ecx + edi], eax
mov edi, dword [esp + 0x10]
jne 0x100587f2
mov eax, dword [esp + 0x18]
cmp dword [ecx + eax + 4], edx
jne 0x100587f2
mov eax, 0xa10
mov word [esi + 8], ax
jmp 0x10053b38
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edi, dword [ebx + 0xc]
xor ecx, ecx
mov edx, dword [ebx + 8]
inc ecx
cmp dword [ebx + 4], 0
mov esi, 0x101
cmovne ecx, esi
and dword [eax + 0xc], 0
movzx ecx, cx
lea esi, [eax + 8]
sub edi, edx
mov dword [esp + 0x20], ecx
mov word [esi], cx
test edi, edi
jle 0x100587f2
xor edx, edx
mov eax, 0x2400
lea esi, [esi + 0x28]
test word [esi], ax
je 0x10053d96
lea ecx, [esi - 8]
call fcn.1004d6da
mov ecx, dword [esp + 0x20]
xor edx, edx
mov eax, 0x2400
dec edi
mov word [esi], cx
mov dword [esi + 4], edx
test edi, edi
jg 0x10053d7b
mov edi, dword [esp + 0x10]
jmp 0x10053b38
imul ecx, dword [ebx + 4], 0x28
mov edx, 0xff41
add ecx, dword [esp + 0x18]
mov ax, word [ecx + 8]
and ax, dx
xor edx, edx
inc edx
or ax, dx
jmp 0x10053b05
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 0x10]
mov esi, eax
xor eax, eax
mov ecx, esi
push eax
push eax
push dword [ebx + 4]
call fcn.1004dd25
mov al, byte [esp + 0x54]
mov byte [esi + 0xa], al
jmp 0x10053b38
imul ecx, dword [ebx + 4], 0x28
mov esi, dword [esi + 0x64]
add ecx, 0xffffffd8
add esi, ecx
mov ecx, esi
call fcn.1004dbfb
test eax, eax
jne 0x10057dde
imul edx, dword [ebx + 8], 0x28
mov eax, 0x2400
add edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
test word [edx + 8], ax
je 0x10053e2e
mov ecx, edx
call fcn.1004dae7
mov edx, dword [esp + 0x20]
push 5
pop eax
mov ecx, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ax, word [edx + 8]
mov ecx, 0xebff
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [edx + 8], ax
jmp 0x10053da1
imul edi, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov edx, edi
mov ecx, esi
call fcn.1004dd03
mov eax, 0x1000
test word [esi + 8], ax
je 0x10053e8e
mov ecx, esi
call fcn.1004d508
test eax, eax
jne 0x10055106
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x1c], 1
jne 0x10053e6b
jmp 0x10053da1
imul edi, dword [ebx + 4], 0x28
imul esi, dword [ebx + 8], 0x28
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
add edi, dword [esp + 0x18]
add esi, dword [esp + 0x18]
mov eax, 0x1000
mov edx, edi
push eax
mov ecx, esi
call fcn.1004dc40
mov eax, 0x1000
test word [esi + 8], ax
je 0x10053ee0
mov ecx, esi
call fcn.1004d508
test eax, eax
jne 0x10055106
mov ecx, dword [esp + 0x1c]
mov eax, ecx
dec ecx
mov dword [esp + 0x1c], ecx
test eax, eax
je 0x100587f2
add esi, 0x28
add edi, 0x28
jmp 0x10053eb7
imul edx, dword [ebx + 4], 0x28
mov eax, 0x1000
imul ecx, dword [ebx + 8], 0x28
push eax
add edx, dword [esp + 0x1c]
add ecx, dword [esp + 0x1c]
call fcn.1004dc40
jmp 0x1005890c
imul eax, dword [ebx + 4], 0x28
imul ecx, dword [ebx + 8], 0x28
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
add ecx, edx
mov edx, dword [edx + eax]
mov eax, dword [eax + esi + 4]
mov esi, 0x2400
test word [ecx + 8], si
mov esi, dword [esp + 0xc]
je 0x10053f4f
push eax
push edx
call fcn.1004db31
jmp 0x1005890c
mov dword [ecx], edx
mov dword [ecx + 4], eax
push 4
pop eax
jmp 0x10053b05
imul ecx, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
mov eax, dword [esp + 0x18]
imul esi, dword [ebx + 0xc], 0x28
add ecx, eax
add edi, eax
mov dword [esp + 0x30], ecx
add esi, eax
movzx edx, word [ecx + 8]
mov al, byte [edi + 8]
or al, dl
mov dword [esp + 0x58], edx
test al, 1
je 0x10053faa
mov eax, 0x2400
test word [esi + 8], ax
je 0x10053f9e
mov ecx, esi
call fcn.1004d6da
jmp 0x10053da1
xor eax, eax
inc eax
mov word [esi + 8], ax
jmp 0x10053da1
test dl, 0x12
jne 0x10053fbd
mov dl, byte [esp + 0x54]
xor eax, eax
push eax
call fcn.1004d5bc
jmp 0x10053fcb
mov eax, 0x4000
test eax, edx
je 0x10053fef
call fcn.1004d552
test eax, eax
jne 0x10055106
mov eax, dword [esp + 0x30]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [esp + 0x58], eax
mov eax, 0x4000
movzx edx, word [edi + 8]
mov dword [esp + 0x1c], edx
test dl, 0x12
jne 0x10054027
mov dl, byte [esp + 0x54]
xor eax, eax
push eax
mov ecx, edi
call fcn.1004d5bc
test eax, eax
jne 0x10055106
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx edx, ax
mov dword [esp + 0x1c], edx
jmp 0x1005404d
test eax, edx
je 0x1005404d
mov ecx, edi
call fcn.1004d552
test eax, eax
jne 0x10055106
mov ax, word [edi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
add edx, dword [edi + 0xc]
mov dword [esp + 0x20], edx
cmp edx, dword [eax + 0x6c]
jg 0x10057dde
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 3
push eax
call fcn.1004d3b2
test eax, eax
jne 0x10055106
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
push 2
pop ecx
or ax, cx
mov word [esi + 8], ax
cmp esi, edi
je 0x100540b5
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x28]
add esp, 0xc
mov word [edi + 8], ax
mov eax, dword [esp + 0x30]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x64]
add esp, 0xc
mov word [eax + 8], cx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov byte [ecx + eax], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], dl
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 2], dl
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x54]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x10053da1
imul eax, dword [ebx + 4], 0x28
add eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.1005390b
mov esi, dword [esp + 0x30]
movzx ebx, ax
imul eax, dword [esi + 8], 0x28
add eax, dword [esp + 0x18]
mov ecx, eax
mov dword [esp + 0x64], eax
call fcn.1005390b
movzx ecx, ax
imul eax, dword [esi + 0xc], 0x28
and cl, bl
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x30]
push 4
pop edx
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x64]
mov ax, word [eax + 8]
or ax, word [esi + 8]
movzx eax, ax
test dl, cl
je 0x100542f2
mov eax, esi
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x94], eax
movzx eax, byte [ebx]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x90], ecx
sub eax, 0x69
je 0x10054243
sub eax, 1
je 0x10054230
sub eax, 1
je 0x1005421d
sub eax, 1
mov eax, edx
je 0x100541ea
or eax, esi
je 0x1005441e
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x100541cb
xor eax, eax
mov esi, eax
lea edx, [eax + 1]
push esi
push edx
push dword [esp + 0x2c]
push ecx
call fcn.100ab1e8
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x100542d4
or eax, esi
je 0x1005441e
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x1005420f
xor eax, eax
cmp ecx, eax
jne 0x1005420f
cmp dword [esp + 0x24], 0x80000000
je 0x100542ff
push esi
push edx
push dword [esp + 0x2c]
push ecx
call fcn.100ab02b
jmp 0x100541d7
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.10039c8d
jmp 0x100542d0
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.10039c3f
jmp 0x100542d0
xor eax, eax
cmp esi, eax
jl 0x1005427a
jg 0x1005424f
cmp edx, eax
jb 0x1005427a
cmp dword [esp + 0x24], eax
jl 0x100542bc
jg 0x1005425b
cmp ecx, eax
jbe 0x100542bc
or ecx, 0xffffffff
mov eax, 0x7fffffff
sub ecx, dword [esp + 0x34]
sbb eax, dword [esp + 0x24]
cmp eax, esi
jg 0x100542b6
jl 0x10054275
cmp ecx, edx
jae 0x100542b6
xor eax, eax
inc eax
jmp 0x100542d0
cmp dword [esp + 0x24], eax
jg 0x100542bc
jl 0x10054286
cmp ecx, eax
jae 0x100542bc
xor eax, eax
inc eax
sub eax, ecx
mov ecx, 0x80000000
mov dword [esp + 0x20], eax
mov eax, edx
sbb ecx, dword [esp + 0x24]
add eax, 1
mov dword [esp + 0x48], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jl 0x100542b6
jg 0x10054275
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x48]
ja 0x10054275
mov ecx, dword [esp + 0x34]
xor eax, eax
add edx, ecx
mov dword [esp + 0x90], edx
adc esi, dword [esp + 0x24]
mov dword [esp + 0x94], esi
test eax, eax
jne 0x100542ff
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
push 4
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10054402
xor ecx, ecx
inc ecx
test cl, al
jne 0x10054421
jmp 0x10054303
mov esi, dword [esp + 0x28]
mov ecx, esi
call fcn.1004d80f
mov ecx, dword [esp + 0x64]
movsd qword [esp + 0x38], xmm0
call fcn.1004d80f
movzx eax, byte [ebx]
sub eax, 0x69
je 0x100543bb
sub eax, 1
je 0x100543b3
sub eax, 1
je 0x100543ab
sub eax, 1
je 0x10054391
mov ecx, esi
call fcn.1004d7a5
mov ecx, dword [esp + 0x64]
mov esi, eax
mov edi, edx
call fcn.1004d7a5
mov ecx, esi
mov dword [esp + 0x20], eax
or ecx, edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
je 0x1005441e
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x10054378
xor eax, eax
mov edi, eax
lea esi, [eax + 1]
push edi
push esi
push edx
push dword [esp + 0x2c]
call fcn.100ab1e8
mov ecx, eax
call fcn.100ab58d
mov edi, dword [esp + 0x10]
jmp 0x100543c1
movsd xmm1, qword [esp + 0x38]
ucomisd xmm1, qword [0x100c6910]
lahf
test ah, 0x44
jnp 0x1005441e
divsd xmm0, xmm1
jmp 0x100543c1
mulsd xmm0, qword [esp + 0x38]
jmp 0x100543c1
subsd xmm0, qword [esp + 0x38]
jmp 0x100543c1
addsd xmm0, qword [esp + 0x38]
movsd qword [esp + 0x38], xmm0
mov esi, 0x7ff00000
mov ecx, dword [esp + 0x3c]
xor edx, edx
mov eax, ecx
and eax, esi
cmp eax, esi
jne 0x100543ef
mov eax, dword [esp + 0x38]
and ecx, 0xfffff
or eax, ecx
je 0x100543ef
xor ecx, ecx
inc ecx
mov eax, ecx
jmp 0x100543f4
xor ecx, ecx
mov eax, edx
inc ecx
test eax, eax
jne 0x10054421
mov edx, dword [esp + 0x1c]
push 8
movsd qword [edx], xmm0
mov ax, word [edx + 8]
mov ecx, 0x3e40
and ax, cx
pop ecx
or ax, cx
movzx eax, ax
mov word [edx + 8], ax
jmp 0x10053b38
xor ecx, ecx
inc ecx
mov edx, dword [esp + 0x1c]
mov eax, 0x2400
test word [edx + 8], ax
je 0x10054437
mov ecx, edx
jmp 0x10053f94
mov word [edx + 8], cx
jmp 0x10053da1
mov eax, dword [ebx + 4]
test eax, eax
je 0x1005890c
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x18]
test word [eax + 8], cx
je 0x10054468
xor ecx, ecx
push ecx
push ecx
mov ecx, eax
jmp 0x10053f45
xor ecx, ecx
push 4
mov dword [eax], ecx
mov dword [eax + 4], ecx
pop ecx
jmp 0x10053ab5
imul ecx, dword [ebx + 8], 0x28
imul esi, dword [ebx + 4], 0x28
mov eax, dword [esp + 0x18]
imul edx, dword [ebx + 0xc], 0x28
add ecx, eax
add esi, eax
add edx, eax
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [esp + 0x48], edx
test al, 1
je 0x100544ba
mov eax, 0x2400
test word [edx + 8], ax
je 0x100544b2
mov ecx, edx
call fcn.1004d6da
jmp 0x10053b38
xor eax, eax
inc eax
jmp 0x10054415
call fcn.1004d7a5
mov ecx, esi
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.1004d7a5
mov cl, byte [ebx]
mov esi, eax
cmp cl, 0x65
jne 0x100544e2
mov eax, dword [esp + 0x30]
and eax, esi
and edi, edx
jmp 0x100545c1
cmp cl, 0x66
jne 0x100544f4
mov eax, dword [esp + 0x30]
or eax, esi
or edi, edx
jmp 0x100545c1
mov eax, esi
or eax, edx
je 0x100545bd
xor eax, eax
cmp edx, eax
jg 0x10054539
jl 0x1005450a
cmp esi, eax
jae 0x1005452e
mov al, 0xcf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10054527
jg 0x1005451c
cmp esi, 0xffffffc0
jbe 0x10054527
neg esi
push 0
pop eax
adc edx, eax
neg edx
jmp 0x1005452e
push 0x40
xor eax, eax
pop esi
mov edx, eax
cmp edx, eax
jl 0x10054566
jg 0x10054539
cmp esi, 0x40
jb 0x10054566
xor edx, edx
cmp edi, edx
jg 0x10054553
jl 0x10054547
cmp dword [esp + 0x30], edx
jae 0x10054553
cmp cl, 0x67
je 0x10054553
or eax, 0xffffffff
or edi, eax
jmp 0x100545c1
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
jmp 0x100545c1
mov eax, dword [esp + 0x30]
cmp cl, 0x67
mov edx, edi
mov ecx, esi
jne 0x1005457c
call fcn.100ab29a
mov ecx, eax
jmp 0x100545b7
call fcn.100ab42b
mov ecx, eax
mov dword [esp + 0x1c], edx
xor eax, eax
mov dword [esp + 0x20], ecx
cmp edi, eax
jg 0x100545b7
jl 0x10054599
cmp dword [esp + 0x30], eax
jae 0x100545b7
push 0x40
pop ecx
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.100ab29a
mov ecx, dword [esp + 0x20]
or ecx, eax
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
mov eax, ecx
mov edi, edx
jmp 0x100545c1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
mov edx, 0x3e40
push 4
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
pop edx
or ax, dx
mov word [ecx + 8], ax
jmp 0x10053da1
imul esi, dword [ebx + 4], 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.1004d8c2
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x10053b38
imul esi, dword [ebx + 4], 0x28
push 4
pop edx
add esi, dword [esp + 0x18]
movzx eax, word [esi + 8]
mov ecx, eax
test dl, al
jne 0x1005464b
push dword [esp + 0x54]
mov dl, 0x43
mov ecx, esi
call fcn.10053806
movzx eax, word [esi + 8]
push 4
pop edx
mov ecx, eax
test dl, al
jne 0x1005464b
xor eax, eax
cmp dword [ebx + 8], eax
jne 0x100588eb
mov edi, dword [esp + 0xc]
push 0x14
pop esi
mov edx, esi
mov dword [esp + 0x10], edx
jmp 0x100546c7
mov eax, 0x3e40
and ecx, eax
push 4
pop eax
or ecx, eax
mov word [esi + 8], cx
jmp 0x10053b38
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [esp + 0x18]
test byte [ecx + 8], 0x24
je case.0x10053a74.85
call fcn.1004d8e7
jmp 0x1005890c
imul esi, dword [ebx + 4], 0x28
mov eax, 0x4000
add esi, dword [esp + 0x18]
test word [esi + 8], ax
je 0x10054698
mov ecx, esi
call fcn.1004d552
jmp 0x1005469a
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
push dword [esp + 0x54]
mov dl, byte [ebx + 8]
mov ecx, esi
call fcn.1004da1f
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10053da1
mov edi, dword [esp + 0xc]
push 0x14
pop esi
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x51], 0
je 0x10058d9d
push 7
jmp 0x10058dc5
imul esi, dword [ebx + 0xc], 0x28
imul eax, dword [ebx + 4], 0x28
add esi, dword [esp + 0x18]
add eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
movzx edx, word [esi + 8]
movzx eax, word [eax + 8]
mov ecx, edx
or ecx, eax
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x30], edx
inc eax
test al, cl
je 0x10054799
movzx eax, word [ebx + 2]
mov ecx, 0x80
test cl, al
je 0x1005475b
xor ecx, ecx
mov al, dl
and al, byte [esp + 0x24]
inc ecx
test cl, al
je 0x1005474b
test edx, 0x100
jne 0x1005474b
xor eax, eax
mov edx, eax
movzx eax, byte [ebx]
test edx, edx
jne 0x100548cc
mov al, byte [eax + 0x100bea10]
jmp 0x100548d2
not edx
and edx, ecx
lea edx, [edx*2 - 1]
jmp 0x100548b9
test al, 0x20
je 0x10054789
imul ecx, dword [ebx + 8], 0x28
xor edx, edx
mov esi, 0x3e40
inc edx
mov dword [esp + 0x88], edx
add ecx, dword [esp + 0x18]
mov ax, word [ecx + 8]
and ax, si
or ax, dx
mov word [ecx + 8], ax
jmp 0x10053b38
push 0x10
pop ecx
test cl, al
jne 0x100588eb
jmp 0x10053b38
mov al, byte [ebx + 2]
and al, 0x47
cmp al, 0x43
jb 0x1005482a
push 2
pop edx
test dl, cl
je 0x100547e0
mov al, byte [esp + 0x24]
and al, 0x2e
cmp al, dl
jne 0x100547cd
mov ecx, dword [esp + 0x28]
xor edx, edx
call fcn.1005374a
movzx eax, word [esi + 8]
push 2
mov dword [esp + 0x34], eax
pop edx
mov al, byte [esp + 0x30]
and al, 0x2e
cmp al, dl
jne 0x100547e0
xor edx, edx
mov ecx, esi
call fcn.1005374a
mov edi, dword [esp + 0x28]
mov al, byte [esi + 8]
push 4
pop ecx
and al, byte [edi + 8]
test cl, al
je 0x100548ab
mov eax, dword [esi + 4]
mov ecx, dword [esi]
cmp eax, dword [edi + 4]
jl 0x10054822
jg 0x10054805
cmp ecx, dword [edi]
jbe 0x1005480f
xor eax, eax
lea edx, [eax + 1]
jmp 0x10054735
cmp eax, dword [edi + 4]
jg 0x10054731
jl 0x10054822
cmp ecx, dword [edi]
jae 0x10054731
or edx, 0xffffffff
jmp 0x100548c1
mov edi, dword [esp + 0x28]
cmp al, 0x42
jne 0x100548ab
mov al, byte [esp + 0x24]
push 2
pop ecx
test cl, al
jne 0x1005487a
test al, 0x2c
je 0x1005487a
mov dl, byte [esp + 0x54]
xor eax, eax
inc eax
mov ecx, edi
push eax
call fcn.1004d5bc
mov ax, word [edi + 8]
mov ecx, 0x3e40
xor ax, word [esp + 0x24]
and ax, cx
xor word [esp + 0x24], ax
push 2
pop ecx
cmp edi, esi
jne 0x1005487a
mov eax, dword [esp + 0x24]
or eax, ecx
movzx eax, ax
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x30]
test cl, al
jne 0x100548ab
test al, 0x2c
je 0x100548ab
mov dl, byte [esp + 0x54]
xor eax, eax
inc eax
mov ecx, esi
push eax
call fcn.1004d5bc
mov ax, word [esi + 8]
mov ecx, 0x3e40
xor ax, word [esp + 0x30]
and ax, cx
xor word [esp + 0x30], ax
push dword [ebx + 0x10]
mov edx, edi
mov ecx, esi
call fcn.10050ea4
mov edx, eax
test edx, edx
jns 0x10054735
movzx ecx, byte [ebx]
mov al, byte [ecx + 0x100c2794]
jmp 0x100548d2
mov al, byte [eax + 0x100bdcf4]
mov ecx, dword [esp + 0x28]
movzx edi, al
mov ax, word [esp + 0x30]
mov word [esi + 8], ax
mov ax, word [esp + 0x24]
mov word [ecx + 8], ax
movzx eax, word [ebx + 2]
test al, 0x20
je 0x10054939
imul esi, dword [ebx + 8], 0x28
mov dword [esp + 0x88], edx
add esi, dword [esp + 0x18]
test al, 8
je 0x10054916
xor eax, eax
cmp byte [ebx], 0x35
sete al
cmp eax, edi
je 0x100587f2
mov cx, word [esi + 8]
mov eax, 0x3e40
and cx, ax
push 4
pop eax
or cx, ax
mov eax, edi
mov word [esi + 8], cx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x10053da1
test edi, edi
mov edi, dword [esp + 0x10]
jmp 0x1005478e
cmp dword [esp + 0x88], 0
jne 0x100588eb
jmp case.0x10053a74.85
xor eax, eax
inc eax
test byte [ebx + 2], al
jne 0x10054965
xor eax, eax
mov edi, eax
jmp 0x1005496d
mov edi, dword [ebx - 4]
push 4
pop eax
add edi, eax
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [ebx + 8]
mov dword [esp + 0x20], edx
xor edx, edx
mov dword [esp + 0x74], ecx
mov esi, edx
mov dword [esp + 0x58], eax
test ecx, ecx
jle 0x10053da1
lea edx, [eax + 0x14]
mov dword [esp + 0x1c], edx
test edi, edi
je 0x100549a5
mov ecx, dword [edi + esi*4]
jmp 0x100549a7
mov ecx, esi
mov eax, dword [eax + 0x10]
xor edx, edx
inc edx
movzx eax, byte [eax + esi]
and eax, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
add eax, ecx
push dword [edx]
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.10050ea4
mov edx, eax
mov dword [esp + 0x88], edx
test edx, edx
jne 0x10054a0e
push 4
pop eax
add dword [esp + 0x1c], eax
inc esi
mov eax, dword [esp + 0x58]
cmp esi, dword [esp + 0x74]
jl 0x1005499c
jmp 0x10053da1
mov eax, dword [esp + 0x58]
push 2
pop ecx
mov eax, dword [eax + 0x10]
test byte [esi + eax], cl
je 0x10054a3b
mov eax, dword [esp + 0x30]
xor ecx, ecx
inc ecx
test byte [eax + 8], cl
jne 0x10054a32
mov eax, dword [esp + 0x64]
test byte [eax + 8], cl
je 0x10054a3b
neg edx
mov dword [esp + 0x88], edx
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0xc]
je 0x10058908
neg edx
mov dword [esp + 0x88], edx
jmp 0x10058908
mov edx, dword [esp + 0x88]
test edx, edx
jns 0x10054a69
imul ebx, dword [ebx + 4], 0x14
jmp 0x10054a75
jne 0x10054a71
imul ebx, dword [ebx + 8], 0x14
jmp 0x10054a75
imul ebx, dword [ebx + 0xc], 0x14
add ebx, dword [esp + 0x44]
add ebx, 0xffffffec
jmp case.0x10053a74.85
imul ecx, dword [ebx + 4], 0x28
mov edi, dword [esp + 0x18]
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.1004d832
imul ecx, dword [ebx + 8], 0x28
mov esi, eax
push 2
pop eax
mov edx, eax
add ecx, edi
call fcn.1004d832
imul edx, esi, 3
cmp byte [ebx], 0x2c
jne 0x10054ab8
mov dl, byte [edx + eax + 0x100bddc0]
jmp 0x10054abf
mov dl, byte [edx + eax + 0x100bdda0]
imul esi, dword [ebx + 0xc], 0x28
mov ecx, 0x3e40
push 2
add esi, edi
mov ax, word [esi + 8]
and ax, cx
movzx ecx, ax
pop eax
cmp dl, al
jne 0x10054ae0
xor eax, eax
inc eax
jmp 0x10054aec
movzx eax, dl
cdq
push 4
mov dword [esi], eax
mov dword [esi + 4], edx
pop eax
or ecx, eax
movzx eax, cx
jmp 0x10053fa1
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [esp + 0x18]
call fcn.1004d832
imul ecx, dword [ebx + 8], 0x28
mov edi, 0x2400
xor eax, dword [ebx + 0x10]
cdq
add ecx, dword [esp + 0x18]
test word [ecx + 8], di
mov edi, dword [esp + 0x10]
je 0x10054b28
push edx
push eax
jmp 0x10053f45
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x10053f54
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
imul esi, dword [ebx + 8], 0x28
inc edx
add ecx, dword [esp + 0x18]
add esi, dword [esp + 0x18]
test byte [ecx + 8], dl
jne 0x10054b80
xor edx, edx
call fcn.1004d832
neg eax
mov ecx, 0x2400
sbb eax, eax
inc eax
test word [esi + 8], cx
je 0x10054b71
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.1004db31
jmp 0x10053b38
mov dword [esi], eax
xor eax, eax
push 4
mov dword [esi + 4], eax
pop eax
jmp 0x10053d32
mov ecx, 0x2400
test word [esi + 8], cx
je 0x10054b92
mov ecx, esi
jmp 0x100544a8
mov word [esi + 8], dx
mov esi, dword [esp + 0xc]
jmp case.0x10053a74.85
imul esi, dword [ebx + 8], 0x28
mov eax, 0x2400
imul edi, dword [ebx + 4], 0x28
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
test word [esi + 8], ax
je 0x10054bc6
mov ecx, esi
call fcn.1004d6da
xor edx, edx
inc edx
jmp 0x10054bcd
xor edx, edx
inc edx
mov word [esi + 8], dx
test byte [edi + 8], dl
jne 0x100587f2
push 4
pop eax
mov ecx, edi
mov word [esi + 8], ax
call fcn.1004d7a5
not eax
not edx
jmp 0x1005492f
cmp dword [esi + 0xc8], 0
je 0x10054c3d
mov eax, ebx
sub eax, dword [esi + 0x68]
cdq
push 0x14
pop ecx
idiv ecx
mov edx, dword [esp + 0xc]
mov ecx, eax
mov esi, ecx
and ecx, 7
shr esi, 3
mov eax, dword [edx + 0xc8]
xor edx, edx
inc edx
shl edx, cl
mov eax, dword [eax + 0x18]
mov dword [esp + 0x20], eax
movzx eax, byte [eax + esi]
test eax, edx
jne 0x100588eb
bts eax, ecx
mov ecx, dword [esp + 0x20]
mov byte [ecx + esi], al
mov esi, dword [esp + 0xc]
jmp 0x10054c4c
mov eax, dword [esi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 4]
je 0x100588eb
mov eax, dword [esi + 0x68]
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
jmp 0x1005890c
imul ecx, dword [ebx + 4], 0x28
mov edx, dword [ebx + 0xc]
add ecx, dword [esp + 0x18]
call fcn.1004d832
test eax, eax
jmp 0x10053adc
xor edx, edx
xor eax, eax
cmp dword [ebx + 0xc], eax
sete dl
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [esp + 0x18]
call fcn.1004d832
test eax, eax
je 0x100588eb
jmp 0x1005890c
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [esp + 0x18]
inc edx
test byte [eax + ecx + 8], dl
jmp 0x10053adc
imul eax, dword [ebx + 4], 0x28
xor edx, edx
mov ecx, dword [esp + 0x18]
inc edx
test byte [eax + ecx + 8], dl
jmp 0x10054c8a
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x1005890c
imul eax, dword [ebx + 0xc], 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x18]
test word [eax + 8], cx
je 0x10054cec
mov ecx, eax
call fcn.1004d6da
jmp 0x100588eb
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x100588eb
mov ecx, dword [ebx + 4]
lea edx, [esp + 0x80]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x80], eax
call fcn.10050894
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
imul edi, dword [ebx + 0xc], 0x28
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
add edi, dword [esp + 0x18]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x64], edi
mov dword [esp + 0x24], ecx
cmp eax, dword [edx + 0x20]
je 0x10054e4d
cmp byte [esi + 2], 0
je 0x10054d93
cmp byte [esi], 3
jne 0x10054d87
imul edx, dword [esi + 0x28], 0x28
add edx, dword [esp + 0x18]
mov eax, dword [edx + 0xc]
mov dword [esi + 0x5c], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x5c]
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x54], ecx
mov ecx, dword [esp + 0x40]
jmp 0x10054dcd
mov ecx, edi
call fcn.1004dae7
jmp 0x10053da1
mov esi, dword [esi + 0x30]
mov ecx, esi
call fcn.10047193
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x58], eax
mov ecx, esi
mov edx, dword [esp + 0x40]
lea edx, [edx + 0x5c]
call fcn.100475fe
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x54], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x58]
cmp eax, dword [edx + 0x6c]
ja 0x10057dde
mov eax, dword [esp + 0xc]
mov edx, 0x80
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x54]
mov al, byte [ecx]
cmp al, dl
jae 0x10054df7
mov ecx, dword [esp + 0x24]
movzx eax, al
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x10054e00
mov edx, dword [esp + 0x24]
call fcn.10039a1f
movzx ecx, al
mov eax, dword [esp + 0x40]
mov dword [eax + 0x38], ecx
xor ecx, ecx
mov eax, dword [esp + 0x40]
mov word [eax + 0x42], cx
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x5c]
cmp eax, dword [ecx]
jae 0x10054f19
xor edx, edx
mov dword [esi + 0x54], edx
mov eax, dword [esp + 0x40]
mov dword [eax + 0x5c], edx
mov eax, dword [ecx]
cmp eax, 0x18003
ja 0x1005502f
mov esi, dword [esp + 0x40]
cmp eax, dword [esi + 0x58]
ja 0x1005502f
movzx eax, word [esi + 0x42]
mov edx, dword [esp + 0x80]
cmp eax, edx
ja 0x1005507a
mov eax, dword [esi + 0x38]
cmp eax, dword [ecx]
jae 0x1005504b
mov edx, dword [esi + 0x54]
mov dword [esp + 0x58], edx
test edx, edx
jne 0x10054eb7
push 0xa
xor eax, eax
lea edi, [esp + 0x17c]
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [esi + 0x30]
lea eax, [esp + 0x178]
push eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
call fcn.1004df41
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edx, dword [esp + 0x188]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x58], edx
movzx ecx, word [esi + 0x42]
mov eax, dword [esp + 0x24]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x74], ecx
add edi, edx
mov eax, dword [eax + ecx*4]
lea ecx, [ecx*4 + 0x60]
mov dword [esp + 0x28], eax
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
add eax, edx
mov dword [esp + 0x34], eax
movzx eax, byte [edi]
mov edx, 0x80
mov dword [esp + 0x68], eax
mov dword [esi + ecx], eax
mov eax, dword [esp + 0x68]
cmp eax, edx
jae 0x10054f1e
movzx eax, al
inc edi
movzx eax, byte [eax + 0x100bf2b0]
cdq
add dword [esp + 0x28], eax
adc ebx, edx
mov edx, dword [esp + 0x28]
jmp 0x10054f6b
mov edx, dword [esi + 0x54]
jmp 0x10054eb3
lea edx, [esp + 0x68]
mov ecx, edi
call fcn.10039a1f
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x40]
mov dword [edx + eax], ecx
mov ecx, 0x80
mov eax, dword [esp + 0x68]
cmp eax, ecx
jb 0x10054f51
add eax, 0xfffffff4
shr eax, 1
jmp 0x10054f58
movzx eax, byte [eax + 0x100bf2b0]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add edx, eax
push 0
pop eax
mov dword [esp + 0x28], edx
adc ebx, eax
mov esi, dword [esp + 0x74]
push 4
pop eax
add ecx, eax
inc esi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x74], esi
mov dword [esp + 0x1c], ecx
mov dword [eax + ecx - 0x60], edx
cmp esi, dword [esp + 0x80]
ja 0x10054f9d
cmp edi, dword [esp + 0x34]
jae 0x10054f9d
mov esi, dword [esp + 0x40]
jmp 0x10054eea
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x30]
cmp edi, ecx
jb 0x10054fc2
ja 0x10054fd5
cmp edx, dword [eax + 0x58]
jne 0x10054fd5
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x10054fd1
jmp 0x10054fc6
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jb 0x10054fe1
ja 0x10054fd1
cmp edx, dword [eax + 0x58]
jbe 0x10054fe1
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
xor esi, esi
cmp dword [edx], esi
jne 0x1005501c
mov edi, ecx
sub edi, dword [esp + 0x58]
mov word [eax + 0x42], si
mov eax, dword [esp + 0x40]
mov dword [eax + 0x38], edi
xor eax, eax
mov esi, dword [esp + 0x40]
cmp dword [esi + 0x54], eax
jne 0x1005500b
lea ecx, [esp + 0x178]
call fcn.1004d737
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
jmp 0x10055053
xor ecx, ecx
cmp dword [eax + 0x54], ecx
jne 0x1005502f
lea ecx, [esp + 0x178]
call fcn.1004d737
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x100589df
imul ebx, eax, 0x14
add ebx, 0xffffffec
add ebx, edx
jmp 0x10053da1
xor eax, eax
mov ecx, eax
mov dword [esp + 0x68], ecx
movzx eax, word [esi + 0x42]
cmp eax, edx
ja 0x10055082
cmp byte [ebx + 1], 0xf5
mov ecx, edi
jne 0x10054d89
mov edx, dword [ebx + 0x10]
mov eax, 0x800
push eax
call fcn.1004dc40
jmp 0x10053da1
mov ecx, dword [esi + edx*4 + 0x60]
mov dword [esp + 0x68], ecx
mov eax, 0x2400
test word [edi + 8], ax
je 0x100550a3
mov ecx, edi
call fcn.1004dae7
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x24]
mov eax, dword [esi + 0x5c]
cmp eax, dword [edi + edx*4 + 4]
mov edi, dword [esp + 0x64]
jb 0x10055164
mov eax, dword [esi + 0x54]
mov esi, dword [esp + 0x24]
add eax, dword [esi + edx*4]
mov dword [esp + 0x20], eax
cmp ecx, 0xc
jae 0x100550da
mov edx, ecx
mov ecx, eax
push edi
call fcn.10050a15
jmp 0x10053da1
mov al, byte [esp + 0x54]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0xa], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x10055127
xor eax, eax
mov ecx, edi
inc eax
mov word [edi + 8], ax
xor eax, eax
push eax
call fcn.1004d3b2
test eax, eax
je 0x1005512d
mov esi, dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.100369eb
push 0x100b9830
push esi
call fcn.1004e460
pop ecx
pop ecx
push 7
jmp 0x1005684c
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
push esi
push dword [esp + 0x24]
push dword [edi + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 0x10]
xor ecx, ecx
add esp, 0xc
mov byte [esi + eax], cl
mov eax, dword [edi + 0x10]
mov byte [esi + eax + 1], cl
inc ecx
mov eax, dword [esp + 0x68]
and eax, ecx
mov ax, word [eax*2 + 0x100be170]
mov word [edi + 8], ax
jmp 0x10053da1
mov al, byte [esp + 0x54]
mov byte [edi + 0xa], al
movzx eax, word [ebx + 2]
mov edx, dword [esp + 0x68]
test al, 0xc0
je 0x1005518c
cmp edx, 0xc
jb 0x10055183
xor ecx, ecx
inc ecx
test cl, dl
je 0x1005519b
mov ecx, 0x80
test cl, al
jne 0x1005519b
mov ecx, edx
call fcn.100508de
test eax, eax
jne 0x100551a5
mov edx, dword [esp + 0x68]
mov ecx, 0x100bed50
jmp 0x100550cf
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
push edi
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [ecx + 0x30]
mov edx, dword [eax + edx*4]
call fcn.1004deb6
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edx, dword [esp + 0x68]
mov ecx, dword [edi + 0x10]
push edi
call fcn.10050a15
mov ecx, 0xefff
and word [edi + 8], cx
jmp 0x10053da1
imul esi, dword [ebx + 4], 0x28
mov edi, dword [ebx + 0x10]
add esi, dword [esp + 0x18]
mov al, byte [edi]
push dword [esp + 0x54]
mov dl, al
mov ecx, esi
call fcn.10053806
cmp byte [edi], 0x45
jne 0x10055263
movzx ecx, word [esi + 8]
push 4
pop eax
mov dword [esp + 0x20], ecx
test al, cl
je 0x10055263
mov edx, dword [esi]
xor eax, eax
add edx, eax
mov eax, dword [esi + 4]
adc eax, 0x8000
cmp eax, 0xffff
ja 0x10055243
jb 0x10055234
cmp edx, 0xffffffff
ja 0x10055243
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 8], cx
jmp 0x10055263
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.100ab58d
mov eax, dword [esp + 0x20]
push 8
and eax, 0xfffb
movsd qword [esi], xmm0
pop ecx
or eax, ecx
mov word [esi + 8], ax
inc edi
mov al, byte [edi]
test al, al
je 0x100587f2
add esi, 0x28
jmp 0x100551f7
imul ecx, dword [ebx + 4], 0x28
xor eax, eax
mov esi, eax
mov edi, dword [ebx + 0x10]
imul eax, dword [ebx + 8], 0x28
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 0x24], esi
add ecx, dword [esp + 0x18]
movlpd qword [esp + 0x58], xmm0
add eax, 0xffffffd8
mov dword [esp + 0x48], ecx
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x93]
mov byte [esp + 0x2f], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
test edi, edi
je 0x10055300
push 4
lea esi, [ecx + 8]
pop ebx
push dword [esp + 0x54]
mov dl, byte [edi]
lea ecx, [esi - 8]
call fcn.10053806
cmp byte [edi], 0x45
jne 0x100552ef
movzx eax, word [esi]
test bl, al
je 0x100552ef
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x100552ca
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x5c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
add edi, 0x1c
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], edx
movzx edx, word [edi - 0x14]
mov dword [esp + 0x74], edi
mov dword [esp + 0x38], edx
test dl, 1
je 0x10055357
inc esi
mov eax, 0x4000
mov dword [esp + 0x24], esi
and edx, eax
movzx esi, dx
neg esi
sbb esi, esi
and esi, 0xa
mov edx, dword [esp + 0x24]
jmp 0x10055540
test dl, 0x24
je 0x10055495
mov eax, dword [edi - 0x18]
xor ecx, ecx
mov esi, dword [edi - 0x1c]
cmp eax, ecx
jg 0x1005537a
jl 0x10055372
cmp esi, ecx
jae 0x1005537a
mov ecx, esi
not eax
not ecx
jmp 0x1005537c
mov ecx, esi
inc dword [esp + 0x24]
test eax, eax
ja 0x10055421
jb 0x1005538f
cmp ecx, 0x7f
ja 0x100553bf
xor edx, edx
mov eax, esi
inc edx
and eax, edx
cmp eax, esi
jne 0x100553ad
xor eax, eax
cmp eax, dword [edi - 0x18]
jne 0x100553af
cmp byte [esp + 0x2f], 4
jb 0x100553af
lea esi, [ecx + 8]
jmp 0x100553b9
xor eax, eax
add dword [esp + 0x28], edx
mov esi, edx
adc dword [esp + 0x34], eax
mov ecx, dword [esp + 0x34]
jmp 0x1005534e
test eax, eax
ja 0x10055421
jb 0x100553cd
cmp ecx, 0x7fff
ja 0x100553e8
push 2
mov ecx, dword [esp + 0x38]
pop edx
add dword [esp + 0x28], edx
mov esi, edx
push 0
pop eax
adc ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x1005534e
test eax, eax
ja 0x10055421
jb 0x100553f6
cmp ecx, 0x7fffff
ja 0x1005540f
add dword [esp + 0x28], 3
mov ecx, dword [esp + 0x34]
push 0
pop eax
adc ecx, eax
mov dword [esp + 0x34], ecx
push 3
jmp 0x1005548f
test eax, eax
ja 0x10055421
jb 0x1005541d
cmp ecx, 0x7fffffff
ja 0x10055421
push 4
jmp 0x100553cf
cmp eax, 0x7fff
ja 0x1005544b
jb 0x1005542f
cmp ecx, 0xffffffff
ja 0x1005544b
add dword [esp + 0x28], 6
mov ecx, dword [esp + 0x34]
push 0
pop eax
adc ecx, eax
push 5
pop eax
mov dword [esp + 0x34], ecx
mov esi, eax
jmp 0x1005534e
mov ecx, dword [esp + 0x34]
push 8
pop eax
add dword [esp + 0x28], eax
push 0
pop eax
adc ecx, eax
mov dword [esp + 0x34], ecx
test dl, 0x20
je 0x1005548d
mov edx, dword [edi - 0x18]
mov ecx, esi
call fcn.100ab58d
mov eax, dword [esp + 0x38]
push 8
pop ecx
and eax, 0xffdf
movsd qword [edi - 0x1c], xmm0
or eax, ecx
mov ecx, dword [esp + 0x34]
mov word [edi - 0x14], ax
push 7
jmp 0x1005548f
push 6
pop esi
jmp 0x1005534e
test dl, 8
je 0x100554b9
mov edx, dword [esp + 0x24]
push 8
pop esi
inc edx
add eax, esi
push 0
mov dword [esp + 0x2c], eax
pop eax
adc ecx, eax
push 7
mov dword [esp + 0x38], ecx
pop esi
jmp 0x1005553c
mov ecx, dword [edi - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
mov dword [esp + 0x38], ecx
bt edx, 0xe
lea esi, [ecx + 6]
lea esi, [eax + esi*2]
jae 0x10055507
mov edx, dword [edi - 0x1c]
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x34]
lea esi, [esi + edx*2]
je 0x100554fc
lea ecx, [edi - 0x1c]
call fcn.1004d552
test eax, eax
jne 0x10055106
mov ecx, dword [esp + 0x38]
add ecx, dword [edi - 0x1c]
jmp 0x10055507
mov eax, edx
cdq
add dword [esp + 0x58], eax
adc dword [esp + 0x1c], edx
add dword [esp + 0x28], ecx
push 0
pop eax
adc dword [esp + 0x34], eax
mov edx, eax
xor ecx, ecx
lea edi, [ecx + 1]
mov ecx, esi
shr ecx, 7
jmp 0x10055528
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
jne 0x10055520
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
add edx, edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x24], edx
mov eax, edi
mov dword [eax], esi
lea eax, [edi - 0x1c]
cmp eax, dword [esp + 0x48]
je 0x1005555d
mov eax, dword [esp + 0x28]
sub edi, 0x28
mov esi, dword [esp + 0x24]
jmp 0x10055327
cmp edx, 0x7e
jle 0x10055588
mov eax, edx
cdq
push edx
push eax
call fcn.10039a85
mov esi, eax
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x24], eax
cdq
push edx
push eax
call fcn.10039a85
mov edx, dword [esp + 0x24]
cmp esi, eax
jge 0x1005558d
inc edx
mov dword [esp + 0x24], edx
mov eax, edx
cdq
mov edi, eax
mov ecx, edx
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov esi, edi
adc ecx, dword [esp + 0x34]
add esi, dword [esp + 0x58]
mov eax, dword [eax + 0x18]
adc ecx, dword [esp + 0x1c]
cdq
cmp ecx, edx
jg 0x100555c4
jl 0x100555b8
cmp esi, eax
ja 0x100555c4
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
jmp 0x100555f5
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x6c]
cdq
cmp ecx, edx
jg 0x10057dde
jl 0x100555de
cmp esi, eax
ja 0x10057dde
mov ecx, dword [esp + 0x64]
mov edx, edi
call fcn.1004d4a8
test eax, eax
jne 0x10055106
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x58]
push 0x10
pop eax
mov word [ecx + 8], ax
mov eax, edx
or eax, dword [esp + 0x1c]
mov dword [ecx + 0xc], edi
je 0x10055616
mov eax, 0x4010
mov dword [ecx], edx
mov word [ecx + 8], ax
mov eax, dword [esp + 0x24]
mov edx, 0x80
mov esi, dword [ecx + 0x10]
lea edi, [esi + eax]
cmp eax, edx
jae 0x10055632
xor ecx, ecx
mov byte [esi], al
inc ecx
mov eax, ecx
jmp 0x10055642
cdq
mov ecx, esi
push edx
push eax
call fcn.10039846
xor ecx, ecx
inc ecx
lea edx, [ecx + 0x7f]
mov ebx, dword [esp + 0x48]
movzx eax, al
add esi, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x38], eax
cmp eax, edx
jae 0x1005565c
mov byte [esi], al
mov eax, ecx
jmp 0x10055667
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.10039846
push dword [esp + 0x38]
movzx eax, al
mov edx, ebx
mov ecx, edi
add esi, eax
call fcn.100508f4
push 1
pop ecx
add ebx, 0x28
add edi, eax
lea edx, [ecx + 0x7f]
cmp ebx, dword [esp + 0x20]
jbe 0x1005564b
mov ebx, dword [esp + 0x30]
jmp 0x10053da1
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x30]
xor eax, eax
cmp dword [ebx + 0xc], eax
je 0x100556bd
mov ecx, edx
call fcn.10047c52
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], edx
jmp 0x100556e8
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf0]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xf4], xmm0
call fcn.1004baa1
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xf4]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x100575ef
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x100557ee
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [eax + 0xb8], ecx
jg 0x100589f4
mov ecx, edi
call fcn.10038ae2
mov esi, eax
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov ecx, dword [eax + 0x1e0]
add ecx, dword [eax + 0x1dc]
push ecx
mov ecx, eax
call fcn.10084177
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
xor ecx, ecx
lea eax, [esi + 0x21]
push ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.1003670e
mov esi, eax
test esi, esi
je 0x100587f2
mov ecx, dword [esp + 0x38]
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 + 0x20]
add esp, 0xc
cmp byte [edx + 0x4f], 0
je 0x100557a6
xor eax, eax
mov byte [edx + 0x4f], al
inc eax
mov byte [edx + 0x57], al
jmp 0x100557ac
inc dword [edx + 0x1dc]
mov eax, dword [edx + 0x1d0]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x1e8]
mov ecx, dword [edx + 0x1ec]
mov dword [edx + 0x1d0], esi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx + 0x1f0]
mov ecx, dword [edx + 0x1f4]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov esi, dword [esp + 0xc]
mov eax, edx
jmp case.0x10053a74.85
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x1d0]
test esi, esi
je 0x10058a4a
mov ebx, dword [esp + 0x24]
mov ecx, dword [esi]
mov edx, edi
call fcn.10038cf4
test eax, eax
je 0x1005581f
mov esi, dword [esi + 0x18]
inc ebx
test esi, esi
jne 0x1005580a
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
test esi, esi
je 0x10058a4a
mov eax, dword [esp + 0x14]
xor edx, edx
mov edi, dword [esp + 0x28]
xor ecx, ecx
inc edx
cmp dword [eax + 0xb8], ecx
jle 0x10055850
cmp edi, edx
je 0x10058a06
cmp dword [esi + 0x18], ecx
jne 0x10055862
cmp byte [eax + 0x57], cl
je 0x10055862
mov eax, edx
mov dword [esp + 0x58], eax
jmp 0x10055868
mov eax, ecx
mov dword [esp + 0x58], ecx
test eax, eax
je 0x100558c8
cmp edi, edx
jne 0x100558c8
mov ecx, dword [esp + 0xc]
call fcn.1005020e
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10058e76
mov eax, dword [esp + 0x14]
xor ecx, ecx
inc ecx
mov byte [eax + 0x4f], cl
mov ecx, dword [esp + 0xc]
call fcn.10050269
push 5
pop ecx
cmp eax, ecx
je 0x10058a25
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov edx, dword [eax + 0x28]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], edx
test edx, edx
je 0x100558c0
mov byte [eax + 0x4f], cl
jmp 0x100559d6
mov byte [eax + 0x57], cl
jmp 0x100559d6
mov esi, dword [esp + 0x14]
push 2
pop ecx
mov eax, dword [esi + 0x1dc]
sub eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
cmp edi, ecx
jne 0x1005593d
mov eax, dword [esi + 0x18]
xor ecx, ecx
and eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], eax
cmp dword [esi + 0x14], ecx
jle 0x10055949
mov edi, eax
mov esi, ecx
xor edi, edx
mov eax, dword [esp + 0x14]
mov edx, 0x204
push edi
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + esi + 4]
call fcn.10046de5
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov eax, dword [esp + 0x20]
push 0x10
pop ecx
add esi, ecx
inc eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
cmp eax, dword [ecx + 0x14]
jl 0x100558fc
mov esi, ecx
xor ecx, ecx
jmp 0x1005594d
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x48], ecx
jmp 0x10055951
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov edi, ecx
cmp dword [esi + 0x14], ecx
jle 0x10055994
mov esi, ecx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + esi + 4]
call fcn.10046f57
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
push 0x10
pop eax
add esi, eax
inc edi
mov eax, dword [esp + 0x14]
cmp edi, dword [eax + 0x14]
mov eax, dword [esp + 0x24]
jl 0x1005595a
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x48], 0
je 0x100559ce
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x100559bd
xor edx, edx
inc edx
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x100559a5
mov ecx, esi
call fcn.10067c10
mov edx, dword [esp + 0x10]
xor eax, eax
inc eax
or dword [esi + 0x18], eax
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
test edx, edx
jne 0x100546c0
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x1d0]
cmp ecx, esi
je 0x10055a18
mov edi, edx
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1d0], eax
call fcn.10036499
dec dword [edi + 0x1dc]
mov ecx, dword [edi + 0x1d0]
cmp ecx, esi
jne 0x100559ee
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
xor eax, eax
inc eax
cmp edi, eax
jne 0x10055a4a
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x1d0], eax
mov edx, esi
call fcn.10036499
cmp dword [esp + 0x58], 0
jne 0x100587f2
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1dc]
jmp 0x10055a80
cmp dword [esp + 0x58], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x1e8], eax
mov dword [edx + 0x1ec], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x1f0], eax
mov dword [edx + 0x1f4], ecx
je 0x10055a80
push 2
pop eax
cmp edi, eax
jne 0x100587f2
mov ecx, dword [esp + 0x24]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x18]
call fcn.10084177
jmp 0x100546b2
mov edx, dword [ebx + 8]
xor ecx, ecx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
test edx, edx
je 0x10055ab6
mov eax, dword [edi + 0x20]
and eax, 0x100000
or eax, ecx
jne 0x10058a64
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x10055b7f
lea eax, [esp + 0x1c]
mov ecx, esi
push eax
call fcn.1004636a
mov edi, dword [esp + 0xc]
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x10058a68
xor ecx, ecx
test byte [edi + 0x98], 0x40
je 0x10055b89
cmp dword [ebx + 8], ecx
je 0x10055b89
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x4f], al
je 0x10055b12
inc eax
cmp dword [ecx + 0xb4], eax
jle 0x10055b91
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x10055b2e
mov eax, dword [ecx + 0x1dc]
inc dword [ecx + 0x1e0]
add eax, dword [ecx + 0x1e0]
mov dword [edi + 0x30], eax
dec eax
xor edx, edx
push eax
call fcn.10084177
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x10055b51
mov edx, dword [edi + 0x30]
mov ecx, esi
call fcn.10046f21
mov edx, eax
mov dword [esp + 0x10], edx
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 0x1e8]
mov ecx, dword [edi + 0x1ec]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edi + 0x1f0]
mov ecx, dword [edi + 0x1f4]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
jmp 0x10055b95
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
jmp 0x10055b95
mov esi, edi
mov edi, dword [esp + 0x14]
jmp 0x10055b97
mov esi, edi
mov edi, ecx
xor ecx, ecx
cmp word [ebx + 2], cx
je 0x10055c0b
mov eax, dword [esp + 0x1c]
cmp eax, dword [ebx + 0xc]
jne 0x10055bba
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ebx + 0x10]
je 0x10055c0b
mov edx, dword [esi + 0x7c]
mov ecx, edi
call fcn.100364e3
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.100368e4
mov dword [esi + 0x7c], eax
mov edx, dword [ebx + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x1c]
je 0x10055bf0
mov ecx, edi
call fcn.10067bad
mov eax, dword [esi + 0x98]
xor ecx, ecx
and eax, 0xfffffffd
inc ecx
or eax, ecx
push 0x11
mov dword [esi + 0x98], eax
pop edx
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
jmp 0x10058908
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x108]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004ba09
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, eax
mov eax, dword [esp + 0x108]
jmp 0x10053bde
mov esi, dword [ebx + 4]
push dword [ebx + 0xc]
mov edx, dword [ebx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.1004ba4e
xor ecx, ecx
mov edx, eax
inc ecx
mov dword [esp + 0x10], edx
cmp dword [ebx + 8], ecx
jne 0x10055c8e
movzx eax, word [ebx + 2]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [esp + 0x14]
inc ecx
or dword [eax + 0x18], ecx
jmp 0x10055ca6
push 2
pop eax
cmp dword [ebx + 8], eax
jne 0x10055ca2
mov ecx, dword [esi + 0xc]
mov al, byte [ebx + 0xc]
mov byte [ecx + 0x4c], al
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x14]
cmp dword [ebx + 4], ecx
jne 0x10055cdc
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10055ccf
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x10055cb2
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
and dword [esi + 0x98], 0xfffffffc
jmp 0x10055ce0
mov esi, dword [esp + 0xc]
test edx, edx
jne 0x100546c0
mov edi, dword [esp + 0x10]
jmp case.0x10053a74.85
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x10055d0a
mov eax, dword [esi + 0x3c]
cmp eax, dword [ebx + 8]
je 0x10055e1c
mov esi, dword [esp + 0xc]
mov cl, byte [esp + 0x2f]
mov eax, dword [esi + 0x98]
xor edx, edx
and al, 3
inc edx
cmp al, dl
je 0x10058a90
mov esi, dword [ebx + 0xc]
xor eax, eax
mov edi, dword [esp + 0x14]
mov edx, dword [ebx + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1c], eax
mov eax, esi
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], esi
mov edi, dword [eax + 4]
mov dword [esp + 0x74], edi
cmp cl, 0x61
jne 0x10055d7d
movzx edi, word [ebx + 2]
mov eax, dword [eax + 0xc]
push 8
pop ecx
and edi, ecx
mov al, byte [eax + 0x4c]
push 4
pop ecx
or edi, ecx
mov ecx, dword [esp + 0xc]
cmp al, byte [ecx + 0x93]
jae 0x10055d81
mov byte [ecx + 0x93], al
jmp 0x10055d81
xor eax, eax
mov edi, eax
push 0x10
pop eax
test byte [ebx + 2], al
je 0x10055da1
imul esi, edx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.1004d8c2
mov eax, dword [esi]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov al, byte [ebx + 1]
cmp al, 0xf7
jne 0x10055db5
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], eax
movzx eax, word [eax + 8]
jmp 0x10055dc2
cmp al, 0xfd
jne 0x10055dbe
mov eax, dword [ebx + 0x10]
jmp 0x10055dc2
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 4]
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x10]
push esi
push eax
call fcn.1005367a
mov esi, eax
test esi, esi
je 0x10055106
mov ecx, dword [esp + 0x74]
xor eax, eax
inc eax
push 4
mov byte [esi + 2], al
pop eax
push dword [esi + 0x30]
or dword [esi + 8], eax
push dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov edx, eax
push edi
mov dword [esi + 0x3c], eax
call fcn.1004709f
mov edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x34], eax
cmp byte [ebx + 1], 0xf7
mov dword [esp + 0x10], edx
setne al
mov byte [esi + 4], al
jmp 0x10055e20
mov edx, dword [esp + 0x10]
mov cl, byte [ebx + 2]
mov eax, dword [esi + 0x30]
and cl, 3
mov byte [eax + 3], cl
jmp 0x100546b8
mov ecx, dword [ebx + 8]
mov eax, dword [esi + 0x60]
mov edx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
mov dword [esp + 0x20], eax
mov ecx, esi
push 0xffffffffffffffff
movsx eax, word [eax + 0x40]
push eax
call fcn.1005367a
mov edi, eax
test edi, edi
je 0x1005510a
mov esi, dword [edi + 8]
xor eax, eax
mov edx, dword [esp + 0x1c]
inc eax
push dword [edi + 0x30]
mov byte [edi + 2], al
or esi, eax
mov dword [edi + 8], esi
mov ecx, dword [edx + 0x34]
mov dword [edi + 0x34], ecx
mov al, byte [edx + 4]
mov byte [edi + 4], al
mov eax, dword [esp + 0x20]
mov edx, dword [edx + 0x3c]
mov dword [edi + 0x3c], edx
push ecx
mov eax, dword [eax + 8]
xor eax, esi
and eax, 4
xor eax, esi
mov dword [edi + 8], eax
push 4
pop eax
push eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x10]
call fcn.1004709f
mov dword [esp + 0x10], eax
jmp 0x10053da1
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x10055ece
mov ecx, dword [esp + 0x18]
xor edx, edx
imul eax, eax, 0x28
mov dword [eax + ecx + 0xc], edx
imul eax, dword [ebx + 0xc], 0x28
mov dword [eax + ecx + 0x10], 0x100b3a5d
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x10055f01
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x10055f01
mov edx, dword [esi + 0x3c]
xor eax, eax
push eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], eax
call fcn.1004b812
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x10055fec
mov ecx, dword [esp + 0xc]
xor eax, eax
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.1005367a
mov esi, eax
test esi, esi
je 0x10055106
xor eax, eax
lea edi, [esi + 0x10]
push 0x41e
inc eax
xor edx, edx
or dword [esi + 8], eax
movzx eax, word [ebx + 2]
push 5
pop ecx
or eax, ecx
push eax
mov eax, dword [esp + 0x1c]
push edi
push eax
mov ecx, dword [eax]
call fcn.100456db
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x10055fd2
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.1004636a
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x10055fd2
mov eax, dword [ebx + 0x10]
mov ecx, dword [edi]
mov dword [esp + 0x38], eax
mov dword [esi + 0x34], eax
test eax, eax
je 0x10055fb1
movzx eax, word [ebx + 2]
push 2
pop edx
or eax, edx
lea edx, [esi + 0x3c]
push eax
call fcn.1004b693
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x10055fad
push dword [esi + 0x30]
mov edx, dword [esi + 0x3c]
push dword [esp + 0x3c]
mov ecx, dword [edi]
push 4
pop eax
push eax
call fcn.1004709f
mov edx, eax
mov dword [esp + 0x10], edx
xor eax, eax
jmp 0x10055fcf
push dword [esi + 0x30]
xor eax, eax
xor edx, edx
push eax
push 4
pop eax
inc edx
push eax
mov dword [esi + 0x3c], edx
call fcn.1004709f
mov edx, eax
xor eax, eax
mov dword [esp + 0x10], edx
inc eax
mov byte [esi + 4], al
push 8
pop eax
xor ecx, ecx
cmp word [ebx + 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 edx, edx
jne 0x100546c0
xor eax, eax
inc eax
mov byte [esi + 2], al
jmp 0x10053da1
mov edx, dword [ebx + 4]
xor eax, eax
inc eax
mov ecx, esi
push eax
push 0xffffffffffffffff
push dword [ebx + 8]
call fcn.1005367a
test eax, eax
je 0x1005510a
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x34], ecx
mov edx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x14]
push eax
call fcn.1005a0f3
mov edx, eax
jmp 0x10055c07
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 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 edi, dword [esp + 0x10]
mov dword [edx + 0x1c], eax
je 0x100588eb
jmp 0x10053b38
mov edx, dword [ebx + 4]
mov ecx, esi
push 3
push 0xffffffffffffffff
push dword [ebx + 0xc]
call fcn.1005367a
test eax, eax
je 0x1005510a
xor edx, edx
inc edx
mov byte [eax + 2], dl
mov ecx, dword [ebx + 8]
mov dword [eax + 0x28], ecx
mov byte [eax + 4], dl
mov dword [eax + 0x30], 0x100d4ca8
jmp 0x1005890c
mov eax, dword [ebx + 4]
mov ecx, esi
mov edx, dword [esi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.1004f8d8
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], edx
jmp 0x1005890c
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov word [edi + 2], cx
mov dword [edi + 0x24], ecx
cmp byte [edi + 4], cl
je 0x10056223
imul esi, dword [ebx + 0xc], 0x28
push 2
pop ecx
add esi, dword [esp + 0x18]
movzx eax, word [esi + 8]
mov dword [esp + 0x38], eax
and al, 0x2e
cmp al, cl
jne 0x100560fb
xor edx, edx
mov ecx, esi
call fcn.1005374a
mov ecx, esi
call fcn.1004d7a5
movzx ecx, word [esi + 8]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov word [esi + 8], dx
test cl, 0x24
jne 0x100561b8
test cl, 8
jne 0x1005617d
xor eax, eax
inc eax
test al, cl
jne 0x100563e0
cmp dword [esp + 0x28], 0x18
jae 0x100563e0
mov ecx, dword [edi + 0x30]
lea edx, [esp + 0x70]
call fcn.10047873
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x70], 0
jne 0x100588eb
mov esi, dword [esp + 0xc]
test edx, edx
je 0x10058908
push 0x14
pop eax
add ebx, eax
jmp 0x10058908
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
call fcn.100ab58d
movsd xmm1, qword [esi]
comisd xmm0, xmm1
jbe 0x100561a2
mov eax, dword [esp + 0x28]
xor ecx, ecx
inc ecx
test cl, al
je 0x100561b8
dec eax
jmp 0x100561b4
comisd xmm1, xmm0
jbe 0x100561b8
mov eax, dword [esp + 0x28]
xor ecx, ecx
inc ecx
test cl, al
jne 0x100561b8
inc eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x70]
xor edx, edx
push eax
xor eax, eax
lea esi, [edi + 0x30]
mov ecx, dword [esi]
push eax
push dword [esp + 0x60]
push dword [esp + 0x28]
call fcn.100478cf
mov edx, eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], edx
mov dword [edi + 0x4c], eax
test edx, edx
jne 0x100546c0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x70]
cmp eax, 0x18
jl 0x100562fe
test ecx, ecx
js 0x100562c7
jne 0x10056218
cmp eax, 0x19
je 0x100562c7
xor eax, eax
mov dword [esp + 0x70], eax
jmp 0x10056167
lea esi, [edi + 0x30]
mov eax, dword [esi]
push 0
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x33], al
pop eax
setne al
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x118], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0x120], ax
mov eax, edx
xor edx, edx
mov byte [esp + 0x126], cl
inc edx
and al, dl
lea edx, [esp + 0x118]
neg al
sbb al, al
and al, 0xfe
inc al
mov byte [esp + 0x122], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x70]
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi]
call fcn.100478cf
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp byte [esp + 0x2f], al
je 0x100561f0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
cmp byte [esp + 0x126], al
jne 0x100561f4
mov edi, eax
jmp 0x1005615c
xor eax, eax
push eax
mov dword [esp + 0x74], eax
push dword [esi]
call fcn.10047d8a
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10056154
cmp edx, 0x65
jne 0x100546c0
xor eax, eax
mov edi, eax
inc eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x70], eax
jmp 0x10056158
test ecx, ecx
jg 0x10056319
jne 0x10056309
cmp eax, 0x16
je 0x10056319
mov ecx, dword [esi]
call fcn.10047c4a
mov dword [esp + 0x70], eax
jmp 0x10056154
xor eax, eax
push eax
mov dword [esp + 0x74], eax
push dword [esi]
call fcn.10047e9e
jmp 0x100562d5
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 0x18]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
cmp byte [eax], 0
jne 0x10053b38
mov eax, dword [esi + 0x34]
xor ecx, ecx
mov edi, dword [ebx + 4]
mov dword [esp + 0x138], eax
mov ax, word [ebx + 0x24]
mov word [esp + 0x140], ax
imul eax, dword [ebx + 0x20], 0x28
mov byte [esp + 0x142], cl
mov dword [esp + 0xec], ecx
add eax, dword [esp + 0x18]
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0x13c]
mov edx, esi
push eax
call fcn.1005197d
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov eax, dword [esp + 0xec]
test eax, eax
jg 0x100563db
je 0x100563e0
test edi, edi
jle 0x100587f2
xor eax, eax
dec edi
push eax
push dword [esi + 0x30]
call fcn.10047d8a
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10056376
cmp edx, 0x65
jne 0x100546c0
xor eax, eax
mov edi, eax
mov dword [esp + 0x10], edi
push 0x14
pop eax
add ebx, eax
mov edi, dword [esp + 0x10]
jmp 0x100588eb
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [ebx + 8]
jge 0x10056408
mov ax, word [ebx + 8]
mov word [ecx + 0xc], ax
jmp 0x1005890c
cmp eax, dword [ebx + 0xc]
jle 0x1005890c
mov ax, word [ebx + 0xc]
jmp 0x100563ff
mov ecx, dword [ebx + 4]
xor edx, edx
mov eax, dword [esi + 0x60]
cmp dword [eax + ecx*4], edx
je case.0x10053a74.11
jmp 0x1005890c
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [ebx + 0x10]
jge 0x1005890c
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 0xc], 0x28
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x20], edi
add esi, dword [esp + 0x18]
cmp dword [ebx + 0x10], ecx
jle 0x1005648d
mov eax, dword [edi + 0x34]
lea edi, [esp + 0x168]
mov dword [esp + 0x168], eax
mov ax, word [ebx + 0x10]
mov dword [esp + 0x16c], esi
mov esi, dword [esp + 0x20]
mov word [esp + 0x170], ax
mov dword [esp + 0x48], ecx
jmp 0x100564d6
mov eax, 0x4000
test word [esi + 8], ax
je 0x100564a1
mov ecx, esi
call fcn.1004d552
jmp 0x100564a3
mov eax, ecx
test eax, eax
jne 0x10055106
mov ecx, dword [edi + 0x34]
call fcn.10050b94
mov edi, eax
mov dword [esp + 0x48], edi
test edi, edi
je 0x10055106
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + 0x34]
call fcn.10050be8
xor ecx, ecx
mov byte [edi + 0xa], cl
cmp byte [ebx], 0x1c
mov dword [esp + 0x20], ecx
jne 0x10056518
movzx eax, word [edi + 8]
mov edx, ecx
xor ecx, ecx
cmp cx, ax
jae 0x10056516
mov ecx, dword [edi + 4]
mov dword [esp + 0x38], eax
add ecx, 8
test byte [ecx], 1
jne 0x1005650f
movzx eax, ax
inc edx
add ecx, 0x28
cmp edx, eax
mov eax, dword [esp + 0x38]
jl 0x100564f9
jmp 0x10056516
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
xor ecx, ecx
lea eax, [esp + 0x104]
mov edx, edi
push eax
push ecx
push ecx
push ecx
mov ecx, dword [esi + 0x30]
call fcn.100478cf
mov edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edx
test eax, eax
je 0x1005654a
mov ecx, dword [esp + 0x14]
mov edx, eax
call fcn.10036499
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x100546c0
mov eax, dword [esp + 0x104]
xor ecx, ecx
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x104]
test eax, eax
sete cl
test eax, eax
setne al
mov byte [esi + 2], al
xor eax, eax
mov byte [esi + 3], al
mov dword [esi + 0x24], eax
mov al, byte [ebx]
cmp al, 0x1e
jne 0x1005658b
mov edi, dword [esp + 0x10]
test ecx, ecx
jmp 0x1005478e
cmp dword [esp + 0x20], 0
jne 0x100563e0
test ecx, ecx
je 0x100563e0
cmp al, 0x1b
jne 0x100587f2
mov ax, word [ebx + 0x10]
mov word [esi + 0xc], ax
jmp 0x10053da1
imul esi, dword [ebx + 0xc], 0x28
mov ecx, dword [esp + 0x18]
add esi, ecx
test byte [esi + 8], 0x24
jne 0x10056605
push 0xa
pop ecx
push dword [esp + 0x54]
lea edi, [esp + 0xac]
mov dl, 0x43
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xac]
call fcn.10053806
push 4
pop eax
test byte [esp + 0xb0], al
je 0x100563e0
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
jmp 0x10056610
mov ecx, dword [esp + 0x18]
imul eax, dword [ebx + 0xc], 0x28
mov edi, dword [ecx + eax]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0xc]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esi + 0x30]
mov dword [esp + 0xe0], eax
lea eax, [esp + 0xe0]
push eax
xor eax, eax
push eax
push edx
push edi
xor edx, edx
call fcn.100478cf
mov edx, eax
mov dword [esi + 0x48], edi
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov dword [esi + 0x4c], eax
mov word [esi + 2], cx
mov dword [esi + 0x24], ecx
mov eax, dword [esp + 0xe0]
mov dword [esi + 0x28], eax
mov dword [esp + 0x10], edx
cmp dword [esp + 0xe0], ecx
je 0x100546b8
cmp dword [ebx + 8], ecx
jne 0x100563e0
mov ecx, 0x1614a
call fcn.100967c3
jmp 0x100546b2
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 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 [ebx + 4]
mov eax, dword [esi + 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 0x1005890c
xorps xmm0, xmm0
xor eax, eax
mov edx, ebx
movlpd qword [esp + 0x48], xmm0
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.1005393a
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
push 2
mov dword [esp + 0x24], eax
pop eax
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x38], edi
test byte [edi + 8], al
jne 0x10056757
mov ecx, dword [edi + 0x30]
lea edx, [esp + 0x1c]
call fcn.10047873
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [esp + 0x1c], eax
je 0x1005671e
inc eax
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x4c], eax
jmp 0x10056757
mov ecx, dword [edi + 0x30]
call fcn.10047183
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
cmp edx, 0x7fffffff
jl 0x10056745
jg 0x1005673d
cmp eax, 0xffffffff
jb 0x10056745
push 2
pop eax
or dword [edi + 8], eax
jmp 0x10056757
xor ecx, ecx
inc ecx
add eax, ecx
push 0
pop ecx
adc edx, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x100567e5
mov eax, dword [esi + 0xc8]
test eax, eax
jne 0x100567c8
imul esi, ecx, 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.1004d8c2
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x10056790
cmp edx, 0x7fffffff
je 0x1005684a
push 2
pop eax
test byte [edi + 8], al
jne 0x1005684a
mov edi, dword [esp + 0x4c]
xor eax, eax
inc eax
add ecx, eax
push 0
pop eax
adc edx, eax
cmp edi, edx
jg 0x100567d8
jl 0x100567b8
mov eax, dword [esp + 0x48]
cmp eax, ecx
jae 0x100567dc
mov eax, ecx
mov edi, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
jmp 0x100567dc
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x100567c6
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [eax + 0x10]
jmp 0x10056773
mov eax, dword [esp + 0x48]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x38]
mov dword [esi], eax
push 2
pop eax
test byte [edi + 8], al
je 0x10056852
xor eax, eax
mov esi, eax
lea eax, [esp + 0x48]
push eax
push 8
pop eax
push eax
call fcn.100381d4
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [esp + 0x48]
inc edx
push 0
and eax, 0x3fffffff
add ecx, edx
pop edx
adc eax, edx
mov dword [esp + 0x48], ecx
lea edx, [esp + 0x1c]
mov dword [esp + 0x4c], eax
push edx
xor edx, edx
push edx
push eax
push ecx
mov ecx, dword [edi + 0x30]
call fcn.100478cf
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [esp + 0x1c], eax
jne 0x10056852
inc esi
cmp esi, 0x64
jl 0x100567f1
push 0xd
pop edx
jmp 0x100589eb
mov edx, dword [esp + 0x20]
xor eax, eax
mov byte [edi + 3], al
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x10053da1
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
imul eax, dword [ebx + 0xc], 0x28
mov ecx, dword [esp + 0x18]
add edx, dword [esp + 0x18]
cmp byte [ebx + 1], 0xfa
mov esi, dword [eax + ecx]
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], eax
jne 0x100568d2
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xf0], 0
je 0x100568d2
mov eax, dword [esp + 0x14]
movsx ecx, byte [edi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
jmp 0x100568d8
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x20], ecx
xor ecx, ecx
inc ecx
test byte [ebx + 2], cl
je 0x100568eb
mov ecx, dword [esp + 0xc]
inc dword [ecx + 0x2c]
test byte [ebx + 2], 0x20
je 0x100568fb
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], esi
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x10]
movzx ecx, word [ebx + 2]
mov dword [esp + 0xb8], eax
mov eax, dword [edx + 0xc]
push 0x10
mov dword [esp + 0xc8], eax
pop eax
test al, cl
je 0x1005691f
mov esi, dword [edi + 0x28]
jmp 0x10056923
xor eax, eax
mov esi, eax
mov eax, 0x4000
test word [edx + 8], ax
push 0
pop eax
je 0x1005693e
mov eax, dword [edx]
mov dword [esp + 0xc8], eax
xor eax, eax
jmp 0x10056945
mov dword [esp + 0xc8], eax
and ecx, 0xa
mov dword [esp + 0xa8], eax
push esi
push ecx
mov ecx, dword [edi + 0x30]
lea edx, [esp + 0xb0]
call fcn.1004ae32
mov edx, eax
xor ecx, ecx
mov dword [esp + 0x10], edx
mov byte [edi + 3], cl
mov dword [edi + 0x24], ecx
test edx, edx
jne 0x100546c0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x100587f2
push dword [esp + 0xb4]
push dword [esp + 0xb4]
push dword [eax]
push dword [esp + 0x54]
push 4
pop eax
test byte [ebx + 2], al
push 0x12
pop eax
push 0x17
pop ecx
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0xec]
call dword [eax + 0xf0]
jmp 0x10053da1
cmp byte [ebx + 1], 0xfa
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x10056a10
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [eax + 0xf0], ecx
je 0x10056a10
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edi, dword [ebx + 0x10]
push 2
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
pop eax
test byte [ebx + 2], al
je 0x10056a18
cmp byte [esi + 4], 0
je 0x10056a18
mov ecx, dword [esi + 0x30]
call fcn.10047183
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], edx
jmp 0x10056a18
xor eax, eax
mov dword [esp + 0x20], eax
mov edi, eax
mov dl, byte [ebx + 2]
mov ecx, dword [esi + 0x30]
call fcn.1004b1a8
mov edx, eax
xor ecx, ecx
mov dword [esp + 0x10], edx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
test edx, edx
jne 0x100546c0
inc eax
test byte [esp + 0x38], al
je 0x100587f2
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
inc dword [eax + 0x2c]
mov eax, dword [edx + 0xf0]
test eax, eax
je 0x100587f2
mov ecx, 0x80
test byte [edi + 0x24], cl
jne 0x100587f2
push dword [esi + 0x4c]
push dword [esi + 0x48]
push dword [edi]
push dword [esp + 0x2c]
push 9
push dword [edx + 0xec]
call eax
jmp 0x10053da1
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x2c]
add dword [ecx + 0x68], eax
mov dword [ecx + 0x64], eax
xor eax, eax
mov dword [esi + 0x2c], eax
mov eax, ecx
jmp case.0x10053a74.85
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
imul edx, dword [ebx + 0xc], 0x28
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xe8]
add edx, dword [esp + 0x18]
push eax
push dword [ebx + 0x10]
call fcn.1005b99d
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [esp + 0xe8], eax
mov edi, eax
jmp 0x10053adc
imul edx, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
add edx, dword [esp + 0x18]
mov ecx, dword [eax + ecx*4]
call fcn.1005b947
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x24], ecx
jmp 0x10058908
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov esi, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x30]
mov ecx, edi
call fcn.10047150
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x6c]
ja 0x10057dde
push esi
mov ecx, edi
call fcn.1004df41
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [ebx + 0xc], eax
jne 0x100587f2
mov eax, 0x1000
test word [esi + 8], ax
je 0x100587f2
mov ecx, esi
call fcn.1004d508
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x1005510a
jmp 0x10058908
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x60]
mov dword [esp + 0x20], eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x10056bbc
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x10053b38
cmp byte [esi + 3], 0
je 0x10056bca
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
jmp 0x10056c41
push 2
pop eax
cmp byte [esi], al
jne 0x10056c11
mov ecx, dword [esi + 0x30]
lea edx, [esp + 0x98]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
call dword [eax + 0x30]
mov edx, esi
mov edi, eax
mov esi, dword [esp + 0xc]
mov ecx, esi
mov dword [esp + 0x10], edi
call fcn.10051b01
mov edx, edi
test edx, edx
jne 0x10058588
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
jmp 0x10056c53
mov ecx, esi
call fcn.10050880
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp byte [esi + 2], al
je 0x10056c35
mov ecx, dword [esp + 0x20]
inc eax
jmp 0x100545dc
mov ecx, dword [esi + 0x30]
call fcn.10047183
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0x20]
jmp 0x10053bdf
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov byte [esi + 2], al
xor eax, eax
mov dword [esi + 0x24], eax
cmp byte [esi], al
jne 0x100587f2
mov esi, dword [esi + 0x30]
push dword [esi + 0x10]
call fcn.1003642d
xor eax, eax
mov dword [esi + 0x10], eax
inc eax
mov byte [esi], al
jmp 0x10053b38
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
cmp byte [esp + 0x2f], 0x82
mov ecx, dword [esi + 0x30]
mov dword [esp + 0xe4], eax
jne 0x10056cb8
or dword [esi + 0x28], 0xffffffff
cmp byte [ecx], al
je 0x100587f2
lea edx, [esp + 0xe4]
call fcn.10047873
mov edx, eax
xor ecx, ecx
mov al, byte [esp + 0xe4]
mov dword [esp + 0x10], edx
mov byte [esi + 2], al
mov byte [esi + 3], cl
mov dword [esi + 0x24], ecx
test edx, edx
jne 0x100546c0
cmp dword [ebx + 8], ecx
jle 0x100587f2
cmp dword [esp + 0xe4], ecx
mov edi, edx
jmp 0x1005478e
mov ecx, dword [ebx + 4]
lea edx, [esp + 0xdc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x30]
mov ecx, esi
call fcn.10047847
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [esp + 0xdc], eax
jne 0x100563e0
mov ecx, esi
call fcn.10047c52
xor ecx, ecx
cmp edx, ecx
jl 0x10056d5c
jg 0x10056d43
cmp eax, ecx
jb 0x10056d5c
push edx
push eax
call fcn.10039e06
cwde
cmp eax, dword [ebx + 0xc]
jge 0x10056d5c
xor eax, eax
inc eax
mov dword [esp + 0xdc], eax
jmp 0x10056d63
mov eax, dword [esp + 0xdc]
mov edi, dword [esp + 0x10]
test eax, eax
jmp 0x1005478e
inc dword [esi + 0xac]
mov eax, dword [esi + 0x60]
lea edx, [esp + 0xd4]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
xor eax, eax
inc eax
mov dword [esp + 0xd4], eax
cmp byte [esi], al
jne 0x10056d9b
mov ecx, esi
call fcn.1005b842
jmp 0x10056dab
mov ecx, dword [esi + 0x30]
call fcn.10047847
xor ecx, ecx
mov byte [esi + 3], cl
mov dword [esi + 0x24], ecx
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov al, byte [esp + 0xd4]
mov edi, edx
mov byte [esi + 2], al
cmp dword [esp + 0xd4], edx
jmp 0x1005478e
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.1005b892
jmp 0x10056df9
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
push dword [ebx + 0xc]
mov esi, dword [eax + ecx*4]
push dword [esi + 0x30]
call dword [ebx + 0x10]
mov edx, eax
mov dword [esp + 0x10], edx
xor ecx, ecx
mov dword [esi + 0x24], ecx
test edx, edx
jne 0x10056e1f
mov byte [esi + 2], cl
movzx eax, word [ebx + 2]
mov esi, dword [esp + 0xc]
inc dword [esi + eax*4 + 0xa4]
jmp case.0x10053a74.11
cmp edx, 0x65
jne 0x100546c0
xor eax, eax
mov edi, ecx
inc eax
mov dword [esp + 0x10], edi
mov byte [esi + 2], al
mov esi, dword [esp + 0xc]
jmp 0x100575f1
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 8], 0x28
mov edi, dword [eax + ecx*4]
xor eax, eax
mov ecx, dword [esp + 0x18]
inc eax
add esi, ecx
test byte [ebx + 2], al
je 0x10056e5f
mov eax, dword [esp + 0xc]
inc dword [eax + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10056e77
mov ecx, esi
call fcn.1004d552
mov ecx, dword [esp + 0x18]
jmp 0x10056e79
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov eax, dword [esi + 0x10]
mov dword [esp + 0xa8], eax
imul eax, dword [ebx + 0xc], 0x28
push 0x10
add eax, ecx
mov dword [esp + 0xc0], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0xc4], ax
movzx eax, word [ebx + 2]
pop ecx
test cl, al
je 0x10056ecc
mov ecx, dword [edi + 0x28]
jmp 0x10056ece
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x30]
lea edx, [esp + 0xac]
and eax, 0xa
push eax
call fcn.1004ae32
mov edx, eax
xor eax, eax
mov dword [edi + 0x24], eax
jmp 0x100546b4
mov eax, dword [esi + 0x60]
imul esi, dword [ebx + 8], 0x28
mov ecx, dword [ebx + 4]
add esi, dword [esp + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10056f13
mov ecx, esi
call fcn.1004d552
jmp 0x10056f15
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edx, esi
mov ecx, edi
call fcn.1005ac6f
jmp 0x100546b2
mov ecx, dword [ebx + 4]
lea edx, [esp + 0x148]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [esi + 0x34]
mov edi, dword [esi + 0x30]
mov dword [esp + 0x148], eax
mov ax, word [ebx + 0xc]
mov word [esp + 0x150], ax
imul eax, dword [ebx + 8], 0x28
mov byte [esp + 0x152], cl
add eax, dword [esp + 0x18]
mov dword [esp + 0x14c], eax
lea eax, [esp + 0x10c]
push eax
push ecx
push ecx
push ecx
mov ecx, edi
call fcn.100478cf
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp dword [esp + 0x10c], eax
jne 0x10056fb9
push 4
pop eax
mov dl, al
mov ecx, edi
call fcn.1004b1a8
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
xor ecx, ecx
jmp 0x10056fc5
xor ecx, ecx
cmp word [ebx + 2], cx
jne 0x10058a9a
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
jmp 0x10053da1
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x30]
cmp byte [eax], 0
je 0x10056fea
mov ecx, esi
call fcn.10050848
jmp 0x10056fec
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp byte [esi + 2], al
jne 0x10057095
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf8]
xorps xmm0, xmm0
movlpd qword [esp + 0xf8], xmm0
mov edx, dword [esi + 0x30]
push eax
call fcn.10051885
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
cmp byte [ebx], 0x86
jne 0x10057070
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
xor eax, eax
mov byte [edx + 2], al
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov dword [edx + 0x48], eax
xor eax, eax
inc eax
mov dword [edx + 0x4c], ecx
mov byte [edx + 3], al
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x20], eax
mov dword [edx + 0x2c], esi
jmp 0x10053da1
mov esi, dword [esp + 0xc]
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x10058908
imul eax, dword [ebx + 8], 0x28
mov ecx, 0x2400
add eax, dword [esp + 0x18]
test word [eax + 8], cx
je 0x100570af
mov ecx, eax
jmp 0x10053f94
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
jmp 0x10053da1
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x1005890c
call fcn.10050809
jmp 0x1005602d
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
cmp byte [esp + 0x2f], 0x28
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x158], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0x160], ax
sbb al, al
mov byte [esp + 0x162], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [esp + 0x18]
mov dword [esp + 0x15c], eax
mov esi, dword [ecx + 0x30]
mov ecx, esi
call fcn.10047150
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x10058aa4
cmp edx, 0x7fffffff
ja 0x10058aa4
xor eax, eax
mov ecx, esi
mov word [esp + 0xb0], ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc8], eax
xor eax, eax
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xa8]
push eax
call fcn.1004df41
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
push eax
lea eax, [esp + 0x15c]
push eax
call fcn.100510f7
mov esi, eax
mov eax, 0x2400
test dword [esp + 0xb0], eax
jne 0x100571a6
cmp dword [esp + 0xc0], 0
je 0x100571b2
lea ecx, [esp + 0xa8]
call fcn.1004d709
xor eax, eax
inc eax
test byte [ebx], al
jne 0x100571bd
neg esi
jmp 0x100571be
inc esi
mov edi, dword [esp + 0x10]
test esi, esi
jg 0x100588eb
jmp 0x10053b38
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [esp + 0x14]
xor ecx, ecx
inc ecx
mov dword [esp + 0x38], eax
mov word [eax + 8], cx
mov ecx, dword [edx + 0xc0]
inc ecx
cmp dword [edx + 0xb4], ecx
jg 0x10058ac9
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov esi, dword [ebx + 4]
mov dword [esp + 0xd8], ecx
mov ecx, eax
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, dword [edx + 0x10]
mov edi, dword [eax + ecx*8 + 4]
mov ecx, edi
call fcn.10043f70
lea eax, [esp + 0xd8]
mov edx, esi
push eax
mov ecx, edi
call fcn.1004b865
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.10043fe8
mov ecx, dword [esp + 0x38]
push 4
pop eax
mov word [ecx + 8], ax
mov eax, dword [esp + 0xd8]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
test edx, edx
jne 0x100546c0
cmp dword [esp + 0xd8], edx
je 0x100587f2
push dword [ebx + 4]
mov edx, dword [esp + 0x24]
push dword [esp + 0xdc]
mov ecx, dword [esp + 0x1c]
call fcn.10069ec9
mov al, byte [esp + 0x20]
inc al
mov byte [esp + 0x6f], al
jmp 0x10053da1
xor ecx, ecx
lea eax, [esp + 0x20]
xor edx, edx
cmp dword [ebx + 0xc], edx
mov dword [esp + 0x20], edx
mov edx, dword [ebx + 4]
cmove eax, ecx
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [ebx + 8]
add eax, eax
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004b812
mov edx, eax
xor eax, eax
mov dword [esp + 0x10], edx
cmp dword [ebx + 0xc], eax
je 0x10055c0b
mov eax, dword [esp + 0x20]
add dword [esi + 0x2c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle 0x10055c0b
mov edi, dword [esp + 0x18]
imul ecx, ecx, 0x28
cdq
add dword [ecx + edi], eax
adc dword [ecx + edi + 4], edx
mov edx, dword [esp + 0x10]
jmp 0x10055c0b
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
xor eax, eax
inc eax
cmp byte [ecx], al
jne 0x10057319
mov edx, dword [ecx + 0x30]
mov ecx, dword [esp + 0x14]
call fcn.1005a43f
jmp 0x1005890c
mov ecx, dword [ecx + 0x30]
xor eax, eax
push eax
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.1004b812
jmp 0x1005602d
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
mov edi, dword [ecx + edx*8 + 4]
mov ecx, edi
call fcn.10043f70
push esi
lea edx, [esp + 0xa8]
mov ecx, edi
call fcn.1004b487
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.10043fe8
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x100546c0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0xa4]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x10053da1
mov edi, dword [esp + 0x14]
xor eax, eax
push eax
push eax
push eax
inc byte [edi + 0x5a]
push dword [ebx + 0x10]
push edi
call fcn.100741e9
dec byte [edi + 0x5a]
mov edx, eax
jmp 0x10055c07
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x1005740f
mov eax, dword [eax + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.1006ccbb
mov ecx, dword [esp + 0x14]
xor eax, eax
inc eax
mov edx, esi
push eax
mov eax, dword [esp + 0x10]
and dword [ecx + 0x18], 0xffffffef
add eax, 0x7c
push eax
call fcn.10077a1a
mov esi, dword [esp + 0xc]
mov edx, eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], edx
or dword [eax + 0x18], ecx
and dword [esi + 0x98], 0xfffffffc
jmp 0x100574f0
mov edx, dword [esp + 0x14]
push dword [ebx + 0x10]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + 0x10]
add eax, 0x7c
mov dword [esp + 0xb4], esi
add esi, esi
mov dword [esp + 0xb0], eax
xor eax, eax
mov dword [esp + 0xbc], eax
push str.sqlite_master
mov eax, dword [ecx + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xc8], eax
push dword [ecx + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push edx
call fcn.10038011
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10058ade
mov eax, dword [esp + 0x14]
xor ecx, ecx
inc ecx
mov byte [eax + 0xa5], cl
xor ecx, ecx
push ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0xac]
push ecx
push fcn.100777dc
push esi
push eax
call fcn.100741e9
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100574d1
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x100574d1
cmp dword [esp + 0xbc], eax
jne 0x100574d1
mov ecx, 0x1670d
call fcn.100967c3
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.10036499
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov byte [eax + 0xa5], cl
test edx, edx
jne 0x10058ae6
jmp 0x10055ce8
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.1006659e
jmp 0x1005602d
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.10067e16
jmp 0x1005890c
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.10067a7d
jmp 0x1005890c
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
mov ecx, eax
call fcn.100804d7
jmp 0x1005890c
imul edi, dword [ebx + 0xc], 0x28
lea eax, [esp + 0x110]
imul esi, dword [ebx + 4], 0x28
mov ecx, dword [ebx + 0x10]
push eax
add edi, dword [esp + 0x1c]
add esi, dword [esp + 0x1c]
mov eax, dword [edi]
inc eax
push eax
push dword [ebx + 8]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x20]
push eax
movzx eax, word [ebx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.1004c3b3
mov ecx, eax
mov eax, 0x2400
mov dword [esp + 0x38], ecx
test word [esi + 8], ax
je 0x1005759c
mov ecx, esi
call fcn.1004d6da
mov ecx, dword [esp + 0x38]
jmp 0x100575a3
xor eax, eax
inc eax
mov word [esi + 8], ax
mov eax, dword [esp + 0x110]
test eax, eax
je 0x100575d1
test ecx, ecx
je 0x10055106
dec eax
cdq
sub dword [edi], eax
push fcn.1003642d
sbb dword [edi + 4], edx
xor eax, eax
inc eax
mov edx, ecx
push eax
push 0xffffffffffffffff
mov ecx, esi
call fcn.1004dd25
push 2
pop eax
test byte [esi + 8], al
je 0x100575eb
mov al, byte [esp + 0x54]
cmp byte [esi + 0xa], al
je 0x100575eb
mov dl, al
mov ecx, esi
call fcn.100384fe
mov esi, dword [esp + 0xc]
xor ecx, ecx
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x110], ecx
jne 0x10058b84
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x8c], ecx
jb 0x10058908
mov edi, dword [esp + 0x78]
jbe 0x10057661
mov eax, dword [edx + 0x158]
test eax, eax
je 0x10058908
add edi, dword [edx + 0x160]
push dword [edx + 0x15c]
adc ecx, 0
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ecx
call eax
test eax, eax
jne 0x10058b7a
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x8c], ecx
ja 0x10057618
jb 0x10058908
cmp dword [esp + 0x84], edi
jae 0x10057618
jmp 0x10058908
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 8], 0x28
push 0x10
pop eax
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
test byte [esi + 8], al
jne 0x10057696
mov ecx, esi
call fcn.1004db88
test eax, eax
jne 0x10055106
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
push dword [edi]
call fcn.1003dbc2
jmp 0x10053da1
imul esi, dword [ebx + 4], 0x28
mov edi, dword [esp + 0x18]
push 0x10
pop eax
add esi, edi
test byte [esi + 8], al
je 0x100576eb
mov ecx, dword [esi + 0x10]
lea edx, [esp + 0x128]
call fcn.1003dde1
test eax, eax
je 0x100576eb
imul ecx, dword [ebx + 0xc], 0x28
push dword [esp + 0x12c]
push dword [esp + 0x12c]
add ecx, edi
call fcn.1004db55
jmp 0x100575eb
mov eax, 0x2400
test word [esi + 8], ax
je 0x100576ff
mov ecx, esi
call fcn.1004d6da
jmp 0x10057706
xor eax, eax
inc eax
mov word [esi + 8], ax
mov esi, dword [esp + 0xc]
jmp case.0x10053a74.11
imul esi, dword [ebx + 4], 0x28
imul edi, dword [ebx + 0xc], 0x28
mov eax, dword [ebx + 0x10]
push 0x10
pop ecx
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
test byte [esi + 8], cl
jne 0x10057741
mov ecx, esi
call fcn.1004db88
test eax, eax
jne 0x10055106
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10057762
push dword [edi + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
push dword [edi]
call fcn.1003de2f
test eax, eax
jne 0x100563e0
mov eax, dword [esp + 0x20]
test eax, eax
js 0x10053da1
jmp 0x10057696
imul edi, dword [ebx + 0xc], 0x28
xor eax, eax
mov esi, dword [ebx + 0x10]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
add edi, dword [esp + 0x18]
cmp word [ebx + 2], ax
je 0x100577a9
mov eax, dword [edx + 0xc8]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x100577a9
cmp dword [eax + 0x1c], ecx
je 0x100577a1
mov eax, dword [eax + 4]
test eax, eax
jne 0x10057795
test eax, eax
jne 0x10058906
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0xd0]
cmp eax, dword [ecx + 0x94]
jge 0x10058b01
push 0x10
pop eax
test byte [edi + 8], al
jne 0x100578b3
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, edx
test edx, edx
lea ecx, [eax + 1]
cmovne ecx, eax
mov dword [esp + 0x20], ecx
lea eax, [ecx + 2]
imul ecx, eax, 0xa
mov eax, dword [esi + 4]
add eax, 7
add ecx, edx
mov eax, eax
test eax, eax
jns 0x100577f6
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
cdq
push edx
push eax
call fcn.100366b2
mov esi, eax
test esi, esi
je 0x10055106
mov ecx, edi
call fcn.1004d737
mov ecx, dword [esp + 0x20]
mov eax, 0x410
mov word [edi + 8], ax
mov eax, dword [esp + 0x38]
sub ebx, dword [esp + 0x44]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [edi + 0x10], esi
mov dword [edi + 0x24], 0x1004f20a
mov edi, dword [esp + 0x1c]
mov dword [esi], eax
mov dword [esi + 0x3c], ecx
push 0x14
mov eax, dword [edi + 0xc]
mov dword [esi + 0x40], eax
mov eax, ebx
cdq
pop ebx
idiv ebx
mov edx, dword [esp + 0xc]
mov dword [esi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c], eax
lea eax, [ecx + 2]
imul ecx, eax, 0x28
lea eax, [esi + 0x50]
add ecx, esi
cmp eax, ecx
je 0x100578ba
mov ebx, dword [esp + 0x14]
mov edi, 0x80
mov word [eax + 8], di
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x100578a3
jmp 0x100578b6
mov esi, dword [edi + 0x10]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
lea ebx, [esi + 0x50]
xor eax, eax
mov dword [esp + 0x18], ebx
inc eax
add dword [edx + 0xd0], eax
mov eax, dword [edx + 0xc8]
mov dword [esi + 4], eax
mov ecx, dword [ecx + 0x2c]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edx + 0x2c]
mov dword [esi + 0x44], eax
mov eax, dword [edx]
mov eax, dword [eax + 0x64]
mov dword [esi + 0x48], eax
mov eax, dword [edx + 0xdc]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [edx + 0xdc], eax
mov dword [edx + 0x2c], eax
mov dword [edx + 0xc8], esi
mov dword [edx + 0x58], ebx
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x18], ecx
movzx eax, word [esi + 0x40]
imul ecx, ecx, 0x28
mov dword [edx + 0x1c], eax
add ecx, ebx
mov dword [edx + 0x60], ecx
mov eax, dword [edi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x18], 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 esi, dword [esp + 0xc]
mov dword [esp + 0x44], ecx
lea ebx, [ecx - 0x14]
mov dword [esi + 0x68], ecx
mov eax, dword [edi + 4]
mov dword [esi + 0x6c], eax
jmp 0x100575ef
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov esi, dword [esi + 0xc8]
mov ecx, 0x1000
push ecx
imul edx, dword [esi + 0x30], 0x14
mov ecx, dword [esi + 8]
mov ecx, dword [edx + ecx + 4]
add ecx, dword [ebx + 4]
imul edx, ecx, 0x28
mov ecx, eax
add edx, dword [esi + 0x10]
call fcn.1004dc40
jmp 0x10053b38
mov eax, dword [eax + 0x20]
xor ecx, ecx
and eax, 0x80000
or eax, ecx
mov eax, dword [ebx + 8]
cdq
je 0x100579c5
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x1f0], eax
mov eax, ecx
adc dword [eax + 0x1f4], edx
jmp case.0x10053a74.85
cmp dword [ebx + 4], ecx
je 0x100579e1
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x1e8], eax
mov eax, ecx
adc dword [eax + 0x1ec], edx
jmp case.0x10053a74.85
add dword [esi + 0x40], eax
adc dword [esi + 0x44], edx
jmp 0x1005890c
xor eax, eax
cmp dword [ebx + 4], eax
je 0x10057a20
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1e8]
or eax, dword [edx + 0x1ec]
jne 0x100557e7
mov eax, dword [edx + 0x1f0]
or eax, dword [edx + 0x1f4]
je 0x100588eb
jmp 0x100557e7
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jne 0x1005890c
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1f0]
or eax, dword [ecx + 0x1f4]
je 0x100588eb
jmp 0x10056a98
mov eax, dword [esi + 0xc8]
test eax, eax
jne 0x10057a93
imul edi, dword [ebx + 4], 0x28
add edi, dword [esp + 0x18]
mov ecx, edi
call fcn.1004d8c2
imul esi, dword [ebx + 8], 0x28
add esi, dword [esp + 0x18]
mov ecx, esi
call fcn.1004d8c2
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x100587f2
jl 0x10057a87
cmp dword [edi], eax
jae 0x100587f2
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10053da1
mov eax, ecx
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x10057a91
imul edi, dword [ebx + 4], 0x28
add edi, dword [eax + 0x10]
jmp 0x10057a59
imul ecx, dword [ebx + 4], 0x28
xor edx, edx
add ecx, dword [esp + 0x18]
mov edi, dword [ecx + 4]
mov esi, dword [ecx]
cmp edi, edx
jl 0x100588fd
jg 0x10057ac4
cmp esi, edx
jbe 0x100588fd
mov eax, dword [ebx + 0xc]
cdq
sub esi, eax
mov dword [ecx], esi
sbb edi, edx
mov dword [ecx + 4], edi
jmp 0x100563e0
imul esi, dword [ebx + 4], 0x28
mov edx, ebx
imul edi, dword [ebx + 0xc], 0x28
mov ecx, dword [esp + 0xc]
add esi, dword [esp + 0x18]
add edi, dword [esp + 0x18]
call fcn.1005393a
mov edx, dword [esi]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x58], eax
cmp eax, ecx
jl 0x10057b77
jg 0x10057b12
xor eax, eax
cmp edx, eax
jbe 0x10057b77
jmp 0x10057b14
xor eax, eax
mov esi, dword [edi + 4]
mov ecx, dword [edi]
cmp esi, eax
jl 0x10057b23
jg 0x10057b3e
cmp ecx, eax
ja 0x10057b34
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
cmp esi, eax
jl 0x10057b6b
jg 0x10057b3e
cmp ecx, eax
jb 0x10057b6b
or edx, 0xffffffff
mov eax, 0x7fffffff
sub edx, dword [esp + 0x1c]
sbb eax, dword [esp + 0x58]
cmp eax, esi
jg 0x10057b65
jl 0x10057b58
cmp edx, ecx
jae 0x10057b65
mov edx, dword [esp + 0x1c]
xor eax, eax
mov ecx, dword [esp + 0x58]
inc eax
jmp 0x10057b73
mov edx, dword [esp + 0x1c]
xor eax, eax
add edx, ecx
mov ecx, dword [esp + 0x58]
adc ecx, esi
test eax, eax
je 0x10057b7c
or edx, 0xffffffff
or ecx, edx
mov eax, dword [esp + 0x20]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x10053da1
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, edx
mov esi, dword [ecx + 4]
or eax, esi
je 0x10053b38
xor eax, eax
cmp esi, eax
jl 0x100588eb
jg 0x10057bb5
cmp edx, eax
jbe 0x100588eb
sub edx, 1
mov dword [ecx], edx
sbb esi, eax
mov dword [ecx + 4], esi
jmp 0x100588eb
imul edx, dword [ebx + 4], 0x28
add edx, dword [esp + 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp ecx, 0x80000000
jl 0x10057bea
jg 0x10057bdf
test eax, eax
je 0x10057bea
sub eax, 1
mov dword [edx], eax
sbb ecx, 0
mov dword [edx + 4], ecx
or eax, ecx
jmp 0x10054c8a
movzx eax, word [ebx + 2]
xor ecx, ecx
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], eax
push ecx
lea eax, [eax*4 + 0x44]
mov ecx, edi
push eax
call fcn.1003670e
mov esi, eax
test esi, esi
je 0x10055106
mov eax, dword [esp + 0x20]
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 + 8], ax
mov dword [ecx + 0x18], edx
mov dword [ecx + 0x20], edi
mov eax, dword [ebx + 0x10]
mov dword [esi + 4], eax
mov eax, ebx
sub eax, dword [esp + 0x48]
cdq
pop ecx
idiv ecx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
xor eax, eax
mov byte [esi + 0x18], al
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x19], al
mov word [ebx], 0xf09c
mov dword [ebx + 0x10], esi
imul edx, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
mov edi, dword [esp + 0x18]
add edx, edi
mov dword [esp + 0x38], edx
cmp dword [esi + 8], edx
je 0x10057cb2
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], edx
js 0x10057cb2
lea edi, [ecx + 7]
push 4
lea edi, [esi + edi*4]
pop edx
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
mov dword [edi], eax
sub edi, edx
sub ecx, 1
jns 0x10057c95
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x18]
inc dword [edx + 0xc]
lea eax, [esi + 0x1c]
cmp dword [ebx + 4], 0
movzx edx, byte [esi + 0x19]
mov ecx, dword [esi + 4]
push eax
push edx
push esi
je 0x10057ccd
call dword [ecx + 0x1c]
jmp 0x10057cd0
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x100587f2
jle 0x10057d02
mov ecx, dword [esi]
xor eax, eax
lea edx, [eax + 1]
call fcn.1004e006
push eax
push 0x100b8c78
push dword [esp + 0x14]
call fcn.1004e460
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [esi + 0x18], 0
je 0x10057d45
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x10057d3e
imul eax, eax, 0x28
mov ecx, 0x2400
add eax, edi
test word [eax + 8], cx
je 0x10057d2d
xor ecx, ecx
push ecx
inc ecx
push ecx
mov ecx, eax
call fcn.1004db31
jmp 0x10057d3e
xor ecx, ecx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
push 4
mov dword [eax + 4], ecx
pop ecx
mov word [eax + 8], cx
xor eax, eax
mov byte [esi + 0x18], al
jmp 0x10057d47
xor eax, eax
mov ecx, dword [esi]
mov edx, 0x2400
test word [ecx + 8], dx
jne 0x10057d59
cmp dword [ecx + 0x18], eax
je 0x10057d5e
call fcn.1004d709
mov eax, dword [esi]
xor ecx, ecx
inc ecx
mov word [eax + 8], cx
xor eax, eax
mov dword [esi + 0x14], eax
mov edx, dword [esp + 0x10]
jmp 0x100546b8
imul esi, dword [ebx + 4], 0x28
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
add esi, ecx
test eax, eax
je 0x10057da0
push edx
imul edx, eax, 0x28
add edx, ecx
mov ecx, esi
call fcn.1004d69a
imul esi, dword [ebx + 0xc], 0x28
add esi, dword [esp + 0x18]
jmp 0x10057da7
mov ecx, esi
call fcn.1004d633
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
jne 0x10058b1e
push 2
pop eax
test byte [esi + 8], al
je 0x10057dcf
mov al, byte [esp + 0x54]
cmp byte [esi + 0xa], al
je 0x10057dcf
mov dl, al
mov ecx, esi
call fcn.100384fe
mov ecx, esi
call fcn.1004dbfb
test eax, eax
je 0x10053b38
mov edi, dword [esp + 0xc]
push str.string_or_blob_too_big
push edi
call fcn.1004e460
pop ecx
pop ecx
push 0x12
pop edx
jmp 0x10058a1c
mov edx, dword [ebx + 4]
xor ecx, ecx
or dword [esp + 0x1a8], 0xffffffff
or dword [esp + 0x1a4], 0xffffffff
mov dword [esp + 0x1a0], ecx
lea ecx, [esp + 0x1a8]
push ecx
lea ecx, [esp + 0x1a8]
push ecx
push dword [ebx + 8]
mov ecx, eax
call fcn.10095893
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10057e54
push 5
pop eax
cmp edx, eax
jne 0x100546c0
xor eax, eax
xor ecx, ecx
inc ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1a0], ecx
jmp 0x10057e56
xor eax, eax
imul esi, dword [ebx + 0xc], 0x28
mov edi, eax
push 4
pop ebx
mov ecx, 0x2400
add esi, dword [esp + 0x18]
mov eax, dword [esp + edi*4 + 0x1a0]
cdq
test word [esi + 8], cx
je 0x10057e86
push edx
push eax
mov ecx, esi
call fcn.1004db31
mov ecx, 0x2400
jmp 0x10057e8f
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 8], bx
inc edi
add esi, 0x28
cmp edi, 3
jl 0x10057e68
jmp 0x1005568a
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov dword [esp + 0x48], eax
add edx, edx
mov eax, dword [esp + 0x14]
cmp dword [ebx + 0xc], 0xffffffff
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 4]
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
movzx ecx, byte [edx + 5]
mov esi, ecx
mov dword [esp + 0x1c], ecx
cmovne esi, dword [ebx + 0xc]
cmp byte [edx + 0x10], 3
jb 0x10057ee3
xor eax, eax
jmp 0x10057efc
mov eax, dword [edx + 0x40]
cmp dword [eax], 0
je 0x10057ef9
xor eax, eax
cmp dword [edx + 0x4c], eax
jl 0x10057ef9
jg 0x10057efc
cmp dword [edx + 0x48], eax
ja 0x10057efc
xor eax, eax
inc eax
test eax, eax
cmove esi, ecx
cmp byte [edx + 0xf], 0
mov ecx, 0x100be17c
jne 0x10057f12
mov ecx, dword [edx + 0xa8]
push 5
pop eax
cmp esi, eax
jne 0x10057f52
test ecx, ecx
jne 0x10057f23
xor eax, eax
mov ecx, eax
jmp 0x10057f3b
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10057f2a
sub ecx, dword [esp + 0x38]
and ecx, 0x3fffffff
test ecx, ecx
je 0x10057f4a
mov ecx, edx
call fcn.1004193e
test eax, eax
jne 0x10057f52
mov eax, dword [esp + 0x1c]
mov esi, eax
jmp 0x10057f56
mov eax, dword [esp + 0x1c]
cmp esi, eax
je 0x10057fe0
push 5
pop ecx
cmp eax, ecx
je 0x10057f69
cmp esi, ecx
jne 0x10057fe0
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x4f], 0
je 0x10058b46
xor edx, edx
inc edx
cmp dword [ecx + 0xb4], edx
jg 0x10058b46
push 5
pop edx
cmp eax, edx
jne 0x10057fad
mov edi, dword [esp + 0x58]
mov edx, ecx
mov ecx, edi
call fcn.10041a14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10057fe4
mov edx, esi
mov ecx, edi
call fcn.10041830
jmp 0x10057fc6
push 4
pop ecx
cmp eax, ecx
jne 0x10057fc2
mov ecx, dword [esp + 0x58]
push 2
pop eax
mov edx, eax
call fcn.10041830
test edi, edi
jne 0x10057fe4
mov ecx, dword [esp + 0x20]
xor edx, edx
push 5
pop eax
cmp esi, eax
sete dl
inc edx
call fcn.1004c852
mov edi, eax
mov dword [esp + 0x10], edi
test edi, edi
je 0x10057fe8
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x58]
mov edx, esi
call fcn.10041830
mov esi, dword [esp + 0x48]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x1005800b
xor eax, eax
mov ecx, eax
jmp 0x10058014
mov ecx, dword [eax*4 + 0x100be7f8]
xor eax, eax
mov dword [esi + 0x10], ecx
test ecx, ecx
jne 0x1005801f
mov ecx, eax
jmp 0x10058031
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10058022
sub ecx, edx
and ecx, 0x3fffffff
mov al, byte [esp + 0x54]
mov dword [esi + 0xc], ecx
xor ecx, ecx
inc ecx
mov byte [esi + 0xa], cl
cmp al, cl
je 0x10057d6c
mov dl, al
mov ecx, esi
call fcn.100384fe
jmp 0x10057d6c
mov eax, dword [ebx + 8]
test eax, eax
je 0x10058064
imul eax, eax, 0x28
add eax, dword [esp + 0x18]
jmp 0x10058066
xor eax, eax
mov edx, dword [esp + 0x14]
lea ecx, [esi + 0x7c]
push eax
push dword [ebx + 4]
call fcn.10082f73
jmp 0x1005602d
mov ecx, dword [ebx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.10046a7e
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10058908
cmp edx, 0x65
jne 0x100546c0
xor eax, eax
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x100588eb
xor eax, eax
cmp dword [ebx + 4], eax
jne 0x100580ed
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
mov edx, dword [ecx + 4]
test edx, edx
je 0x10056a98
lea esi, [eax + 1]
mov eax, dword [edx + 0x98]
mov ecx, esi
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [edx + 0x98], ecx
mov edx, dword [edx + 8]
test edx, edx
jne 0x100580cc
jmp 0x10053b38
mov ecx, dword [ebx + 8]
mov eax, dword [esi + 0x98]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [esi + 0x98], ecx
jmp 0x1005890c
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x30]
or byte [eax + 1], 0x40
jmp 0x1005890c
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x30]
and byte [eax + 1], 0xbf
jmp 0x1005890c
mov al, byte [ebx + 0xc]
mov edx, dword [esp + 0x14]
mov byte [esp + 0x114], al
test al, al
jne 0x10058157
mov eax, dword [edx + 0x20]
and eax, 0x400
mov dword [esp + 0x38], eax
jne 0x100557e7
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 0x10]
add eax, eax
push dword [esp + 0x114]
mov edx, dword [ebx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.1004c7b3
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x10058908
cmp dl, 6
jne 0x100546c0
push dword [ebx + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.1004e460
add esp, 0xc
jmp 0x10058b15
mov esi, dword [ebx + 0x10]
mov ecx, eax
mov edx, esi
call fcn.100840ae
mov edx, eax
mov dword [esp + 0x10], edx
test esi, esi
je 0x100581c8
mov edx, dword [esi + 8]
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.10051b01
jmp 0x100572ef
mov esi, dword [esp + 0xc]
jmp 0x10055c0b
imul edx, dword [ebx + 8], 0x28
lea edi, [esp + 0xa8]
push 0xa
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0xa8]
add edx, dword [esp + 0x18]
mov dword [esp + 0xc8], edi
call fcn.1004dc92
mov dword [esp + 0x10], eax
lea ecx, [esp + 0xa8]
xor eax, eax
lea edx, [eax + 1]
call fcn.1004e006
test eax, eax
je 0x1005822a
mov edx, dword [ebx + 4]
lea ecx, [esi + 0x7c]
push ecx
push eax
mov ecx, edi
call fcn.10083d1b
mov dword [esp + 0x10], eax
mov eax, 0x2400
test dword [esp + 0xb0], eax
jne 0x10058246
cmp dword [esp + 0xc0], 0
je 0x100572ef
lea ecx, [esp + 0xa8]
call fcn.1004d709
jmp 0x100572ef
mov edi, dword [esp + 0x14]
mov ecx, edi
inc dword [edi + 0xc0]
push dword [ebx + 0x10]
mov edx, dword [ebx + 4]
call fcn.10083fb5
dec dword [edi + 0xc0]
mov edx, eax
jmp 0x10055c07
xor eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x10058b73
mov edi, dword [esi]
test edi, edi
je 0x10058b73
lea eax, [esp + 0x1c]
push eax
push esi
call dword [edi + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.10051b01
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x100546c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
push 2
mov dword [eax], esi
mov edx, dword [ebx + 4]
pop eax
push eax
push 0xffffffffffffffff
xor eax, eax
push eax
call fcn.1005367a
test eax, eax
je 0x10058b67
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0x30], ecx
inc dword [esi + 4]
jmp 0x10053da1
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
imul edx, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x74], eax
add edx, dword [esp + 0x18]
mov esi, dword [eax + 0x30]
mov ecx, dword [edx + 0x28]
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [edx]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x5c]
xor eax, eax
test ecx, ecx
jle 0x10058337
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x1005832c
push edi
mov edi, dword [esp + 0x24]
push ecx
push dword [ebx + 0x10]
push dword [esp + 0x44]
push esi
call dword [edi + 0x20]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x10], eax
call fcn.10051b01
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x100546c0
push esi
call dword [edi + 0x28]
mov ecx, dword [esp + 0x74]
xor edx, edx
mov byte [ecx + 2], dl
test eax, eax
je 0x10053da1
jmp 0x100563e0
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
imul esi, dword [ebx + 0xc], 0x28
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
add esi, dword [esp + 0x18]
cmp byte [eax + 2], 0
je 0x100583b1
mov eax, 0x2400
test word [esi + 8], ax
jne 0x10054b8b
xor eax, eax
inc eax
jmp 0x10053d32
mov eax, dword [eax + 0x30]
lea edi, [esp + 0xa8]
push 8
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
pop eax
mov ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 0xa8], esi
inc ecx
test byte [ebx + 2], cl
je 0x100583f1
mov ecx, esi
call fcn.1004dae7
xor eax, eax
mov dword [esi], eax
mov eax, 0x4001
jmp 0x10058403
mov ax, word [esi + 8]
mov edx, 0x3e40
and ax, dx
or ax, cx
movzx eax, ax
mov word [esi + 8], ax
lea eax, [esp + 0xa8]
push dword [ebx + 8]
push eax
mov eax, dword [esp + 0x40]
push dword [eax + 0x30]
mov eax, dword [esp + 0x2c]
call dword [eax + 0x2c]
mov edi, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
call fcn.10051b01
cmp dword [esp + 0xbc], 0
jle 0x1005845d
push esi
call fcn.10051e8d
push eax
push 0x100b8c78
push edi
call fcn.1004e460
mov eax, dword [esp + 0xc8]
add esp, 0xc
mov dword [esp + 0x10], eax
movzx edx, byte [esp + 0x54]
mov ecx, esi
call fcn.1004d39d
mov ecx, esi
call fcn.1004dbfb
test eax, eax
jne 0x10057de2
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x100546c4
jmp 0x10053da1
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x10058908
mov eax, dword [edi + 0x30]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x3c], ecx
call dword [ecx + 0x24]
mov edx, esi
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.10051b01
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x10058588
mov eax, dword [esp + 0x38]
push dword [edi + 0x30]
call dword [eax + 0x28]
test eax, eax
jne 0x100575ef
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [esp + 0x44]
add ebx, 0xffffffec
add ebx, eax
jmp 0x100575ef
mov ecx, dword [esp + 0x14]
mov eax, 0x4000000
push 2
mov edi, dword [ecx + 0x20]
or dword [ecx + 0x20], eax
and edi, eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
imul esi, dword [ebx + 4], 0x28
mov eax, dword [ebx + 0x10]
add esi, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
pop eax
mov dword [esp + 0x20], ecx
test byte [esi + 8], al
je 0x10058534
xor eax, eax
inc eax
cmp byte [esi + 0xa], al
je 0x10058534
mov dl, al
mov ecx, esi
call fcn.100384fe
mov ecx, dword [esp + 0x20]
jmp 0x10058536
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
push dword [esi + 0x10]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x4c]
mov dword [esp + 0x10], eax
test edi, edi
jne 0x10058566
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov esi, dword [esp + 0xc]
mov ecx, esi
mov edx, dword [esp + 0x20]
call fcn.10051b01
and dword [esi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10058908
mov edi, esi
jmp 0x100546c4
cmp byte [eax + 0x51], 0
jne 0x1005510a
mov eax, dword [ebx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x10058b73
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
je 0x10058b73
mov edx, dword [ebx + 8]
xor ecx, ecx
cmp dword [eax + 0x34], ecx
mov eax, dword [esp + 0x14]
je 0x10054b96
mov al, byte [eax + 0x56]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x5c]
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [esp + 0x18]
test edx, edx
jle 0x100585ec
mov dword [edi + ecx*4], eax
add eax, 0x28
inc ecx
cmp ecx, edx
jl 0x100585e1
mov ecx, dword [esp + 0x14]
mov al, byte [ebx + 2]
mov byte [ecx + 0x56], al
lea eax, [esp + 0x130]
push eax
mov eax, dword [esp + 0x3c]
push edi
push edx
push esi
call dword [eax + 0x34]
mov edi, dword [esp + 0x14]
mov edx, esi
mov esi, dword [esp + 0xc]
mov ecx, esi
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x2f]
mov byte [edi + 0x56], al
call fcn.10051b01
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x10058647
xor eax, eax
cmp dword [ebx + 4], eax
je 0x10058647
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
cmp dl, 0x13
jne 0x10058688
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x10058688
movzx ecx, word [ebx + 2]
push 4
pop eax
cmp cx, ax
jne 0x1005866e
xor eax, eax
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x1005890c
push 5
pop edi
movzx eax, cl
cmp cx, di
push 2
pop ecx
cmove eax, ecx
mov byte [esi + 0x92], al
jmp 0x10058580
inc dword [esi + 0x2c]
jmp 0x10058580
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov ecx, dword [esp + 0x14]
mov edx, dword [ebx + 4]
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
jmp 0x10053bfc
mov edx, ebx
mov ecx, esi
call fcn.1005393a
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x10]
xor eax, eax
mov ecx, dword [ecx + edx*8 + 4]
mov edx, eax
test esi, esi
je 0x100586eb
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x30]
cmp edx, esi
cmovb edx, esi
call fcn.10045f7d
mov ecx, dword [esp + 0x38]
mov dword [ecx], eax
xor eax, eax
mov dword [ecx + 4], eax
jmp 0x10053b38
imul edi, dword [ebx + 0xc], 0x28
mov esi, dword [ebx + 0x10]
add edi, dword [esp + 0x18]
cmp dword [esi], edi
je 0x1005873f
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
mov dword [esi], edi
js 0x1005873f
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
imul eax, eax, 0x28
push 4
add eax, dword [esp + 0x1c]
mov dword [edx], eax
pop eax
sub edx, eax
sub ecx, 1
jns 0x10058727
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
xor ecx, ecx
inc ecx
or ax, cx
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
call dword [ecx + 0x10]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x100587bd
jle 0x10058793
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.1004e006
push eax
push 0x100b8c78
push dword [esp + 0x14]
call fcn.1004e460
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x10], eax
push dword [ebx + 4]
mov edx, dword [esp + 0x10]
push dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
lea edx, [edx + 0xdc]
call fcn.100506ad
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esi + 0x14], eax
test edx, edx
jne 0x100546c0
movzx eax, word [edi + 8]
test al, 0x12
je 0x100587f2
push 2
pop ecx
test cl, al
je 0x100587de
mov al, byte [esp + 0x54]
cmp byte [edi + 0xa], al
je 0x100587de
mov dl, al
mov ecx, edi
call fcn.100384fe
mov ecx, edi
call fcn.1004dbfb
test eax, eax
jne 0x10057dde
jmp 0x10053da1
mov esi, dword [esp + 0xc]
jmp 0x10058908
mov edx, dword [esp + 0x14]
mov cl, byte [edx + 0x58]
test cl, 0x41
je 0x100588a6
cmp byte [esi + 0x95], 0
jne 0x100588a6
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x10058829
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x100588a6
test cl, 0x40
je 0x10058852
mov edx, eax
mov ecx, esi
call fcn.1005339f
mov esi, eax
mov eax, dword [esp + 0x14]
push esi
push dword [eax + 0xd0]
call dword [eax + 0xcc]
push esi
call fcn.1003642d
jmp 0x10058892
xor ecx, ecx
inc ecx
push eax
cmp dword [edx + 0xbc], ecx
jle 0x10058898
push str.____s
push edx
call fcn.10038011
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
inc ecx
push esi
push dword [esp + 0x10]
push dword [eax + 0xd0]
push ecx
call dword [eax + 0xcc]
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.100364e3
mov esi, dword [esp + 0xc]
jmp 0x100588a6
push esi
push dword [edx + 0xd0]
push ecx
call dword [edx + 0xcc]
mov eax, dword [ebx + 4]
cmp eax, dword [0x100d2a64]
jl 0x100588e1
cmp byte [ebx], 0xab
je 0x1005890c
xor eax, eax
inc eax
mov edx, eax
cmp dword [esi + 0x6c], eax
jle 0x100588df
push 0x14
pop eax
push eax
pop edi
mov ecx, dword [esi + 0x68]
cmp byte [ecx + eax], 0x11
jne 0x100588d3
and dword [ecx + eax + 4], 0
inc edx
add eax, edi
cmp edx, dword [esi + 0x6c]
jl 0x100588c5
mov edi, dword [esp + 0x10]
xor eax, eax
inc eax
mov dword [ebx + 4], eax
inc dword [esi + 0xbc]
imul eax, dword [ebx + 8], 0x14
mov ebx, dword [esp + 0x44]
add ebx, 0xffffffec
add ebx, eax
jmp 0x10053b38
mov edi, dword [esp + 0x10]
jmp 0x10054b96
mov esi, edx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
push 0x14
pop ecx
add ebx, ecx
mov ecx, dword [esp + 0x84]
jmp 0x10053a41
mov edi, dword [esp + 0xc]
mov dword [edi + 0x28], ecx
mov al, byte [ebx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x100589aa
movzx eax, word [ebx + 2]
test ax, ax
je 0x1005897f
push dword [eax*4 + 0x100be74c]
push str._s_constraint_failed
push edi
call fcn.1004e460
add esp, 0xc
cmp dword [ebx + 0x10], 0
je 0x10058990
push dword [ebx + 0x10]
push dword [edi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.10038011
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x10058990
push dword [ebx + 0x10]
push 0x100b8c78
push edi
call fcn.1004e460
add esp, 0xc
push dword [edi + 0x7c]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.100381a3
add esp, 0x14
mov ecx, edi
call fcn.10050269
mov edx, dword [esp + 0x14]
push 5
pop ecx
mov dword [esp + 0x10], eax
cmp eax, ecx
je 0x10058a45
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x10]
jmp 0x10058e82
mov ecx, 0x15975
call fcn.100967c3
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x100546c0
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.1004e460
pop ecx
pop ecx
push 5
pop eax
jmp 0x100589e9
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x10]
push edi
call fcn.1004e460
pop ecx
pop ecx
push 5
pop eax
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x100546c4
mov eax, ebx
mov edi, dword [esp + 0xc]
sub eax, dword [esp + 0x44]
push 0x14
cdq
pop esi
idiv esi
mov dword [edi + 0x24], eax
xor eax, eax
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov byte [edx + 0x4f], al
mov dword [edi + 0x28], ecx
jmp 0x100589d6
push edi
mov edi, dword [esp + 0x10]
push str.no_such_savepoint:__s
push edi
call fcn.1004e460
add esp, 0xc
xor eax, eax
lea edx, [eax + 1]
jmp 0x10058a1c
push 8
jmp 0x10058a03
push 0x14
cmp dl, 5
jne 0x100546c6
mov eax, ebx
sub eax, dword [esp + 0x48]
cdq
pop ecx
idiv ecx
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x28], eax
mov esi, dword [esp + 0x10]
jmp 0x10058e7e
mov edx, 0x204
jmp 0x100589eb
mov edx, 0x30b
jmp 0x100589eb
push 0x100bdbc4
push 0x16610
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100381a3
add esp, 0x14
push 0xb
jmp 0x1005684c
push 6
pop edx
push 2
pop eax
mov dword [esp + 0x10], edx
mov byte [esi + 0x92], al
jmp 0x100546c0
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x14]
call fcn.10067c10
mov edx, dword [esp + 0x10]
cmp edx, 7
je 0x10055106
jmp 0x100546c0
xor eax, eax
inc eax
push str.too_many_levels_of_trigger_recursion
push edx
mov dword [esp + 0x18], eax
call fcn.1004e460
pop ecx
pop ecx
mov edx, dword [esp + 0x10]
jmp 0x100546c0
xor eax, eax
mov ecx, esi
lea edx, [eax + 1]
call fcn.1004e006
push eax
push 0x100b8c78
mov edi, dword [esp + 0x14]
push edi
call fcn.1004e460
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100546c4
xor eax, eax
mov ecx, str.out_of
push 5
inc eax
pop edx
mov dword [esp + 0x10], eax
cmp esi, edx
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x10058b30
push dword [esp + 0x1c]
call dword [edi + 0x1c]
jmp 0x10055106
push 6
jmp 0x1005684c
or dword [esp + 0x78], 0xffffffff
or dword [esp + 0x7c], 0xffffffff
push 9
jmp 0x1005684c
xor edx, edx
mov ecx, esi
call fcn.1005020e
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x100546c0
mov eax, dword [esi]
cmp dword [eax + 0x1e0], edx
je 0x10058bbf
cmp dword [esi + 0x30], edx
je 0x10058bbf
xor eax, eax
mov ecx, esi
lea edx, [eax + 1]
call fcn.1005011d
xor edx, edx
mov eax, dword [esi + 0x20]
mov edi, edx
push 2
pop ecx
add eax, ecx
xor ecx, ecx
inc ecx
or eax, ecx
mov dword [esi + 0x20], eax
imul esi, dword [ebx + 4], 0x28
mov eax, dword [esp + 0xc]
add esi, dword [esp + 0x18]
mov dword [eax + 0x78], esi
cmp dword [ebx + 8], edx
jle 0x10058c25
mov eax, 0x1000
test word [esi + 8], ax
je 0x10058bff
mov ecx, esi
call fcn.1004d508
test eax, eax
jne 0x10055106
mov ax, word [esi + 8]
mov ecx, 0x202
and ax, cx
push 2
pop ecx
cmp ax, cx
jne 0x10058c1a
mov ecx, esi
call fcn.1004d4c3
inc edi
add esi, 0x28
cmp edi, dword [ebx + 8]
jl 0x10058be5
xor edx, edx
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x51], 0
jne 0x10055106
mov edi, dword [esp + 0xc]
push 4
pop eax
test byte [esi + 0x58], al
je 0x10058c4e
push edx
push edi
push dword [esi + 0xd0]
push eax
call dword [esi + 0xcc]
mov eax, ebx
mov dword [esp + 0x10], 0x64
sub eax, dword [esp + 0x44]
push 0x14
cdq
pop ecx
idiv ecx
inc eax
mov dword [edi + 0x24], eax
jmp 0x10058a87
mov edx, dword [ebx + 4]
lea esi, [eax + 0x4f]
movzx eax, byte [esi]
mov edi, dword [ebx + 8]
mov dword [esp + 0xa4], edx
cmp edx, eax
je 0x10058d30
test edi, edi
je 0x10058ca3
mov ecx, dword [esp + 0x14]
mov edx, 0x204
call fcn.10094e50
mov edi, dword [esp + 0xc]
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x10058ce2
test edx, edx
je 0x10058cbf
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp dword [eax + 0xb8], ecx
jle 0x10058cbf
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x10058a0b
mov edi, dword [esp + 0xc]
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.1005020e
mov dword [esp + 0x10], eax
test eax, eax
jne 0x10058a87
mov al, byte [esp + 0xa4]
mov ecx, edi
mov byte [esi], al
call fcn.10050269
push 5
pop ecx
cmp eax, ecx
jne 0x10058d10
mov eax, ebx
sub eax, dword [esp + 0x44]
cdq
push 0x14
pop esi
idiv esi
mov dword [edi + 0x24], eax
xor eax, eax
inc eax
sub al, byte [esp + 0xa4]
jmp 0x10058a3a
mov ecx, dword [esp + 0x14]
call fcn.100949b9
push 0x65
pop eax
xor ecx, ecx
cmp dword [edi + 0x28], ecx
push 1
pop ecx
cmovne eax, ecx
mov dword [esp + 0x10], eax
jmp 0x10058a87
test edi, edi
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [esp + 0xc]
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
push eax
push edi
call fcn.1004e460
pop ecx
pop ecx
jmp 0x10058a5d
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x84], eax
jmp 0x10058b84
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x84], eax
jmp 0x1005510a
cmp edx, 0x210a
jne 0x10058dca
push 0x100bdbc4
push 0x16e39
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100381a3
add esp, 0x14
push 0xb
pop edx
mov dword [esp + 0x10], edx
xor eax, eax
cmp dword [edi + 0x7c], eax
jne 0x10058def
cmp edx, 0xc0a
je 0x10058def
mov ecx, edx
call fcn.10094f5a
push eax
push 0x100b8c78
push edi
call fcn.1004e460
add esp, 0xc
mov eax, dword [esp + 0x10]
mov dword [edi + 0x28], eax
cmp eax, 0xc0a
je 0x10058e1c
movzx eax, al
cmp eax, 0xe
je 0x10058e0a
cmp eax, 0xa
jne 0x10058e1c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
call fcn.1003593f
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x48], eax
mov eax, ebx
sub eax, dword [esp + 0x44]
cdq
idiv esi
push dword [edi + 0x7c]
push dword [edi + 0xc0]
mov edi, dword [esp + 0x18]
push eax
push str.statement_aborts_at__d:___s___s
push edi
call fcn.100381a3
mov ecx, dword [esp + 0x20]
add esp, 0x14
call fcn.10050269
cmp edi, 0xc0a
mov edi, dword [esp + 0x14]
jne 0x10058e5c
push edi
call fcn.100369eb
xor eax, eax
lea esi, [eax + 1]
mov al, byte [esp + 0x6f]
test al, al
je 0x10058e7a
movzx edx, al
mov ecx, edi
dec edx
call fcn.10067bad
jmp 0x10058e7a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x7c]
jb 0x10058edf
mov ecx, dword [esp + 0x78]
ja 0x10058e9e
cmp dword [esp + 0x84], ecx
jb 0x10058edf
mov eax, dword [edx + 0x158]
test eax, eax
je 0x10058edf
add ecx, dword [edx + 0x160]
push 0
mov dword [esp + 0x7c], ecx
pop ecx
push dword [edx + 0x15c]
adc dword [esp + 0x80], ecx
call eax
mov edx, dword [esp + 0x14]
test eax, eax
je 0x10058e82
or ecx, 0xffffffff
or dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x78], ecx
push 9
jmp 0x10057df1
mov ecx, dword [esp + 0x84]
xor eax, eax
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], eax
je 0x10058efd
mov ecx, edi
call fcn.1004f116
mov ecx, dword [esp + 0x1ac]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100a9985
mov esp, ebp
pop ebp
ret