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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f4
mov eax, dword [0x51300c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], esi
push edi
mov dword [ebp - 0x74], 0
mov eax, dword [esi + 0x68]
mov ecx, dword [esi]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x14], eax
xor al, al
cmp dword [esi + 0xa0], 0
mov byte [ebp - 0x79], al
mov al, byte [ecx + 0x54]
mov byte [ebp - 0x4c], al
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x18], ecx
movlpd qword [ebp - 0xa0], xmm0
mov dword [ebp - 0x28], eax
je 0x43fac6
mov ecx, esi
call fcn.00438210
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x174], 0
je 0x43fae5
mov ebx, dword [ecx + 0x17c]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x43faeb
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [esi + 0x24], 7
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x84], ebx
je 0x445d12
mov dword [esi + 0x24], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
cmp dword [ecx + 0x128], 0
mov dword [ecx + 0x1c8], 0
jne 0x445cf8
mov eax, dword [esi + 0x20]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x54]
movsd qword [ebp - 0x158], xmm0
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
add eax, 1
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], eax
adc edx, 0
mov dword [ebp - 0x8c], edx
mov dl, byte [edi]
movzx ebx, dl
cmp ebx, 0xb5
ja case.0x43fb73.89
jmp dword [ebx*4 + 0x445ea0]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
sub ecx, dword [ebp - 0x54]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0x1c]
jmp 0x445314
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x44018d
mov eax, dword [ebx + eax*8]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x54]
mov eax, dword [edx + 4]
sub edx, edi
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [ebx + esi*8]
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [ebx + esi*8 + 4], edx
lea ecx, [edi + eax*4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x44018d
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x445803
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 4], 0
jne 0x445803
mov eax, dword [edx + 4]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [esi + 0x2c]
dec dword [esi + 0xd8]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0x28]
add dword [ebx + 0x70], eax
mov dword [ebx + 0x6c], ecx
adc dword [ebx + 0x74], ecx
mov ecx, edx
mov dword [ebx + 0x68], eax
call fcn.00438ed0
mov edx, dword [esi + 0x68]
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x54], edx
cmp dword [eax + 8], 4
jne 0x43fd35
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + eax*4 + 8]
dec ecx
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x28], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], ecx
mov ecx, ebx
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x43fd7d
call fcn.0043f930
mov ecx, eax
jmp 0x43fd86
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x43fdce
mov ecx, edx
call fcn.0043f930
mov edx, eax
jmp 0x43fdd7
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x43fe1f
call fcn.0043f930
mov ecx, eax
mov edi, dword [ebp - 0x14]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x20]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43fe72
mov ecx, esi
call fcn.0043f930
mov esi, eax
jmp 0x43fe7b
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x43fe86
xor ecx, ecx
jmp 0x43fe9f
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x43fe90
sub ecx, edi
and ecx, 0x3fffffff
cmp byte [ebp - 0x4c], 1
mov dword [ebx + 4], ecx
je 0x43ff2d
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00436380
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x24], edi
test edi, edi
jne 0x445a21
test byte [esi + 0x10], 2
mov al, byte [ebp - 0x4c]
jne 0x43fed9
mov byte [esi + 0x12], al
jmp 0x43feef
cmp byte [esi + 0x12], al
je 0x43feef
mov dl, al
mov ecx, esi
call fcn.004170a0
test eax, eax
jne 0x4400e5
mov ecx, dword [ebp - 0x14]
mov eax, 0x2000
or word [esi + 0x10], ax
mov dword [esi + 0x18], 0
cmp byte [ecx + 1], 0xfa
jne 0x43ff1a
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x43ff1a
mov ecx, dword [ebp - 0x18]
call fcn.00413510
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x14]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x78]
jg 0x445a24
mov byte [ebx], 0x49
jmp 0x43ff44
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x43ff62
call fcn.0043f930
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x4c]
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x43fc14
mov ebx, dword [ebp - 0x28]
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x43fca8
cmp dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jne 0x43fc54
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x43fff4
mov ecx, edx
call fcn.0043f930
mov edx, eax
jmp 0x43fffd
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
mov dword [edx + 0xc], 0
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
test edi, edi
jle 0x43fca8
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x440049
lea ecx, [esi - 0x10]
call fcn.00435a00
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x440033
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov edx, 0xffc1
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4400bb
mov ecx, esi
call fcn.0043f930
mov esi, eax
jmp 0x4400c4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 4]
test ecx, ecx
jne 0x440108
mov edx, eax
mov ecx, esi
call fcn.00436080
mov ecx, esi
call fcn.004357c0
test eax, eax
je 0x44011b
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
call fcn.00413c70
push str.out_of_memory
push esi
call fcn.00437020
add esp, 8
mov edx, 7
jmp 0x445b4b
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.00436380
add esp, 0x10
mov al, byte [ebp - 0x4c]
mov byte [esi + 0x12], al
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.00436260
test eax, eax
jne 0x445a24
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x440163
mov ecx, esi
call fcn.00435a00
movups xmm0, xmmword [edi - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4401d1
cmp dword [esi + 0x18], 0
je 0x4401d8
mov ecx, esi
call fcn.00435a40
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 0x10], ax
mov eax, 0x4000
mov dword [edi + 0x18], 0
test word [esi + 0x10], ax
je 0x44021a
mov ecx, esi
call fcn.00435740
test eax, eax
jne 0x4400e5
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x4401c0
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.004362c0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x440270
mov ecx, esi
call fcn.00435740
test eax, eax
jne 0x4400e5
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x44028d
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 2
je 0x44028d
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x43fca8
add esi, 0x28
add edi, 0x28
jmp 0x440245
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
push 0x4000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.004362c0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x440324
push eax
push edx
call fcn.004360d0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edi, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
xor edx, edx
mov ecx, esi
call fcn.00439890
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x6c], ebx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [ebx + 0x10]
mov dword [ebp - 0x44], ecx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x4403c8
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4403be
mov ecx, esi
call fcn.00435a00
jmp 0x440184
mov eax, 1
jmp 0x440180
test cl, 0x12
jne 0x4403f8
mov dl, byte [ebp - 0x4c]
mov ecx, ebx
push 0
call fcn.00435820
add esp, 4
test eax, eax
jne 0x4400e5
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x44], ecx
jmp 0x440421
test ecx, 0x400
je 0x440421
mov ecx, ebx
call fcn.004357c0
test eax, eax
jne 0x4400e5
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x44], eax
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x34], eax
test al, 0x12
jne 0x44043d
mov dl, byte [ebp - 0x4c]
mov ecx, edi
push 0
call fcn.00435820
add esp, 4
jmp 0x44044b
test eax, 0x400
je 0x440465
mov ecx, edi
call fcn.004357c0
test eax, eax
jne 0x4400e5
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x34], eax
mov ecx, dword [ebx + 0xc]
add ecx, dword [edi + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp dword [ebp - 0x64], edx
jg 0x445a21
jl 0x44048d
cmp ebx, eax
ja 0x445a21
xor eax, eax
lea edx, [ecx + 2]
cmp esi, edi
mov ecx, esi
sete al
push eax
call fcn.00435520
add esp, 4
test eax, eax
jne 0x4400e5
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x4404da
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov word [edi + 0x10], ax
mov eax, dword [ebp - 0x6c]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 8]
add eax, dword [edi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x6c]
add esp, 0xc
mov ecx, dword [ebp - 0x44]
mov word [eax + 0x10], cx
mov cl, byte [ebp - 0x4c]
cmp cl, 1
jbe 0x44050d
mov eax, dword [ebp - 0x64]
and ebx, 0xfffffffe
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 8]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [ebx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov dword [esi + 0xc], ebx
mov byte [esi + 0x12], cl
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edx, word [edi + eax*8 + 0x10]
lea eax, [edi + eax*8]
mov dword [ebp - 0x2c], eax
mov ebx, edx
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
movzx esi, word [edi + eax*8 + 0x10]
lea eax, [edi + eax*8]
mov dword [ebp - 0x5c], eax
mov ecx, esi
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x34], eax
mov al, cl
and al, bl
test al, 4
jne 0x4405ba
or cl, bl
test cl, 1
jne 0x440826
and edx, 0x2d
je 0x44058f
mov ecx, dword [ebp - 0x5c]
mov eax, esi
mov esi, dword [ebp - 0x2c]
mov ebx, edx
jmp 0x4405a3
mov esi, dword [ebp - 0x2c]
mov ecx, esi
call fcn.0043f840
mov ecx, dword [ebp - 0x5c]
movzx ebx, ax
movzx eax, word [ecx + 0x10]
and eax, 0x2d
jne 0x4405b0
call fcn.0043f840
movzx eax, ax
and al, bl
test al, 4
je 0x4406d1
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x5c]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], edi
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4405e8
jmp dword [eax*4 + 0x446178]
test esi, esi
jl 0x440622
jg 0x4405f9
test edx, edx
jb 0x440622
test edi, edi
jl 0x44065c
jg 0x440603
test ebx, ebx
je 0x44065c
or ecx, 0xffffffff
mov eax, accept
sub ecx, ebx
sbb eax, edi
cmp eax, esi
jg 0x44065c
jl 0x4406ce
cmp ecx, edx
jae 0x44065c
jmp 0x4406ce
test edi, edi
jg 0x44065c
jl 0x44062c
test ebx, ebx
jae 0x44065c
mov eax, 1
mov ecx, accept
sub eax, ebx
mov dword [ebp - 0x3c], eax
mov eax, edx
sbb ecx, edi
add eax, 1
mov dword [ebp - 0x44], eax
mov eax, esi
adc eax, 0
cmp ecx, eax
jg 0x4406ce
jl 0x44065c
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x44]
ja 0x4406ce
add ebx, edx
mov dword [ebp - 0x98], ebx
adc edi, esi
mov dword [ebp - 0x94], edi
jmp 0x4407f6
push esi
push edx
lea ecx, [ebp - 0x98]
call fcn.00418b50
add esp, 8
test eax, eax
jne 0x4406ce
jmp 0x4407f6
push esi
push edx
lea ecx, [ebp - 0x98]
call fcn.00418ba0
add esp, 8
test eax, eax
jne 0x4406ce
jmp 0x4407f6
mov eax, edx
or eax, esi
je 0x440826
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x4407c0
test ebx, ebx
jne 0x4407c0
cmp edi, 0x80000000
jne 0x4407c0
mov esi, dword [ebp - 0x2c]
mov ecx, esi
call fcn.00435c20
mov ebx, dword [ebp - 0x5c]
mov ecx, ebx
movsd qword [ebp - 0x40], xmm0
call fcn.00435c20
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4406f5
jmp dword [eax*4 + 0x446188]
addsd xmm0, qword [ebp - 0x40]
jmp 0x440776
subsd xmm0, qword [ebp - 0x40]
jmp 0x440776
mulsd xmm0, qword [ebp - 0x40]
jmp 0x440776
movsd xmm1, qword [ebp - 0x40]
ucomisd xmm1, qword [ebp - 0x158]
lahf
test ah, 0x44
jnp 0x440826
divsd xmm0, xmm1
jmp 0x440776
mov ecx, esi
call fcn.00435b90
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.00435b90
mov ecx, esi
mov dword [ebp - 0x98], eax
or ecx, edi
mov dword [ebp - 0x94], edx
je 0x440826
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x440766
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004f3450
mov ecx, eax
call fcn.004f38d0
movsd qword [ebp - 0x40], xmm0
mov ecx, dword [ebp - 0x3c]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x44079d
mov eax, dword [ebp - 0x40]
and ecx, 0xfffff
or eax, ecx
jne 0x440826
mov edx, dword [ebp - 0x34]
mov ecx, 0xf248
mov ax, word [edx + 0x10]
and ax, cx
movsd qword [edx], xmm0
or ax, 8
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x440184
push esi
push edx
push edi
push ebx
call fcn.004f3280
jmp 0x4407ea
mov eax, edx
or eax, esi
je 0x440826
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x4407e1
mov edx, 1
xor esi, esi
push esi
push edx
push edi
push ebx
call fcn.004f3450
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [edx], eax
mov ax, word [edx + 0x10]
mov dword [edx + 4], ecx
mov ecx, 0xf244
and ax, cx
or ax, 4
movzx eax, ax
mov word [edx + 0x10], ax
jmp 0x440184
mov eax, dword [ebp - 0x34]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x440840
mov ecx, eax
call fcn.00435a00
jmp 0x440184
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x440184
mov eax, dword [edi + 4]
test eax, eax
je 0x44018d
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, 0x9000
test word [eax + 0x10], dx
je 0x44088f
push 0
push 0
mov ecx, eax
call fcn.004360d0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
mov dword [ebp - 0x3c], edx
test al, 1
je 0x44092d
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x44090d
mov ecx, edx
call fcn.00435a00
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x18]
mov eax, 1
mov edi, dword [ebp - 0x14]
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
call fcn.00435b90
mov ebx, eax
mov esi, edx
mov ecx, edi
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], esi
call fcn.00435b90
mov edi, eax
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x44095b
and ebx, edi
and esi, edx
jmp 0x4409be
cmp cl, 0x67
jne 0x440966
or ebx, edi
or esi, edx
jmp 0x4409be
mov eax, edi
or eax, edx
je 0x4409be
test edx, edx
jg 0x44099a
jl 0x440976
test edi, edi
jae 0x44098f
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x44099a
jg 0x440988
cmp edi, 0xffffffc0
jbe 0x44099a
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4409df
jg 0x44099a
cmp edi, 0x40
jb 0x4409df
test esi, esi
jg 0x4409b0
jl 0x4409a4
test ebx, ebx
jae 0x4409b0
cmp cl, 0x68
je 0x4409b0
or ebx, 0xffffffff
or esi, ebx
jmp 0x4409be
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov esi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 0x10], ax
jmp 0x440184
movq xmm1, qword [ebp - 0x120]
movd xmm0, edi
cmp cl, 0x68
jne 0x4409fb
psllq xmm1, xmm0
movq qword [ebp - 0x38], xmm1
jmp 0x4409b8
psrlq xmm1, xmm0
movq qword [ebp - 0x38], xmm1
test esi, esi
jg 0x4409b8
jl 0x440a0e
test ebx, ebx
jae 0x4409b8
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.004f3510
mov ebx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x34]
or ebx, eax
or esi, edx
jmp 0x4409be
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00435b90
mov dword [esi], eax
mov ecx, 0xf244
mov ax, word [esi + 0x10]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x440ab5
push dword [ebp - 0x4c]
mov dl, 0x43
mov ecx, esi
call fcn.0043f6b0
movzx eax, word [esi + 0x10]
add esp, 4
mov ecx, eax
test al, 4
jne 0x440ab5
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x442d19
mov edx, 0x14
jmp 0x445b4b
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
jmp 0x440184
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x24
lea esi, [edx + eax*8]
je 0x44018a
mov ecx, esi
call fcn.00435c20
mov ax, word [esi + 0x10]
mov ecx, 0xf248
and ax, cx
movsd qword [esi], xmm0
mov ecx, dword [ebp - 0x18]
or ax, 8
mov word [esi + 0x10], ax
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x440b42
mov ecx, esi
call fcn.004357c0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x4c]
mov dl, byte [eax + 8]
call fcn.00435e60
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
jmp 0x440184
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x10]
lea esi, [edx + eax*8]
movzx eax, word [edi + 0x10]
mov edx, ecx
and edx, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], ecx
test dl, 4
je 0x440c30
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov edx, dword [edi]
cmp ecx, eax
jl 0x440bc8
jg 0x440baf
mov esi, dword [esi]
cmp esi, edx
jbe 0x440bca
cmp byte [ebx + 0x4fa608], 0
jne 0x442d19
mov dword [ebp - 0x74], 1
jmp 0x440184
mov esi, dword [esi]
cmp ecx, eax
jg 0x440c02
jl 0x440bd4
cmp esi, edx
jae 0x440c02
cmp byte [ebx + 0x4fa5fc], 0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jne 0x442d22
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x74], 0xffffffff
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
cmp byte [ebx + 0x4fa602], 0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
jne 0x442d22
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x74], 0
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x3c]
mov eax, ecx
or eax, ebx
test al, 1
je 0x440ca7
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, al
jns 0x440c7e
test dl, 1
je 0x440c6b
test ecx, 0x100
jne 0x440c6b
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], 0
movzx eax, byte [eax]
lea eax, [eax + 0x4fa602]
jmp 0x440db0
mov eax, ecx
not eax
and eax, 1
lea edx, [eax*2 - 1]
jmp 0x440d8b
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
test al, 0x10
jne 0x442d22
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x74], 1
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x440cef
test al, 2
je 0x440d74
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x440cd5
xor edx, edx
mov ecx, edi
call fcn.0043f4f0
movzx ecx, word [esi + 0x10]
mov dword [ebp - 0x2c], ecx
and cl, 0x2e
cmp cl, 2
jne 0x440d74
xor edx, edx
mov ecx, esi
call fcn.0043f4f0
jmp 0x440d74
cmp dl, 0x42
jne 0x440d74
test al, 2
je 0x440d74
test bl, 2
jne 0x440d3f
test bl, 0x2c
je 0x440d3f
mov dl, byte [ebp - 0x4c]
mov ecx, edi
push 1
call fcn.00435820
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, bx
add esp, 4
and ax, cx
xor ax, word [edi + 0x10]
movzx ebx, ax
cmp edi, esi
jne 0x440d3c
mov eax, ebx
or eax, 2
movzx ecx, ax
mov dword [ebp - 0x2c], ecx
jmp 0x440d3f
mov ecx, dword [ebp - 0x2c]
test cl, 2
jne 0x440d74
test cl, 0x2c
je 0x440d74
mov dl, byte [ebp - 0x4c]
mov ecx, esi
push 1
call fcn.00435820
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x14]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0043aa90
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], edx
movzx eax, byte [eax]
test edx, edx
jns 0x440da0
lea eax, [eax + 0x4fa5fc]
jmp 0x440db0
jne 0x440daa
lea eax, [eax + 0x4fa602]
jmp 0x440db0
lea eax, [eax + 0x4fa608]
mov al, byte [eax]
mov word [esi + 0x10], cx
mov esi, dword [ebp - 0x1c]
mov word [edi + 0x10], bx
test al, al
jne 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
cmp dword [ebp - 0x74], 0
je 0x442d22
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
test byte [ebx + 2], 1
jne 0x440e01
xor eax, eax
jmp 0x440e07
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x6c], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x64], ebx
test ecx, ecx
jle 0x43fca8
lea ebx, [edx + 0x14]
test eax, eax
je 0x440e3b
mov edi, dword [eax + esi*4]
jmp 0x440e3d
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x28]
push dword [ebx]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x6c]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0043aa90
mov edx, eax
add esp, 4
mov dword [ebp - 0x74], edx
test edx, edx
jne 0x440e8a
mov eax, dword [ebp - 0x34]
inc esi
mov edx, dword [ebp - 0x44]
add ebx, 4
cmp esi, dword [ebp - 0x3c]
jl 0x440e32
jmp 0x440184
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x440ebc
mov eax, dword [ebp - 0x6c]
mov ebx, dword [ebp - 0x28]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x440eb7
mov eax, dword [ebp - 0x64]
add eax, edi
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
je 0x440ebc
neg edx
mov dword [ebp - 0x74], edx
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
je case.0x43fb73.89
neg edx
mov dword [ebp - 0x74], edx
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x14]
test ebx, ebx
jns 0x440f0f
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
jne 0x440f31
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea edi, [eax - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov edi, 2
mov ecx, dword [ebp - 0x28]
mov edx, edi
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00435c50
mov ecx, dword [ebx + 8]
mov edx, edi
mov ebx, dword [ebp - 0x28]
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.00435c50
mov ecx, dword [ebp - 0x14]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x440f95
mov dl, byte [esi + eax + 0x4fd25c]
jmp 0x440f9c
mov dl, byte [esi + eax + 0x4fdfdc]
mov eax, dword [ecx + 0xc]
lea esi, [eax + eax*4]
movzx ecx, word [ebx + esi*8 + 0x10]
cmp dl, 2
jne 0x440fbf
and ecx, 0xf241
or ecx, 1
mov word [ebx + esi*8 + 0x10], cx
jmp 0x440184
movzx eax, dl
and ecx, 0xf244
cdq
or ecx, 4
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov word [ebx + esi*8 + 0x10], cx
jmp 0x440184
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00435c50
mov ecx, dword [ebp - 0x14]
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x441030
push edx
push eax
call fcn.004360d0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edi, dword [ebp - 0x14]
mov dword [ecx], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x4410b3
xor edx, edx
call fcn.00435c50
neg eax
mov ecx, 0x9000
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x4410a0
push 0
push eax
mov ecx, esi
call fcn.004360d0
add esp, 8
jmp 0x440184
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
jmp 0x440180
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4403b2
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x441101
mov ecx, esi
call fcn.00435a00
mov ecx, dword [ebp - 0x18]
jmp 0x44110a
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x43fcab
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.00435b90
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x43fca8
mov edi, dword [esi + 0xd0]
test edi, edi
je 0x44119d
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [esi + 0x68]
mov edi, dword [edi + 0x14]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x442d19
bts edx, ecx
mov byte [esi + edi], dl
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [esi + 0x68]
mov edi, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x442d1f
mov ecx, edi
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00435c50
test eax, eax
jne 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
mov ecx, dword [ebp - 0x28]
sete dl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00435c50
test eax, eax
je 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x442d22
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x4412a8
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x4412a0
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x441297
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x4412c9
movzx eax, byte [eax + 0x4f9ee0]
jmp 0x4412cc
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
jmp 0x4412c0
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x4fd318]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov ecx, dword [ebp - 0x14]
mov edi, ecx
test word [ecx + 2], ax
mov ecx, dword [ebp - 0x18]
jne 0x442d22
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x441375
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x441375
mov eax, edx
mov edx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], dx
lea eax, [ebx + eax*8]
je 0x44134b
push 0
push 0
mov ecx, eax
call fcn.004360d0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edi, dword [ebp - 0x14]
mov edx, 4
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [ebp - 0x14]
mov edx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], dx
lea eax, [ebx + eax*8]
je 0x4413ab
mov ecx, eax
call fcn.00435a00
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edi, dword [ebp - 0x14]
mov edx, 1
mov word [eax + 0x10], dx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x442d22
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x43fc14
cmp byte [eax + 2], 0
je 0x43fc14
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x441431
mov ecx, eax
call fcn.00435a00
jmp 0x442d1c
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x442d1c
mov ebx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 8]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x50], ecx
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x48]
mov dword [ebp - 0x2c], ebx
cmp eax, dword [edi + 0x1c]
je 0x4414ad
cmp byte [esi + 2], 0
jne 0x441504
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x44148c
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4414d2
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x4414d2
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x44144e
cmp byte [edi], 0
je 0x4414e6
mov ecx, esi
call fcn.0043a270
mov edi, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b51
mov ecx, dword [ebp - 0x50]
jmp 0x441454
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x441591
mov ecx, esi
call fcn.0043a270
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b51
mov ecx, dword [ebp - 0x50]
jmp 0x441454
mov ecx, esi
call fcn.0043a200
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, edi
call fcn.0042bdf0
mov eax, dword [edi + 0x2c]
lea ebx, [esi + 0x54]
mov edx, ebx
mov dword [esi + 0x50], eax
mov ecx, edi
call fcn.0042c470
mov edi, dword [ebp - 0x1c]
jmp 0x44152e
cmp byte [esi], 3
jne 0x441616
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x441616
mov edx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
lea ebx, [esi + 0x54]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [ebx], eax
mov dword [esi + 0x50], eax
mov eax, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x2c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [edi], eax
cmp eax, 0x80
jae 0x441550
mov eax, 1
jmp 0x44155d
mov ecx, dword [esi + 0x4c]
mov edx, edi
call fcn.00418930
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov ecx, dword [edi]
cmp dword [ebx], ecx
jae 0x441606
mov dword [ebx], eax
mov ebx, dword [ebp - 0x2c]
mov dword [esi + 0x4c], eax
mov eax, dword [ebx]
cmp eax, 0x18003
ja 0x441785
cmp eax, dword [esi + 0x50]
ja 0x441785
mov ecx, dword [ebp - 0x50]
movzx edi, word [esi + 0x3e]
cmp edi, ecx
ja 0x4417df
mov edx, dword [esi + 0x34]
mov ecx, dword [ebx]
cmp edx, ecx
jae 0x4417a1
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x44164a
xorps xmm0, xmm0
lea eax, [ebp - 0x150]
movups xmmword [ebp - 0x150], xmm0
push eax
movups xmmword [ebp - 0x140], xmm0
movq qword [ebp - 0x130], xmm0
mov edx, dword [ebx]
mov ecx, dword [esi + 0x2c]
call fcn.004367a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebx]
mov edx, dword [esi + 0x34]
mov dword [ebp - 0x58], eax
movzx eax, word [esi + 0x3e]
jmp 0x44164c
mov eax, dword [esi + 0x4c]
mov edx, dword [esi + 0x34]
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x58], eax
xor eax, eax
jmp 0x44164c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x44163c
mov ecx, eax
call fcn.00435a00
jmp 0x440184
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x43fca8
mov eax, edi
mov edi, dword [ebp - 0x58]
movzx eax, ax
add edi, edx
add ecx, dword [ebp - 0x58]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], eax
mov ebx, dword [ebx + eax*4]
lea ecx, [eax + 0x16]
lea ecx, [esi + ecx*4]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x6c], ecx
movzx eax, byte [edi]
mov dword [ebp - 0x78], eax
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
cmp eax, 0x80
jae 0x441697
movzx eax, al
inc edi
movzx eax, byte [eax + 0x4fa000]
cdq
add ebx, eax
mov eax, dword [ebp - 0x60]
adc eax, edx
jmp 0x4416ce
lea edx, [ebp - 0x78]
mov ecx, edi
call fcn.00418930
mov ecx, dword [ebp - 0x6c]
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x78]
mov dword [ecx], eax
mov eax, dword [ebp - 0x78]
cmp eax, 0x80
jb 0x4416bf
add eax, 0xfffffff4
shr eax, 1
jmp 0x4416c6
movzx eax, byte [eax + 0x4fa000]
add ebx, eax
mov eax, dword [ebp - 0x60]
adc eax, 0
mov edx, dword [ebp - 0x44]
add ecx, 4
mov dword [ebp - 0x60], eax
inc edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x6c], ecx
mov dword [eax + edx*4], ebx
mov eax, dword [ebp - 0x60]
cmp edx, dword [ebp - 0x50]
ja 0x4416fa
cmp edi, dword [ebp - 0x34]
jb 0x441670
mov ecx, dword [ebp - 0x34]
jmp 0x441701
mov ecx, dword [ebp - 0x34]
cmp edi, ecx
jb 0x441746
cmp edi, ecx
ja 0x441751
cmp ebx, dword [esi + 0x50]
jne 0x441751
test eax, eax
jne 0x441751
mov ebx, dword [ebp - 0x2c]
sub edi, dword [ebp - 0x58]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], dx
mov dword [esi + 0x34], edi
jne 0x441741
test dword [ebp - 0x140], 0x9000
jne 0x441736
cmp dword [ebp - 0x138], 0
je 0x441741
lea ecx, [ebp - 0x150]
call fcn.00435a40
mov ecx, dword [ebp - 0x78]
jmp 0x4417a6
test eax, eax
jb 0x44170e
ja 0x441751
cmp ebx, dword [esi + 0x50]
jbe 0x44170e
mov ebx, dword [ebp - 0x2c]
cmp dword [ebx], 0
jne 0x44175f
xor edx, edx
mov edi, ecx
jmp 0x441711
cmp dword [esi + 0x4c], 0
jne 0x441785
test dword [ebp - 0x140], 0x9000
jne 0x44177a
cmp dword [ebp - 0x138], 0
je 0x441785
lea ecx, [ebp - 0x150]
call fcn.00435a40
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4458bf
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [edx + eax*4]
jmp 0x43fca5
xor ecx, ecx
mov dword [ebp - 0x78], ecx
movzx eax, word [esi + 0x3e]
cmp eax, dword [ebp - 0x50]
ja 0x4417e6
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
cmp byte [ecx + 1], 0xf6
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jne 0x441625
mov edx, dword [ecx + 0x10]
mov ecx, eax
push 0x2000
call fcn.004362c0
add esp, 4
jmp 0x43fca8
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [ebp - 0x78], ecx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x44180a
mov ecx, edi
call fcn.00435a00
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x50]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebx + edx*4 + 4]
jb 0x4418b5
mov eax, dword [ebp - 0x2c]
mov ebx, dword [esi + 0x4c]
add ebx, dword [eax + edx*4]
cmp ecx, 0xc
jae 0x44183a
mov edx, ecx
mov ecx, ebx
push edi
call fcn.0043a2d0
add esp, 4
jmp 0x43fca8
mov al, byte [ebp - 0x4c]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x44187e
mov eax, dword [ebp - 0x18]
cmp esi, dword [eax + 0x78]
jg 0x445a21
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.00435520
add esp, 4
test eax, eax
jne 0x4400e5
mov eax, dword [edi + 8]
jmp 0x441884
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 8]
add esp, 0xc
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0x78]
and eax, 1
mov ax, word [eax*2 + 0x4f8740]
mov word [edi + 0x10], ax
jmp 0x43fca8
mov al, byte [ebp - 0x4c]
mov byte [edi + 0x12], al
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x78]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x4418d7
cmp edx, 0xc
jb 0x4418d3
test dl, 1
je 0x4418f1
test al, al
js 0x4418f1
cmp edx, 0x80
jb 0x4418e6
lea eax, [edx - 0xc]
shr eax, 1
jmp 0x4418ed
movzx eax, byte [edx + 0x4fa000]
test eax, eax
jne 0x441904
push edi
mov ecx, 0x4f99a8
call fcn.0043a2d0
add esp, 4
jmp 0x43fca8
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx + 0x78]
jg 0x445a21
mov ecx, dword [esi + 0x2c]
push edi
push eax
mov eax, dword [ebp - 0x50]
mov edx, dword [ebx + eax*4]
call fcn.004366c0
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov edx, dword [ebp - 0x78]
mov ecx, dword [edi + 8]
push edi
call fcn.0043a2d0
mov eax, 0xbfff
add esp, 4
and word [edi + 0x10], ax
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], edx
mov ebx, dword [edx + 4]
lea eax, [eax + eax*4]
mov dword [ebp - 0x6c], ebx
lea esi, [ecx + eax*8]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x34], ecx
cmp ax, word [edx + 0x22]
jge 0x43fca8
lea edi, [ebx + 8]
mov dword [ebp - 0x44], edi
nop
movzx eax, word [edi + 6]
test al, 0x60
je 0x44199d
test al, 0x20
jne 0x441a4d
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xc], 0
jne 0x441a4a
push dword [ebp - 0x4c]
mov dl, byte [edi]
mov ecx, esi
call fcn.0043f6b0
movzx ebx, word [esi + 0x10]
add esp, 4
test bl, 1
jne case.default.0x4419ce
mov eax, dword [edi - 4]
shr eax, 4
and eax, 0xf
lea ecx, [eax - 2]
cmp ecx, 4
ja case.default.0x4419ce
jmp dword [ecx*4 + 0x446198]
test bl, 0x10
jmp 0x441a3e
test bl, 4
jmp 0x441a3e
test bl, 2
jmp 0x441a3e
test bl, 4
je 0x441a3b
mov edi, dword [esi]
mov ecx, edi
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x441a1c
jb 0x441a08
cmp ecx, 0xffffffff
ja 0x441a1c
or ebx, 0x20
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0x44]
jmp case.default.0x4419ce
mov ecx, edi
call fcn.004f38d0
or ebx, 8
movsd qword [esi], xmm0
movzx eax, bx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov edi, dword [ebp - 0x44]
jmp case.default.0x4419ce
test bl, 0x28
je 0x4458e7
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], edi
cmp ecx, eax
jl 0x441980
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
nop dword [eax]
push dword [ebp - 0x4c]
mov dl, al
mov ecx, esi
call fcn.0043f6b0
add esp, 4
cmp byte [edi], 0x45
jne 0x441add
movzx ebx, word [esi + 0x10]
test bl, 4
je 0x441add
mov ecx, dword [esi]
mov edx, dword [esi + 4]
add ecx, 0
mov eax, edx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x441ac5
jb 0x441aba
cmp ecx, 0xffffffff
ja 0x441ac5
and ebx, 0xfffb
or ebx, 0x20
jmp 0x441ad9
mov ecx, dword [esi]
call fcn.004f38d0
and ebx, 0xfff9
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 0x10], bx
mov al, byte [edi + 1]
inc edi
test al, al
je 0x43fca8
add esi, 0x28
jmp 0x441a80
mov edx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x28]
xor ecx, ecx
movlpd qword [ebp - 0x48], xmm0
mov dword [ebp - 0x58], ecx
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [ebp - 0x70], xmm0
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x34], ebx
lea eax, [eax + eax*4]
mov dword [ebp - 0x3c], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x5c], eax
test edi, edi
je 0x441b6c
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebx, dword [ebp - 0x4c]
push ebx
lea ecx, [esi - 0x10]
mov dl, al
call fcn.0043f6b0
add esp, 4
cmp byte [edi], 0x45
jne 0x441b5b
movzx eax, word [esi]
test al, 4
je 0x441b5b
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
test al, al
jne 0x441b36
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x50], edx
lea eax, [eax*8 - 0xc]
mov dword [ebp - 0x60], esi
add eax, ebx
mov ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp - 0x70]
mov dword [ebp - 0x6c], ebx
movzx ebx, word [eax - 0xc]
mov dword [ebp - 0x2c], eax
test bl, 1
je 0x441bb1
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [eax], ebx
jmp 0x441e01
test bl, 0x24
je 0x441d54
mov edi, dword [eax - 0x1c]
mov eax, dword [eax - 0x18]
test eax, eax
jg 0x441bd2
jl 0x441bca
test edi, edi
jae 0x441bd2
mov ecx, edi
not eax
not ecx
jmp 0x441bd4
mov ecx, edi
inc dword [ebp - 0x58]
test eax, eax
ja 0x441cc8
jb 0x441be6
cmp ecx, 0x7f
ja 0x441c37
mov eax, edi
xor ebx, ebx
and eax, 1
cmp eax, edi
jne 0x441c17
mov edi, dword [ebp - 0x2c]
cmp ebx, dword [edi - 0x18]
jne 0x441c17
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x93], 4
jb 0x441c17
lea eax, [ecx + 8]
mov ecx, edi
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
mov ecx, dword [ebp - 0x2c]
add esi, 1
mov eax, 1
mov dword [ebp - 0x60], esi
adc edx, ebx
mov dword [ebp - 0x50], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
test eax, eax
ja 0x441cc8
jb 0x441c49
cmp ecx, 0x7fff
ja 0x441c6a
mov ecx, dword [ebp - 0x2c]
add esi, 2
mov eax, 2
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
test eax, eax
ja 0x441cc8
jb 0x441c78
cmp ecx, 0x7fffff
ja 0x441c99
mov ecx, dword [ebp - 0x2c]
add esi, 3
mov eax, 3
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
test eax, eax
ja 0x441cc8
jb 0x441ca7
cmp ecx, 0x7fffffff
ja 0x441cc8
mov ecx, dword [ebp - 0x2c]
add esi, 4
mov eax, 4
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
cmp eax, 0x7fff
ja 0x441cf7
jb 0x441cd6
cmp ecx, 0xffffffff
ja 0x441cf7
mov ecx, dword [ebp - 0x2c]
add esi, 6
mov eax, 5
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
add esi, 8
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
test bl, 0x20
je 0x441d3f
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ecx - 0x18]
mov ecx, edi
call fcn.004f38d0
mov eax, dword [ebp - 0x2c]
and ebx, 0xffdf
mov ecx, dword [ebp - 0x2c]
or ebx, 8
movsd qword [eax - 0x1c], xmm0
mov word [eax - 0xc], bx
mov eax, 7
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
mov ecx, dword [ebp - 0x2c]
mov eax, 6
mov dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x58]
jmp 0x441e04
test bl, 8
je 0x441d71
inc ecx
mov dword [eax], 7
add esi, 8
mov dword [ebp - 0x60], esi
adc edx, 0
mov dword [ebp - 0x50], edx
jmp 0x441e01
mov edi, dword [eax - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
lea eax, [eax + edi*2]
add eax, 0xc
test ebx, 0x400
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x64], eax
je 0x441dc6
mov ecx, dword [ebx - 0x1c]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x60]
or eax, edx
je 0x441db4
lea ecx, [ebx - 0x1c]
call fcn.004357c0
test eax, eax
jne 0x4400e5
add edi, dword [ebx - 0x1c]
jmp 0x441dbd
mov eax, ecx
cdq
add dword [ebp - 0x6c], eax
adc dword [ebp - 0x44], edx
mov esi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x64]
add esi, edi
mov dword [ebp - 0x60], esi
mov esi, 1
adc edx, 0
xor ecx, ecx
mov dword [ebp - 0x50], edx
mov edx, eax
shr edx, 7
mov eax, edx
or eax, ecx
je 0x441df1
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x441de3
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x64]
add ecx, esi
mov esi, dword [ebp - 0x60]
mov dword [ebx], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x58], ecx
add eax, 0xffffffe4
cmp eax, dword [ebp - 0x34]
je 0x441e1a
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x50]
sub eax, 0x28
jmp 0x441b90
cmp ecx, 0x7e
jle 0x441e76
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x441e44
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x441e36
mov eax, dword [ebp - 0x58]
mov edi, 1
add eax, ebx
mov dword [ebp - 0x58], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x441e6f
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x441e61
mov ecx, dword [ebp - 0x58]
cmp ebx, edi
jge 0x441e7a
inc ecx
mov dword [ebp - 0x58], ecx
mov ebx, dword [ebp - 0x5c]
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
mov esi, ecx
mov dword [ebp - 0x2c], ecx
add esi, dword [ebp - 0x60]
mov ecx, eax
mov ebx, dword [ebx + 0x18]
mov edi, esi
adc ecx, dword [ebp - 0x50]
add edi, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
mov eax, ebx
adc ecx, dword [ebp - 0x44]
cdq
cmp ecx, edx
jg 0x441eac
jl 0x441ee5
cmp edi, eax
jbe 0x441ee5
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x445a21
jl 0x441ec5
cmp edi, eax
ja 0x445a21
cmp ebx, esi
jge 0x441ee5
mov ecx, dword [ebp - 0x5c]
mov edx, esi
push 0
call fcn.00435520
add esp, 4
test eax, eax
jne 0x4400e5
mov edx, dword [ebp - 0x5c]
jmp 0x441eee
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x6c]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [ebp - 0x44]
mov dword [edx + 0xc], esi
je 0x441f0f
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x58]
mov ebx, dword [edx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x441f24
mov byte [ebx], al
inc ebx
jmp 0x441f36
push dword [ebp - 0x64]
mov ecx, ebx
push dword [ebp - 0x2c]
call fcn.00418720
add esp, 8
add ebx, eax
mov edi, dword [ebp - 0x34]
add edi, 0xc
nop dword [eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x441f84
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x441fc0
movzx edx, byte [edx + 0x4fa000]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [ebp - 0x44], edx
sub edx, 1
mov byte [edx + esi], cl
je 0x441f7f
nop dword [eax + eax]
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x441f70
add esi, dword [ebp - 0x44]
jmp 0x441fc0
cmp edx, 0x80
jae 0x441f9c
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x441fc0
mov eax, dword [edi]
test eax, eax
jle 0x441fc0
jmp 0x441fb1
push 0
push edx
mov ecx, ebx
call fcn.00418720
add ebx, eax
add esp, 8
mov eax, dword [edi]
test eax, eax
je 0x441fc0
push eax
push dword [edi - 4]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [edi]
mov eax, dword [ebp - 0x3c]
lea eax, [eax*8 - 0x1c]
add eax, dword [ebp - 0x34]
cmp edi, eax
je 0x43fca8
add edi, 0x28
jmp 0x441f40
mov ebx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
cmp dword [ebx + 0xc], 0
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
je 0x442007
mov ecx, edx
call fcn.0042cf10
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], edx
jmp 0x442031
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xf8]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0xf8], xmm0
call fcn.00432f80
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x44206a
mov ecx, edx
call fcn.0043f930
mov ecx, dword [ebp - 0xf4]
mov edx, eax
mov eax, dword [ebp - 0xf8]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x443aa7
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x443aa7
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [ebp - 0x5c], eax
test eax, eax
jne 0x44216a
cmp dword [ecx + 0xc4], eax
jg 0x44592d
test ebx, ebx
jne 0x4420b1
xor esi, esi
jmp 0x4420c8
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4420b6
sub esi, ecx
mov ecx, dword [ebp - 0x18]
and esi, 0x3fffffff
mov eax, dword [ecx + 0x1fc]
xor edx, edx
add eax, dword [ecx + 0x1f8]
push eax
call fcn.004990f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x18]
lea eax, [esi + 0x21]
push edx
push eax
call fcn.00413890
mov edi, eax
add esp, 8
test edi, edi
je 0x4423db
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp - 0x18]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x44212c
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x442132
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [edi + 0x18], eax
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edx + 0x1ec], edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x4423db
mov esi, dword [ecx + 0x1ec]
xor edi, edi
test esi, esi
je 0x44218b
mov ecx, dword [esi]
mov edx, ebx
call fcn.004179f0
test eax, eax
je 0x4421aa
mov esi, dword [esi + 0x18]
inc edi
test esi, esi
jne 0x442176
mov edi, dword [ebp - 0x1c]
push ebx
push str.no_such_savepoint:__s
push edi
call fcn.00437020
mov edx, 1
add esp, 0xc
mov dword [ebp - 0x24], edx
jmp 0x445b51
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x5c]
cmp dword [edx + 0xc4], 0
jle 0x4421c2
cmp ebx, 1
je 0x445945
cmp dword [esi + 0x18], 0
jne 0x442225
cmp byte [edx + 0x5d], 0
je 0x442225
mov dword [ebp - 0x6c], 1
cmp ebx, 1
jne 0x44222c
mov ecx, dword [ebp - 0x1c]
mov edx, ebx
call fcn.00439890
mov ecx, eax
mov dword [ebp - 0x24], ecx
test ecx, ecx
jne 0x445e01
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov byte [eax + 0x55], bl
call fcn.00439900
cmp eax, 5
je 0x445971
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445963
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x5d], 0
jmp 0x44232e
mov dword [ebp - 0x6c], 0
mov ecx, dword [edx + 0x1f8]
mov eax, dword [edx + 0x14]
sub ecx, edi
dec ecx
mov dword [ebp - 0x44], ecx
cmp ebx, 2
jne 0x44229e
mov edx, dword [edx + 0x18]
xor ebx, ebx
and edx, 1
mov dword [ebp - 0x34], edx
test eax, eax
jle 0x4422a3
mov ecx, edx
xor ecx, 1
xor edi, edi
mov dword [ebp - 0x3c], ecx
nop dword [eax]
mov eax, dword [ebp - 0x18]
mov edx, 0x204
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0042b970
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x18]
inc ebx
mov ecx, dword [ebp - 0x3c]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x442260
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
jmp 0x4422a3
xor edx, edx
mov dword [ebp - 0x34], edx
xor ebx, ebx
test eax, eax
mov eax, dword [ebp - 0x18]
jle 0x4422e2
xor edi, edi
nop
mov edx, dword [ebp - 0x5c]
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edi + 4]
call fcn.0042bc00
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x18]
inc ebx
mov ecx, dword [ebp - 0x44]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x4422b0
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x44231a
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x44230c
nop dword [eax]
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 0x4422f0
mov eax, dword [ebp - 0x18]
mov ecx, eax
call fcn.00460830
mov ecx, dword [ebp - 0x18]
or dword [ecx + 0x18], 1
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
mov edi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x442368
mov ebx, dword [ebp - 0x18]
nop dword [eax + eax]
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, ebx
mov dword [ebx + 0x1ec], eax
call fcn.00413510
mov ecx, dword [ebx + 0x1ec]
dec dword [ebx + 0x1f8]
cmp ecx, esi
jne 0x442340
mov ebx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x18]
cmp ebx, 1
jne 0x442391
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp - 0x18]
mov dword [edx + 0x1ec], eax
mov edx, esi
call fcn.00413510
cmp dword [ebp - 0x6c], 0
jne 0x4423db
mov edx, dword [ebp - 0x18]
dec dword [edx + 0x1f8]
jmp 0x4423c0
cmp dword [ebp - 0x6c], 0
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
je 0x4423c0
cmp ebx, 2
jne 0x4423db
mov ecx, dword [ebp - 0x18]
mov edx, ebx
push edi
call fcn.004990f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
cmp byte [esi + 0x95], 3
je 0x4459a2
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x44242e
mov edx, dword [ecx + 0x20]
mov eax, edx
mov ecx, dword [ecx + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x4459af
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebx + 4]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x4424f9
lea eax, [ebp - 0x34]
mov edx, edi
push eax
mov ecx, ebx
call fcn.0042a6e0
mov edi, dword [ebp - 0x1c]
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x4459da
test byte [edi + 0x98], 0x20
je 0x442507
mov eax, dword [ebp - 0x14]
cmp dword [eax + 8], edx
je 0x442507
mov edx, dword [ebp - 0x18]
cmp byte [edx + 0x55], 0
je 0x442491
cmp dword [edx + 0xc0], 1
jle 0x442507
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4424ad
mov eax, dword [edx + 0x1f8]
inc dword [edx + 0x1fc]
add eax, dword [edx + 0x1fc]
mov dword [edi + 0x30], eax
mov ecx, dword [ebp - 0x18]
dec eax
push eax
xor edx, edx
call fcn.004990f0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4424d0
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.0042bba0
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x200]
mov ecx, dword [edx + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [edx + 0x208]
mov ecx, dword [edx + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x4424fc
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b51
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
je 0x43fca8
mov eax, dword [ebp - 0x34]
cmp eax, dword [ecx + 0xc]
jne 0x44252c
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
je 0x43fca8
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x44253b
mov ecx, dword [ebp - 0x18]
call fcn.00413510
mov ecx, dword [ebp - 0x18]
mov edx, str.database_schema_has_changed
call fcn.00413aa0
mov dword [edi + 0x7c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebp - 0x18]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x34]
je 0x44256e
mov ecx, dword [ebp - 0x18]
call fcn.004607d0
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xffffffed
mov dword [ebp - 0x24], edx
or eax, 1
mov dword [edi + 0x98], eax
jmp 0x445b51
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10c]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00432e70
mov eax, dword [ebp - 0x14]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4425f2
call fcn.0043f930
mov edi, dword [ebp - 0x14]
mov ecx, eax
mov eax, dword [ebp - 0x10c]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edi, dword [ebp - 0x14]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [ebp - 0x10c]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
mov edx, dword [edx + 8]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esi + 4]
call fcn.00432ed0
mov edx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x44266d
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x18]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.00470ff0
mov edx, dword [ebp - 0x14]
jmp 0x44267b
cmp eax, 2
jne 0x44267b
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x442697
mov ecx, dword [ebp - 0x18]
xor edx, edx
call fcn.0043bd00
mov esi, dword [ebp - 0x1c]
and dword [esi + 0x98], 0xfffffffc
jmp 0x44269a
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x4426e4
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4426e4
mov ecx, dword [edi + 0x2c]
add edi, 0x2c
call fcn.00427af0
jmp 0x4427e6
mov ecx, dword [ebp - 0x18]
mov eax, dword [esi + 0x98]
and al, 3
cmp al, 1
je 0x445a08
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x6c], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], edi
mov ecx, dword [eax + 4]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x14]
cmp dl, 0x71
jne 0x442748
mov eax, dword [eax + 0xc]
movzx ebx, word [ecx + 2]
and ebx, 8
or ebx, 4
mov al, byte [eax + 0x4c]
cmp al, byte [esi + 0x93]
jae 0x44274a
mov byte [esi + 0x93], al
jmp 0x44274a
xor ebx, ebx
test byte [ecx + 2], 0x10
je 0x44276b
mov ecx, dword [ebp - 0x28]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00435ca0
mov edi, dword [esi]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], edi
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x44277e
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x34], eax
movzx eax, word [eax + 8]
jmp 0x44278a
cmp al, 0xfd
jne 0x442787
mov eax, dword [ecx + 0x10]
jmp 0x44278a
mov eax, dword [ebp - 0x44]
mov edx, dword [ecx + 4]
mov ecx, esi
push 0
push eax
call fcn.0043f390
mov esi, eax
add esp, 8
test esi, esi
je 0x4400e5
push dword [esi + 0x2c]
mov eax, dword [ebp - 0x6c]
push dword [ebp - 0x34]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x64]
or dword [esi + 8], 4
mov dword [esi + 0x38], edi
lea edi, [esi + 0x2c]
push ebx
mov byte [esi + 1], al
mov byte [esi + 2], 1
call fcn.0042bd80
mov dword [ebp - 0x24], eax
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi]
movzx edx, word [eax + 2]
and edx, 3
call fcn.00427c90
jmp 0x44269a
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, esi
movsx eax, word [edi + 0x3c]
push eax
call fcn.0043f390
mov esi, eax
add esp, 8
test esi, esi
je 0x4400e5
or dword [esi + 8], 1
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, dword [esi + 8]
and ecx, 4
xor ecx, dword [esi + 8]
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [esi + 0x30]
mov ecx, dword [esi + 0x10]
push 4
call fcn.0042bd80
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x24], ebx
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4428a5
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 8], 0x4ff790
mov edx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x4428fc
test byte [esi + 8], 8
jne 0x4428fc
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x4428fc
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
push 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
call fcn.00432a50
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov byte [esi + 2], 1
jmp 0x43fca8
push 0
push dword [ecx + 8]
mov ecx, dword [ebp - 0x1c]
call fcn.0043f390
mov esi, eax
add esp, 8
test esi, esi
je 0x4400e5
mov eax, dword [ebp - 0x14]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
mov eax, dword [ebp - 0x18]
or ecx, 5
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.00429680
mov edx, eax
add esp, 0x10
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.0042a6e0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x4429da
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x4429b4
movzx eax, word [ecx + 2]
lea edx, [esi + 0x38]
mov ecx, dword [edi]
or eax, 2
push eax
call fcn.004327f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x4429ae
push dword [esi + 0x2c]
mov edx, dword [esi + 0x38]
push dword [ebp - 0x3c]
mov ecx, dword [edi]
push 4
call fcn.0042bd80
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
mov byte [esi + 4], 0
jmp 0x4429da
push dword [esi + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
push 4
mov dword [esi + 0x38], 1
call fcn.0042bd80
mov edx, eax
mov byte [esi + 4], 1
add esp, 0xc
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x445a12
mov byte [esi + 2], 1
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, esi
call fcn.0043f390
add esp, 8
test eax, eax
je 0x4400e8
mov edx, dword [ebp - 0x14]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [ebp - 0x18]
call fcn.00447630
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
jmp 0x44269d
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov esi, dword [ebp - 0x1c]
mov dword [edx + 0x1c], eax
je 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, esi
call fcn.0043f390
add esp, 8
test eax, eax
je 0x4400e8
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x18]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x515ff0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov edx, dword [esi + 0x60]
mov eax, dword [ecx + 4]
mov ecx, esi
mov edx, dword [edx + eax*4]
call fcn.00438d60
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
xor edi, edi
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x44], edi
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], di
mov dword [esi + 0x20], edi
je 0x442c30
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [ebp - 0x6c], eax
and al, 0x2e
cmp al, 2
jne 0x442b55
xor edx, edx
mov ecx, edi
call fcn.0043f4f0
mov ecx, edi
call fcn.00435b90
movzx ecx, word [edi + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x34], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x442bfd
test cl, 8
jne 0x442bd7
test cl, 1
jne 0x442d19
cmp ebx, 0x17
jae 0x442d19
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0x80]
call fcn.0042c7a0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0x80], 0
jne 0x442d19
cmp dword [ebp - 0x44], 0
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
je 0x443b2d
add dword [ebp - 0x14], 0x14
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
push dword [ebp - 0x34]
movsd xmm1, qword [edi]
push dword [ebp - 0x3c]
call fcn.0043aa10
add esp, 8
test eax, eax
jle 0x442bf5
test bl, 1
jne 0x442bfd
dec ebx
jmp 0x442bfd
jns 0x442bfd
test bl, 1
je 0x442bfd
inc ebx
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x80]
mov ecx, dword [esi + 0x2c]
xor edx, edx
push eax
push dword [ebp - 0x34]
push edi
call fcn.0042c7c0
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [ebp - 0x34]
add esp, 0xc
mov dword [ebp - 0x24], edx
mov dword [esi + 0x44], eax
test edx, edx
jne 0x445b4e
jmp 0x442cc1
mov ecx, dword [esi + 0x2c]
mov edx, 2
call fcn.00434380
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xc0]
test eax, eax
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0xc0], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0xac], ax
lea eax, [ebx - 1]
test al, 1
mov byte [ebp - 0xa6], 0
mov dword [ebp - 0x44], edi
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0xaa], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x80]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.0042ca60
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
test edi, edi
je 0x442cc1
cmp byte [ebp - 0xa6], al
je 0x442ba5
mov eax, dword [ebp - 0x80]
cmp ebx, 0x17
jl 0x442d42
test eax, eax
js 0x442ce4
jne 0x442cd8
cmp ebx, 0x18
je 0x442ce4
mov dword [ebp - 0x80], 0
jmp 0x442baf
mov dword [ebp - 0x80], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.0042d0c0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x442ba5
cmp edx, 0x65
jne 0x445b4e
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x80], 1
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
test eax, eax
jg 0x442d5d
jne 0x442d4d
cmp ebx, 0x15
je 0x442d5d
mov ecx, dword [esi + 0x2c]
call fcn.0042cf00
mov dword [ebp - 0x80], eax
jmp 0x442ba5
mov dword [ebp - 0x80], 0
xor edx, edx
mov ecx, dword [esi + 0x2c]
call fcn.0042d240
jmp 0x442cf5
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov ecx, dword [edi + 0x2c]
call fcn.0042be30
test eax, eax
je 0x43fc14
mov ecx, dword [ebp - 0x14]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xc0], eax
mov byte [ebp - 0xaa], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [ebp - 0xac], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0xe0], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xbc], eax
nop dword [eax]
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0xc0]
mov edx, edi
push eax
call fcn.0043bbf0
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0xe0]
test eax, eax
jle 0x442e0d
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], dx
je 0x442e49
test eax, eax
jns 0x442d19
test esi, esi
jle 0x43fca8
mov ecx, dword [edi + 0x2c]
xor edx, edx
dec esi
mov dword [edi + 0x20], 0
call fcn.0042d0c0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x442dd0
cmp edx, 0x65
jne 0x445b4e
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x24], 0
add ecx, 0x14
mov dword [ebp - 0x14], ecx
jmp 0x442d19
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x442e89
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x43fc54
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x445314
cmp byte [eax + 2], 0
mov ecx, dword [ebp - 0x18]
je 0x43fc17
jmp case.0x43fb73.9
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x43fc14
jmp 0x442ef6
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xbc], ecx
movzx eax, word [eax + 0x10]
mov word [ebp - 0xac], ax
test ax, ax
je 0x442f53
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [ebp - 0xc0], eax
lea edx, [ebp - 0xc0]
mov byte [ebp - 0xaa], 0
mov ecx, dword [esi + 0x2c]
push ebx
call fcn.0042ca60
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
jmp 0x442fb7
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x442f6b
call fcn.004357c0
test eax, eax
jne 0x4400e5
mov ecx, dword [esi + 0x30]
call fcn.0043a560
mov edi, eax
test edi, edi
je 0x4400e5
mov edx, dword [ebp - 0xbc]
mov ecx, dword [esi + 0x30]
push edi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
call fcn.0043a5c0
mov byte [edi + 0x16], 0
lea ebx, [esi + 0x24]
mov ecx, dword [esi + 0x2c]
mov edx, edi
push ebx
call fcn.0042ca60
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov edx, edi
mov dword [ebp - 0x24], eax
call fcn.00413510
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
mov ecx, dword [ebx]
test ecx, ecx
mov byte [esi + 3], dl
setne al
mov dword [esi + 0x20], edx
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
cmp al, 0x1d
jne 0x442ffa
mov esi, dword [ebp - 0x1c]
test ecx, ecx
je 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
test ecx, ecx
jne 0x442d19
cmp al, 0x1b
jne 0x443036
movzx edx, word [ebp - 0xac]
test edx, edx
je 0x43fca8
mov eax, dword [ebp - 0xbc]
add eax, 0x10
nop
test byte [eax], 1
jne 0x442d19
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x443020
jmp 0x43fca8
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
cmp al, 0x1a
jne 0x44018a
mov eax, edi
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x4430ce
movups xmm0, xmmword [ebx + eax*8]
mov dl, 0x43
lea ecx, [ebp - 0x1a0]
push dword [ebp - 0x4c]
movups xmmword [ebp - 0x1a0], xmm0
movups xmm0, xmmword [ebx + eax*8 + 0x10]
movups xmmword [ebp - 0x190], xmm0
movq xmm0, qword [ebx + eax*8 + 0x20]
movq qword [ebp - 0x180], xmm0
call fcn.0043f6b0
add esp, 4
test byte [ebp - 0x190], 4
je 0x442d1c
mov edi, dword [ebp - 0x1a0]
mov ebx, dword [ebp - 0x19c]
jmp 0x4430db
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xdc]
push eax
push ebx
push edi
mov ecx, dword [esi + 0x2c]
mov dword [ebp - 0xdc], 0
call fcn.0042c7c0
mov edx, eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
add esp, 0xc
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov eax, dword [ebp - 0xdc]
mov dword [esi + 0x24], eax
cmp dword [ebp - 0xdc], 0
mov dword [ebp - 0x24], edx
je 0x44314d
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x442d19
mov ecx, 0x17754
call fcn.004b9c10
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
jmp 0x43fca8
mov ebx, dword [ebp - 0x14]
mov ecx, esi
mov edx, ebx
call fcn.0043f950
mov edx, dword [ebx + 4]
mov edi, ebx
mov ecx, dword [esi + 0x60]
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 eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov edx, ebx
movlpd qword [ebp - 0x48], xmm0
mov ecx, esi
mov dword [ebp - 0x34], 0
call fcn.0043f950
mov edx, dword [ebx + 4]
mov edi, eax
mov ecx, dword [esi + 0x60]
mov dword [ebp - 0x3c], edi
mov ebx, dword [ecx + edx*4]
test byte [ebx + 8], 2
jne 0x44322a
mov ecx, dword [ebx + 0x2c]
lea edx, [ebp - 0x34]
call fcn.0042c7a0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0x34], eax
je 0x4431fb
mov dword [ebp - 0x48], 1
mov dword [ebp - 0x44], eax
jmp 0x44322a
mov ecx, dword [ebx + 0x2c]
call fcn.0042be40
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
cmp edx, 0x7fffffff
jl 0x44321e
jg 0x443218
cmp eax, 0xffffffff
jb 0x44321e
or dword [ebx + 8], 2
jmp 0x44322a
add eax, 1
mov dword [ebp - 0x48], eax
adc edx, 0
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4432c1
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x443264
mov eax, dword [edx + 4]
test eax, eax
je 0x443259
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x443250
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
jmp 0x44326d
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x28]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00435ca0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
cmp ecx, 0xffffffff
jne 0x44328a
cmp edx, 0x7fffffff
je 0x44331d
test byte [ebx + 8], 2
jne 0x44331d
mov edi, dword [ebp - 0x44]
add ecx, 1
adc edx, 0
cmp edi, edx
jg 0x4432b6
jl 0x4432aa
mov eax, dword [ebp - 0x48]
cmp eax, ecx
jae 0x4432b9
mov eax, ecx
mov edi, edx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edi
jmp 0x4432b9
mov eax, dword [ebp - 0x48]
mov dword [esi + 4], edi
mov edi, dword [ebp - 0x3c]
mov dword [esi], eax
test byte [ebx + 8], 2
je 0x443327
xor esi, esi
nop dword [eax]
lea eax, [ebp - 0x48]
push eax
push 8
call fcn.00416ea0
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x34]
mov ecx, dword [ebp - 0x48]
and eax, 0x3fffffff
add ecx, 1
push edx
adc eax, 0
mov dword [ebp - 0x48], ecx
push eax
mov dword [ebp - 0x44], eax
xor edx, edx
push ecx
mov ecx, dword [ebx + 0x2c]
call fcn.0042c7c0
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0x34], eax
jne 0x443327
inc esi
cmp esi, 0x64
jl 0x4432d0
mov edx, 0xd
jmp 0x445b4b
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x43fca8
mov ebx, dword [ebp - 0x14]
cmp byte [ebx + 1], 0xfb
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x44], esi
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xbc], eax
jne 0x44339c
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xfc], 0
je 0x44339c
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ebx, dword [ebx + 0x10]
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x3c], eax
jmp 0x4433a1
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 1
je 0x4433d9
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
mov ecx, eax
test al, 0x20
je 0x4433d9
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x28], edi
movzx ecx, word [eax + 2]
mov edi, dword [ebp - 0x28]
mov eax, dword [edi + edx*8 + 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ebp - 0xac], eax
test cl, 0x10
je 0x4433fa
mov edi, dword [esi + 0x24]
jmp 0x4433fc
xor edi, edi
mov eax, dword [ebp - 0x28]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [ebp - 0x44]
je 0x443419
mov eax, dword [eax + edx*8]
mov dword [ebp - 0xa8], eax
jmp 0x443423
mov dword [ebp - 0xa8], 0
and ecx, 0x8a
mov dword [ebp - 0xc8], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xc8]
call fcn.004313f0
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [ebp - 0x24], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x445b4e
test ebx, ebx
je 0x43fca8
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0x14]
mov ecx, 0x17
push dword [ebp - 0xc0]
push dword [ebx]
test byte [eax + 2], 4
mov eax, 0x12
push dword [ebp - 0x3c]
cmovne eax, ecx
push eax
mov eax, dword [ebp - 0x18]
push dword [eax + 0xf8]
mov eax, dword [eax + 0xfc]
call eax
add esp, 0x18
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
mov ecx, dword [esi + 0x60]
mov eax, dword [edx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4434d0
mov ebx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x4434de
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00431a50
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 0x60]
mov esi, dword [eax + ecx*4]
jne 0x443552
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xfc], 0
je 0x443552
movsx ecx, byte [esi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + ecx*8]
je 0x443556
cmp byte [esi + 4], 0
je 0x443556
mov ecx, dword [esi + 0x2c]
call fcn.0042be40
mov dword [esi + 0x44], edx
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x40], eax
jmp 0x443556
xor ebx, ebx
xor edi, edi
mov dl, byte [edx + 2]
mov ecx, dword [esi + 0x2c]
call fcn.00431e80
mov edx, eax
mov dword [esi + 0x20], 0
mov dword [ebp - 0x24], edx
mov dword [esi + 0x24], 0
test edx, edx
jne 0x445b4e
test byte [ebp - 0x3c], 1
mov ecx, dword [ebp - 0x18]
je 0x43fcab
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [ecx + 0xfc]
test eax, eax
je 0x43fcab
test edi, edi
je 0x43fcab
test byte [edi + 0x1c], 0x80
jne 0x43fcab
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [edi]
push ebx
push 9
push dword [ecx + 0xf8]
call eax
add esp, 0x18
jmp 0x43fca8
push dword [esi + 0x2c]
push dword [esi + 0x28]
call fcn.0043bce0
mov ecx, dword [ebp - 0x18]
add esp, 8
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0xe4], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [ebp - 0xe4]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
call fcn.004499d0
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0xe4], eax
jmp 0x43fc0e
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.00449930
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.0043f950
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0042be70
mov ecx, dword [ebp - 0x18]
cmp eax, dword [ecx + 0x78]
ja 0x445a21
push esi
mov edx, eax
mov ecx, edi
call fcn.004367a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xc], eax
jne 0x43fca8
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x43fca8
mov ecx, esi
call fcn.00435740
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
jne 0x4400eb
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.0043f950
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x443758
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x43fca8
cmp byte [esi + 3], 0
je 0x44378f
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
cmp byte [esi], 2
jne 0x4437ed
mov ecx, dword [esi + 0x2c]
lea edx, [ebp - 0xa0]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0043be80
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x18]
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, esi
call fcn.0043a2b0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp byte [esi + 2], al
je 0x443814
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x43fca8
mov ecx, dword [esi + 0x2c]
call fcn.0042be40
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 4], edx
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x443886
push 3
push 1
mov ecx, esi
call fcn.0043f390
mov ecx, dword [ebp - 0x18]
add esp, 8
test eax, eax
je 0x4400eb
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x515ff0
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x43fc17
mov ecx, dword [eax + 0x2c]
call fcn.00427af0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xd0], 0
cmp dl, 0x89
jne 0x4438ed
mov ecx, edi
mov dword [esi + 0x24], 0xffffffff
call fcn.0042be30
test eax, eax
jne 0x43fca8
lea edx, [ebp - 0xd0]
mov ecx, edi
call fcn.0042c7a0
mov edx, eax
mov al, byte [ebp - 0xd0]
mov dword [ebp - 0x24], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], edx
jle 0x43fca8
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0xd0], edx
jmp 0x43fc0e
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xd4]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.0042c6e0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0xd4], eax
jne 0x442d19
mov ecx, esi
call fcn.0042cf10
test edx, edx
jl 0x44399d
jg 0x44397b
test eax, eax
jb 0x44399d
push edx
push eax
call fcn.00418cc0
mov ecx, dword [ebp - 0x14]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x44399d
mov dword [ebp - 0xd4], 1
jmp 0x442d19
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0xd4], 0
jmp 0x43fc0e
inc dword [esi + 0xac]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xcc]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0xcc], 1
cmp byte [esi], 1
jne 0x4439dc
mov ecx, esi
call fcn.00449800
jmp 0x4439ef
mov ecx, dword [esi + 0x2c]
call fcn.0042c6e0
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x14]
mov al, byte [ebp - 0xcc]
mov byte [esi + 2], al
cmp dword [ecx + 8], edx
jle 0x43fca8
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0xcc], edx
jmp 0x43fc0e
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [ebp - 0x18]
call fcn.004498a0
jmp 0x443a67
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0042d240
jmp 0x443a67
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.0042d0c0
mov edx, eax
mov dword [ebp - 0x24], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x443a90
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
movzx eax, word [eax + 2]
inc dword [esi + eax*4 + 0xa4]
jmp 0x445314
cmp edx, 0x65
jne 0x445b4e
mov dword [ebp - 0x24], 0
mov byte [esi + 2], 1
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x128], 0
jne 0x445b46
mov edi, dword [ebp - 0x90]
cmp dword [ebp - 0x8c], edi
jb 0x43fc17
mov ebx, dword [ebp - 0x84]
ja 0x443ae0
mov eax, dword [ebp - 0x20]
cmp eax, ebx
jb 0x443b2d
nop dword [eax + eax]
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x43fc17
add ebx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
adc edi, 0
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x90], edi
call eax
add esp, 4
test eax, eax
jne 0x445b34
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x8c], edi
ja 0x443ae0
mov eax, dword [ebp - 0x20]
jb 0x443b2a
cmp eax, ebx
jae 0x443ae0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x443b6a
mov eax, dword [ebp - 0x1c]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x443b8c
mov ecx, esi
call fcn.004357c0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb4], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0xb0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x443bcc
mov ecx, dword [edi + 0x24]
jmp 0x443bce
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [ebp - 0xc8]
and eax, 0x8a
push eax
call fcn.004313f0
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 8
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x443c36
mov ecx, esi
call fcn.004357c0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov edx, esi
mov ecx, edi
call fcn.00448820
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0xc0], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0xac], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0xc0]
mov byte [ebp - 0xaa], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x110]
push eax
call fcn.0042ca60
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp dword [ebp - 0x110], eax
jne 0x443cda
mov dl, 4
mov ecx, edi
call fcn.00431e80
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
cmp word [ecx + 2], 0
je 0x443cf4
mov ecx, dword [ebp - 0x18]
call fcn.00460fe0
test eax, eax
je 0x445a3c
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.0043a2b0
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
cmp byte [esi + 2], al
jne 0x443dd7
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xf0]
xorps xmm0, xmm0
movlpd qword [ebp - 0xf0], xmm0
mov edx, dword [esi + 0x2c]
push eax
call fcn.0043ba30
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x8d
jne 0x443da3
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov byte [edx + 2], 0
mov eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xec]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], esi
jmp 0x43fca8
mov esi, dword [ebp - 0x1c]
mov edx, eax
mov ecx, esi
call fcn.0043f950
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov edi, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00436060
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x43fc14
call fcn.0043a200
mov edx, eax
mov dword [ebp - 0x24], edx
jmp 0x44269d
mov ebx, dword [ebp - 0x14]
cmp dl, 0x2a
mov eax, dword [esi + 0x60]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0xc0], eax
mov ax, word [ebx + 0x10]
mov word [ebp - 0xac], ax
sbb al, al
mov byte [ebp - 0xaa], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0xbc], eax
mov edi, dword [ecx + 0x2c]
mov ecx, edi
call fcn.0042be70
mov esi, eax
test esi, esi
je 0x445a5a
cmp esi, 0x7fffffff
ja 0x445a5a
mov edx, dword [ebp - 0x18]
lea ecx, [ebp - 0x1f0]
push 0
call fcn.00436040
add esp, 4
lea eax, [ebp - 0x1f0]
mov edx, esi
mov ecx, edi
push eax
call fcn.004367a0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov edx, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e4]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.0043ace0
add esp, 8
lea ecx, [ebp - 0x1f0]
mov esi, eax
call fcn.00435b20
mov ecx, ebx
mov dl, byte [ecx]
lea ecx, [esi + 1]
neg esi
and dl, 1
cmovne esi, ecx
test esi, esi
mov esi, dword [ebp - 0x1c]
jg 0x442d1c
mov ecx, dword [ebp - 0x18]
mov edi, ebx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ebx, dword [ebp - 0x14]
mov ecx, esi
mov edx, ebx
call fcn.0043f950
mov edx, dword [ebp - 0x18]
mov esi, eax
mov eax, 1
mov word [esi + 0x10], ax
mov ecx, dword [edx + 0xcc]
inc ecx
cmp dword [edx + 0xc0], ecx
jg 0x445a6b
mov ebx, dword [ebx + 0xc]
lea eax, [ebp - 0xd8]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp - 0x14]
push eax
mov eax, ebx
mov dword [ebp - 0xd8], 0
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00432e20
mov dword [ebp - 0x24], eax
add esp, 4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [ebp - 0xd8]
cdq
mov dword [esi + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [esi], eax
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0xd8]
test eax, eax
je 0x43fca8
mov ecx, dword [ebp - 0x14]
mov edx, ebx
push dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
push eax
call fcn.00464870
mov al, bl
add esp, 8
inc al
mov byte [ebp - 0x79], al
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x40]
mov ecx, dword [ecx + 0x10]
xorps xmm0, xmm0
push eax
movlpd qword [ebp - 0x40], xmm0
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00432a50
mov ecx, dword [ebp - 0x14]
add esp, 4
mov edx, eax
mov dword [ebp - 0x24], edx
cmp dword [ecx + 0xc], 0
je 0x44269d
mov edx, dword [ebp - 0x40]
add dword [esi + 0x28], edx
mov eax, dword [ebp - 0x3c]
adc dword [esi + 0x2c], eax
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x44269a
mov ebx, dword [ebp - 0x28]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], edx
mov eax, dword [ebp - 0x3c]
adc dword [ebx + ecx*8 + 4], eax
jmp 0x44269a
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x444042
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ebp - 0x18]
call fcn.00447bd0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ecx + 0x2c]
call fcn.00432b10
mov edx, eax
mov dword [ebp - 0x24], edx
jmp 0x44269d
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.0043f950
mov edx, dword [ebp - 0x14]
mov esi, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xe8], 0
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
shl ecx, 4
lea edx, [ebp - 0xe8]
add ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 4]
call fcn.004327f0
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [ebp - 0xe8]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
inc byte [ecx + 0x60]
push 0
push 0
push 0
push dword [edx + 0x10]
push ecx
call fcn.00478bd0
mov ecx, dword [ebp - 0x18]
mov edx, eax
add esp, 0x14
mov dword [ebp - 0x24], edx
dec byte [ecx + 0x60]
test edx, edx
je 0x43fc17
mov edi, dword [ebp - 0x1c]
mov esi, ecx
jmp 0x445b54
mov ebx, dword [ebp - 0x14]
cmp dword [ebx + 0x10], 0
mov esi, dword [ebx + 4]
jne 0x44413a
mov ebx, dword [ebp - 0x18]
mov ecx, esi
add ecx, ecx
mov eax, dword [ebx + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.004699c0
mov eax, dword [ebp - 0x14]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
mov edx, esi
mov ecx, ebx
movzx eax, word [eax + 2]
push eax
mov eax, dword [ebp - 0x1c]
add eax, 0x7c
push eax
call fcn.00480990
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
or dword [ecx + 0x18], 1
and dword [esi + 0x98], 0xfffffffc
jmp 0x44420d
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xbc], ecx
add eax, 0x7c
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0xb4], esi
add esi, esi
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xac], 0
mov ecx, dword [ecx + esi*8 + 4]
call fcn.00429420
push dword [ebx + 0x10]
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0xa4], eax
push str.sqlite_master
mov eax, dword [ebx + 0x10]
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00416840
mov esi, eax
add esp, 0x14
test esi, esi
je 0x445a82
push 0
lea eax, [ebp - 0xbc]
mov byte [ebx + 0xb1], 1
push eax
push fcn.00480790
push esi
push ebx
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xa8], 0
call fcn.00478bd0
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4441f5
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x4441f5
cmp dword [ebp - 0xa8], eax
jne 0x4441f5
mov ecx, 0x17d50
call fcn.004b9c10
mov dword [ebp - 0x24], eax
mov edx, esi
mov ecx, ebx
call fcn.00413510
mov edx, dword [ebp - 0x24]
mov ecx, ebx
mov esi, dword [ebp - 0x1c]
mov byte [ecx + 0xb1], 0
test edx, edx
je 0x43fc17
call fcn.00460830
mov edx, dword [ebp - 0x24]
cmp edx, 7
je 0x4400e8
jmp 0x445b4b
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 4]
call fcn.0045e550
mov edx, eax
mov dword [ebp - 0x24], edx
jmp 0x44269d
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00460db0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00460680
mov ecx, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00491cb0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x114]
push eax
mov eax, dword [ebx + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [ebp - 0x18]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.00433b70
add esp, 0x14
mov ebx, eax
mov ecx, edi
mov dword [ebp - 0x24], ebx
call fcn.00436060
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x444347
test ebx, ebx
jne 0x445a93
mov ecx, dword [ebp - 0x28]
dec eax
cdq
push fcn.00413450
push 1
sub dword [ecx + esi*8], eax
push 0xffffffffffffffff
sbb dword [ecx + esi*8 + 4], edx
mov ecx, edi
mov edx, dword [ebp - 0xfc]
push 0xffffffffffffffff
call fcn.00436380
add esp, 0x10
movzx edx, byte [ebp - 0x4c]
mov ecx, edi
call fcn.00435500
jmp 0x443aa4
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x444382
mov ecx, esi
call fcn.00436190
test eax, eax
jne 0x4400e5
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [ebx + edi*8]
call fcn.0041eeb0
add esp, 8
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
je 0x4443e6
mov ecx, dword [esi + 8]
lea edx, [ebp - 0x128]
call fcn.0041f1c0
test eax, eax
je 0x4443e6
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
call fcn.00436100
add esp, 8
jmp 0x443aa4
mov ecx, esi
call fcn.00436060
mov esi, dword [ebp - 0x1c]
jmp 0x445314
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x10
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
jne 0x444426
mov ecx, esi
call fcn.00436190
test eax, eax
jne 0x4400e5
mov edx, dword [ebp - 0x28]
test ebx, ebx
je 0x44444e
push dword [edx + edi*8 + 4]
mov ecx, dword [esi + 8]
push dword [edx + edi*8]
mov edx, ebx
call fcn.0041f220
add esp, 8
test eax, eax
jne 0x442d19
test ebx, ebx
js 0x43fca8
mov ebx, dword [ebp - 0x28]
jmp 0x444382
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x3c], ebx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x34], ecx
cmp word [eax + 2], 0
je 0x444498
mov eax, dword [esi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x444495
cmp dword [eax + 0x18], ecx
je 0x43fc14
mov eax, dword [eax + 4]
test eax, eax
jne 0x444485
mov ecx, dword [ebp - 0x34]
mov eax, dword [esi + 0xd8]
mov esi, dword [ebp - 0x18]
cmp eax, dword [esi + 0xa0]
jge 0x445aa9
test byte [ecx + 0x10], 0x10
jne 0x4445ab
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x4444dc
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
mov eax, ebx
cdq
push edx
push eax
call fcn.00413820
mov edi, eax
add esp, 8
test edi, edi
je 0x4400e5
mov ecx, dword [ebp - 0x34]
call fcn.00435b00
mov eax, dword [ebp - 0x34]
mov ecx, 0x1010
mov word [eax + 0x10], cx
mov dword [eax + 0xc], ebx
mov ebx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x54]
mov dword [eax + 8], edi
mov dword [eax + 0x24], 0x4383d0
mov eax, dword [ebp - 0x1c]
mov dword [edi], eax
mov dword [edi + 0x3c], esi
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x1c]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x18], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x4445a0
mov esi, dword [ebp - 0x18]
nop
xor edx, edx
mov dword [eax + 0x14], esi
mov word [eax + 0x10], dx
add eax, 0x28
cmp eax, ecx
jne 0x444590
mov esi, dword [ebp - 0x1c]
mov eax, dword [esi + 0xd8]
jmp 0x4445b1
mov edi, dword [ecx + 8]
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
lea edx, [edi + 0x58]
inc eax
mov dword [ebp - 0x28], edx
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0xd0]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ecx
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [edi + 0x54], eax
mov dword [edi + 0x50], ecx
mov eax, dword [esi + 0xe4]
mov dword [edi + 0x28], eax
mov dword [esi + 0x58], edx
mov dword [esi + 0xe4], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xd0], edi
mov ecx, dword [edi + 0x3c]
mov dword [esi + 0x14], ecx
movzx eax, word [edi + 0x40]
mov dword [esi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [esi + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebx]
add esp, 0xc
mov dword [esi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [ebp - 0x54], ecx
add ecx, 0xffffffec
mov dword [esi + 0x6c], eax
mov dword [ebp - 0x14], ecx
jmp 0x443aa7
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.0043f950
mov esi, eax
mov eax, dword [ebp - 0x1c]
push 0x4000
mov eax, dword [eax + 0xd0]
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.004362c0
add esp, 4
jmp 0x43fca8
mov eax, dword [ecx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 0x14]
mov edi, eax
je 0x4446e5
mov eax, dword [eax + 8]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [ebp - 0x20]
adc dword [ecx + 0x20c], edx
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x44470c
add dword [ecx + 0x200], eax
mov eax, dword [ebp - 0x20]
adc dword [ecx + 0x204], edx
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
add dword [esi + 0x40], eax
mov eax, dword [ebp - 0x20]
adc dword [esi + 0x44], edx
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
cmp dword [edi + 4], 0
je 0x44475e
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x44018d
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
je 0x442d22
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [esi + 0x40]
or eax, dword [esi + 0x44]
jmp 0x444735
mov edx, dword [esi + 0xd0]
test edx, edx
je 0x444794
mov eax, dword [edx + 4]
test eax, eax
je 0x444780
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x444777
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x4447a3
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov ecx, edi
call fcn.00435ca0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov ecx, esi
call fcn.00435ca0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x43fca8
jl 0x4447d5
cmp dword [edi], eax
jae 0x43fca8
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x43fca8
jg 0x444804
test ecx, ecx
je 0x43fca8
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
jmp 0x442d19
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1c]
lea ebx, [eax + eax*4]
call fcn.0043f950
mov edx, dword [ebp - 0x28]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], ecx
test ecx, ecx
jl 0x44489f
jg 0x444856
test eax, eax
je 0x44489f
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x444867
jg 0x444875
test eax, eax
jne 0x444875
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x108]
call fcn.00418ab0
add esp, 8
test eax, eax
jne 0x44489f
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x43fca8
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x43fca8
test edx, edx
jl 0x442d19
jg 0x4448e0
test ecx, ecx
je 0x442d19
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x442d19
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x444920
jg 0x444913
test eax, eax
je 0x444920
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
mov edi, dword [ebp - 0x14]
or eax, ecx
mov ecx, dword [ebp - 0x18]
je 0x442d22
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
call fcn.00413890
mov esi, eax
add esp, 8
test esi, esi
je 0x4400e5
mov edx, dword [ebp - 0x18]
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov dword [esi + 8], 0
push 1
mov dword [esi], ecx
call fcn.00436040
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x54]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0x14]
sar edx, 3
mov eax, edx
mov byte [esi + 0x19], 0
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x4c]
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov word [ecx], 0xf1a3
mov dword [ecx + 0x10], esi
jmp 0x4449c8
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x3c], edi
cmp dword [esi + 8], edi
je 0x444a0d
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x444a0d
mov edi, dword [ebp - 0x14]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x4449f4
mov edi, dword [ebp - 0x3c]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [ebp - 0x14]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x444a2b
mov eax, dword [ecx + 0x1c]
jmp 0x444a2e
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x440187
jle 0x444a61
push dword [esi]
call fcn.0043c5e0
add esp, 4
push eax
push 0x500ef4
push dword [ebp - 0x1c]
call fcn.00437020
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
cmp byte [esi + 0x19], 0
je 0x444a8a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x444a83
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ebx + eax*8]
call fcn.00436100
add esp, 8
mov edi, dword [ebp - 0x14]
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
call fcn.00435b00
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 0x24]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
test edx, edx
jne 0x445b4e
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ecx + 0xc]
mov ecx, esi
test eax, eax
je 0x444aff
lea eax, [eax + eax*4]
push edx
lea edx, [edi + eax*8]
call fcn.004359a0
mov ebx, eax
add esp, 4
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jmp 0x444b06
call fcn.004358b0
mov ebx, eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
jne 0x445acb
movzx edx, byte [ebp - 0x4c]
mov ecx, esi
call fcn.00435500
jmp 0x43fca8
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.004b83d0
mov edx, eax
add esp, 0xc
mov dword [ebp - 0x24], edx
test edx, edx
je 0x444b6f
cmp edx, 5
jne 0x445b4e
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x14]
xor esi, esi
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.00436100
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x444b80
jmp 0x43fca8
mov ebx, dword [ebp - 0x14]
mov ecx, esi
mov edx, ebx
call fcn.0043f950
mov edx, dword [ebx + 4]
mov esi, dword [ebx + 0xc]
add edx, edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + edx*8 + 4]
mov ecx, eax
mov dword [ebp - 0x3c], eax
call fcn.004330c0
mov ebx, eax
mov ecx, ebx
call fcn.00424640
mov edi, eax
cmp esi, 0xffffffff
mov ecx, ebx
cmove esi, edi
call fcn.00424650
test eax, eax
mov edx, 1
mov ecx, ebx
cmove esi, edi
call fcn.00424290
cmp esi, 5
jne 0x444c61
mov ecx, eax
call fcn.00417690
test eax, eax
je 0x444c0e
mov ecx, ebx
call fcn.00424680
test eax, eax
jne 0x444c61
mov esi, edi
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x444c19
mov esi, edi
mov edx, esi
mov ecx, ebx
call fcn.004244d0
mov ebx, dword [ebp - 0x34]
mov ecx, 0x2202
mov word [ebx + 0x10], cx
mov ecx, eax
call fcn.00479ac0
mov ecx, eax
mov dword [ebx + 8], eax
call fcn.00417690
movzx edx, byte [ebp - 0x4c]
mov ecx, ebx
mov dword [ebx + 0xc], eax
mov byte [ebx + 0x12], 1
call fcn.00435500
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
jmp 0x43fca8
cmp esi, edi
je 0x444c10
cmp edi, 5
je 0x444c6f
cmp esi, 5
jne 0x444c10
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x55], 0
je 0x445aeb
cmp dword [eax + 0xc0], 1
jg 0x445aeb
cmp edi, 5
jne 0x444cad
mov edx, eax
mov ecx, ebx
call fcn.004248a0
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x444c17
mov edx, esi
mov ecx, ebx
call fcn.004244d0
jmp 0x444cc6
cmp edi, 4
jne 0x444cbc
lea edx, [edi - 2]
mov ecx, ebx
call fcn.004244d0
cmp dword [ebp - 0x24], 0
jne 0x444c17
mov ecx, dword [ebp - 0x3c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.004342b0
mov dword [ebp - 0x24], eax
jmp 0x444c13
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
test eax, eax
je 0x444cf4
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x444cf6
xor eax, eax
mov edx, dword [ebp - 0x18]
push eax
push dword [ecx + 4]
lea ecx, [esi + 0x7c]
call fcn.00497280
mov edx, eax
add esp, 8
mov dword [ebp - 0x24], edx
jmp 0x44269d
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.0042b270
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
je 0x43fc14
cmp edx, 0x65
jne 0x445b4e
mov dword [ebp - 0x24], 0
jmp 0x442d1c
cmp dword [edi + 4], 0
jne 0x444d6d
mov edx, dword [edi + 8]
call fcn.0043bd00
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov eax, dword [edi + 8]
inc eax
xor eax, dword [esi + 0x98]
and eax, 3
xor dword [esi + 0x98], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0042be50
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
mov ecx, dword [ecx + 0x2c]
call fcn.0042be60
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov al, byte [edi + 0xc]
mov byte [ebp - 0x118], al
test al, al
jne 0x444e00
mov eax, dword [ecx + 0x24]
and eax, 4
jne 0x44018d
mov eax, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x14]
push dword [ebp - 0x118]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00434120
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
test edx, edx
je 0x43fc14
cmp dl, 6
jne 0x445b4e
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.00437020
mov edx, dword [ebp - 0x24]
add esp, 0xc
jmp 0x445b4e
mov edx, dword [ebp - 0x14]
mov esi, dword [edx + 0x10]
mov edx, esi
call fcn.00498fc0
mov edx, eax
mov dword [ebp - 0x24], edx
test esi, esi
je 0x444e7d
mov edx, dword [esi + 8]
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0043be80
jmp 0x44269a
mov esi, dword [ebp - 0x1c]
jmp 0x44269d
xorps xmm0, xmm0
movups xmmword [ebp - 0x1b8], xmm0
mov dword [ebp - 0x1b4], ecx
mov ecx, dword [ebp - 0x14]
movups xmmword [ebp - 0x1c8], xmm0
movq qword [ebp - 0x1a8], xmm0
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x1c8]
call fcn.00436310
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.0043c5e0
add esp, 4
test eax, eax
je 0x444eed
lea ecx, [esi + 0x7c]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
call fcn.00498a00
add esp, 8
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x1c8]
call fcn.00435b00
jmp 0x44269a
mov edx, dword [ebp - 0x14]
inc dword [ecx + 0xcc]
push dword [edx + 0x10]
mov edx, dword [edx + 4]
call fcn.00498e20
mov ecx, dword [ebp - 0x18]
mov edx, eax
add esp, 4
mov dword [ebp - 0x24], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x4440d5
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x34], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x445b2d
mov edi, dword [esi]
test edi, edi
je 0x445b2d
lea eax, [ebp - 0x34]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0x1c]
add esp, 8
mov edx, esi
mov dword [ebp - 0x24], eax
mov ecx, ebx
call fcn.0043be80
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445d2c
mov eax, dword [ebp - 0x34]
mov ecx, ebx
push 2
push edx
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
call fcn.0043f390
add esp, 8
test eax, eax
je 0x445b1b
mov ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x14]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov esi, ebx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.00413400
mov esi, eax
add esp, 8
test esi, esi
je 0x4400e5
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 0x2c]
mov edx, dword [ebp - 0x28]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov edx, eax
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x1c]
call fcn.0043f950
mov ecx, 1
mov edx, esi
push 0x43d4e0
push str.ValueList
mov word [eax + 0x10], cx
mov ecx, eax
call fcn.00436140
add esp, 8
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
add ebx, 0x28
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov edi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
movd xmm0, ebx
mov dword [ebp - 0x44], ebx
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0x5c]
mov dword [ebp - 0x50], eax
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x34], ebx
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
mov ecx, dword [eax]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [eax + edx*8]
mov dword [ebp - 0x6c], ecx
xor ecx, ecx
test edi, edi
jle 0x44517d
cmp edi, 0x10
jb 0x445166
cmp dword [0x515da8], 2
jl 0x445166
movaps xmm2, xmmword [0x50aa30]
mov eax, edi
and eax, 0x8000000f
jns 0x4450b1
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [str.____]
mov edx, edi
sub edx, eax
mov esi, 8
mov dword [ebp - 0x3c], edx
lea edx, [ebx + 0x20]
mov ebx, dword [ebp - 0x3c]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebx
jl 0x4450d0
mov ebx, dword [ebp - 0x34]
cmp ecx, edi
jge 0x44517d
mov edx, dword [ebp - 0x44]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x445172
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x64]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [ebp - 0x5c]
push dword [ebp - 0x6c]
push esi
mov eax, dword [edi + 0x20]
call eax
mov edx, dword [ebp - 0x2c]
add esp, 0x14
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
call fcn.0043be80
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x50]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x43fca8
jmp 0x442d19
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x4451f7
mov ecx, esi
call fcn.00436060
jmp 0x43fca8
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x3c], eax
mov al, byte [ebp - 0x4c]
movups xmmword [ebp - 0x178], xmm0
mov dword [ebp - 0x178], esi
movups xmmword [ebp - 0x168], xmm0
mov byte [ebp - 0x160], al
je 0x44523e
mov ecx, esi
call fcn.00436060
mov edx, dword [ebp - 0x14]
mov eax, 0x401
mov dword [esi], 0
jmp 0x445251
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
movzx eax, ax
mov word [esi + 0x10], ax
lea eax, [ebp - 0x178]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0x3c]
push dword [edi + 0x2c]
mov eax, dword [eax + 0x2c]
call eax
mov edi, dword [ebp - 0x1c]
add esp, 0xc
mov edx, ebx
mov dword [ebp - 0x24], eax
mov ecx, edi
call fcn.0043be80
cmp dword [ebp - 0x164], 0
jle 0x4452a6
push esi
call fcn.0043c5e0
add esp, 4
push eax
push 0x500ef4
push edi
call fcn.00437020
mov eax, dword [ebp - 0x164]
add esp, 0xc
mov dword [ebp - 0x24], eax
movzx edx, byte [ebp - 0x4c]
mov ecx, esi
call fcn.00435500
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b51
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov eax, dword [esi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x43fc14
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
add esp, 4
mov dword [ebp - 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0043be80
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445b4e
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x443aa7
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0x54]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [edx + eax*4]
mov dword [ebp - 0x14], eax
jmp 0x443aaa
mov edi, dword [ecx + 0x20]
mov edx, 1
or dword [ecx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, ebx
call fcn.00435500
mov edx, eax
mov dword [ebp - 0x24], edx
test edx, edx
jne 0x445b4e
mov eax, dword [esi]
push dword [ebx + 8]
push esi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x24], eax
test edi, edi
jne 0x44539a
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov ecx, esi
call fcn.0043be80
and dword [esi + 0x98], 0xfffffffc
jmp 0x44269a
cmp byte [ecx + 0x57], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x40], xmm0
jne 0x4400eb
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x445b2d
mov edx, dword [ebx]
test edx, edx
je 0x445b2d
cmp dword [edx + 0x34], 0
mov esi, dword [ebp - 0x14]
mov esi, dword [esi + 8]
je 0x43fcab
mov al, byte [ecx + 0x5c]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x85], al
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x44541e
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x445413
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [ebp - 0x40]
push eax
mov eax, dword [edx + 0x34]
push edi
push esi
push ebx
call eax
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov esi, dword [ebp - 0x1c]
mov edx, ebx
mov dword [ebp - 0x24], eax
mov al, byte [ebp - 0x85]
mov byte [ecx + 0x5c], al
mov ecx, esi
call fcn.0043be80
mov edx, dword [ebp - 0x24]
test edx, edx
jne 0x445484
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 4], edx
je 0x445477
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [esi + 0x28], eax
mov eax, esi
mov esi, dword [ebp - 0x1c]
mov dword [eax + 0x2c], ecx
add dword [esi + 0x28], 1
adc dword [esi + 0x2c], 0
jmp 0x44269d
cmp dl, 0x13
jne 0x445477
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x445477
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x445b68
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.0043f950
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
add edx, edx
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + edx*8 + 4]
call fcn.00429420
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x43fca8
mov ebx, dword [ebp - 0x14]
mov ecx, esi
mov edx, ebx
call fcn.0043f950
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [ebp - 0x18]
add edx, edx
mov ecx, dword [eax + 0x10]
mov eax, ebx
mov esi, dword [ecx + edx*8 + 4]
xor edx, edx
cmp dword [eax + 0xc], edx
je 0x44552a
mov ecx, esi
call fcn.00429420
mov edx, eax
mov eax, ebx
mov eax, dword [eax + 0xc]
cmp edx, eax
cmovb edx, eax
mov ecx, esi
call fcn.0042a1b0
mov dword [edi], eax
mov dword [edi + 4], 0
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov dword [ebp - 0x3c], edi
cmp dword [esi], edi
je 0x445591
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 0xc], eax
mov al, byte [ebp - 0x4c]
mov dword [esi], edi
mov byte [esi + 0x18], al
js 0x445591
mov edi, dword [ebp - 0x14]
lea edx, [esi + 0x1c]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x445578
mov edi, dword [ebp - 0x3c]
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x43fca8
jle 0x4455ea
push edi
call fcn.0043c5e0
mov edi, dword [ebp - 0x1c]
add esp, 4
push eax
push 0x500ef4
push edi
call fcn.00437020
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x24], eax
jmp 0x4455ed
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
lea edx, [edi + 0xe4]
mov ecx, dword [ebp - 0x18]
push dword [eax + 4]
push dword [esi + 0x10]
call fcn.00439e50
mov edx, dword [ebp - 0x24]
add esp, 8
mov dword [esi + 0x14], 0
test edx, edx
jne 0x445b51
jmp 0x43fca8
mov eax, dword [edi + 4]
mov ebx, 0xf7ff
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ecx, ebx
lea edi, [eax + eax*4]
call fcn.0043f980
mov esi, eax
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004f3640
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x43fca8
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov edi, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
mov ecx, edi
lea ebx, [eax + eax*4]
call fcn.0043f980
mov esi, eax
mov ecx, edx
mov eax, dword [edi + ebx*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.004f3640
mov edi, eax
mov eax, dword [ebp - 0x28]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x18]
test eax, edx
jne 0x4456e3
inc dword [esi + 0xc4]
jmp 0x442d22
inc dword [esi + 0xc0]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x8c]
add edi, 0x14
jmp 0x43fb50
mov cl, byte [ecx + 0x5e]
test cl, 0x41
je 0x4457af
cmp byte [esi + 0x93], 0xfe
je 0x4457af
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
test eax, eax
jne 0x44572b
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x4457af
test cl, 0x40
je 0x44575b
mov edx, eax
mov ecx, esi
call fcn.0043eed0
mov esi, eax
mov eax, dword [ebp - 0x18]
push esi
push dword [eax + 0xdc]
mov ecx, dword [eax + 0xd8]
call ecx
push esi
call fcn.00413450
mov esi, dword [ebp - 0x1c]
add esp, 0xc
jmp 0x4457af
mov ebx, dword [ebp - 0x18]
push eax
cmp dword [ebx + 0xc8], 1
jle 0x44579b
push str.____s
push ebx
call fcn.00416840
mov ecx, dword [ebx + 0xd8]
add esp, 0xc
mov esi, eax
push esi
push dword [ebp - 0x1c]
push dword [ebx + 0xdc]
push 1
call ecx
push esi
push ebx
call fcn.00413560
mov esi, dword [ebp - 0x1c]
add esp, 0x18
jmp 0x4457af
mov eax, dword [ebx + 0xd8]
push esi
push dword [ebx + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [0x51320c]
jl 0x4457f4
cmp byte [ecx], 0xb5
je 0x43fc14
mov edx, 1
cmp dword [esi + 0x6c], edx
jle 0x4457f2
mov eax, 0x14
mov ecx, dword [esi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x4457e6
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [esi + 0x6c]
jl 0x4457d5
mov ecx, dword [ebp - 0x14]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
inc dword [esi + 0xbc]
jmp 0x442d1c
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov dword [esi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [esi + 0x92], al
test ecx, ecx
je 0x4458a2
movzx eax, word [edx + 2]
test ax, ax
je 0x44585e
push dword [eax*4 + 0x4f8c50]
push str._s_constraint_failed
push esi
call fcn.00437020
mov ebx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x445872
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [ebp - 0x18]
call fcn.00416840
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x445872
push dword [edx + 0x10]
push 0x500ef4
push esi
call fcn.00437020
mov ebx, dword [ebp - 0x14]
add esp, 0xc
push dword [esi + 0x7c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
push dword [esi + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.00416bb0
add esp, 0x14
mov ecx, esi
call fcn.00439900
mov edi, dword [ebp - 0x1c]
mov esi, eax
cmp esi, 5
jne 0x445c9f
mov dword [edi + 0x24], eax
jmp 0x445e07
push 0x506874
push 0x16e90
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00416bb0
add esp, 0x14
mov edx, 0xb
jmp 0x445b4b
mov ecx, dword [ebp - 0x34]
and ebx, 0x3f
mov edx, dword [ebp - 0x6c]
add ecx, ecx
mov edi, dword [ebp - 0x1c]
push dword [edx + ecx*8]
mov ecx, dword [ebp - 0x3c]
push dword [ecx]
push dword [eax*4 + 0x514174]
movzx eax, byte [ebx + 0x4fd318]
push dword [eax*4 + 0x4fc020]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.00437020
mov edx, 0xc13
add esp, 0x18
mov dword [ebp - 0x24], edx
jmp 0x445b51
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
call fcn.00437020
add esp, 8
mov edx, 5
jmp 0x445b4b
mov edi, dword [ebp - 0x1c]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.00437020
mov edx, 5
add esp, 8
mov dword [ebp - 0x24], edx
jmp 0x445b51
mov esi, dword [ebp - 0x18]
mov edi, eax
mov byte [esi + 0x55], 0
jmp 0x445b54
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov esi, 5
mov edi, dword [ebp - 0x1c]
imul ecx
mov ecx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [edi + 0x24], esi
jmp 0x445e0a
mov edi, dword [ebp - 0x1c]
mov esi, 0x65
jmp 0x445e0a
mov esi, dword [ebp - 0x18]
and edx, 0x100000
or edx, 0
mov edi, dword [ebp - 0x1c]
je 0x4459cd
mov edx, 8
mov dword [ebp - 0x24], edx
jmp 0x445b54
mov edx, 0xb
mov dword [ebp - 0x24], edx
jmp 0x445b54
cmp dl, 5
jne 0x445b51
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x24]
imul ecx
mov dword [edi + 0x24], esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
jmp 0x445e07
mov edx, 0x204
jmp 0x445b4b
mov ecx, dword [edi]
call fcn.00429e00
mov edx, dword [ebp - 0x24]
jmp 0x445b4e
mov esi, dword [ebp - 0x1c]
push str.string_or_blob_too_big
push esi
call fcn.00437020
add esp, 8
mov edx, 0x12
jmp 0x445b4b
push str.index_corruption
mov edx, 0x17b87
mov ecx, 0x30b
call fcn.004b9be0
add esp, 4
mov edx, eax
jmp 0x445b4b
mov ecx, 0x17c54
call fcn.004b9c10
mov edx, eax
jmp 0x445b4b
mov edi, dword [ebp - 0x1c]
mov edx, 6
mov dword [ebp - 0x24], edx
mov byte [edi + 0x92], 2
jmp 0x445b51
mov ecx, ebx
call fcn.00460830
mov esi, dword [ebp - 0x1c]
mov ecx, ebx
jmp 0x4400eb
push dword [ebp - 0xfc]
call fcn.00413450
mov edx, dword [ebp - 0x24]
add esp, 4
jmp 0x445b4e
mov edi, dword [ebp - 0x1c]
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [ebp - 0x24], 1
call fcn.00437020
add esp, 8
mov edx, 1
jmp 0x445b54
push esi
call fcn.0043c5e0
mov edi, dword [ebp - 0x1c]
add esp, 4
push eax
push 0x500ef4
push edi
call fcn.00437020
mov edx, dword [ebp - 0x24]
add esp, 0xc
jmp 0x445b51
mov edi, dword [ebp - 0x1c]
mov ecx, str.out_of
cmp esi, 5
mov dword [ebp - 0x24], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.00437020
add esp, 0xc
mov edx, 1
jmp 0x445b51
push dword [ebp - 0x34]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
mov esi, ebx
jmp 0x4400e8
mov edx, 6
jmp 0x445b4b
or ebx, 0xffffffff
or eax, 0xffffffff
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x90], eax
mov edx, 9
mov dword [ebp - 0x24], edx
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp byte [esi + 0x57], 0
je 0x445d33
mov edx, 7
jmp 0x445d47
movzx eax, cl
cmp ecx, 5
mov ecx, 2
cmove eax, ecx
mov byte [esi + 0x92], al
jmp 0x445b4e
mov eax, dword [esi + 0x1c]
mov ebx, dword [ebp - 0x14]
add eax, 2
mov edx, dword [ebp - 0x28]
or eax, 1
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esi + 0x78], eax
cmp byte [ecx + 0x57], 0
jne 0x4400eb
test byte [ecx + 0x5e], 4
je 0x445bc2
mov eax, dword [ecx + 0xd8]
push 0
push esi
push dword [ecx + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x20], eax
mov esi, 0x64
jmp 0x445e04
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ecx + 4]
movzx eax, byte [edx + 0x55]
mov ecx, dword [ecx + 8]
cmp ebx, eax
je 0x445cba
test ecx, ecx
je 0x445c15
mov esi, dword [ebp - 0x18]
mov edx, 0x204
mov ecx, esi
call fcn.004b7490
mov al, 1
jmp 0x445c55
test ebx, ebx
je 0x445c3a
cmp dword [edx + 0xc4], 0
jle 0x445c3a
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.00437020
add esp, 8
mov edx, 5
jmp 0x445b4b
mov edx, 1
mov ecx, esi
call fcn.00439890
mov esi, eax
test esi, esi
jne 0x445e04
mov esi, dword [ebp - 0x18]
mov al, bl
mov edi, dword [ebp - 0x1c]
mov ecx, edi
mov byte [esi + 0x55], al
call fcn.00439900
cmp eax, 5
jne 0x445c98
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
mov esi, 5
imul ecx
mov ecx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ecx + 0x55], al
mov dword [edi + 0x24], esi
jmp 0x445e0a
mov ecx, esi
call fcn.004b6c40
cmp dword [edi + 0x24], 0
mov ecx, 0x65
mov eax, 1
cmovne ecx, eax
mov dword [ebp - 0x24], ecx
mov esi, ecx
jmp 0x445e07
test ebx, ebx
jne 0x445cd5
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.00437020
add esp, 8
lea edx, [ebx + 1]
jmp 0x445b4b
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push esi
call fcn.00437020
add esp, 8
mov edx, 1
jmp 0x445b4b
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x20], eax
jmp 0x445b46
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x20], eax
jmp 0x4400eb
mov edi, ebx
jmp 0x445b51
cmp edx, 0x210a
jne 0x445d4a
mov ecx, 0x184e6
call fcn.004b9c10
mov edx, eax
mov dword [ebp - 0x24], edx
cmp dword [edi + 0x7c], 0
jne 0x445d6e
cmp edx, 0xc0a
je 0x445d6e
mov ecx, edx
call fcn.004b75d0
push eax
push 0x500ef4
push edi
call fcn.00437020
add esp, 0xc
mov ebx, dword [ebp - 0x24]
mov edx, ebx
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0x24], ebx
call fcn.00417730
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x54]
push dword [edi + 0x7c]
imul ecx
push dword [edi + 0xc8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.00416bb0
add esp, 0x14
cmp byte [edi + 0x95], 2
jne 0x445dbd
mov ecx, edi
call fcn.00439900
cmp ebx, 0xc0a
jne 0x445de7
mov ecx, dword [ebp - 0x18]
call fcn.00413c70
mov ecx, dword [ebp - 0x18]
mov al, byte [ebp - 0x79]
mov esi, 1
test al, al
je 0x445e0a
movzx edx, al
dec edx
call fcn.004607d0
jmp 0x445e07
cmp ebx, 0xb
jne 0x445dcd
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + 0x55], 0
jne 0x445dd0
mov eax, dword [ecx + 0x20]
or dword [ecx + 0x24], 2
mov dword [ecx + 0x20], eax
jmp 0x445dd0
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x90]
cmp dword [ebp - 0x8c], ebx
jb 0x445e71
mov edx, dword [ebp - 0x84]
ja 0x445e25
cmp dword [ebp - 0x20], edx
jb 0x445e71
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x445e71
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [ebp - 0x84], edx
adc ebx, 0
call eax
mov ecx, dword [ebp - 0x18]
add esp, 4
test eax, eax
je 0x445e10
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x90], eax
mov esi, ecx
mov dword [ebp - 0x24], edx
jmp 0x445b54
mov ecx, dword [ebp - 0x20]
add dword [edi + 0xb4], ecx
cmp dword [edi + 0xa0], 0
je 0x445e8a
mov ecx, edi
call fcn.004382e0
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f1f57
mov esp, ebp
pop ebp
ret