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

Disassembly:
sub esp, 0x348
mov eax, dword [0x790f00]
xor eax, esp
mov dword [esp + 0x344], eax
mov ecx, dword [esp + 0x34c]
xorps xmm0, xmm0
push ebx
push ebp
push esi
mov ebp, dword [ecx]
xor bl, bl
mov esi, dword [ecx + 0x68]
push edi
xor edi, edi
mov dword [esp + 0x14], ecx
mov al, byte [ebp + 0x54]
mov byte [esp + 0x4c], al
mov byte [esp + 0x74], al
mov eax, dword [ecx + 0x58]
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebp
mov byte [esp + 0x67], bl
mov dword [esp + 0x5c], edi
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x28], eax
mov dword [esp + 0x88], edi
cmp dword [ecx + 0xa0], edi
je 0x52c14b
push ecx
call fcn.0052c030
mov ecx, dword [esp + 0x18]
add esp, 4
cmp dword [ebp + 0x174], edi
je 0x52c169
mov ebx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [ecx + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x52c16f
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [ecx + 0x24], 7
mov dword [esp + 0x84], eax
mov dword [esp + 0x68], ebx
je 0x5344dd
mov dword [ecx + 0x24], edi
mov dword [ecx + 0x38], edi
mov dword [ecx + 0x3c], edi
mov dword [ebp + 0x1c8], edi
cmp dword [ebp + 0x128], edi
jne 0x5344c0
mov eax, dword [ecx + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xb8], 0xf244
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x78]
add eax, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
adc edx, 0
mov dword [esp + 0x80], edx
mov dl, byte [esi]
movzx ebx, dl
cmp ebx, 0xb5
ja case.0x52c1e1.89
jmp dword [ebx*4 + 0x53471c]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov ebx, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
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
jmp case.0x52c1e1.9
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x52c2d2
mov eax, dword [ebx + eax*8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
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
cmp dword [esi + 8], 0
jne 0x52d864
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
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 esi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x20]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
mov ecx, dword [ebx + esi*8]
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 ecx, dword [esp + 0x20]
mov dword [ebx + esi*8 + 4], edx
lea esi, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x52c2d2
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x533e2b
cmp dword [esi + 4], 0
jne 0x533e2b
mov eax, dword [edx + 4]
mov dword [ecx + 0xd0], eax
dec dword [ecx + 0xd8]
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
push edx
adc dword [ebp + 0x74], ecx
call fcn.00535030
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [ecx + 8], 4
jne 0x52c3aa
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + 0x68]
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edx
lea esi, [ebx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x52c427
push ecx
call fcn.004e8fb0
mov esi, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x52c484
push edx
call fcn.004e8fb0
add esp, 4
mov edx, eax
jmp 0x52c48d
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x52c4e3
push ecx
call fcn.004e8fb0
add esp, 4
mov ecx, eax
mov esi, dword [esp + 0x10]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x1c]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x52c542
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
jmp 0x52c54b
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x52c556
xor ecx, ecx
jmp 0x52c573
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52c560
sub ecx, edi
mov edi, dword [esp + 0x18]
and ecx, 0x3fffffff
cmp byte [esp + 0x4c], 1
mov dword [ebx + 4], ecx
je 0x52c60d
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.00536730
mov edi, eax
add esp, 0x18
mov dword [esp + 0x18], edi
test edi, edi
jne 0x52e668
test byte [esi + 0x10], 2
mov al, byte [esp + 0x4c]
jne 0x52c5b0
mov byte [esi + 0x12], al
jmp 0x52c5ca
cmp byte [esi + 0x12], al
je 0x52c5ca
push dword [esp + 0x4c]
push esi
call fcn.00536b40
add esp, 8
test eax, eax
jne 0x52e576
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
mov dword [esi + 0x18], 0
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x52c5f9
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x52c5f9
push eax
push ebp
call fcn.00502f20
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x10]
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
cmp ecx, dword [ebp + 0x78]
jg 0x52e668
mov byte [ebx], 0x49
jmp 0x52c61f
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x52c645
push ecx
call fcn.004e8fb0
add esp, 4
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 [esp + 0x4c]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x52c749
mov ebx, dword [esp + 0x28]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x52c43d
cmp dword [ebx + esi*8 + 4], edx
jne 0x52c749
mov esi, dword [esp + 0x10]
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x52c6e3
push edx
call fcn.004e8fb0
add esp, 4
mov edx, eax
jmp 0x52c6ec
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
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
mov dword [edx + 0xc], 0
test edi, edi
jle 0x52c749
mov eax, 0x9000
nop
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x52c73a
lea eax, [esi - 0x10]
push eax
call fcn.00547450
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x52c720
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 4]
mov edx, 0xffc1
mov ebx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
jmp 0x52c2c9
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x52c7b9
push esi
call fcn.004e8fb0
mov esi, eax
add esp, 4
mov eax, 0x9000
jmp 0x52c7c2
mov ecx, 4
mov word [esi + 0x10], cx
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x52c837
test word [esi + 0x10], ax
jne 0x52c7d7
cmp dword [esi + 0x18], ecx
je 0x52c7e0
push esi
call fcn.00547410
add esp, 4
mov eax, 0x410
mov word [esi + 0x10], ax
xor eax, eax
test edi, edi
mov dword [esi + 0xc], 0
push esi
cmovs edi, eax
mov dword [esi], edi
mov byte [esi + 0x12], 1
mov dword [esi + 8], eax
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
mov al, byte [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.00536730
mov al, byte [esp + 0x64]
add esp, 0x18
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x64]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
movzx eax, word [ebx + edi*8 - 0x18]
test al, 0x12
je 0x52c8a2
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x52c895
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x52e668
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 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 0x52c8c7
push esi
call fcn.00547450
add esp, 4
movups xmm0, xmmword [ebx + edi*8 - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [ebx + edi*8 - 0x18]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x14]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop word [eax + eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x52c941
cmp dword [esi + 0x18], 0
je 0x52c94a
push esi
call fcn.00547410
add esp, 4
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 dword [edi + 0x18], 0
movzx eax, word [esi + 0x10]
test eax, 0x4000
je 0x52c9be
test al, 0x12
je 0x52c9b8
test eax, 0x400
je 0x52c999
push esi
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
cmp dword [esi + 0x18], 0
je 0x52c9a7
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x52c9b8
push esi
call fcn.005473c0
add esp, 4
test eax, eax
jne 0x52e576
and word [esi + 0x10], 0xbfff
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x52c930
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x52ca2c
push 0x4000
push edi
push esi
call fcn.005466e0
add esp, 0xc
jmp 0x52ca5b
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [edi + 0x10], ax
jne 0x52ca5b
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov word [esi + 0x10], ax
movzx eax, word [esi + 0x10]
mov ecx, eax
test ecx, 0x4000
je 0x52cab6
test cl, 0x12
je 0x52caa6
test ecx, 0x400
je 0x52ca87
push esi
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
cmp dword [esi + 0x18], 0
je 0x52ca95
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x52caa6
push esi
call fcn.005473c0
add esp, 4
test eax, eax
jne 0x52e576
mov eax, 0xbfff
and ax, word [esi + 0x10]
mov word [esi + 0x10], ax
movzx eax, ax
movzx eax, ax
test eax, 0x800
je 0x52cad3
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 2
je 0x52cad3
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x52c749
add esi, 0x28
add edi, 0x28
jmp 0x52ca10
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x52cb3c
push 0x4000
push edx
push ecx
call fcn.005466e0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
movups xmm0, xmmword [edx]
mov esi, dword [esp + 0x10]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x52c2ce
mov edx, 0xcfff
and ax, dx
mov edx, 0x4000
or ax, dx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 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 0x52cbd5
push eax
push edx
push ecx
call fcn.00548a10
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov esi, dword [esp + 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
push 0
push ecx
call fcn.0052b9a0
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x53450f
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x10]
lea ebx, [edx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x3c], ecx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x52ccc8
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x52cca0
push esi
call fcn.00547450
add esp, 4
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x14]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
test cl, 0x12
jne 0x52ccf9
push 0
push dword [esp + 0x78]
push ebx
call fcn.00536ab0
add esp, 0xc
test eax, eax
jne 0x52e576
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x3c], ecx
jmp 0x52cd25
test ecx, 0x400
je 0x52cd25
push ebx
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x3c], eax
movzx eax, word [edi + 0x10]
mov dword [esp + 0x40], eax
test al, 0x12
jne 0x52cd59
push 0
push dword [esp + 0x78]
push edi
call fcn.00536ab0
add esp, 0xc
test eax, eax
jne 0x52e576
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x52cd86
test eax, 0x400
je 0x52cd82
push edi
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x52cd86
mov ebp, dword [esp + 0x40]
mov ecx, dword [edi + 0xc]
add ecx, dword [ebx + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x34], edx
jg 0x52e668
jl 0x52cdb1
cmp ebx, eax
ja 0x52e668
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.00536210
add esp, 0xc
test eax, eax
jne 0x52e572
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x52cdfb
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov word [edi + 0x10], bp
mov ebp, dword [esp + 0x6c]
mov eax, dword [esi + 8]
add eax, dword [edi + 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov cl, byte [esp + 0x58]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov word [ebp + 0x10], ax
cmp cl, 1
jbe 0x52ce30
mov eax, dword [esp + 0x34]
and ebx, 0xfffffffe
mov dword [esp + 0x30], eax
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xc], ebx
mov byte [esi + 0x12], cl
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 0x10]
lea esi, [ecx + eax*8]
mov eax, dword [edi + 8]
mov ebx, edx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [edi + 0xc]
movzx ecx, word [ebp + 0x10]
mov dword [esp + 0x38], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov al, cl
and al, bl
test al, 4
jne 0x52cefb
or cl, bl
test cl, 1
jne 0x52d260
and edx, 0x2d
je 0x52cecf
mov ebx, edx
jmp 0x52cedb
push esi
call fcn.004cfbd0
add esp, 4
movzx ebx, ax
mov ax, word [ebp + 0x10]
and ax, 0x2d
jne 0x52ceee
push ebp
call fcn.004cfbd0
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x52d090
mov eax, dword [esp + 0x10]
mov ebx, dword [ebp]
mov edi, dword [esi]
mov ebp, dword [ebp + 4]
movzx eax, byte [eax]
mov esi, dword [esi + 4]
add eax, 0xffffff96
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebp
cmp eax, 3
ja case.default.0x52cf21
jmp dword [eax*4 + 0x5349f4]
push esi
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.004f6cf0
add esp, 0xc
test eax, eax
jne 0x52d088
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
jmp 0x52d21d
test edi, edi
jne 0x52cf73
cmp esi, 0x80000000
jne 0x52cf73
test ebp, ebp
jg 0x52d088
jl 0x52cf6a
test ebx, ebx
jae 0x52d088
sub ebx, edi
sbb ebp, esi
jmp 0x52d21d
neg edi
adc esi, 0
neg esi
jmp case.0x52cf21.106
test esi, esi
jl 0x52cfd9
jg 0x52cf86
test edi, edi
je 0x52cfcf
push esi
push edi
push bind
push 0xffffffffffffffff
call fcn.006db890
cmp ebp, edx
jg 0x52d088
jl 0x52cfa6
cmp ebx, eax
ja 0x52d088
push esi
push edi
push bind
push 0
call fcn.006db890
cmp ebp, edx
jg 0x52d04f
jl 0x52d088
cmp ebx, eax
jae 0x52d04f
jmp 0x52d088
test esi, esi
jg 0x52d04f
jl 0x52cfd9
test edi, edi
jae 0x52d04f
test ebp, ebp
jl 0x52d00e
jg 0x52cfe3
test ebx, ebx
je 0x52d004
push ebp
push ebx
push bind
push 0
call fcn.006db890
cmp esi, edx
jg 0x52d04f
jl 0x52d088
cmp edi, eax
jae 0x52d04f
jmp 0x52d088
test ebp, ebp
jg 0x52d04f
jl 0x52d00e
test ebx, ebx
jae 0x52d04f
test edi, edi
jne 0x52d01a
cmp esi, 0x80000000
je 0x52d088
test ebx, ebx
jne 0x52d026
cmp ebp, 0x80000000
je 0x52d088
push esi
push edi
push bind
push 1
call fcn.006db890
mov ecx, ebx
neg ecx
mov dword [esp + 0x40], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x52d088
jl 0x52d04f
cmp dword [esp + 0x40], eax
ja 0x52d088
push ebp
push ebx
push esi
push edi
call fcn.006db940
jmp 0x52d219
mov eax, edi
or eax, esi
je 0x52d260
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x52d1ef
test ebx, ebx
jne 0x52d1ef
cmp ebp, 0x80000000
jne 0x52d1ef
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x52d0ab
movsd xmm0, qword [ebx]
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x52d0ef
test al, 0x24
je 0x52d0c4
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.006dbd10
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x52d0ef
test al, 0x12
je 0x52d0e6
push ebx
call fcn.004e5b70
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
add esp, 4
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x52d0ef
xorps xmm0, xmm0
movsd qword [esp + 0x2c], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x52d0fe
movsd xmm0, qword [ebp]
jmp 0x52d126
test al, 0x24
je 0x52d10f
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.006dbd10
jmp 0x52d126
test al, 0x12
je 0x52d126
push ebp
call fcn.004e5b70
fstp qword [esp + 0x44]
movsd xmm0, qword [esp + 0x44]
add esp, 4
movzx eax, byte [edi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x52d131
jmp dword [eax*4 + 0x534a04]
addsd xmm0, qword [esp + 0x2c]
jmp 0x52d1ab
subsd xmm0, qword [esp + 0x2c]
jmp 0x52d1ab
mulsd xmm0, qword [esp + 0x2c]
jmp 0x52d1ab
movsd xmm1, qword [esp + 0x2c]
ucomisd xmm1, qword [0x6f10f0]
lahf
test ah, 0x44
jnp 0x52d260
divsd xmm0, xmm1
jmp 0x52d1ab
push ebx
call fcn.00535700
push ebp
mov esi, eax
mov edi, edx
call fcn.00535700
mov ecx, esi
add esp, 8
or ecx, edi
je 0x52d260
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x52d19b
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.006db980
mov ecx, eax
call fcn.006dbd10
movsd qword [esp + 0x2c], xmm0
mov ecx, dword [esp + 0x30]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x52d1d5
mov eax, dword [esp + 0x2c]
and ecx, 0xfffff
or eax, ecx
jne 0x52d260
mov ecx, dword [esp + 0x3c]
mov edx, 0xf248
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 8
jmp 0x52d236
push esi
push edi
push ebp
push ebx
call fcn.006db890
jmp 0x52d219
mov eax, edi
or eax, esi
je 0x52d260
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x52d210
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.006db980
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x3c]
mov edx, 0xf244
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ecx + 0x10], ax
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x3c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x52d29b
push eax
call fcn.00547450
add esp, 4
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x18]
mov ecx, 1
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 4]
test eax, eax
je 0x52c2d2
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.005365e0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [ebx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
test al, 1
je 0x52d34c
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x52d33e
push ebp
jmp 0x52d270
mov eax, 1
mov word [ebp + 0x10], ax
jmp 0x52d278
push ecx
call fcn.00535700
mov ebx, eax
mov esi, edx
push edi
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], esi
call fcn.00535700
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x52d380
and ebx, edi
and esi, edx
jmp 0x52d3e6
cmp cl, 0x67
jne 0x52d38b
or ebx, edi
or esi, edx
jmp 0x52d3e6
mov eax, edi
or eax, edx
je 0x52d3e6
test edx, edx
jg 0x52d3bf
jl 0x52d39b
test edi, edi
jae 0x52d3b4
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x52d3bf
jg 0x52d3ad
cmp edi, 0xffffffc0
jbe 0x52d3bf
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x52d405
jg 0x52d3bf
cmp edi, 0x40
jb 0x52d405
test esi, esi
jg 0x52d3d5
jl 0x52d3c9
test ebx, ebx
jae 0x52d3d5
cmp cl, 0x68
je 0x52d3d5
or ebx, 0xffffffff
or esi, ebx
jmp 0x52d3e6
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [ebp], ebx
mov ecx, 0xf244
mov dword [ebp + 4], esi
mov ax, word [ebp + 0x10]
and ax, cx
or ax, 4
mov word [ebp + 0x10], ax
jmp 0x52d278
movq xmm1, qword [esp + 0xd4]
movd xmm0, edi
cmp cl, 0x68
jne 0x52d423
psllq xmm1, xmm0
movq qword [esp + 0x2c], xmm1
jmp 0x52d3de
psrlq xmm1, xmm0
movq qword [esp + 0x2c], xmm1
test esi, esi
jg 0x52d3de
jl 0x52d437
test ebx, ebx
jae 0x52d3de
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.006dba40
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
or ebx, eax
or esi, edx
jmp 0x52d3e6
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00535700
mov esi, eax
mov edi, edx
mov dword [ebx], esi
mov eax, 0xf244
mov dword [ebx + 4], edi
add esp, 4
mov cx, word [ebx + 0x10]
and cx, ax
mov eax, dword [esp + 0x10]
or cx, 4
mov word [ebx + 0x10], cx
mov eax, dword [eax + 8]
cdq
add eax, esi
mov dword [ebx], eax
adc edx, edi
mov dword [ebx + 4], edx
jmp 0x52d27c
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x52d4fa
test al, 0x28
jne 0x52d4d0
test al, 2
je 0x52d4d9
push 1
push esi
call fcn.004c7400
add esp, 8
jmp 0x52d4d9
push esi
call fcn.00535770
add esp, 4
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x52d4fa
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x533f06
mov ecx, dword [esp + 0x14]
jmp 0x52d86c
mov eax, dword [esp + 0x1c]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x24
lea eax, [edx + eax*8]
je 0x52c2d2
push eax
call fcn.00536510
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x52d58d
push esi
call fcn.00535fe0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
push dword [esp + 0x74]
movzx eax, byte [edi + 8]
push eax
push esi
call fcn.00535e20
jmp 0x52f9d6
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [edi + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
mov dword [esp + 0x40], eax
and ecx, edx
test cl, 4
je 0x52d6a8
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x52d634
jg 0x52d5f0
cmp ebp, edx
jbe 0x52d62a
mov eax, dword [0x78d1f8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x52d868
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x5c], 1
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp ecx, eax
jg 0x52d66e
jl 0x52d634
cmp ebp, edx
jae 0x52d66e
mov eax, dword [0x78d1f0]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x52d868
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 0xffffffff
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [0x78d1f4]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x52d868
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x40]
mov eax, ebx
or eax, edx
test al, 1
je 0x52d727
mov edi, dword [esp + 0x10]
movzx eax, word [edi + 2]
test al, al
jns 0x52d6f8
test cl, 1
je 0x52d6e5
test ebx, 0x100
jne 0x52d6e5
movzx ecx, byte [edi]
mov eax, dword [0x78d1f4]
mov dword [esp + 0x5c], 0
mov al, byte [ecx + eax]
jmp 0x52d84c
mov eax, ebx
not eax
and eax, 1
lea ecx, [eax*2 - 1]
jmp 0x52d7f4
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test al, 0x10
jne 0x52d868
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 1
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebp, dword [esp + 0x10]
mov cl, byte [ebp + 2]
and cl, 0x47
cmp cl, 0x43
jb 0x52d76e
test al, 2
je 0x52d7e1
mov al, dl
and al, 0x2e
cmp al, 2
jne 0x52d755
push 0
push edi
call fcn.004c7400
movzx ebx, word [esi + 0x10]
add esp, 8
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x52d7e1
push 0
push esi
call fcn.004c7400
add esp, 8
jmp 0x52d7e1
cmp cl, 0x42
jne 0x52d7e1
test al, 2
je 0x52d7e1
test dl, 2
jne 0x52d7b5
test dl, 0x2c
je 0x52d7b5
push 1
push dword [esp + 0x78]
push edi
call fcn.00536ab0
movzx eax, word [edi + 0x10]
add esp, 0xc
mov ecx, eax
xor ecx, dword [esp + 0x3c]
and ecx, 0xdbf
xor ecx, eax
movzx edx, cx
mov dword [esp + 0x3c], edx
cmp edi, esi
jne 0x52d7b5
mov eax, edx
or eax, 2
movzx ebx, ax
test bl, 2
jne 0x52d7e1
test bl, 0x2c
je 0x52d7e1
push 1
push dword [esp + 0x78]
push esi
call fcn.00536ab0
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, eax
xor ecx, ebx
and ecx, 0xdbf
xor ecx, eax
movzx ebx, cx
push dword [ebp + 0x10]
push edi
push esi
call fcn.00516110
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, eax
movzx eax, dx
mov edi, ecx
mov dword [esp + 0x5c], ecx
movzx ebp, bx
mov dword [esp + 0x40], eax
test ecx, ecx
jns 0x52d819
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
mov eax, dword [0x78d1f0]
mov al, byte [ecx + eax]
jmp 0x52d84c
mov ecx, dword [esp + 0x10]
mov ebx, ebp
movzx edx, ax
mov dword [esp + 0x5c], edi
movzx ecx, byte [ecx]
test edi, edi
jne 0x52d837
mov eax, dword [0x78d1f4]
mov al, byte [ecx + eax]
jmp 0x52d84c
mov eax, dword [0x78d1f8]
mov ebx, ebp
mov dword [esp + 0x5c], edi
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x40]
movzx edx, cx
mov ecx, dword [esp + 0x34]
test al, al
mov edi, dword [esp + 0x18]
mov word [esi + 0x10], bx
mov word [ecx + 0x10], dx
je 0x533e0c
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp dword [esp + 0x5c], 0
je 0x52d868
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x52d8bf
xor ebp, ebp
jmp 0x52d8c5
mov ebp, dword [edx - 4]
add ebp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x3c], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], ecx
test eax, eax
jle 0x533e0c
lea edi, [edx + 0x14]
test ebp, ebp
je 0x52d8fc
mov ecx, dword [ebp + esi*4]
jmp 0x52d8fe
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x28]
push dword [edi]
movzx ebx, byte [esi + eax]
mov eax, dword [esp + 0x44]
and ebx, 1
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x70]
add eax, ecx
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x2c]
push edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x60], eax
call fcn.00516110
mov edx, eax
add esp, 0xc
mov dword [esp + 0x5c], edx
test edx, edx
jne 0x52d959
mov edx, dword [esp + 0x34]
inc esi
add edi, 4
cmp esi, dword [esp + 0x3c]
jl 0x52d8f2
jmp 0x52d278
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x52d980
mov eax, dword [esp + 0x54]
test byte [eax + 0x10], 1
jne 0x52d97a
mov eax, dword [esp + 0x48]
test byte [eax + 0x10], 1
je 0x52d980
neg edx
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test ebx, ebx
je case.0x52c1e1.89
neg edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x52d9e0
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
jne 0x52da05
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x52da84
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x52dac2
xor esi, esi
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x52dac9
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x52db07
xor eax, eax
lea edx, [eax + esi*2]
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x2c
jne 0x52db11
mov dl, byte [esi + edx + 0x6e9efc]
jmp 0x52db18
test al, 1
je 0x52da8f
mov esi, 2
jmp 0x52da4a
test al, 8
je 0x52da99
movsd xmm0, qword [ecx]
jmp 0x52dab4
test al, 0x12
je 0x52da48
push ecx
call fcn.004e5b70
mov edx, dword [esp + 0x14]
add esp, 4
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
ucomisd xmm0, qword [0x6f10f0]
lahf
test ah, 0x44
jnp 0x52da48
mov esi, 1
jmp 0x52da4a
test al, 1
je 0x52dad4
mov eax, 2
jmp 0x52da68
test al, 8
je 0x52dade
movsd xmm0, qword [ecx]
jmp 0x52daf5
test al, 0x12
je 0x52da66
push ecx
call fcn.004e5b70
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
add esp, 4
ucomisd xmm0, qword [0x6f10f0]
lahf
test ah, 0x44
jnp 0x52da66
mov eax, 1
jmp 0x52da68
mov dl, byte [esi + edx + 0x6e9f08]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x52db57
mov ax, word [ebx + ecx*8 + 0x10]
mov edx, 0xf241
mov esi, dword [esp + 0x10]
and ax, dx
or ax, 1
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov esi, dword [esp + 0x10]
movzx eax, dl
cdq
mov dword [ebx + ecx*8], eax
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0xf244
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0052b7c0
mov ecx, dword [esp + 0x18]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.005365e0
mov esi, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x52dc79
push 0
push ecx
call fcn.0052b7c0
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x52dc4c
push 0
push eax
push esi
call fcn.00548a10
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x52dca8
push esi
call fcn.00547450
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ecx, dword [esp + 0x14]
mov eax, 1
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 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 0x52dd02
push esi
call fcn.00547450
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x52dd0b
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x52ddc7
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.00535700
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
jmp 0x52d27c
mov edi, dword [ecx + 0xd0]
test edi, edi
je 0x52ddab
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
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 0x530281
bts edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [ecx + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x533e03
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0052b7c0
add esp, 8
test eax, eax
jne 0x52d864
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0052b7c0
add esp, 8
test eax, eax
jne 0x52c43d
jmp 0x52d864
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x52d868
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x52deca
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x52dec1
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x52deb8
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x52def0
movzx eax, byte [eax + 0x6e9f14]
jmp 0x52def3
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x52dee7
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x6e9250]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test word [esi + 2], ax
jne 0x52d868
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x52df6b
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x52df6b
mov eax, dword [edx + 8]
push 0
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.005365e0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x10]
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 0x52dfa8
push eax
call fcn.00547450
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov esi, dword [esp + 0x10]
mov edx, 1
mov word [eax + 0x10], dx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x52d868
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x52c2ce
cmp byte [eax + 2], 0
je 0x52c2ce
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 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 0x52e039
push eax
call fcn.00547450
add esp, 4
jmp 0x52d864
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x52d864
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x48], ecx
nop
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x48]
mov dword [esp + 0x50], ebp
cmp eax, dword [ebx + 0x1c]
je 0x52e0a0
cmp byte [esi + 2], 0
jne 0x52e111
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x52e099
mov eax, dword [esi + 0x10]
test eax, eax
je 0x52e0c9
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x52e0c9
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x52e05b
cmp byte [edi], 0
je 0x52e0e0
jmp 0x52e0ac
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x52e2e5
push esi
call fcn.005356c0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x530bbf
mov ecx, dword [esp + 0x48]
jmp 0x52e060
push esi
call fcn.00534fb0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534500
push edi
call fcn.004dcc00
mov eax, dword [edi + 0x2c]
add esp, 4
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x74]
movzx ecx, word [edi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [edi + 0x28]
cmp ecx, eax
jle 0x52e109
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [esi + 0x54], ecx
mov ecx, dword [edi + 0x28]
jmp 0x52e13a
cmp byte [esi], 3
jne 0x52e275
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x52e275
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [ebx + 0x1c]
lea ebx, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [ebp], eax
cmp eax, 0x80
jae 0x52e15a
mov eax, 1
jmp 0x52e169
push ebp
push dword [esi + 0x4c]
call fcn.00511c20
add esp, 8
movzx eax, al
mov ecx, ebx
lea edi, [esi + 0x3e]
mov dword [ecx], eax
xor eax, eax
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp]
jae 0x52e270
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x52e467
cmp eax, dword [esi + 0x50]
ja 0x52e467
mov ecx, dword [esp + 0x48]
movzx eax, word [edi]
cmp eax, ecx
ja 0x52e4d8
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
cmp eax, dword [ebp]
jae 0x52e488
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x6c], edx
test edx, edx
jne 0x52e21a
xorps xmm0, xmm0
lea eax, [esp + 0x150]
push eax
movups xmmword [esp + 0x154], xmm0
movups xmmword [esp + 0x164], xmm0
movq qword [esp + 0x174], xmm0
push dword [ebp]
push dword [esi + 0x2c]
call fcn.005361b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov edx, dword [esp + 0x158]
mov dword [esp + 0x6c], edx
movzx ecx, word [edi]
mov eax, dword [esp + 0x50]
mov edi, dword [ebx]
add edi, edx
mov dword [esp + 0x40], ecx
mov ebp, dword [ebp + ecx*4]
mov eax, dword [eax]
add eax, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], eax
lea eax, [ecx + 0x17]
lea eax, [esi + eax*4]
mov dword [esp + 0x3c], eax
movzx ebx, byte [edi]
mov dword [esp + 0x34], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x52e2ed
movzx eax, byte [ebx + 0x6e8d48]
inc edi
cdq
add ebp, eax
adc dword [esp + 0x38], edx
jmp 0x52e331
mov edx, dword [esi + 0x4c]
jmp 0x52e216
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 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 0x52e2bb
push eax
call fcn.00547450
mov edi, dword [esp + 0x1c]
add esp, 4
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x18]
mov ecx, 1
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov word [eax + 0x10], cx
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
lea edi, [esi + 0x3e]
jmp 0x52e1aa
lea eax, [esp + 0x34]
push eax
push edi
call fcn.00511c20
mov ebx, dword [esp + 0x3c]
add esp, 8
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
cmp ebx, 0x80
jb 0x52e319
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x52e320
movzx eax, byte [ebx + 0x6e8d48]
mov edx, dword [esp + 0x38]
add ebp, eax
mov ecx, dword [esp + 0x40]
adc edx, 0
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x50]
inc ecx
mov eax, dword [esp + 0x3c]
add eax, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov dword [edx + ecx*4], ebp
mov edx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x48]
ja 0x52e362
cmp edi, dword [esp + 0x54]
jb 0x52e247
mov eax, dword [esp + 0x54]
jmp 0x52e36e
mov eax, dword [esp + 0x54]
cmp edi, eax
jb 0x52e414
cmp edi, eax
ja 0x52e427
cmp ebp, dword [esi + 0x50]
jne 0x52e427
test edx, edx
jne 0x52e427
mov ebp, dword [esp + 0x50]
sub edi, dword [esp + 0x6c]
mov word [esi + 0x3e], cx
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], 0
jne 0x52e3c3
test dword [esp + 0x160], 0x9000
jne 0x52e3b3
cmp dword [esp + 0x168], 0
je 0x52e3c3
lea eax, [esp + 0x150]
push eax
call fcn.00547410
add esp, 4
mov ecx, dword [esp + 0x48]
movzx eax, word [esi + 0x3e]
cmp eax, ecx
ja 0x52e4dc
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
cmp byte [edi + 1], 0xf6
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x9000
jne 0x52e4c2
mov edx, dword [edi + 0x10]
test word [ecx + 0x10], ax
je 0x52e48f
push 0x2000
push edx
push ecx
call fcn.005466e0
add esp, 0xc
jmp 0x52d278
test edx, edx
jb 0x52e387
ja 0x52e427
cmp ebp, dword [esi + 0x50]
jbe 0x52e387
mov ebp, dword [esp + 0x50]
cmp dword [ebp], 0
jne 0x52e43a
xor ecx, ecx
mov edi, eax
jmp 0x52e38b
cmp dword [esi + 0x4c], 0
jne 0x52e467
test dword [esp + 0x160], 0x9000
jne 0x52e457
cmp dword [esp + 0x168], 0
je 0x52e467
lea eax, [esp + 0x150]
push eax
call fcn.00547410
add esp, 4
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x533f10
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ebx + eax*4]
mov dword [esp + 0x10], edi
jmp 0x52d278
xor ebx, ebx
jmp 0x52e3c7
movups xmm0, xmmword [edx]
mov ebp, dword [esp + 0x24]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x530a94
mov edx, 0xafff
and ax, dx
or ax, bx
mov word [ecx + 0x10], ax
jmp 0x52d27c
test word [ecx + 0x10], ax
je 0x52e4ce
push ecx
jmp 0x52d270
mov eax, 1
jmp 0x52d239
mov ebx, dword [esi + ecx*4 + 0x5c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x52e509
push edi
call fcn.00547450
mov ecx, dword [esp + 0x4c]
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ecx*4 + 4]
jb 0x52e5da
mov eax, dword [esp + 0x50]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x52e535
push edi
push ebx
push ebp
call fcn.00537e90
add esp, 0xc
jmp 0x52d23d
mov al, byte [esp + 0x4c]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
jge 0x52e5a4
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx + 0x78]
jg 0x52e668
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.00536210
add esp, 0xc
test eax, eax
je 0x52e5aa
mov ebp, dword [esp + 0x24]
push ebp
call fcn.00516600
mov ebp, dword [esp + 0x18]
push str.out_of_memory
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x1c]
mov edx, 7
mov ebx, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x534154
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push dword [edi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 8]
add esp, 0xc
and ebx, 1
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [eax + esi + 1], 0
mov ax, word [ebx*2 + 0x6e9f20]
mov word [edi + 0x10], ax
jmp 0x52d23d
mov al, byte [esp + 0x4c]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x52e5fa
cmp al, 0x80
je 0x52e614
cmp ebx, 0xc
jb 0x52e5fa
test bl, 1
je 0x52e614
cmp al, 0xc0
je 0x52e614
cmp ebx, 0x80
jb 0x52e609
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x52e610
movzx eax, byte [ebx + 0x6e8d48]
test eax, eax
jne 0x52e628
push edi
push ebx
push 0x6e9040
call fcn.00537e90
add esp, 0xc
jmp 0x52d23d
mov eax, dword [esp + 0x14]
push edi
push dword [esp + 0x8c]
push dword [eax + 0x1c]
push 0
push dword [ebp + ecx*4]
push ebx
push ecx
push esi
call fcn.00546700
mov edx, eax
add esp, 0x20
mov dword [esp + 0x18], edx
test edx, edx
je 0x52d23d
cmp edx, 7
je 0x52e572
cmp edx, 0x12
jne 0x534148
mov ebp, dword [esp + 0x14]
push str.string_or_blob_too_big
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x18]
mov edx, 0x12
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x534154
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x6c], edx
lea eax, [eax + eax*4]
mov ebx, dword [edx + 4]
lea esi, [ecx + eax*8]
xor ecx, ecx
mov dword [esp + 0x2c], ebx
xor eax, eax
mov dword [esp + 0x34], ecx
cmp ax, word [edx + 0x22]
jge 0x52c43d
add ebx, 8
mov dword [esp + 0x40], ebx
nop dword [eax]
movzx eax, word [ebx + 6]
test al, 0x60
je 0x52e6ee
test al, 0x20
jne 0x52e7a6
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x52e7a3
push dword [esp + 0x74]
movzx eax, byte [ebx]
push eax
push esi
call fcn.004c7390
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, eax
mov ebp, eax
mov edi, ecx
test cl, 1
jne case.default.0x52e727
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x52e727
jmp dword [edx*4 + 0x534a14]
test cl, 0x10
jmp 0x52e795
test cl, 4
jmp 0x52e795
test cl, 2
jmp 0x52e795
test cl, 4
je 0x52e792
mov edi, dword [esi]
mov edx, edi
mov ebx, dword [esi + 4]
add edx, 0
mov eax, ebx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x52e769
jb 0x52e761
cmp edx, 0xffffffff
ja 0x52e769
or ecx, 0x20
movzx eax, cx
jmp 0x52e77c
mov edx, ebx
mov ecx, edi
call fcn.006dbd10
or ebp, 8
movsd qword [esi], xmm0
movzx eax, bp
mov edi, 0x10
mov edx, esi
and eax, 0xfffb
mov word [edx + edi], ax
mov ebx, dword [esp + 0x40]
jmp case.default.0x52e727
test cl, 0x28
je 0x533f2c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add ebx, 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], ebx
cmp ecx, eax
jl 0x52e6d0
jmp 0x52d23d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [ebx]
push dword [esp + 0x74]
mov byte [esp + 0xa0], al
push dword [esp + 0xa0]
push esi
call fcn.004c7390
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x52e84b
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x52e84b
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x52e830
jb 0x52e821
cmp edx, 0xffffffff
ja 0x52e830
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x52e84b
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.006dbd10
and edi, 0xfff9
movsd qword [esi], xmm0
or edi, 8
mov word [esi + 0x10], di
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x530a90
add esi, 0x28
jmp 0x52e7d9
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x28]
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x38], 0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [esp + 0x6c], xmm0
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x34], ebx
lea ebp, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x2c], ebp
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x54], eax
test edi, edi
je 0x52e8e4
lea esi, [ebx + 0x10]
nop dword [eax]
push dword [esp + 0x74]
movzx eax, byte [edi]
push eax
lea eax, [esi - 0x10]
push eax
call fcn.004c7390
add esp, 0xc
cmp byte [edi], 0x45
jne 0x52e8db
movzx eax, word [esi]
test al, 4
je 0x52e8db
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x52e8b0
mov eax, dword [esp + 0x70]
lea ebp, [ebp*8 - 0xc]
mov edi, dword [esp + 0x40]
add ebp, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x6c], eax
nop dword [eax]
movzx eax, word [ebp - 0xc]
mov edx, eax
mov ecx, eax
mov dword [esp + 0x40], ecx
test dl, 1
je 0x52e938
mov ecx, dword [esp + 0x38]
and edx, 0x400
inc ecx
neg edx
sbb edx, edx
and edx, 0xa
jmp 0x52eb59
test dl, 0x24
je 0x52eaad
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
jg 0x52e959
jl 0x52e951
test esi, esi
jae 0x52e959
mov ecx, esi
not eax
not ecx
jmp 0x52e95b
mov ecx, esi
inc dword [esp + 0x38]
test eax, eax
ja 0x52ea35
jb 0x52e96e
cmp ecx, 0x7f
ja 0x52e9b3
mov eax, esi
and eax, 1
cmp eax, esi
jne 0x52e997
xor eax, eax
cmp eax, dword [ebp - 0x18]
jne 0x52e997
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x95], 4
jb 0x52e997
lea edx, [ecx + 8]
mov ecx, dword [esp + 0x38]
jmp 0x52eb5d
mov ecx, dword [esp + 0x38]
add edi, 1
mov dword [esp + 0x50], edi
mov edx, 1
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb5d
test eax, eax
ja 0x52ea35
jb 0x52e9c5
cmp ecx, 0x7fff
ja 0x52e9e1
mov ecx, dword [esp + 0x38]
add edi, 2
mov dword [esp + 0x50], edi
mov edx, 2
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb5d
test eax, eax
ja 0x52ea35
jb 0x52e9ef
cmp ecx, 0x7fffff
ja 0x52ea0b
mov ecx, dword [esp + 0x38]
add edi, 3
mov dword [esp + 0x50], edi
mov edx, 3
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb5d
test eax, eax
ja 0x52ea35
jb 0x52ea19
cmp ecx, 0x7fffffff
ja 0x52ea35
mov ecx, dword [esp + 0x38]
add edi, 4
mov dword [esp + 0x50], edi
mov edx, 4
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb5d
cmp eax, 0x7fff
ja 0x52ea5f
jb 0x52ea43
cmp ecx, 0xffffffff
ja 0x52ea5f
mov ecx, dword [esp + 0x38]
add edi, 6
mov dword [esp + 0x50], edi
mov edx, 5
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb5d
add edi, 8
mov dword [esp + 0x50], edi
adc ebx, 0
mov dword [esp + 0x48], ebx
test dl, 0x20
je 0x52ea9f
mov edx, dword [ebp - 0x18]
mov ecx, esi
call fcn.006dbd10
mov eax, dword [esp + 0x40]
mov edx, 7
mov ecx, dword [esp + 0x38]
and eax, 0xffdf
or eax, 8
movsd qword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], ax
jmp 0x52eb5d
mov ecx, dword [esp + 0x38]
mov edx, 6
jmp 0x52eb5d
test dl, 8
je 0x52eacf
mov ecx, dword [esp + 0x38]
mov edx, 7
inc ecx
add edi, 8
mov dword [esp + 0x50], edi
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x52eb59
mov ebx, dword [ebp - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
lea esi, [ebx + 6]
lea esi, [eax + esi*2]
test edx, 0x400
je 0x52eb1e
mov ecx, dword [ebp - 0x1c]
lea edi, [ebp - 0x1c]
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x48]
lea esi, [esi + ecx*2]
je 0x52eb0f
push edi
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e572
add ebx, dword [edi]
jmp 0x52eb1a
mov eax, ecx
cdq
add dword [esp + 0x6c], eax
adc dword [esp + 0x3c], edx
mov edi, dword [esp + 0x50]
add edi, ebx
mov edx, esi
mov ebx, dword [esp + 0x48]
adc ebx, 0
mov dword [esp + 0x50], edi
shr esi, 7
xor ecx, ecx
mov eax, esi
mov dword [esp + 0x48], ebx
or eax, ecx
mov edi, 1
je 0x52eb4f
shrd esi, ecx, 7
inc edi
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x52eb41
mov ecx, dword [esp + 0x38]
add ecx, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
mov eax, ebp
mov dword [eax], edx
lea eax, [ebp - 0x1c]
cmp eax, dword [esp + 0x34]
je 0x52eb72
sub ebp, 0x28
jmp 0x52e910
cmp ecx, 0x7e
jle 0x52ebd6
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x52eb9e
nop
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x52eb90
mov eax, dword [esp + 0x38]
mov edi, 1
add eax, ebx
mov dword [esp + 0x38], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x52ebce
nop dword [eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x52ebc0
mov ecx, dword [esp + 0x38]
cmp ebx, edi
jge 0x52ebdb
inc ecx
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x54]
mov eax, ecx
mov ebp, dword [esp + 0x6c]
cdq
mov esi, eax
mov ecx, edx
add esi, dword [esp + 0x50]
mov ebx, dword [ebx + 0x18]
mov edi, esi
adc ecx, dword [esp + 0x48]
mov eax, ebx
add edi, ebp
cdq
adc ecx, dword [esp + 0x3c]
cmp ecx, edx
jg 0x52ec0a
jl 0x52ec45
cmp edi, eax
jbe 0x52ec45
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x52e668
jl 0x52ec24
cmp edi, eax
ja 0x52e668
cmp ebx, esi
jge 0x52ec45
push 0
push esi
push dword [esp + 0x5c]
call fcn.00536210
add esp, 0xc
test eax, eax
jne 0x52e572
mov ecx, dword [esp + 0x54]
jmp 0x52ec4f
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
mov eax, 0x10
mov dword [ecx + 0xc], esi
mov word [ecx + 0x10], ax
mov eax, ebp
or eax, dword [esp + 0x3c]
je 0x52ec6e
mov eax, 0x410
mov dword [ecx], ebp
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x38]
mov ebx, dword [ecx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x52ec84
mov byte [ebx], al
inc ebx
jmp 0x52ec92
cdq
push edx
push eax
push ebx
call fcn.0051eed0
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x34]
add edi, 0xc
nop dword [eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x52ecd9
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x52ed14
movzx edx, byte [edx + 0x6e8d48]
mov ecx, dword [edi - 0xc]
mov ebp, edx
mov eax, dword [edi - 8]
sub edx, 1
mov byte [edx + esi], cl
je 0x52ecd5
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x52ecc6
add esi, ebp
jmp 0x52ed14
cmp edx, 0x80
jae 0x52ecf1
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x52ed14
mov eax, dword [edi]
test eax, eax
jle 0x52ed14
jmp 0x52ed05
push 0
push edx
push ebx
call fcn.0051eed0
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x52ed14
push eax
push dword [edi - 4]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x2c]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x34]
cmp edi, eax
je 0x530a90
add edi, 0x28
jmp 0x52eca0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
push esi
je 0x52ed5f
call fcn.004fd9c0
add esp, 4
mov ebx, eax
mov ebp, edx
jmp 0x52ee8b
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x44], xmm0
call fcn.004e61a0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
cmp edx, 0x10
jne 0x52ed9d
xorps xmm0, xmm0
xor edi, edi
movlpd qword [esp + 0x2c], xmm0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
jmp 0x52ee8b
test edx, edx
jne 0x52ee77
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
nop dword [eax]
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x128], 0
jne 0x52ee77
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x52edd0
cmp byte [edi + 1], cl
jne 0x52ee2a
movzx eax, word [edi + 0x18]
cdq
add ebx, eax
adc ebp, edx
test cl, cl
je 0x52ee2a
nop dword [eax]
mov dl, byte [esi + 0x44]
test dl, dl
je 0x52eec1
movsx ecx, dl
xor eax, eax
mov word [esi + 0x32], ax
dec dl
and byte [esi + 1], 0xf9
mov ax, word [esi + ecx*2 + 0x46]
mov word [esi + 0x46], ax
mov byte [esi + 0x44], dl
mov eax, dword [esi + ecx*4 + 0x74]
mov dword [esi + 0x74], eax
push dword [edi + 0x48]
call fcn.00518700
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x18]
jae 0x52ede0
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x18]
cmp ecx, eax
jne 0x52ee43
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x52ee5d
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x1a]
movzx ecx, cx
and ecx, eax
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax]
bswap eax
push eax
push esi
call fcn.004e5e80
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
je 0x52edb0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test edx, edx
jne 0x534148
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x52eed2
push eax
call fcn.004e8fb0
add esp, 4
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x24]
jmp 0x531c85
push esi
call fcn.004e61a0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x52ee7f
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x24]
jmp 0x531c85
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x54], edi
test edi, edi
jne 0x52efc6
cmp dword [ebp + 0xc4], edi
jg 0x533f7f
test ebx, ebx
jne 0x52ef13
xor esi, esi
jmp 0x52ef27
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x52ef18
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.00539730
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.00503030
mov edi, eax
add esp, 0xc
test edi, edi
je 0x52f247
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x52ef88
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x52ef8e
inc dword [ebp + 0x1f8]
mov eax, dword [ebp + 0x1ec]
mov dword [edi + 0x18], eax
mov dword [ebp + 0x1ec], edi
mov eax, dword [ebp + 0x200]
mov ecx, dword [ebp + 0x204]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x52f247
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov esi, dword [edi + 0x1ec]
test esi, esi
je 0x52eff1
push ebx
push dword [esi]
call fcn.00526840
add esp, 8
test eax, eax
je 0x52f00a
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x52efd6
mov ecx, dword [esp + 0x14]
push ebx
push str.no_such_savepoint:__s
push ecx
call fcn.0052c0a0
add esp, 0xc
mov edx, 1
jmp 0x534144
cmp dword [edi + 0xc4], 0
mov ecx, dword [esp + 0x54]
jle 0x52f020
cmp ecx, 1
je 0x533f97
cmp dword [esi + 0x18], 0
jne 0x52f087
cmp byte [edi + 0x5d], 0
je 0x52f087
mov ebx, 1
mov dword [esp + 0x34], ebx
cmp ecx, ebx
jne 0x52f08f
push ebx
push dword [esp + 0x18]
call fcn.0052b9a0
mov edi, eax
add esp, 8
test edi, edi
jne 0x534674
mov edi, dword [esp + 0x24]
push dword [esp + 0x14]
mov byte [edi + 0x55], bl
call fcn.005352c0
add esp, 4
cmp eax, 5
je 0x533fd2
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], edx
test edx, edx
jne 0x533fbf
mov byte [edi + 0x5d], dl
jmp 0x52f196
mov dword [esp + 0x34], 0
mov eax, dword [edi + 0x1f8]
sub eax, ebp
lea ebp, [eax - 1]
mov dword [esp + 0x2c], ebp
cmp ecx, 2
jne 0x52f0fc
mov eax, dword [edi + 0x18]
xor ebx, ebx
and eax, 1
mov dword [esp + 0x40], eax
cmp dword [edi + 0x14], ebx
jle 0x52f104
mov ebp, eax
mov eax, dword [esp + 0x24]
xor ebp, 1
xor edi, edi
nop
mov eax, dword [eax + 0x10]
push ebp
push 0x204
push dword [eax + edi + 4]
call fcn.004fe590
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov eax, dword [esp + 0x24]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x52f0c0
mov ebp, dword [esp + 0x2c]
mov edi, eax
mov ecx, dword [esp + 0x54]
jmp 0x52f108
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x52f147
mov eax, dword [esp + 0x24]
xor edi, edi
mov eax, dword [eax + 0x10]
push ebp
push ecx
push dword [eax + edi + 4]
call fcn.004fda30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov eax, dword [esp + 0x24]
inc ebx
mov ecx, dword [esp + 0x54]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x52f115
mov edi, eax
cmp dword [esp + 0x40], 0
je 0x52f18a
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x52f179
nop word [eax + 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 0x52f160
push edi
call fcn.0051fd50
mov edx, dword [esp + 0x1c]
add esp, 4
or dword [edi + 0x18], 1
test edx, edx
jne 0x534148
mov ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x52f1c3
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1ec], eax
call fcn.00502f20
dec dword [edi + 0x1f8]
add esp, 8
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x52f1a0
mov edi, dword [esp + 0x54]
cmp edi, 1
jne 0x52f1f1
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x18]
push esi
mov esi, ecx
push esi
mov dword [ecx + 0x1ec], eax
call fcn.00502f20
add esp, 8
test ebx, ebx
jne 0x52f245
dec dword [esi + 0x1f8]
jmp 0x52f222
mov edx, dword [esp + 0x24]
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
test ebx, ebx
je 0x52f222
cmp edi, 2
jne 0x52f241
push ebp
mov ebp, dword [esp + 0x28]
push edi
push ebp
call fcn.00539730
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
jmp 0x52f247
mov ebp, edx
jmp 0x52f247
mov ebp, esi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp byte [ecx + 0x97], 3
je 0x534005
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x52f29e
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x534011
mov ebp, dword [ebx + 4]
mov ebx, dword [esp + 0x24]
shl ebp, 4
add ebp, dword [ebx + 0x10]
mov esi, dword [ebp + 4]
test esi, esi
je 0x52f3b6
lea eax, [esp + 0x34]
push eax
push edi
push esi
call fcn.004fae00
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534044
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x98], 0x20
je 0x52f3c6
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x52f3c6
cmp byte [ebx + 0x55], dl
je 0x52f303
cmp dword [ebx + 0xc0], 1
jle 0x52f3c6
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x52f31f
inc dword [ebx + 0x1fc]
mov eax, dword [ebx + 0x1f8]
add eax, dword [ebx + 0x1fc]
mov dword [ecx + 0x30], eax
dec eax
push eax
push 0
push ebx
call fcn.00539730
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x52f38e
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov edi, dword [eax + 0x30]
je 0x52f356
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x52f356
push esi
call fcn.004cacd0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x52f36f
cmp byte [eax + 6], 0
je 0x52f36f
push edi
push eax
call fcn.004e9720
add esp, 8
jmp 0x52f371
xor eax, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x18], eax
je 0x52f38a
add dword [esi + 0xc], 0xffffffff
jne 0x52f38a
push esi
call fcn.00544110
add esp, 4
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [ebx + 0x208]
mov ecx, dword [ebx + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x534148
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x52f3ed
mov eax, dword [esp + 0x34]
cmp eax, dword [edi + 0xc]
jne 0x53407b
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
jne 0x53407b
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.004fbdc0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x52f481
push ecx
call fcn.004e8fb0
mov esi, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0xd4]
add esp, 4
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov esi, dword [esp + 0x10]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0xd0]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebp + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.004fe680
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x52f567
movzx eax, word [edi + 2]
mov ecx, dword [edi + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
or dword [ebp + 0x18], 1
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x52f545
mov esi, dword [edi + 8]
cmp byte [esi + 0x2b], 0
jne 0x52f53f
mov esi, dword [esi + 0x30]
test esi, esi
je 0x52f53f
push dword [esi + 0x1c]
push ebp
call fcn.004da230
mov dword [esi + 0x1c], 0
push dword [esi + 0x20]
push ebp
call fcn.004da230
mov dword [esi + 0x20], 0
add esp, 0x10
mov esi, dword [esi + 4]
test esi, esi
jne 0x52f515
mov edi, dword [edi]
test edi, edi
jne 0x52f505
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], 1
jne 0x52f577
push 0
push ebp
call fcn.00505470
mov ecx, dword [esp + 0x1c]
add esp, 8
and dword [ecx + 0x98], 0xfffffffc
jmp 0x52f57b
cmp eax, 2
jne 0x52f549
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
jmp 0x52f549
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov eax, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x52f5d7
mov eax, dword [esi + 0x38]
cmp eax, dword [edi + 8]
jne 0x52f5d7
push dword [esi + 0x2c]
call fcn.004fae70
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x52f6e5
mov edi, dword [esp + 0x10]
jmp 0x52f5db
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x98]
and al, 3
cmp al, 1
je 0x534109
mov ecx, dword [esp + 0x24]
xor ebp, ebp
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
mov dword [esp + 0x40], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
cmp dl, 0x71
jne 0x52f631
mov eax, dword [eax + 0xc]
movzx edi, word [edi + 2]
mov ecx, dword [esp + 0x14]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x95]
jae 0x52f633
mov byte [ecx + 0x95], al
jmp 0x52f633
xor edi, edi
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 0x10
je 0x52f66f
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00535700
mov ebx, eax
add esp, 4
mov dword [esi], ebx
mov eax, 0xf244
mov dword [esi + 4], edx
mov cx, word [esi + 0x10]
and cx, ax
or cx, 4
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x52f67f
mov ebp, dword [ecx + 0x10]
movzx eax, word [ebp + 8]
jmp 0x52f68a
cmp al, 0xfd
jne 0x52f688
mov eax, dword [ecx + 0x10]
jmp 0x52f68a
mov eax, ebp
push 0
push eax
push dword [ecx + 4]
push dword [esp + 0x20]
call fcn.004c59c0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x52e572
mov eax, dword [esp + 0x40]
mov byte [esi + 1], al
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x38], ebx
push dword [esi + 0x2c]
push ebp
push edi
push ebx
push dword [esp + 0x44]
call fcn.004fb820
mov edi, dword [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x30], ebp
mov edx, eax
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp byte [edi + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [edi + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push 0
mov ecx, dword [edx + 8]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
movsx eax, word [edi + 0x3c]
push eax
push dword [edx + 4]
push ebx
call fcn.004c59c0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x52e576
mov byte [esi + 2], 1
mov edx, dword [esi + 8]
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
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]
push dword [esi + 0x30]
push 4
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.004fb820
mov esi, dword [esp + 0x24]
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 0x14
mov dword [esp + 0x18], edi
mov ecx, ebx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x52f7df
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 8], 0x774272
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x52f857
test byte [esi + 8], 8
jne 0x52f857
movsx eax, word [esi + 0x3c]
cmp dword [edi + 8], eax
jg 0x52f857
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
push 0
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.004faef0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x534148
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
push 0
push dword [edi + 8]
push ecx
push edx
call fcn.004c59c0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x52e576
or dword [esi + 8], 1
lea ebp, [esi + 0x10]
movzx ecx, word [edi + 2]
mov eax, dword [esp + 0x24]
or ecx, 5
push 0x41e
push ecx
push ebp
push eax
push 0
push dword [eax]
call fcn.004fcef0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov eax, dword [ebp]
cmp byte [eax + 9], dl
jne 0x52f8cf
mov cl, byte [eax + 8]
test cl, cl
je 0x52f8cf
cmp cl, 1
je 0x52f8cf
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.00517da0
add esp, 8
jmp 0x52f8dc
push 0
push 1
push eax
call fcn.004c9c90
add esp, 0xc
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x52f960
mov ebx, dword [edi + 0x10]
lea edi, [esi + 0x38]
mov dword [esi + 0x30], ebx
test ebx, ebx
je 0x52f938
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
or eax, 2
push eax
push edi
push dword [ebp]
call fcn.004fb7d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x52f932
push dword [esi + 0x2c]
push ebx
push 4
push dword [edi]
push dword [esi + 0x10]
call fcn.004fb820
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
mov byte [esi + 4], 0
jmp 0x52f95c
mov dword [edi], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [ebp]
call fcn.004fb820
mov edx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov eax, 4
cmp word [edi + 2], 8
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x534110
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
push 1
push dword [edi + 8]
push dword [edi + 4]
push ecx
call fcn.004c59c0
add esp, 0x10
test eax, eax
je 0x52e576
mov ecx, dword [edi + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [edi + 0xc]
push ebp
call fcn.005382b0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
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
mov ecx, dword [esp + 0x14]
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
mov edi, dword [esp + 0x18]
jne 0x52d613
jmp 0x52d868
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push ecx
call fcn.004c59c0
add esp, 0x10
test eax, eax
je 0x52e576
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x79350c
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x52fab2
push eax
push ebx
call fcn.005350f0
add esp, 8
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov byte [edi + 2], 0
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
cmp byte [edi + 4], 0
je 0x52fc14
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x2c], eax
and al, 0x2e
cmp al, 2
jne 0x52fb34
push 0
push esi
call fcn.004c7400
add esp, 8
push esi
call fcn.00535700
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x34], edx
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x52fbde
test cl, 8
jne 0x52fbb1
test cl, 1
jne 0x530281
cmp ebx, 0x17
jae 0x530281
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x52fb90
test byte [eax + 1], 8
je 0x52fb90
xor edi, edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x18], edi
jmp 0x52d241
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.004cac30
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
jmp 0x52fd5b
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0x3c]
push ebp
call fcn.00514470
add esp, 0x10
test eax, eax
jle 0x52fbd6
test bl, 1
jne 0x52fbde
dec ebx
jmp 0x52fbde
jns 0x52fbde
test bl, 1
je 0x52fbde
inc ebx
lea eax, [esp + 0x60]
push eax
push 0
push dword [esp + 0x3c]
lea esi, [edi + 0x2c]
push ebp
push dword [esi]
call fcn.004fdf80
mov edx, eax
mov dword [edi + 0x40], ebp
mov eax, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x18], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x534148
jmp 0x52fcb6
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x5b], al
mov eax, 0
setne al
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x208], eax
lea eax, [ebx - 1]
test al, 1
mov word [esp + 0x21c], cx
mov ecx, dword [esp + 0x28]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x21e], al
mov eax, dword [edx + 0xc]
mov byte [esp + 0x222], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x20c]
push eax
push dword [esi]
call fcn.004fbe70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
cmp byte [esp + 0x5b], al
je 0x52fcb6
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x222], dl
je 0x52fd5b
mov eax, dword [esp + 0x60]
cmp ebx, 0x17
jl 0x52fd43
test eax, eax
js 0x52fd09
jne 0x52fcce
cmp ebx, 0x18
je 0x52fd09
mov dword [esp + 0x60], 0
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
je 0x530a98
add dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
push 0
push dword [esi]
mov dword [esp + 0x68], 0
call fcn.004fce50
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
je 0x52fcd6
cmp edx, 0x65
jne 0x534148
xor edi, edi
mov dword [esp + 0x60], 1
mov dword [esp + 0x18], edi
jmp 0x52d864
test eax, eax
jg 0x52fd6b
jne 0x52fd4e
cmp ebx, 0x15
je 0x52fd6b
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x60], 0
jne 0x530281
jmp 0x52fcd6
push 0
push dword [esi]
mov dword [esp + 0x68], 0
call fcn.004fd7c0
jmp 0x52fd1a
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
jne 0x52c43d
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x298], eax
mov byte [esp + 0x2ae], 0
mov ax, word [ecx + 0x24]
mov edi, dword [ecx + 4]
mov word [esp + 0x2ac], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x29c], eax
mov esi, dword [ebx + 0x2c]
push esi
call fcn.004dcc00
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x534121
jb 0x52fe03
cmp ecx, 0x7ffffffe
ja 0x534121
xor eax, eax
mov dword [esp + 0x25c], ebp
mov word [esp + 0x258], ax
mov dword [esp + 0x260], eax
lea eax, [esp + 0x248]
push eax
push edx
push esi
call fcn.005361b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
push eax
lea eax, [esp + 0x29c]
push eax
push dword [esp + 0x258]
push dword [esp + 0x260]
call fcn.00537420
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x260], 0
je 0x52fe76
lea eax, [esp + 0x248]
push eax
call fcn.00547410
add esp, 4
xor ebp, ebp
mov dword [esp + 0x18], ebp
test esi, esi
jle 0x52fe90
mov eax, dword [esp + 0x10]
cmp word [eax + 2], bp
je 0x52ff0d
test esi, esi
jns 0x530281
test edi, edi
jle 0x530a90
mov dword [ebx + 0x20], ebp
xor eax, eax
mov ecx, dword [ebx + 0x2c]
dec edi
mov word [ecx + 0x32], ax
and byte [ecx + 1], 0xf9
cmp byte [ecx], al
je 0x52febb
push ecx
call fcn.004cae50
jmp 0x52feef
movzx eax, word [ecx + 0x46]
mov edx, dword [ecx + 0x74]
mov esi, eax
inc eax
mov word [ecx + 0x46], ax
cmp ax, word [edx + 0x18]
jb 0x52fedb
push ecx
mov word [ecx + 0x46], si
call fcn.004cae50
jmp 0x52feef
cmp byte [edx + 8], 0
mov ebp, dword [esp + 0x24]
jne 0x52fdd4
push ecx
call fcn.004e5f60
mov ebp, dword [esp + 0x28]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x52fdd4
cmp edx, 0x65
jne 0x534148
add dword [esp + 0x10], 0x14
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x52d864
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x52ff5c
mov esi, dword [esp + 0x10]
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x52c2ce
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x52c1e1.9
cmp byte [eax + 2], 0
je 0x52c2ce
jmp case.0x52c1e1.9
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [esi + 0x10]
jge 0x52c2ce
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x17c], ecx
movzx eax, word [edi + 0x10]
mov word [esp + 0x18c], ax
test ax, ax
je 0x53002f
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0x178], eax
lea eax, [esp + 0x178]
push ebx
push eax
mov byte [esp + 0x196], 0
push dword [esi + 0x2c]
call fcn.004fbe70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x53009d
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x53004b
push ecx
call fcn.00535fe0
add esp, 4
test eax, eax
jne 0x52e576
push dword [esi + 0x30]
call fcn.0052b710
mov edi, eax
add esp, 4
test edi, edi
je 0x52e576
mov ecx, dword [esp + 0x17c]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.00537c80
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004fbe70
push edi
push ebp
mov dword [esp + 0x3c], eax
call fcn.00502f20
mov edx, dword [esp + 0x3c]
add esp, 0x24
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x534148
mov ecx, dword [ebx]
test ecx, ecx
setne al
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [edi]
cmp al, 0x1d
jne 0x5300e2
test ecx, ecx
je 0x530281
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
test ecx, ecx
jne 0x530281
cmp al, 0x1b
jne 0x530140
movzx edx, word [esp + 0x18c]
test edx, edx
je 0x530a94
mov eax, dword [esp + 0x17c]
add eax, 0x10
nop dword [eax + eax]
test byte [eax], 1
jne 0x530281
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x530110
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ecx, dword [esp + 0x14]
cmp al, 0x1a
jne 0x530a98
mov ax, word [edi + 0x10]
mov edi, dword [esp + 0x18]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x53020b
movups xmm0, xmmword [ebx + eax*8]
movups xmmword [esp + 0x1e0], xmm0
movups xmm1, xmmword [ebx + eax*8 + 0x10]
movups xmmword [esp + 0x1f0], xmm1
movq xmm0, qword [ebx + eax*8 + 0x20]
movd eax, xmm1
movq qword [esp + 0x200], xmm0
test al, 4
jne 0x5301f7
test al, 0x28
jne 0x5301d4
test al, 2
je 0x5301ef
lea eax, [esp + 0x1e0]
push 1
push eax
call fcn.004c7400
add esp, 8
jmp 0x5301e4
lea eax, [esp + 0x1e0]
push eax
call fcn.00535770
add esp, 4
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x1f0]
test al, 4
je 0x52d868
mov edi, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1e4]
jmp 0x53021c
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x40]
push eax
push 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004fdf80
mov dword [esi + 0x40], edi
mov edx, eax
mov eax, dword [esp + 0x54]
add esp, 0x14
mov dword [esi + 0x44], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x20], 0
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x24], eax
test eax, eax
je 0x52f6f1
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], 0
je 0x53416c
mov edi, dword [esp + 0x18]
jmp 0x52d864
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 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 0x5302b6
push edx
call fcn.004e8fb0
add esp, 4
mov edx, eax
jmp 0x5302bf
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov dword [esp + 0x3c], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x40], edx
test word [edx + 0x10], ax
je 0x530346
push edx
call fcn.004e8fb0
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x53034f
mov eax, 4
mov word [edx + 0x10], ax
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x60]
mov ebp, dword [eax + ecx*4]
test byte [ebp + 8], 2
jne 0x5303f8
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x5303ad
test byte [eax + 1], 8
je 0x5303ad
xor eax, eax
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x2c]
push esi
call fcn.004dcc00
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
cmp esi, 0x7fffffff
jl 0x5303e4
jg 0x5303a3
cmp edi, 0xffffffff
jb 0x5303e4
or dword [ebp + 8], 2
mov edx, dword [esp + 0x14]
jmp 0x530400
lea ecx, [esp + 0x3c]
push ecx
push eax
call fcn.004cac30
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
cmp dword [esp + 0x3c], eax
je 0x53037a
mov edx, dword [esp + 0x14]
mov edi, 1
xor esi, esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
jmp 0x530400
mov edx, dword [esp + 0x14]
add edi, 1
mov dword [esp + 0x2c], edi
adc esi, 0
mov dword [esp + 0x30], esi
jmp 0x530400
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x53049f
mov edx, dword [edx + 0xd0]
test edx, edx
je 0x530437
mov eax, dword [edx + 4]
test eax, eax
je 0x530429
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x530420
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + ecx*8]
jmp 0x530441
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00535700
mov dword [ebx], eax
add esp, 4
mov dword [ebx + 4], edx
mov cx, word [ebx + 0x10]
and cx, word [esp + 0xb8]
or cx, 4
mov word [ebx + 0x10], cx
cmp eax, 0xffffffff
jne 0x530474
cmp edx, 0x7fffffff
je 0x5304fd
test byte [ebp + 8], 2
jne 0x5304fd
add eax, 1
adc edx, 0
cmp esi, edx
jg 0x53049a
jl 0x53048e
cmp edi, eax
jae 0x53049a
mov edi, eax
mov esi, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
test byte [ebp + 8], 2
je 0x530507
xor ebx, ebx
lea eax, [esp + 0x2c]
push eax
push 8
call fcn.004c1840
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x44]
mov edi, dword [esp + 0x34]
and esi, 0x3fffffff
push eax
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x3c], edi
push esi
push edi
push dword [ebp + 0x2c]
mov dword [esp + 0x4c], esi
call fcn.004fdf80
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
cmp dword [esp + 0x3c], eax
jne 0x530507
inc ebx
cmp ebx, 0x64
jl 0x5304a7
mov edx, 0xd
jmp 0x534144
mov eax, dword [esp + 0x40]
mov byte [ebp + 3], 0
mov dword [ebp + 0x20], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x52d23d
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], esi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
mov ecx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
cmp byte [edi + 1], 0xfb
jne 0x53057a
cmp dword [ebp + 0xfc], 0
je 0x53057a
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edi, dword [edi + 0x10]
mov ebx, dword [eax + ecx*8]
jmp 0x53057e
xor edi, edi
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 1
je 0x5305ae
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x5305ae
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edx*8 + 8]
mov dword [esp + 0x138], eax
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x5305d7
mov ecx, dword [esi + 0x24]
jmp 0x5305d9
xor ecx, ecx
mov ebp, dword [esp + 0x28]
mov esi, 0x400
test word [ebp + edx*8 + 0x10], si
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
je 0x530605
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x10]
jmp 0x530610
mov dword [esp + 0x148], 0
mov dword [esp + 0x128], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x130]
push eax
push dword [esi + 0x2c]
call fcn.004fc3d0
inc dword [esp + 0x98]
mov edx, eax
add esp, 0x10
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x534148
test edi, edi
je 0x530a94
push dword [esp + 0x134]
mov eax, dword [esp + 0x14]
mov ecx, 0x17
push dword [esp + 0x134]
push dword [edi]
test byte [eax + 2], 4
mov eax, 0x12
push ebx
cmovne eax, ecx
push eax
push dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
call eax
mov edi, dword [esp + 0x30]
add esp, 0x18
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x60]
mov eax, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x5306e2
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x5306f3
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.004fe1e0
add esp, 0x10
jmp 0x52f9d9
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x530768
cmp dword [ebp + 0xfc], 0
je 0x530768
movsx ecx, byte [edi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov ebp, dword [eax + ecx*8]
je 0x53076c
cmp byte [edi + 4], 0
je 0x53076c
mov esi, dword [edi + 0x2c]
push esi
call fcn.004dcc00
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x53076c
xor ebp, ebp
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.004fb890
inc dword [esp + 0x90]
mov edx, eax
add esp, 8
mov dword [edi + 0x20], 0
mov dword [esp + 0x18], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x534148
test byte [esp + 0x2c], 1
mov ecx, dword [esp + 0x14]
je 0x530a71
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xfc]
test eax, eax
je 0x530a71
test ebx, ebx
je 0x530a71
test byte [ebx + 0x1c], 0x80
jne 0x530a71
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [ebx]
push ebp
mov ebp, dword [esp + 0x34]
push 9
push dword [ebp + 0xf8]
call eax
mov edi, dword [esp + 0x30]
add esp, 0x18
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x74], ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x30]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], eax
mov ebp, dword [edi + 0x20]
test ebp, ebp
jne 0x53088e
push ebx
call fcn.0052b710
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x530952
mov word [ebp + 0x14], si
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.00549790
push ebp
push eax
push dword [esp + 0xcc]
push ebx
call fcn.00537c80
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x5308d1
mov eax, dword [ebp + 4]
add eax, 0x10
nop word [eax + eax]
test byte [eax], 1
jne 0x52ff12
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x5308c0
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
push 0
push ebp
push dword [ebx + eax*8 + 8]
push dword [ebx + eax*8 + 0xc]
call fcn.00537420
xor edx, edx
add esp, 0x10
mov dword [esp + 0x18], edx
test eax, eax
jne 0x530281
mov dword [esp + 0x18], edx
jmp 0x52d23d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 4]
lea eax, [esp + 0xc0]
push eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x2c]
call fcn.00549790
mov edi, dword [esp + 0xc8]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x53095c
push 0
push edi
push esi
call fcn.00536210
add esp, 0xc
test eax, eax
je 0x530967
mov edx, 7
jmp 0x534144
mov eax, dword [esi + 0x20]
mov dword [esi + 8], eax
and word [esi + 0x10], 0x2d
mov dword [esi + 0xc], edi
mov ecx, 0xf250
mov ax, word [esi + 0x10]
and ax, cx
push edi
or ax, 0x10
mov word [esi + 0x10], ax
push ebx
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5309ec
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
jmp 0x5309f5
mov eax, 4
mov word [esi + 0x10], ax
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
push edi
call fcn.004dcc00
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x52e668
push esi
push eax
push edi
call fcn.005361b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x530bbf
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], eax
jne 0x530ab3
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x530ab3
push esi
call fcn.005363a0
add esp, 4
test eax, eax
jne 0x52e576
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x530afc
push edi
call fcn.004e8fb0
add esp, 4
mov edi, eax
jmp 0x530b05
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x530b3e
mov eax, 1
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp byte [esi + 3], 0
je 0x530b5f
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x530b21
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x530ba7
mov esi, dword [ecx]
lea edx, [esp + 0x94]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push ebx
mov dword [esp + 0x28], eax
call fcn.00539460
mov edx, dword [esp + 0x28]
add esp, 0x10
test edx, edx
jne 0x530bbf
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x530b21
cmp byte [ecx], 0
je 0x530bce
push esi
call fcn.005356c0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x530bd4
mov esi, dword [esp + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0x20]
jmp 0x534154
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 2], 0
jne 0x530b18
mov esi, dword [esi + 0x2c]
push esi
call fcn.004dcc00
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x530b21
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x530c49
push 3
push 1
push ecx
push edx
call fcn.004c59c0
add esp, 0x10
test eax, eax
je 0x52e576
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x79350c
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x52c74d
push dword [eax + 0x2c]
call fcn.004fae70
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x40], eax
mov ecx, dword [esi + 0x2c]
cmp dl, 0x89
jne 0x530ccc
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
jne 0x530ce7
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp byte [ecx], al
jne 0x530ce7
test byte [ecx + 1], 8
je 0x530ce7
mov byte [esi + 2], al
xor edi, edi
mov byte [esi + 3], al
mov dword [esp + 0x18], edi
mov dword [esi + 0x20], eax
jmp 0x530d17
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.004cac30
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x40]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x534144
mov edi, edx
mov esi, dword [esp + 0x10]
cmp dword [esi + 8], 0
jle 0x52c2ce
test eax, eax
jne 0x530281
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
push esi
call fcn.004e61a0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x530d7e
push esi
xor ebx, ebx
call fcn.004e5f60
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x530da0
cmp edx, 0x10
jne 0x530d99
xor edi, edi
mov dword [esp + 0x8c], 1
mov dword [esp + 0x18], edi
jmp 0x52d864
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x8c], ebx
mov edi, edx
test edx, edx
jne 0x534148
mov eax, edi
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x530281
push esi
call fcn.004fd9c0
add esp, 4
test edx, edx
jl 0x530dfa
jg 0x530dd2
test eax, eax
jb 0x530dfa
push edx
push eax
call fcn.005159d0
mov esi, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [esi + 0xc]
jge 0x530dfe
mov dword [esp + 0x8c], 1
mov dword [esp + 0x18], edi
jmp 0x52d864
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
inc dword [ecx + 0xac]
mov edx, dword [esp + 0x10]
mov ebx, 1
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x2c]
cmp byte [edi], bl
jne 0x530e95
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 0x38], al
jne 0x530e6c
cmp dword [esi + 0x24], 0
lea eax, [esi + 0x24]
je 0x530ec9
push eax
lea eax, [esi + 0x40]
xor ebx, ebx
push eax
call fcn.00549aa0
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x530ec9
push esi
call fcn.00548fc0
push eax
push esi
call fcn.005490e0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x530ec9
push esi
call fcn.005497f0
add esp, 4
mov dword [esp + 0x18], eax
xor ebx, ebx
jmp 0x530ec9
push esi
call fcn.004e61a0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x530eb3
push esi
xor ebx, ebx
call fcn.004e5f60
add esp, 4
jmp 0x530eba
cmp eax, 0x10
jne 0x530ebe
xor eax, eax
mov dword [esp + 0x18], eax
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x534148
mov byte [edi + 2], bl
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], edx
jle 0x52c749
test ebx, ebx
je 0x52c749
mov edi, edx
jmp 0x52d864
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 0x2c]
cmp byte [edi + 0x38], 0
je 0x530f92
cmp byte [edi + 0x39], 0
je 0x530f54
push dword [edi + 0x10]
call fcn.00548160
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x530fcc
mov eax, dword [edi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x530fcc
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov esi, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x53101d
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
push dword [edi + 0x14]
call fcn.00547b00
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x530fcc
cmp dword [esp + 0x40], eax
je 0x530fcc
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov esi, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x53101d
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + 4]
mov dword [edi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [edi + 0x28], 0
jne 0x530fbb
mov esi, dword [ecx + 4]
push ecx
push ebp
call fcn.00502f20
add esp, 8
mov ecx, esi
test esi, esi
jne 0x530fa8
xor ecx, ecx
mov eax, 0x65
cmp dword [edi + 0x24], ecx
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x53101d
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.004fd7c0
jmp 0x531014
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.004fce50
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
mov dword [ebx + 0x20], 0
test edx, edx
jne 0x53103b
mov byte [ebx + 2], dl
movzx eax, word [edi + 2]
inc dword [esi + eax*4 + 0xa4]
jmp 0x53369d
cmp edx, 0x65
jne 0x534148
xor edi, edi
mov byte [ebx + 2], 1
mov dword [esp + 0x18], edi
jmp 0x531c85
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x531083
add dword [edx + 0x28], 1
adc dword [edx + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x5310a9
push esi
call fcn.00535fe0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x300], eax
mov dword [esp + 0x304], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x2f8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x30c], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x310], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x5310ee
mov ecx, dword [edi + 0x24]
jmp 0x5310f0
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x300]
push eax
push dword [edi + 0x2c]
call fcn.004fc3d0
add esp, 0x10
mov dword [edi + 0x20], 0
jmp 0x52f9d9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x531156
push esi
call fcn.00535fe0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
push esi
push edi
call fcn.00538720
add esp, 8
jmp 0x52f9d9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x2b8], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x2cc], ax
mov byte [esp + 0x2ce], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2bc], eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x2bc]
push eax
push edi
call fcn.004fbe70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
cmp dword [esp + 0xc4], eax
jne 0x5311f6
push 4
push edi
call fcn.004fb890
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
jmp 0x531212
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x531212
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x534178
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ebp, dword [eax + ecx*4]
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x531273
push ebp
call fcn.005356c0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov edi, eax
jmp 0x531279
xor edi, edi
mov dword [esp + 0x18], edi
cmp byte [ebp + 2], 0
jne 0x5313fe
mov esi, dword [ebp + 0x2c]
push esi
call fcn.004dcc00
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [esp + 0x1cc], cx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1d0], ecx
lea ecx, [esp + 0x1bc]
push ecx
push eax
push esi
mov dword [esp + 0x1e0], 0
call fcn.005361b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov ebx, dword [esp + 0x1c0]
movzx esi, byte [ebx]
mov dword [esp + 0x40], esi
cmp esi, 0x80
jb 0x5312f7
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.00511c20
mov esi, dword [esp + 0x48]
add esp, 8
cmp esi, 3
jb 0x534193
mov edi, dword [esp + 0x1c4]
cmp esi, edi
ja 0x534193
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x40], ecx
cmp ecx, 0x80
jb 0x531335
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.00511c20
mov ecx, dword [esp + 0x48]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x534193
cmp ecx, 7
je 0x534193
movzx edx, byte [ecx + 0x6e8d48]
lea eax, [edx + esi]
cmp edi, eax
jb 0x534193
lea eax, [esp + 0x320]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.00537e90
add esp, 0xc
cmp dword [esp + 0x1d0], 0
je 0x53138c
lea eax, [esp + 0x1b8]
push eax
call fcn.00547410
add esp, 4
mov eax, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edi
cmp byte [eax], 0x8d
jne 0x5313d9
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x320]
mov ecx, dword [esp + 0x324]
mov byte [edx + 2], 0
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov dword [edx + 0x20], edi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], ebp
jmp 0x52d241
push eax
push dword [esp + 0x18]
call fcn.004e8f70
mov ecx, dword [esp + 0x328]
add esp, 8
mov edx, dword [esp + 0x324]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x52d241
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x531428
push eax
call fcn.00547450
add esp, 4
jmp 0x52d241
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x52d241
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x52c2ce
push eax
call fcn.00534fb0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
cmp dl, 0x2a
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x2d8], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x2ec], ax
sbb al, al
mov byte [esp + 0x2ee], al
mov eax, dword [edi + 0xc]
push esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x2e0], eax
call fcn.004dcc00
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x5341bc
cmp eax, 0x7fffffff
ja 0x5341bc
xor ecx, ecx
mov dword [esp + 0x284], ebp
mov word [esp + 0x280], cx
mov dword [esp + 0x288], ecx
lea ecx, [esp + 0x270]
push ecx
push eax
push esi
call fcn.005361b0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
push eax
lea eax, [esp + 0x2dc]
push eax
push dword [esp + 0x280]
push dword [esp + 0x288]
call fcn.00537420
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x288], 0
je 0x531559
lea eax, [esp + 0x270]
push eax
call fcn.00547410
add esp, 4
test byte [edi], 1
jne 0x531562
neg esi
jmp 0x531563
inc esi
test esi, esi
jg 0x530281
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x5315b8
push edi
call fcn.004e8fb0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [ebp + 0xcc]
inc eax
cmp dword [ebp + 0xc0], eax
jg 0x5341d0
mov eax, dword [edx + 0xc]
mov ecx, eax
mov ebx, dword [edx + 4]
add ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x40], 0
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
je 0x531609
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x531609
push esi
call fcn.004cacd0
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.004ca5d0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x531631
add dword [esi + 0xc], 0xffffffff
jne 0x531631
push esi
call fcn.00544110
add esp, 4
mov esi, dword [esp + 0x40]
mov eax, 4
mov word [edi + 0x10], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x534148
test esi, esi
je 0x52c749
mov ebx, dword [esp + 0x2c]
mov edi, ebx
mov eax, dword [esp + 0x10]
shl edi, 4
add edi, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x531688
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x531682
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x531677
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x5316a3
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x53169d
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x531692
mov edi, dword [esp + 0x18]
inc bl
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x67], bl
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
lea eax, [esp + 0xa8]
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
push eax
mov ecx, dword [edi + 8]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [edi + 4]
push dword [eax + ecx*8 + 4]
call fcn.004faef0
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp dword [edi + 0xc], 0
mov edx, eax
mov dword [esp + 0x18], edx
je 0x531742
mov eax, dword [esp + 0xa8]
add dword [ecx + 0x28], eax
mov eax, dword [esp + 0xac]
adc dword [ecx + 0x2c], eax
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x531742
mov ebx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xa8]
add dword [ebx + ecx*8], eax
mov eax, dword [esp + 0xac]
adc dword [ebx + ecx*8 + 4], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x5317a2
push dword [eax + 0x2c]
push ebp
call fcn.005384d0
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.004faef0
jmp 0x52f9d6
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5317e3
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
jmp 0x5317ec
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [edi + 4]
lea ecx, [esp + 0x40]
push dword [edi + 0xc]
shl eax, 4
add eax, dword [ebp + 0x10]
push ecx
mov dword [esp + 0x48], 0
push dword [eax + 4]
call fcn.004fb7d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov eax, dword [esp + 0x40]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x10]
inc byte [ebp + 0x60]
push 0
push 0
push 0
push dword [eax + 0x10]
push ebp
call fcn.004bfaa0
add esp, 0x14
dec byte [ebp + 0x60]
jmp 0x52f9d9
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x10], 0
mov esi, dword [edi + 4]
jne 0x5318b7
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.00521560
and dword [ebp + 0x18], 0xffffffef
movzx eax, word [edi + 2]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x7c
push eax
push esi
push ebp
call fcn.00512b90
mov ecx, dword [esp + 0x28]
mov edx, eax
or dword [ebp + 0x18], 1
add esp, 0x14
mov dword [esp + 0x18], edx
and dword [ecx + 0x98], 0xfffffffc
jmp 0x5319ac
mov dword [esp + 0xec], esi
lea eax, [ecx + 0x7c]
mov dword [esp + 0xe4], ebp
add esi, esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf4], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xfc], eax
push dword [edi + 0x10]
mov eax, dword [ebp + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebp
call fcn.00515bf0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x53420c
push 0
lea eax, [esp + 0xe8]
mov byte [ebp + 0xb1], 1
push eax
push fcn.00512900
push esi
push ebp
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
call fcn.004bfaa0
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x531993
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x531993
cmp dword [esp + 0xf8], eax
jne 0x531993
push 0x6f10ac
push 0x181b2
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004b1f90
mov eax, 0xb
add esp, 0x14
mov dword [esp + 0x18], eax
push esi
push ebp
call fcn.00502f20
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x14]
mov byte [ebp + 0xb1], 0
test edx, edx
jne 0x5341f1
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.004f8520
add esp, 8
jmp 0x52f9d9
mov edx, dword [esp + 0x10]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.00511eb0
add esp, 0xc
test eax, eax
je 0x531a22
cmp dword [ebp + 0x210], 0
jne 0x531a18
add dword [eax + 0x18], 0xffffffff
jne 0x531a22
push eax
push ebp
call fcn.004d26d0
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.00511eb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x531a22
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 8]
cmp ecx, esi
jne 0x531aa1
mov eax, dword [esi + 0x14]
push esi
push ebp
mov dword [edx + 8], eax
call fcn.0050e290
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
test ecx, ecx
je 0x531ae0
lea edx, [ecx + 0x14]
mov ecx, dword [edx]
cmp ecx, esi
je 0x531adb
test ecx, ecx
jne 0x531aa5
push esi
push ebp
call fcn.0050e290
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 0x14]
mov dword [edx], eax
push esi
push ebp
call fcn.0050e290
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x28
push eax
call fcn.00511eb0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x52c74d
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x531b9b
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.004d7910
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x531b9b
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x531b9b
nop
cmp eax, esi
je 0x531b96
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x531b60
push esi
push ebp
call fcn.00504030
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.00504030
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea edi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xcc]
push eax
mov eax, dword [ebx + edi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
movzx ecx, word [edx + 2]
push eax
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
push ebp
call fcn.004fc8f0
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x18], ebp
test word [esi + 0x10], ax
je 0x531c2c
push esi
call fcn.00547450
add esp, 4
jmp 0x531c35
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x531c6c
test ebp, ebp
jne 0x53421a
push fcn.004c1720
push 1
push 0xffffffffffffffff
dec eax
cdq
sub dword [ebx + edi*8], eax
push 0xffffffffffffffff
push dword [esp + 0xb4]
sbb dword [ebx + edi*8 + 4], edx
push esi
call fcn.00536730
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x531d1f
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
cmp dword [ebp + 0x128], 0
jne 0x5344d3
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x80], esi
jb 0x52c749
mov ebx, dword [esp + 0x68]
ja 0x531cc0
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x533bee
nop dword [eax + eax]
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x533bea
add ebx, dword [ebp + 0x17c]
push dword [ebp + 0x178]
adc esi, 0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x88], esi
call eax
add esp, 4
test eax, eax
jne 0x5342e9
cmp dword [esp + 0x80], esi
ja 0x531cc0
mov eax, dword [esp + 0x1c]
jb 0x531d08
cmp eax, ebx
jae 0x531cc0
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x531c7d
push dword [esp + 0x4c]
push esi
call fcn.00536b40
add esp, 8
jmp 0x531c7d
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x531d6d
push esi
call fcn.00536650
add esp, 4
test eax, eax
jne 0x52e576
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi + 8]
call fcn.005207c0
add esp, 0xc
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea edi, [ecx + eax*8]
je 0x531e18
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x531dd8
test al, 1
jne 0x531dd3
push dword [esi + 8]
call fcn.004f3830
add esp, 4
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x531e18
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x531df7
push esi
call fcn.00520750
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.005365e0
add esp, 0xc
jmp 0x531c81
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x531e31
push edi
call fcn.00547450
add esp, 4
jmp 0x53369d
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x53369d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x531e75
push esi
call fcn.00536650
add esp, 4
test eax, eax
jne 0x52e576
mov ecx, dword [esp + 0x28]
test ebx, ebx
je 0x531e96
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi + 8]
call fcn.00520850
add esp, 0x10
test eax, eax
jne 0x530281
test ebx, ebx
js 0x52c749
mov ebx, dword [esp + 0x28]
jmp 0x531d6d
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ebx
lea eax, [eax + eax*4]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x531ef4
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x531ef0
nop dword [eax]
cmp dword [eax + 0x18], ecx
je 0x533e0c
mov eax, dword [eax + 4]
test eax, eax
jne 0x531ee0
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 0xd8]
cmp eax, dword [esi + 0xa0]
jge 0x534232
test byte [ebp + 0x10], 0x10
jne 0x5320e7
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
lea edi, [eax + 1]
cmovne edi, eax
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x531f39
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov eax, ebx
cdq
push edx
push eax
push esi
call fcn.00503030
mov esi, eax
add esp, 0xc
test esi, esi
je 0x52e572
push ebx
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x531f77
cmp dword [ebp + 0x18], 0
je 0x531f80
push ebp
call fcn.00547410
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, 0x1010
mov word [ebp + 0x10], ax
sub ecx, dword [esp + 0x20]
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], ebx
mov ebx, dword [esp + 0x2c]
mov dword [ebp + 0x24], 0x535010
mov ebp, dword [esp + 0x14]
mov dword [esi], ebp
mov dword [esi + 0x3c], edi
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x6c]
mov ebp, dword [esp + 0x24]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x18], eax
lea eax, [edi*4 + 0xb]
add eax, edi
lea ecx, [esi + eax*8]
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x532016
xor edx, edx
mov word [eax + 0x10], dx
mov dword [eax + 0x14], ebp
add eax, 0x28
cmp eax, ecx
jne 0x532006
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
inc dword [ecx + 0xd8]
mov eax, dword [ecx + 0xd0]
mov edx, dword [esp + 0x14]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [edx + 0xe4]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x58]
mov dword [edx + 0xe4], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xd0], esi
mov dword [edx + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x14], ecx
mov dword [esp + 0x28], eax
movzx eax, word [esi + 0x40]
mov dword [edx + 0x18], eax
lea eax, [ecx*4 + 0xb]
add eax, ecx
lea ecx, [esi + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 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 [esp + 0x20]
add esp, 0xc
mov edx, dword [ebx]
mov dword [esp + 0x20], edx
mov dword [ecx + 0x68], edx
mov eax, dword [ebx + 4]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 0x14]
mov dword [esp + 0x10], eax
jmp 0x531c85
mov esi, dword [ebp + 8]
mov ebp, dword [esp + 0x24]
jmp 0x53201e
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x53211f
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
jmp 0x532128
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0xd0]
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x53217e
push 0x4000
push ecx
push esi
call fcn.005466e0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [ecx + 0x10], ax
jne 0x52e2a2
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov ecx, ebx
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
mov esi, eax
je 0x532200
mov eax, dword [eax + 8]
cdq
add dword [ebp + 0x208], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x20c], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x532229
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
add dword [ecx + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [ecx + 0x44], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp dword [esi + 4], 0
je 0x53227f
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x52c2d2
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x52d868
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x532254
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x5322b7
mov eax, dword [edx + 4]
test eax, eax
je 0x5322a1
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x532298
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x5322c8
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00535700
mov dword [edi], eax
mov ecx, 0xf244
mov dword [edi + 4], edx
mov ax, word [edi + 0x10]
and ax, cx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.00535700
mov dword [esi], eax
mov ebx, 0xf244
mov dword [esi + 4], edx
add esp, 8
mov cx, word [esi + 0x10]
and cx, bx
or cx, 4
mov word [esi + 0x10], cx
cmp dword [edi + 4], edx
jg 0x52c749
jl 0x532329
cmp dword [edi], eax
jae 0x533be6
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x531d7f
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x52c749
jg 0x53235a
test ecx, ecx
je 0x52c749
mov eax, dword [esp + 0x10]
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
mov edi, dword [esp + 0x18]
jmp 0x52d864
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5323ae
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
jmp 0x5323b7
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
test eax, eax
jl 0x53242a
jg 0x5323da
test ecx, ecx
je 0x53242a
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x5323eb
jg 0x5323fc
test eax, eax
jne 0x5323fc
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004f6cf0
add esp, 0xc
test eax, eax
jne 0x53242a
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x531d7f
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp 0x531d7f
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 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 0x52c43d
test edx, edx
jl 0x52d864
jg 0x53246d
test ecx, ecx
je 0x52d864
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x52d864
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x5324af
jg 0x5324a2
test eax, eax
je 0x5324af
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
mov ecx, dword [esp + 0x14]
je 0x52d868
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
push 0
movzx ebx, word [edi + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.00503030
mov esi, eax
add esp, 0xc
test esi, esi
je 0x52e576
mov dword [esi + 8], 0
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], 0
mov ecx, edi
mov eax, dword [edi + 0x10]
sub ecx, dword [esp + 0x20]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0x19], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov byte [edi + 1], 0xf1
mov dword [edi + 0x10], esi
mov byte [edi], 0xa3
jmp 0x532565
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov ebx, dword [esp + 0x28]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x5325aa
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x5325aa
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebp + 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 0x532590
mov ebp, dword [esp + 0x24]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x5325c9
mov eax, dword [ecx + 0x1c]
jmp 0x5325cc
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x533be6
jle 0x532632
mov ecx, dword [esi]
test ecx, ecx
jne 0x5325e8
xor eax, eax
jmp 0x532619
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x532605
cmp byte [ecx + 0x12], 1
jne 0x532605
mov eax, dword [ecx + 8]
jmp 0x532619
test dl, 1
je 0x53260e
xor eax, eax
jmp 0x532619
push 1
push ecx
call fcn.005463e0
add esp, 8
push eax
push 0x6ec65c
push dword [esp + 0x1c]
call fcn.0052c0a0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 0x19], 0
je 0x532656
mov eax, dword [edi - 0x10]
test eax, eax
je 0x532652
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.005365e0
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x532669
cmp dword [eax + 0x18], 0
je 0x532672
push eax
call fcn.00547410
add esp, 4
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x18]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x52f9df
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x532730
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea edi, [ecx + eax*8]
mov eax, 0x9000
movups xmmword [esp + 0x198], xmm0
movups xmmword [esp + 0x1a8], xmm0
test word [edi + 0x10], ax
je 0x5326db
push edi
call fcn.00547450
add esp, 4
jmp 0x5326e4
mov eax, 1
mov word [edi + 0x10], ax
mov dword [esp + 0x198], edi
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
mov eax, dword [esi + 0x14]
mov al, byte [eax + 0x54]
mov byte [esp + 0x1b0], al
lea eax, [esp + 0x198]
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1ac]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x53273c
push ebx
push esi
call fcn.00536040
add esp, 8
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534253
test byte [esi + 0x10], 2
jne 0x53275a
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
jmp 0x531d7f
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x533be6
push dword [esp + 0x4c]
push esi
call fcn.00536b40
add esp, 8
jmp 0x531d7f
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x350]
push eax
lea eax, [esp + 0x350]
mov dword [esp + 0x34c], 0
push eax
push dword [edi + 8]
mov dword [esp + 0x35c], 0xffffffff
push dword [edi + 4]
mov dword [esp + 0x35c], 0xffffffff
push ebp
call fcn.004fe940
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
test edx, edx
je 0x5327e1
cmp edx, 5
jne 0x534148
xor eax, eax
mov dword [esp + 0x348], 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xc]
xor edi, edi
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x9000
lea ebp, [edi + 4]
nop dword [eax + eax]
mov eax, dword [esp + edi*4 + 0x348]
cdq
test word [esi + 0x10], cx
je 0x532820
push edx
push eax
push esi
call fcn.00548a10
add esp, 0xc
mov ecx, 0x9000
jmp 0x532829
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bp
inc edi
add esi, 0x28
cmp edi, 3
jl 0x532800
jmp 0x52d23d
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
mov dword [esp + 0x40], eax
test word [eax + 0x10], cx
je 0x532869
push eax
call fcn.004e8fb0
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x532872
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edx, dword [ebx + 0xc]
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ebp, byte [esi + 5]
mov ebx, ebp
cmovne ebx, edx
cmp byte [esi + 0x11], 3
jae 0x5328b2
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x5328b4
cmp dword [esi + 0x54], 0
jg 0x5328b2
jl 0x5328b4
cmp dword [esi + 0x50], 0
jbe 0x5328b4
mov ebx, ebp
cmp byte [esi + 0xf], 0
jne 0x5328ca
cmp dword [esi], 0x78da90
je 0x5328ca
mov ecx, dword [esi + 0xb8]
jmp 0x5328cf
mov ecx, 0x6e9244
cmp ebx, 5
jne 0x532914
test ecx, ecx
je 0x53290d
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5328e0
sub ecx, edx
test ecx, 0x3fffffff
je 0x53290d
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x53290d
cmp byte [esi + 4], 0
jne 0x532914
cmp dword [eax], 2
jl 0x53290d
cmp dword [eax + 0x34], 0
jne 0x532914
mov ebx, ebp
jmp 0x532a5e
cmp ebx, ebp
je 0x532a5e
cmp ebp, 5
je 0x53292a
cmp ebx, 5
jne 0x532a5e
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x55], 0
je 0x53427d
cmp dword [eax + 0xc0], 1
jg 0x53427d
cmp ebp, 5
jne 0x532a2e
xor edi, edi
cmp dword [esi + 0xe8], edi
jne 0x5329b0
push 1
push esi
mov dword [esp + 0xa8], edi
call fcn.004e96d0
mov edi, eax
add esp, 8
test edi, edi
jne 0x532a18
mov eax, dword [esi]
lea ecx, [esp + 0xa0]
push ecx
push edi
push dword [esi + 0xec]
push eax
mov eax, dword [eax + 0x20]
call eax
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x532a18
cmp dword [esp + 0xa0], eax
je 0x5329b0
push esi
call fcn.004e9840
mov edi, eax
add esp, 4
test edi, edi
jne 0x532a18
cmp dword [esi + 0xe8], 0
je 0x532a18
push esi
call fcn.004e9500
mov edi, eax
add esp, 4
test edi, edi
jne 0x532a18
push dword [esi + 0xe0]
movzx eax, byte [esi + 0xb]
push dword [esi + 0xa8]
push eax
push dword [esp + 0x30]
push dword [esi + 0xe8]
call fcn.00539af0
push esi
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esi + 0xe8], 0
call fcn.004e9580
add esp, 0x18
test edi, edi
je 0x532a18
cmp byte [esi + 4], 0
jne 0x532a18
push 1
push esi
call fcn.004ea0a0
add esp, 8
jmp 0x532a62
mov eax, edi
mov dword [esp + 0x18], eax
test edi, edi
jne 0x532a62
push ebx
push esi
call fcn.005180d0
add esp, 8
jmp 0x532a42
cmp ebp, 4
jne 0x532a3e
push 2
push esi
call fcn.005180d0
add esp, 8
test edi, edi
jne 0x532a62
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x30]
call fcn.004fdea0
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
je 0x532a64
mov ebx, ebp
push ebx
push esi
call fcn.005180d0
mov ebx, dword [esp + 0x48]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x532a8b
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x532aaf
mov ecx, dword [eax*4 + 0x6e9c68]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x532aaf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x532aa0
sub ecx, edx
and ecx, 0x3fffffff
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x12], al
cmp byte [esp + 0x4c], al
je 0x532aca
push dword [esp + 0x4c]
push ebx
call fcn.00536b40
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov ebp, dword [esp + 0x24]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x532b0e
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
jmp 0x532b10
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [ecx + 0x7c]
push ebp
push eax
call fcn.00520e60
add esp, 0x10
jmp 0x52f9d9
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
cmp byte [edi + 9], 0
mov esi, dword [edi + 4]
je 0x532b51
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x532b51
push edi
call fcn.004cacd0
add esp, 4
cmp byte [esi + 0x11], 0
jne 0x532b61
mov eax, 0x65
jmp 0x532c18
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 0x30]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
push ebx
push ebp
push esi
call fcn.004d7620
add esp, 0xc
mov dword [esp + 0x2c], eax
cmp ebp, eax
jb 0x532bf1
cmp ebx, ebp
jae 0x532bf1
test ebx, ebx
je 0x532bea
mov eax, dword [esi + 8]
test eax, eax
je 0x532ba6
push 0
push 0
push eax
call fcn.004f3c40
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x532be4
push esi
call fcn.004deb30
push 0
push ebp
push dword [esp + 0x38]
push esi
call fcn.004de070
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x532be4
mov eax, dword [esi + 0xc]
push dword [eax + 0x48]
call fcn.00518760
mov ecx, dword [esi + 0x30]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
mov ebp, dword [esp + 0x24]
jmp 0x532c1c
mov eax, 0x65
jmp 0x532c14
push 0x6f10ac
push 0x11f92
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004b1f90
add esp, 0x14
mov eax, 0xb
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp byte [edi + 9], 0
je 0x532c31
add dword [edi + 0xc], 0xffffffff
jne 0x532c31
push edi
call fcn.00544110
add esp, 4
mov edx, dword [esp + 0x18]
test edx, edx
je 0x52c749
cmp edx, 0x65
jne 0x534148
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x52d864
cmp dword [esi + 4], 0
jne 0x532c7a
push dword [esi + 8]
push ebp
call fcn.00505470
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [ecx + 0x98]
mov ecx, dword [esi + 8]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0x98], ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x532d18
test dword [ebp + 0x24], 4
jne 0x52d613
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], dl
je 0x532df0
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xcc], bl
cmp byte [esi + 0xa], dl
jne 0x532d54
push esi
call fcn.004cacd0
add esp, 4
push dword [esp + 0xcc]
push edi
push esi
call fcn.004eee20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x532dd7
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x532d90
nop dword [eax]
cmp dword [ecx + 4], edi
jne 0x532d89
cmp dword [ecx], esi
je 0x532dbe
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x532d80
push 0
push 0x10
call fcn.00515c10
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x532dca
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [ebp + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [ebp + 0x4c], ecx
cmp bl, byte [ecx + 8]
jbe 0x532dc6
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x532dcf
mov edx, 7
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp byte [esi + 9], 0
je 0x532df0
add dword [esi + 0xc], 0xffffffff
jne 0x532df0
push esi
call fcn.00544110
mov edx, dword [esp + 0x1c]
add esp, 4
test edx, edx
je 0x531d7f
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 6
jne 0x533f76
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.0052c0a0
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ebx, dword [esp + 0x20]
jmp 0x534154
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x18], eax
mov esi, dword [edx + 0x10]
mov edx, dword [ebp + 0x180]
test edx, edx
jle 0x532e64
cmp dword [ebp + 0x198], eax
jne 0x532e64
mov dword [esp + 0x2c], 6
mov edx, 6
mov dword [esp + 0x18], edx
test esi, esi
je 0x534148
jmp 0x532f18
test esi, esi
jne 0x532e85
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x532f18
xor ecx, ecx
test edx, edx
jle 0x532eb0
mov eax, dword [ebp + 0x198]
cmp dword [eax], esi
je 0x532f30
inc ecx
add eax, 4
cmp ecx, edx
jl 0x532ea0
push ebp
call fcn.004dd930
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x532f18
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x532f18
mov ecx, dword [ebp + 0x180]
mov eax, dword [ebp + 0x198]
mov edx, dword [ebp + 0x1fc]
add edx, dword [ebp + 0x1f8]
mov dword [eax + ecx*4], esi
inc dword [ebp + 0x180]
inc dword [esi + 0xc]
test edx, edx
je 0x532f18
cmp dword [edi + 0x50], 0
je 0x532f18
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [edi + 0x50]
call eax
add esp, 8
mov dword [esp + 0x18], eax
push dword [esi + 8]
push dword [esp + 0x18]
call fcn.00539460
mov edx, dword [esp + 0x20]
add esp, 8
jmp 0x52f9df
xor eax, eax
jmp 0x532f14
mov edi, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x28]
movups xmmword [esp + 0x110], xmm0
mov dword [esp + 0x114], ebp
movups xmmword [esp + 0x100], xmm0
movq qword [esp + 0x120], xmm0
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00535f70
mov dword [esp + 0x20], eax
add esp, 8
mov eax, dword [esp + 0x110]
and eax, 0x202
cmp eax, 0x202
jne 0x532fa3
cmp byte [esp + 0x112], 1
jne 0x532fa3
mov edx, dword [esp + 0x108]
jmp 0x532fc5
test byte [esp + 0x110], 1
jne 0x53308d
lea eax, [esp + 0x100]
push 1
push eax
call fcn.005463e0
add esp, 8
mov edx, eax
test edx, edx
je 0x53308d
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [esp + 0x14]
add esi, 0x7c
push dword [eax + ecx*8]
push edx
push ebp
call fcn.0050b6c0
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.004d7910
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x533073
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x533073
cmp dword [eax + 0x14], 0
je 0x533073
push esi
push edx
push ecx
push ebx
push ebp
call fcn.0054a300
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x53308d
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x53308d
cmp dword [eax], ebp
je 0x53303e
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x533031
jmp 0x53308d
push ebp
call fcn.004dd930
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x53308d
push ebx
push ebp
call fcn.00511a50
mov edx, dword [ebp + 0x180]
add esp, 8
mov ecx, dword [ebp + 0x198]
mov dword [ecx + edx*4], eax
inc dword [ebp + 0x180]
inc dword [eax + 0xc]
jmp 0x53308d
push edi
push str.no_such_module:__s
push ebp
call fcn.00515bf0
mov dword [esi], eax
add esp, 0xc
mov eax, 1
mov dword [esp + 0x18], eax
test dword [esp + 0x110], 0x9000
jne 0x5330a4
cmp dword [esp + 0x118], 0
je 0x5330b4
lea eax, [esp + 0x100]
push eax
call fcn.00547410
add esp, 4
mov edx, dword [esp + 0x18]
jmp 0x52f9df
mov edx, dword [esp + 0x10]
xor eax, eax
inc dword [ebp + 0xcc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push ebp
call fcn.0050b6c0
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x5331c1
cmp byte [ebx + 0x2b], 1
jne 0x5331c1
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x5331c1
nop word [eax + eax]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x5342bb
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x533110
push ebx
push ebp
call fcn.0054a830
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x53313f
mov eax, dword [ecx + 0x10]
inc dword [ebx + 0x18]
push dword [esi + 8]
call eax
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x5331a8
mov dword [esi + 8], eax
mov dword [ebx + 0x34], eax
mov ebp, dword [esi]
add dword [esi + 0xc], 0xffffffff
jne 0x5331a4
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x533172
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
mov edi, dword [esi + 4]
mov ebx, dword [esi]
add dword [edi + 8], 0xffffffff
jne 0x533196
mov eax, dword [edi + 0x10]
test eax, eax
je 0x53318c
push dword [edi + 0xc]
call eax
add esp, 4
push edi
push ebx
call fcn.00502f20
add esp, 8
push esi
push ebp
call fcn.00502f20
mov ebx, dword [esp + 0x34]
add esp, 8
mov ebp, dword [esp + 0x24]
cmp dword [ebp + 0x210], 0
jne 0x5331b7
add dword [ebx + 0x18], 0xffffffff
jne 0x5331c1
push ebx
push ebp
call fcn.004d26d0
add esp, 8
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x53414c
mov ecx, dword [esp + 0x14]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x5342df
mov edi, dword [esi]
test edi, edi
je 0x5342df
lea eax, [esp + 0x90]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x1c]
push esi
push ebx
mov dword [esp + 0x28], eax
call fcn.00539460
mov edx, dword [esp + 0x28]
add esp, 0x10
test edx, edx
jne 0x534500
mov eax, dword [esp + 0x90]
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push ebx
call fcn.004c59c0
add esp, 0x10
test eax, eax
je 0x5342cb
mov ecx, dword [esp + 0x90]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x530b21
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
call fcn.00542b30
test eax, eax
jne 0x52e576
push eax
push 8
call fcn.00515c10
mov edi, eax
add esp, 8
test edi, edi
je 0x52e576
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [edi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [edi + 4], ecx
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5332eb
push esi
call fcn.004e8fb0
add esp, 4
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.00547410
mov dword [esi], str.ValueList
mov eax, 0x1a01
mov dword [esi + 8], edi
add esp, 4
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], fcn.004c1720
jmp 0x530b21
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea ebx, [ebp + 0x28]
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 [esp + 0x2c], ebx
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0x5c]
mov dword [esp + 0x54], eax
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + edx*8]
mov dword [esp + 0x40], ecx
xor ecx, ecx
test edi, edi
jle 0x53346b
cmp edi, 0x10
jb 0x533453
cmp dword [0x794dc8], 2
jl 0x533453
movaps xmm2, xmmword [0x6f12e0]
mov eax, edi
and eax, reloc.WS2_32.dll_ntohs
jns 0x5333a7
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x6f12f0]
lea edx, [ebx + 0x20]
mov ebp, edi
mov esi, 8
sub ebp, eax
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, ebp
jl 0x5333c0
cmp ecx, edi
jge 0x53346b
mov edx, dword [esp + 0x2c]
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 0x533460
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x78]
push dword [esp + 0x4c]
push esi
mov eax, dword [edi + 0x20]
call eax
push dword [esp + 0x50]
mov ebp, dword [esp + 0x2c]
push ebp
mov dword [esp + 0x34], eax
call fcn.00539460
mov edx, dword [esp + 0x34]
add esp, 0x1c
test edx, edx
jne 0x533f72
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x58]
add esp, 4
mov edi, dword [esp + 0x18]
test eax, eax
mov byte [ecx + 2], 0
jmp 0x52d85e
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, edx
mov ecx, dword [esp + 0x28]
cmp byte [edi + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x533506
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x52cc78
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x52cc81
mov eax, dword [edi + 0x2c]
xorps xmm0, xmm0
mov ebx, dword [eax]
mov al, byte [esp + 0x4c]
mov ebp, dword [ebx]
movups xmmword [esp + 0x238], xmm0
mov byte [esp + 0x240], al
mov eax, dword [esp + 0x10]
movups xmmword [esp + 0x228], xmm0
mov dword [esp + 0x228], esi
test byte [eax + 2], 1
je 0x533561
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x533550
push esi
call fcn.00547450
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x533575
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
push dword [eax + 8]
lea eax, [esp + 0x22c]
push eax
push dword [edi + 0x2c]
mov eax, dword [ebp + 0x2c]
call eax
mov ebp, dword [esp + 0x20]
push ebx
push ebp
mov dword [esp + 0x2c], eax
call fcn.00539460
add esp, 0x14
cmp dword [esp + 0x23c], 0
jle 0x5335f3
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x5335c5
cmp byte [esi + 0x12], 1
jne 0x5335c5
mov eax, dword [esi + 8]
jmp 0x5335d9
test cl, 1
je 0x5335ce
xor eax, eax
jmp 0x5335d9
push 1
push esi
call fcn.005463e0
add esp, 8
push eax
push 0x6ec65c
push ebp
call fcn.0052c0a0
mov eax, dword [esp + 0x248]
add esp, 0xc
mov dword [esp + 0x18], eax
test byte [esi + 0x10], 2
jne 0x533602
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
jmp 0x533618
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x533618
push dword [esp + 0x4c]
push esi
call fcn.00536b40
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x533f76
mov ebp, dword [esp + 0x24]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x52c749
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x24], eax
call fcn.00539460
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
jne 0x534148
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x531c81
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
jmp 0x531c85
mov ebx, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and ebx, 0x4000000
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 2
lea esi, [ecx + eax*8]
jne 0x5336f8
mov byte [esi + 0x12], 1
jmp 0x533717
cmp byte [esi + 0x12], 1
je 0x533717
push 1
push esi
call fcn.00536b40
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x534148
mov eax, dword [edi]
push dword [esi + 8]
push edi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x53373a
and dword [ebp + 0x20], 0xfbffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
push edi
push dword [esp + 0x18]
call fcn.00539460
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
and dword [ecx + 0x98], 0xfffffffc
test edx, edx
jne 0x5344f5
mov eax, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
xorps xmm0, xmm0
movlpd qword [esp + 0xdc], xmm0
cmp byte [ebp + 0x57], 0
jne 0x52e576
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x5342df
mov ebx, dword [edi]
test ebx, ebx
je 0x5342df
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x52ddc7
mov al, byte [ebp + 0x5c]
mov esi, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x5337e2
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x5337d7
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x5c], al
lea eax, [esp + 0xdc]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x6b]
push edi
push dword [esp + 0x28]
mov byte [ebp + 0x5c], al
call fcn.00539460
mov edx, dword [esp + 0x30]
add esp, 0x18
test edx, edx
jne 0x533868
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], edx
je 0x533839
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test edx, edx
jne 0x5344f5
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
cmp dl, 0x13
jne 0x533839
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x533839
movzx ecx, word [edi + 2]
cmp ecx, 4
jne 0x534304
mov esi, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x5338d4
push edx
call fcn.004e8fb0
add esp, 4
mov edx, eax
jmp 0x5338dd
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ebx, [eax + ecx*8]
mov eax, 0x9000
test word [ebx + 0x10], ax
je 0x533947
push ebx
call fcn.004e8fb0
mov edx, dword [esp + 0x14]
add esp, 4
mov ebx, eax
jmp 0x533950
mov eax, 4
mov word [ebx + 0x10], ax
mov ecx, dword [edx + 4]
xor edi, edi
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x533970
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x533988
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x533988
push esi
call fcn.004cacd0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x533997
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x5339b2
add dword [esi + 0xc], 0xffffffff
jne 0x5339b2
push esi
call fcn.00544110
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x52cc81
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
cmp dword [ebx], esi
je 0x533a1e
mov al, byte [esp + 0x4c]
mov dword [ebx + 0xc], ecx
mov dword [ebx], esi
mov byte [ebx + 0x18], al
movzx ecx, byte [ebx + 0x1a]
sub ecx, 1
js 0x533a1e
mov ebp, dword [esp + 0x10]
lea edx, [ebx + 0x1c]
mov ebx, dword [esp + 0x28]
lea edx, [edx + ecx*4]
nop
mov eax, dword [ebp + 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 0x533a00
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x24]
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
lea eax, [ebx + 0x1c]
mov ecx, dword [ebx + 4]
push eax
movzx eax, byte [ebx + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push ebx
call eax
mov eax, dword [ebx + 0x14]
add esp, 0xc
test eax, eax
je 0x533bea
jle 0x533a9e
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x533a71
cmp byte [esi + 0x12], 1
jne 0x533a71
mov eax, dword [esi + 8]
jmp 0x533a85
test cl, 1
je 0x533a7a
xor eax, eax
jmp 0x533a85
push 1
push esi
call fcn.005463e0
add esp, 8
push eax
push 0x6ec65c
push dword [esp + 0x1c]
call fcn.0052c0a0
mov eax, dword [ebx + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
lea edi, [ecx + 0xe4]
mov esi, dword [edi]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [eax + 4]
test esi, esi
je 0x533bb2
nop dword [eax]
test ebx, ebx
js 0x533ae7
cmp dword [esi], ebx
jne 0x533adf
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x533adf
cmp ecx, 0x1f
jg 0x533ae7
mov eax, 1
shl eax, cl
test ebp, eax
je 0x533ae7
lea edi, [esi + 0x10]
jmp 0x533ba4
mov eax, dword [esi + 0xc]
test eax, eax
je 0x533af6
push dword [esi + 8]
call eax
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
cmp esi, dword [ecx + 0x164]
jae 0x533b3a
cmp esi, dword [ecx + 0x15c]
jb 0x533b22
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x533ba4
cmp esi, dword [ecx + 0x160]
jb 0x533b3a
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x533ba4
cmp dword [ecx + 0x210], 0
je 0x533b4f
push esi
push ecx
call fcn.004e5ae0
add esp, 8
jmp 0x533ba4
cmp dword [0x78d018], 0
je 0x533b9a
mov eax, dword [0x7935d8]
test eax, eax
je 0x533b6b
push eax
call dword [0x78d068]
add esp, 4
push esi
call dword [0x78d044]
sub dword [0x793570], eax
dec dword [0x793594]
push esi
call dword [0x78d03c]
mov eax, dword [0x7935d8]
add esp, 8
test eax, eax
je 0x533ba4
push eax
call dword [0x78d070]
jmp 0x533ba1
push esi
call dword [0x78d03c]
add esp, 4
mov esi, dword [edi]
test esi, esi
jne 0x533ac0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x53414c
mov ebp, dword [esp + 0x24]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov eax, dword [esi + 4]
mov ebx, 0xf7ff
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
push edx
push ebx
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.004d72e0
mov esi, eax
add esp, 8
mov eax, dword [ebx + edi*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.006dbad0
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 0x52cc81
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
push edx
push edi
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.004d72e0
mov esi, eax
add esp, 8
mov eax, dword [edi + ebx*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.006dbad0
mov edi, eax
mov eax, dword [esp + 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 edi, dword [esp + 0x18]
shl eax, cl
mov ecx, dword [esp + 0x14]
test eax, edx
jne 0x533cd9
inc dword [ecx + 0xc4]
jmp 0x52d868
inc dword [ecx + 0xc0]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov cl, byte [ebp + 0x5e]
mov ebx, dword [esp + 0x14]
test cl, 0x41
je 0x533da7
cmp byte [ebx + 0x95], 0xfe
je 0x533da7
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x533d28
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x533da7
push eax
test cl, 0x40
je 0x533d54
push ebx
call fcn.00534a30
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.004c1720
mov esi, dword [esp + 0x24]
add esp, 0x14
jmp 0x533da7
cmp dword [ebp + 0xc8], 1
jle 0x533d93
push str.____s
push ebp
call fcn.00515bf0
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push ebx
push dword [ebp + 0xdc]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x533d8d
push esi
push ebp
call fcn.00502f20
add esp, 8
mov esi, dword [esp + 0x10]
jmp 0x533da7
mov eax, dword [ebp + 0xd8]
push ebx
push dword [ebp + 0xdc]
push 1
call eax
add esp, 0x10
mov eax, dword [esi + 4]
cmp eax, dword [0x78d124]
jl 0x533dec
cmp byte [esi], 0xb5
je 0x52c2ce
mov edx, 1
cmp dword [ebx + 0x6c], edx
jle 0x533dea
mov eax, 0x14
nop word [eax + eax]
mov ecx, dword [ebx + 0x68]
cmp byte [ecx + eax], 0xf
jne 0x533de1
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x533dd0
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov ecx, dword [esp + 0x14]
mov dword [ebp + 4], eax
inc dword [ecx + 0xbc]
jmp 0x52d86c
mov edi, dword [esp + 0x18]
jmp 0x52d868
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x52c1bb
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov dword [ebx + 0x24], ecx
mov al, byte [edi + 8]
mov byte [ebx + 0x94], al
test ecx, ecx
je 0x533ed2
movzx eax, word [edi + 2]
test ax, ax
je 0x533e88
push dword [eax*4 + 0x6e9ee8]
push str._s_constraint_failed
push ebx
call fcn.0052c0a0
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x533e9d
push eax
push dword [ebx + 0x7c]
push str._z:__s
push ebp
call fcn.00515bf0
mov ebp, ebx
add esp, 0x10
mov dword [ebp + 0x7c], eax
jmp 0x533e9f
push dword [edi + 0x10]
mov ebp, ebx
push 0x6ec65c
push ebp
call fcn.0052c0a0
add esp, 0xc
jmp 0x533e9f
mov ebp, ebx
push dword [ebp + 0x7c]
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x24]
push dword [ebp + 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 [edi + 4]
call fcn.004b1f90
add esp, 0x14
jmp 0x533ed4
mov ebp, ebx
push ebp
call fcn.005352c0
mov esi, dword [esp + 0x14]
mov edi, eax
add esp, 4
cmp edi, 5
jne 0x533ef0
mov dword [ebp + 0x24], eax
jmp 0x53467c
cmp dword [ebp + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x53467c
mov edx, 0x14
jmp 0x534144
push 0x172f0
call fcn.005016c0
mov esi, dword [esp + 0x14]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x534150
mov ecx, dword [esp + 0x34]
and edi, 0x3f
mov edx, dword [esp + 0x2c]
add ecx, ecx
mov ebp, dword [esp + 0x14]
push dword [edx + ecx*8]
mov ecx, dword [esp + 0x70]
push dword [ecx]
push dword [eax*4 + 0x78d1fc]
movzx eax, byte [edi + 0x6e9250]
push dword [eax*4 + 0x78dae4]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.0052c0a0
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x534154
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
call fcn.0052c0a0
add esp, 8
mov edx, 5
jmp 0x534144
mov ebp, dword [esp + 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x18]
mov edx, 5
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x534154
mov esi, dword [esp + 0x10]
mov ebp, eax
mov ebx, dword [esp + 0x20]
mov byte [edi + 0x55], 0
jmp 0x534154
mov esi, dword [esp + 0x10]
mov eax, 0x66666667
mov ebp, dword [esp + 0x14]
mov ecx, esi
sub ecx, dword [esp + 0x20]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov byte [edi + 0x55], 0
mov edi, 5
mov dword [ebp + 0x24], edi
jmp 0x53467c
mov edi, 0x65
mov ebp, ecx
jmp 0x53467c
mov esi, dword [esp + 0x10]
and edx, 0x100000
or edx, 0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
je 0x534036
mov edx, 8
mov dword [esp + 0x18], edx
jmp 0x534154
mov edx, 0xb
mov dword [esp + 0x18], edx
jmp 0x534154
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 5
jne 0x533f76
mov edi, dword [esp + 0x18]
mov ecx, esi
sub ecx, dword [esp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edi
jmp 0x53467c
mov eax, dword [ecx + 0x7c]
test eax, eax
je 0x53408c
push eax
push ebx
call fcn.00502f20
add esp, 8
push 0
push 0x1c
push ebx
call fcn.00503030
add esp, 0xc
test eax, eax
je 0x5340bd
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x6eb8e0]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x6eb8e8]
mov dword [eax + 0x18], ecx
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x7c], eax
mov edx, dword [edi + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x34]
je 0x5340e4
push edx
push ebx
call fcn.0051fdd0
add esp, 8
mov eax, dword [ebp + 0x98]
mov edx, 0x11
mov esi, dword [esp + 0x10]
and eax, 0xffffffed
mov ebx, dword [esp + 0x20]
or eax, 1
mov dword [esp + 0x18], edx
mov dword [ebp + 0x98], eax
jmp 0x534154
mov edx, 0x204
jmp 0x534144
push dword [esi + 0x10]
call fcn.004faf90
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x534148
push 0x6f10ac
push 0x15b50
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004b1f90
mov edx, 0xb
add esp, 0x14
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp byte [edi + 0x57], 0
je 0x534520
mov edx, 7
jmp 0x53454b
push 0x6f10ac
push 0x17bb4
jmp 0x53412b
push str.index_corruption
push 0x17fe9
push 0x30b
call fcn.0051fbd0
add esp, 0xc
mov edx, eax
jmp 0x534144
cmp dword [esp + 0x1d0], 0
je 0x5341ad
lea eax, [esp + 0x1b8]
push eax
call fcn.00547410
add esp, 4
push 0x6f10ac
push 0x15b2f
jmp 0x53412b
push 0x180b6
call fcn.005016c0
add esp, 4
mov edx, eax
jmp 0x534144
mov ebp, dword [esp + 0x14]
mov edx, 6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov byte [ebp + 0x94], 2
jmp 0x534154
push ebp
call fcn.0051fd50
mov edx, dword [esp + 0x1c]
add esp, 4
cmp edx, 7
je 0x52e576
jmp 0x534144
push ebp
call fcn.0051fd50
add esp, 4
jmp 0x52e576
push dword [esp + 0xa4]
call fcn.004c1720
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x534148
mov eax, 1
push str.too_many_levels_of_trigger_recursion
push ecx
mov dword [esp + 0x20], eax
call fcn.0052c0a0
add esp, 8
mov edx, 1
jmp 0x534148
push esi
call fcn.004c4530
mov ebp, dword [esp + 0x18]
push eax
push 0x6ec65c
push ebp
call fcn.0052c0a0
mov edx, dword [esp + 0x28]
add esp, 0x10
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x534154
mov ebp, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x18], eax
mov ecx, str.out_of
cmp ebx, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov edx, 1
jmp 0x534154
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x534144
push dword [esp + 0x90]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x52e576
mov edx, 6
jmp 0x534144
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], eax
jmp 0x534144
mov ebp, dword [esp + 0x14]
mov esi, 2
mov ebx, dword [esp + 0x20]
cmp ecx, 5
movzx eax, cl
cmove eax, esi
mov esi, dword [esp + 0x10]
mov byte [ebp + 0x94], al
jmp 0x534154
mov eax, dword [ecx + 0x1c]
mov edi, dword [esp + 0x10]
add eax, 2
mov edx, dword [esp + 0x28]
or eax, 1
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ecx + 0x78], eax
cmp byte [ebp + 0x57], 0
jne 0x52e576
test byte [ebp + 0x5e], 4
je 0x53436f
mov eax, dword [ebp + 0xd8]
push 0
push ecx
push dword [ebp + 0xdc]
push 4
call eax
add esp, 0x10
mov ebp, dword [esp + 0x14]
mov ecx, edi
sub ecx, dword [esp + 0x20]
mov eax, 0x66666667
imul ecx
mov edi, 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ebp + 0x20], eax
jmp 0x534678
mov edi, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ebx, eax
je 0x534482
test ecx, ecx
je 0x5343c8
push 0x204
push ebp
call fcn.00520610
mov esi, dword [esp + 0x1c]
add esp, 8
mov al, 1
jmp 0x53441c
test ebx, ebx
je 0x5343fd
cmp dword [ebp + 0xc4], 0
jle 0x5343fd
mov ebp, dword [esp + 0x14]
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x18]
mov edx, 5
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x534154
mov esi, dword [esp + 0x14]
push 1
push esi
call fcn.0052b9a0
mov edi, eax
add esp, 8
test edi, edi
jne 0x534674
mov edi, dword [esp + 0x10]
mov al, bl
push esi
mov byte [ebp + 0x55], al
call fcn.005352c0
add esp, 4
cmp eax, 5
jne 0x53445f
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x20]
mov edi, 5
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ebp + 0x55], al
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x24], edi
jmp 0x534678
push ebp
call fcn.004fefb0
mov ebp, dword [esp + 0x18]
add esp, 4
mov edi, 0x65
mov eax, 1
cmp dword [ebp + 0x24], 0
cmovne edi, eax
jmp 0x534678
test ebx, ebx
jne 0x53448d
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x53449c
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
mov ebp, dword [esp + 0x14]
push eax
push ebp
call fcn.0052c0a0
mov esi, dword [esp + 0x18]
mov edx, 1
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x534154
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x534144
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
jmp 0x52e576
mov ebx, dword [esp + 0x20]
mov ebp, ecx
jmp 0x534154
mov esi, dword [esp + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0x20]
jmp 0x534154
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x534154
cmp edx, 0x210a
jne 0x53454f
push 0x6f10ac
push 0x18948
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004b1f90
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x18], edx
cmp dword [ebp + 0x7c], 0
jne 0x5345b7
cmp edx, 0xc0a
je 0x5345b7
mov eax, edx
mov ecx, 0x6f0cd4
sub eax, 0x64
je 0x53459a
sub eax, 1
je 0x534593
sub eax, 0x19f
je 0x53458c
movzx eax, dl
cmp eax, 0x1d
jae 0x53459f
mov eax, dword [eax*4 + 0x6e8870]
test eax, eax
je 0x53459f
mov ecx, eax
jmp 0x53459f
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x53459f
mov ecx, str.no_more_rows_available
jmp 0x53459f
mov ecx, str.another_row_available
push ecx
push 0x6ec65c
push ebp
call fcn.0052c0a0
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [ebp + 0x24], edx
jmp 0x5345c2
mov dword [ebp + 0x24], edx
cmp edx, 0xc0a
je 0x5345e9
movzx eax, dl
cmp eax, 0xe
je 0x5345cf
cmp eax, 0xa
jne 0x5345e9
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x5345e4
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x5345e6
xor eax, eax
mov dword [edi + 0x4c], eax
push dword [ebp + 0x7c]
mov ecx, esi
mov eax, 0x66666667
push dword [ebp + 0xc8]
sub ecx, ebx
mov ebx, dword [esp + 0x20]
imul ecx
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.004b1f90
add esp, 0x14
cmp byte [ebp + 0x97], 2
jne 0x53462c
push ebp
call fcn.005352c0
add esp, 4
cmp ebx, 0xc0a
jne 0x53463f
push edi
call fcn.00516600
add esp, 4
jmp 0x534654
cmp ebx, 0xb
jne 0x534654
cmp byte [edi + 0x55], 0
jne 0x534654
mov eax, dword [edi + 0x20]
mov dword [edi + 0x20], eax
or dword [edi + 0x24], 2
mov al, byte [esp + 0x67]
mov edi, 1
test al, al
je 0x53467c
movzx eax, al
dec eax
push eax
push dword [esp + 0x28]
call fcn.0051fdd0
add esp, 8
jmp 0x53467c
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0x80], ebx
jb 0x5346e5
mov edx, dword [esp + 0x68]
ja 0x534698
cmp dword [esp + 0x1c], edx
jb 0x5346e5
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x5346e5
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x6c], edx
adc ebx, 0
call eax
add esp, 4
test eax, eax
je 0x534683
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x84], eax
mov dword [esp + 0x18], edx
jmp 0x534154
mov edx, dword [esp + 0x1c]
add dword [ebp + 0xb4], edx
cmp dword [ebp + 0xa0], 0
je 0x534701
push ebp
call fcn.00547360
add esp, 4
mov ecx, dword [esp + 0x354]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.006daf70
add esp, 0x348
ret