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

Disassembly:
sub esp, 0x384
mov eax, dword [0x571134]
xor eax, esp
mov dword [esp + 0x380], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x398]
xor al, al
mov byte [esp + 0x73], al
xorps xmm0, xmm0
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], 0
cmp dword [edi + 0xa0], 0
mov ebp, dword [edi]
mov ebx, dword [edi + 0x68]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x44], ebx
mov al, byte [ebp + 0x54]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebp
mov byte [esp + 0x38], al
mov byte [esp + 0x94], al
mov dword [esp + 0x60], 0
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x24], esi
mov dword [esp + 0x8c], 0
je 0x4c7c75
push edi
call fcn.004c7b50
add esp, 4
cmp dword [ebp + 0x174], 0
je 0x4c7c94
mov ecx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
xor eax, eax
jmp 0x4c7c9a
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x88], eax
mov dword [esp + 0x74], ecx
je 0x4cfe68
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [ebp + 0x1c8], 0
cmp dword [ebp + 0x128], 0
jne 0x4cfe4b
mov eax, dword [edi + 0x20]
xorps xmm2, xmm2
mov edx, dword [esp + 0x7c]
movsd qword [esp + 0xb8], xmm2
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*4]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x78]
add eax, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
adc edx, 0
mov dword [esp + 0x84], edx
mov dl, byte [ecx]
movzx ebx, dl
cmp ebx, 0xb8
ja case.0x4c7d2c.89
jmp dword [ebx*4 + 0x4cffcc]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov ebx, dword [esp + 0x24]
sub ecx, dword [esp + 0x44]
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.0x4c7d2c.9
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x4c8818
mov eax, dword [esi + eax*8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8], eax
mov eax, 4
mov dword [esi + ecx*8 + 4], edx
mov word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jne 0x4cf725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x44]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [edx + eax*4]
xor eax, eax
mov dword [esp + 0x10], edi
mov word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x44]
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 + 0x44]
mov dword [ebx + esi*8 + 4], edx
mov esi, ebx
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4c8818
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4cf75c
cmp dword [ecx + 4], 0
jne 0x4cf75c
mov eax, dword [edx + 4]
mov dword [edi + 0xd0], eax
dec dword [edi + 0xd8]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 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.004d0a00
mov edx, dword [edi + 0x68]
mov ecx, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x44], edx
cmp dword [eax + 8], 4
jne 0x4c7eed
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + eax*4 + 8]
dec ecx
mov esi, dword [edi + 0x58]
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*4]
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4c7f57
push ecx
call fcn.004832b0
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
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 ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4c7fac
push edx
call fcn.004832b0
add esp, 4
mov edx, eax
jmp 0x4c7fb5
mov eax, 4
mov word [edx + 0x10], ax
mov eax, 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 + 0x10]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4c8003
push ecx
call fcn.004832b0
add esp, 4
mov ecx, eax
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 + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4c805a
push esi
call fcn.004832b0
add esp, 4
mov esi, eax
jmp 0x4c8063
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4c806e
xor ecx, ecx
jmp 0x4c8086
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4c8073
sub ecx, edi
mov edi, dword [esp + 0x14]
and ecx, 0x3fffffff
cmp byte [esp + 0x38], 1
mov dword [ebx + 4], ecx
je 0x4c8124
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.004d2070
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x20], ebp
test ebp, ebp
jne 0x4ca1d7
test byte [esi + 0x10], 2
mov al, byte [esp + 0x38]
jne 0x4c80c3
mov byte [esi + 0x12], al
jmp 0x4c80dd
cmp byte [esi + 0x12], al
je 0x4c80dd
push dword [esp + 0x38]
push esi
call fcn.004d2480
add esp, 8
test eax, eax
jne 0x4c887b
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
mov ebp, dword [esp + 0x18]
mov dword [esi + 0x18], 0
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x4c8110
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4c8110
push eax
push ebp
call fcn.0049da00
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 0x4ca1d7
mov byte [ebx], 0x49
jmp 0x4c8136
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4c8158
push ecx
call fcn.004832b0
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 + 0x38]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x4c81a3
mov ebx, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x4c81a3
cmp dword [ebx + esi*8 + 4], edx
jne 0x4c81a3
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4c81e6
push edx
call fcn.004832b0
add esp, 4
mov edx, eax
jmp 0x4c81ef
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 0x4cebfd
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x4c823f
lea eax, [esi - 0x10]
push eax
call fcn.004e4250
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x4c8225
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 4]
mov edx, 0xffc1
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 0x10]
and ax, dx
or ax, 1
mov word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov edx, 0x9000
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
test word [eax + ecx*8 + 0x10], dx
lea esi, [eax + ecx*8]
je 0x4c82ce
push esi
call fcn.004832b0
add esp, 4
mov esi, eax
mov edx, 0x9000
jmp 0x4c82d7
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov edi, dword [eax + 4]
test ecx, ecx
jne 0x4c8384
test word [esi + 0x10], dx
jne 0x4c82f4
cmp dword [esi + 0x18], ecx
je 0x4c82fd
push esi
call fcn.004e4210
add esp, 4
mov eax, 0x410
mov ecx, 1
mov word [esi + 0x10], ax
xor eax, eax
test edi, edi
mov dword [esi + 0xc], 0
push ecx
cmovns eax, edi
mov dword [esi], eax
test eax, eax
mov byte [esi + 0x12], 1
cmovle eax, ecx
mov dword [esi + 8], 0
push eax
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004fd610
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xf9ff
and word [esi + 0x10], ax
mov dl, byte [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.004d2070
mov dl, byte [esp + 0x50]
add esp, 0x18
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov ebx, dword [ecx + 0x64]
lea edi, [eax + eax*4]
movzx eax, word [ebx + edi*8 - 0x18]
test al, 0x12
je 0x4c83f3
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x4c83e6
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x4ca1d7
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4c8414
push esi
call fcn.004e4250
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 + 0x14]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x10]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
nop
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4c8481
cmp dword [esi + 0x18], 0
je 0x4c848a
push esi
call fcn.004e4210
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 ecx, word [esi + 0x10]
test ecx, 0x4000
je 0x4c853a
test cl, 0x12
je 0x4c8531
test ecx, 0x400
je 0x4c8512
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x4c84de
test cl, 0x10
je 0x4c8512
mov eax, 1
push 1
push eax
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004fd610
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xf9ff
and word [esi + 0x10], ax
cmp dword [esi + 0x18], 0
je 0x4c8520
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4c8531
push esi
call fcn.004e41c0
add esp, 4
test eax, eax
jne 0x4c887f
mov eax, 0xbfff
and word [esi + 0x10], ax
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x4c8470
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4c859f
push 0x4000
push edi
push esi
call fcn.004e2f90
add esp, 0xc
jmp 0x4c85ce
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 0x4c85ce
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 eax, 0x4000
je 0x4c8658
test al, 0x12
je 0x4c864b
test eax, 0x400
je 0x4c862c
mov ecx, dword [esi]
add ecx, dword [esi + 0xc]
test ecx, ecx
jg 0x4c85f8
test al, 0x10
je 0x4c862c
mov ecx, 1
push 1
push ecx
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004fd610
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xf9ff
and word [esi + 0x10], ax
cmp dword [esi + 0x18], 0
je 0x4c863a
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4c864b
push esi
call fcn.004e41c0
add esp, 4
test eax, eax
jne 0x4c887f
mov eax, 0xbfff
and word [esi + 0x10], ax
movzx ecx, word [esi + 0x10]
movzx eax, cx
mov ecx, dword [esp + 0x10]
test eax, 0x800
je 0x4c8675
test byte [ecx + 2], 2
je 0x4c8675
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x4c8252
add esi, 0x28
add edi, 0x28
jmp 0x4c8583
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4c86d6
push 0x4000
push edx
push ecx
call fcn.004e2f90
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
movups xmm0, xmmword [edx]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x4c7f6d
mov edx, 0xcfff
and ax, dx
mov edx, 0x4000
or ax, dx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ebx, 0x9000
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8]
mov eax, dword [esi + eax*8 + 4]
test word [ecx + 0x10], bx
je 0x4c8763
push eax
push edx
push ecx
call fcn.004e5760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp dword [edi + 0x44], 0
jg 0x4cf833
jl 0x4c879e
cmp dword [edi + 0x40], 0
ja 0x4cf833
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
movzx ebx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
mov edx, ebx
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, ebx
mov dword [esp + 0x28], eax
mov ecx, ebx
mov al, byte [edi + 0x10]
or al, cl
mov dword [esp + 0x48], ecx
test al, 1
je 0x4c8857
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x4c882b
push ebp
call fcn.004e4250
add esp, 4
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, 1
mov word [ebp + 0x10], ax
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
test cl, 0x12
jne 0x4c88e7
cmp dword [esi + 0x18], 0x20
jge 0x4c88a5
push 0
push 0x20
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
je 0x4c88b2
mov byte [esi + 0x12], 0
mov ebp, dword [esp + 0x18]
push ebp
call fcn.004b2250
mov ebp, dword [esp + 0x18]
push str.out_of_memory
push ebp
call fcn.004c7bc0
mov edx, 7
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov eax, dword [esi + 0x20]
and edx, 0x2d
mov dword [esi + 8], eax
mov word [esi + 0x10], dx
push esi
push dword [esi + 8]
push 0x20
call fcn.004e4290
mov byte [esi + 0x12], 1
mov eax, 0x202
or word [esi + 0x10], ax
add esp, 0xc
cmp byte [esp + 0x38], 1
movzx ecx, word [esi + 0x10]
je 0x4c8943
push dword [esp + 0x38]
push esi
call fcn.004d2480
add esp, 8
jmp 0x4c893f
test ecx, 0x400
je 0x4c894d
mov eax, dword [esi + 0xc]
add eax, dword [esi]
test eax, eax
jg 0x4c890b
test bl, 0x10
jne 0x4c8906
mov eax, dword [esp + 0x28]
movzx ecx, ax
jmp 0x4c8943
mov eax, 1
push 1
push eax
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887b
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004fd610
mov eax, dword [esi]
add esp, 0xc
add dword [esi + 0xc], eax
mov eax, 0xf9ff
and word [esi + 0x10], ax
movzx ecx, word [esi + 0x10]
and ecx, 0xfffd
mov dword [esp + 0x48], ecx
movzx eax, word [edi + 0x10]
mov ebx, eax
mov ecx, eax
test bl, 0x12
jne 0x4c89c6
cmp dword [edi + 0x18], 0x20
jge 0x4c897a
push 0
push 0x20
push edi
call fcn.004d1b70
add esp, 0xc
test eax, eax
je 0x4c8987
mov byte [edi + 0x12], 0
jmp 0x4c887b
mov eax, dword [edi + 0x20]
and ecx, 0x2d
mov dword [edi + 8], eax
mov word [edi + 0x10], cx
push edi
push dword [edi + 8]
push 0x20
call fcn.004e4290
mov byte [edi + 0x12], 1
mov eax, 0x202
or word [edi + 0x10], ax
add esp, 0xc
cmp byte [esp + 0x38], 1
movzx ebx, word [edi + 0x10]
je 0x4c89be
push dword [esp + 0x38]
push edi
call fcn.004d2480
movzx ebx, word [edi + 0x10]
add esp, 8
and ebx, 0xfffd
jmp 0x4c89ee
test ebx, 0x400
je 0x4c89ee
push edi
call fcn.004d1940
add esp, 4
test eax, eax
jne 0x4c887b
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ebx, ax
mov eax, dword [edi + 0xc]
add eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
cdq
mov ecx, eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x3c], edx
jg 0x4ca1d7
jl 0x4c8a1f
cmp ecx, eax
ja 0x4ca1d7
xor eax, eax
cmp ebp, edi
sete al
push eax
mov eax, dword [esp + 0x2c]
add eax, 2
push eax
push ebp
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887b
mov ax, word [ebp + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [ebp + 0x10], ax
cmp ebp, edi
je 0x4c8a6d
push dword [edi + 0xc]
push dword [edi + 8]
push dword [ebp + 8]
call fcn.004fd090
add esp, 0xc
mov word [edi + 0x10], bx
push dword [esi + 0xc]
mov eax, dword [edi + 0xc]
push dword [esi + 8]
add eax, dword [ebp + 8]
push eax
call fcn.004fd090
mov dl, byte [esp + 0x44]
add esp, 0xc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x68]
mov word [esi + 0x10], ax
cmp dl, 1
jbe 0x4c8aa2
mov eax, dword [esp + 0x3c]
and ecx, 0xfffffffe
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov byte [ecx + eax], 0
mov eax, dword [ebp + 8]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [ebp + 0x10], ax
mov dword [ebp + 0xc], ecx
mov byte [ebp + 0x12], dl
jmp 0x4c8808
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 0x10]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
mov ebx, edx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ebp, [esi + eax*8]
mov eax, dword [esp + 0x10]
movzx esi, word [ebp + 0x10]
mov ecx, esi
mov dword [esp + 0x30], ebp
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x68], eax
mov al, cl
and al, bl
test al, 4
jne 0x4c8b52
or cl, bl
test cl, 1
jne 0x4c8ec1
and edx, 0x2d
je 0x4c8b27
mov ebx, edx
mov eax, esi
jmp 0x4c8b37
push edi
call fcn.004672f0
movzx ebx, ax
add esp, 4
movzx eax, word [ebp + 0x10]
and eax, 0x2d
jne 0x4c8b48
push ebp
call fcn.004672f0
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x4c8cec
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
mov ebx, dword [ebp]
mov ebp, dword [ebp + 4]
movzx eax, byte [eax]
mov edi, dword [edi]
add eax, 0xffffff96
mov esi, dword [esi + 4]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebp
cmp eax, 3
ja case.default.0x4c8b7c
jmp dword [eax*4 + 0x4d02b0]
push esi
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.00490d90
add esp, 0xc
test eax, eax
jne 0x4c8ce8
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
jmp 0x4c8e9c
test edi, edi
jne 0x4c8bd3
cmp esi, 0x80000000
jne 0x4c8bd3
test ebp, ebp
jg 0x4c8ce8
jl 0x4c8bc5
test ebx, ebx
jae 0x4c8ce8
add ebx, 0
adc ebp, 0x80000000
jmp 0x4c8e9c
neg edi
adc esi, 0
neg esi
jmp case.0x4c8b7c.106
test esi, esi
jl 0x4c8c39
jg 0x4c8be6
test edi, edi
je 0x4c8c2f
push esi
push edi
push 0x7fffffff
push 0xffffffffffffffff
call fcn.004fc180
cmp ebp, edx
jg 0x4c8ce8
jl 0x4c8c06
cmp ebx, eax
ja 0x4c8ce8
push esi
push edi
push 0x80000000
push 0
call fcn.004fc180
cmp ebp, edx
jg 0x4c8caf
jl 0x4c8ce8
cmp ebx, eax
jae 0x4c8caf
jmp 0x4c8ce8
test esi, esi
jg 0x4c8caf
jl 0x4c8c39
test edi, edi
jae 0x4c8caf
test ebp, ebp
jl 0x4c8c6e
jg 0x4c8c43
test ebx, ebx
je 0x4c8c64
push ebp
push ebx
push 0x80000000
push 0
call fcn.004fc180
cmp esi, edx
jg 0x4c8caf
jl 0x4c8ce8
cmp edi, eax
jae 0x4c8caf
jmp 0x4c8ce8
test ebp, ebp
jg 0x4c8caf
jl 0x4c8c6e
test ebx, ebx
jae 0x4c8caf
test edi, edi
jne 0x4c8c7a
cmp esi, 0x80000000
je 0x4c8ce8
test ebx, ebx
jne 0x4c8c86
cmp ebp, 0x80000000
je 0x4c8ce8
push esi
push edi
push 0x80000000
push 1
call fcn.004fc180
mov ecx, ebx
neg ecx
mov dword [esp + 0x28], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x4c8ce8
jl 0x4c8caf
cmp dword [esp + 0x28], eax
ja 0x4c8ce8
push esi
push edi
push ebp
push ebx
call fcn.004fc310
jmp 0x4c8e98
mov eax, edi
or eax, esi
je 0x4c8ec1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4c8e6e
test ebx, ebx
jne 0x4c8e6e
cmp ebp, 0x80000000
jne 0x4c8e6e
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x4c8d0d
movsd xmm0, qword [ebx]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4c8d63
test al, 0x24
je 0x4c8d2c
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.004fb9b0
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4c8d63
test al, 0x12
je 0x4c8d54
push ebx
call fcn.0047fea0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
add esp, 4
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4c8d63
movsd xmm0, qword [esp + 0xb8]
movsd qword [esp + 0x28], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x4c8d72
movsd xmm0, qword [ebp]
jmp 0x4c8d9a
test al, 0x24
je 0x4c8d83
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.004fb9b0
jmp 0x4c8d9a
test al, 0x12
je 0x4c8d9a
push ebp
call fcn.0047fea0
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
add esp, 4
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4c8da9
jmp dword [eax*4 + 0x4d02c0]
addsd xmm0, qword [esp + 0x28]
jmp 0x4c8e24
subsd xmm0, qword [esp + 0x28]
jmp 0x4c8e24
mulsd xmm0, qword [esp + 0x28]
jmp 0x4c8e24
movsd xmm1, qword [esp + 0x28]
ucomisd xmm1, qword [esp + 0xb8]
lahf
test ah, 0x44
jnp 0x4c8ec1
divsd xmm0, xmm1
jmp 0x4c8e24
push ebx
call fcn.004d1060
push ebp
mov esi, eax
mov edi, edx
call fcn.004d1060
mov ecx, esi
add esp, 8
or ecx, edi
je 0x4c8ec1
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4c8e14
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004fc350
mov ecx, eax
call fcn.004fb9b0
movsd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x4c8e4a
mov eax, dword [esp + 0x28]
and ecx, 0xfffff
or eax, ecx
jne 0x4c8ec1
mov ecx, dword [esp + 0x68]
mov edx, 0xf248
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 8
movzx eax, ax
mov word [ecx + 0x10], ax
jmp 0x4c8808
push esi
push edi
push ebp
push ebx
call fcn.004fc180
jmp 0x4c8e98
mov eax, edi
or eax, esi
je 0x4c8ec1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4c8e8f
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.004fc350
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x68]
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
jmp 0x4c8808
mov eax, dword [esp + 0x68]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x4c8ed6
push eax
jmp 0x4c8800
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4c8808
mov eax, dword [ecx + 4]
test eax, eax
je 0x4c8818
lea eax, [eax + eax*4]
mov edx, 0x9000
test word [esi + eax*8 + 0x10], dx
lea eax, [esi + eax*8]
je 0x4c8f25
push 0
push 0
push eax
call fcn.004e5760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov dword [eax], 0
mov edx, 4
mov dword [eax + 4], 0
mov word [eax + 0x10], dx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [esi + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
test al, 1
je 0x4c8fd2
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x4c8faa
push ebp
call fcn.004e4250
add esp, 4
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
mov eax, 1
mov edi, dword [esp + 0x14]
mov word [ebp + 0x10], ax
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push ecx
call fcn.004d1060
mov ebx, eax
mov esi, edx
push edi
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], esi
call fcn.004d1060
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x4c9006
and ebx, edi
and esi, edx
jmp 0x4c906c
cmp cl, 0x67
jne 0x4c9011
or ebx, edi
or esi, edx
jmp 0x4c906c
mov eax, edi
or eax, edx
je 0x4c906c
test edx, edx
jg 0x4c9045
jl 0x4c9021
test edi, edi
jae 0x4c903a
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4c9045
jg 0x4c9033
cmp edi, 0xffffffc0
jbe 0x4c9045
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4c9087
jg 0x4c9045
cmp edi, 0x40
jb 0x4c9087
test esi, esi
jg 0x4c905b
jl 0x4c904f
test ebx, ebx
jae 0x4c905b
cmp cl, 0x68
je 0x4c905b
or ebx, 0xffffffff
or esi, ebx
jmp 0x4c906c
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov dword [ebp], ebx
mov ecx, 0xf244
mov dword [ebp + 4], esi
mov ax, word [ebp + 0x10]
and ax, cx
or ax, 4
jmp 0x4c8830
movq xmm1, qword [esp + 0xe8]
movd xmm0, edi
cmp cl, 0x68
jne 0x4c90a5
psllq xmm1, xmm0
movq qword [esp + 0x28], xmm1
jmp 0x4c9064
psrlq xmm1, xmm0
movq qword [esp + 0x28], xmm1
test esi, esi
jg 0x4c9064
jl 0x4c90b9
test ebx, ebx
jae 0x4c9064
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.004fc0e0
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
or ebx, eax
or esi, edx
jmp 0x4c906c
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004d1060
mov dword [esi], eax
mov ecx, 0xf244
mov dword [esi + 4], edx
add esp, 4
mov ax, word [esi + 0x10]
and ax, cx
mov ecx, dword [esp + 0x10]
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 4], edx
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x4c9183
test al, 0x28
jne 0x4c9158
test al, 2
je 0x4c9161
push 1
push esi
call fcn.0045e840
add esp, 8
jmp 0x4c9161
push esi
call fcn.004d10d0
add esp, 4
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x4c9183
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
jne 0x4cf729
mov edx, 0x14
jmp 0x4cf871
mov eax, dword [esp + 0x1c]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea eax, [esi + eax*8]
je 0x4c8818
push eax
call fcn.004d1e50
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4c920e
push esi
call fcn.004d1940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cfe87
mov eax, dword [esp + 0x10]
push dword [esp + 0x80]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.004d1790
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea esi, [esi + eax*8]
movzx eax, word [edi + 0x10]
mov edx, ecx
and edx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
test dl, 4
je 0x4c92fe
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x4c92be
jg 0x4c9294
cmp ebp, edx
jbe 0x4c92b4
mov eax, dword [0x56f2e4]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4cf725
mov dword [esp + 0x60], 1
jmp 0x4c880c
cmp ecx, eax
jg 0x4c92de
jl 0x4c92be
cmp ebp, edx
jae 0x4c92de
mov eax, dword [0x56f2dc]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4cf725
mov dword [esp + 0x60], 0xffffffff
jmp 0x4c880c
mov eax, dword [0x56f2e0]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4cf725
mov dword [esp + 0x60], 0
jmp 0x4c880c
mov ebx, dword [esp + 0x28]
mov eax, ecx
or eax, ebx
test al, 1
je 0x4c937e
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x4c934f
test dl, 1
je 0x4c933c
test ecx, 0x100
jne 0x4c933c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 0
movzx edx, byte [eax]
mov eax, dword [0x56f2e0]
jmp 0x4c949c
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x4c9474
mov edi, dword [esp + 0x14]
test al, 0x10
jne 0x4cf725
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], 1
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x4c93cc
test al, 2
je 0x4c945f
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x4c93b0
push 0
push edi
call fcn.0045e840
movzx ecx, word [esi + 0x10]
add esp, 8
mov dword [esp + 0x34], ecx
and cl, 0x2e
cmp cl, 2
jne 0x4c945f
push 0
push esi
call fcn.0045e840
add esp, 8
jmp 0x4c945f
cmp dl, 0x42
jne 0x4c945f
test al, 2
je 0x4c945f
test bl, 2
jne 0x4c9425
test bl, 0x2c
je 0x4c9425
push 1
push dword [esp + 0x84]
push edi
call fcn.004d2400
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, bx
add esp, 0xc
and ax, cx
xor ax, word [edi + 0x10]
movzx ebx, ax
cmp edi, esi
jne 0x4c9421
mov eax, ebx
or eax, 2
movzx ecx, ax
mov dword [esp + 0x34], ecx
jmp 0x4c9425
mov ecx, dword [esp + 0x34]
test cl, 2
jne 0x4c945f
test cl, 0x2c
je 0x4c945f
push 1
push dword [esp + 0x84]
push esi
call fcn.004d2400
mov ecx, dword [esp + 0x40]
add esp, 0xc
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push edi
push esi
call fcn.004b1d90
mov ecx, dword [esp + 0x40]
add esp, 0xc
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
movzx edx, byte [eax]
mov eax, dword [esp + 0x60]
test eax, eax
jns 0x4c948e
mov eax, dword [0x56f2dc]
jmp 0x4c949c
jne 0x4c9497
mov eax, dword [0x56f2e0]
jmp 0x4c949c
mov eax, dword [0x56f2e4]
add eax, edx
mov al, byte [eax]
mov word [esi + 0x10], cx
mov word [edi + 0x10], bx
mov edi, dword [esp + 0x14]
test al, al
je 0x4c81a3
jmp 0x4cf725
cmp dword [esp + 0x60], 0
je 0x4cf725
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
jne 0x4c94e1
xor eax, eax
jmp 0x4c94e7
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x68], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], ebx
test ecx, ecx
jle 0x4c81a3
lea ebx, [edx + 0x14]
test eax, eax
je 0x4c9521
mov edi, dword [eax + esi*4]
jmp 0x4c9523
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x24]
push dword [ebx]
movzx ebp, byte [eax + esi]
mov eax, dword [esp + 0x54]
and ebp, 1
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov eax, dword [esp + 0x70]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004b1d90
mov edx, eax
add esp, 0xc
mov dword [esp + 0x60], edx
test edx, edx
jne 0x4c9576
mov eax, dword [esp + 0x3c]
inc esi
mov edx, dword [esp + 0x48]
add ebx, 4
cmp esi, dword [esp + 0x28]
jl 0x4c9518
jmp 0x4c8834
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
mov esi, dword [esp + 0x24]
je 0x4c95ad
mov eax, dword [esp + 0x68]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4c95a7
mov eax, dword [esp + 0x50]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4c95ad
neg edx
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x10]
test ebp, ebp
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
je case.0x4c7d2c.89
neg edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x4c9609
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
jne 0x4c962e
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
lea ecx, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
push 2
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004c7140
mov ecx, dword [ebx + 8]
mov esi, eax
mov eax, dword [esp + 0x2c]
push 2
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
push ecx
call fcn.004c7140
mov ecx, ebx
add esp, 0x10
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x4c9693
mov dl, byte [esi + eax + 0x52d4bc]
jmp 0x4c969a
mov dl, byte [esi + eax + 0x52d4c8]
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x4c96d9
mov ax, word [esi + ecx*8 + 0x10]
mov edx, 0xf241
and ax, dx
or ax, 1
movzx eax, ax
mov word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
movzx eax, dl
cdq
mov dword [esi + ecx*8], eax
mov dword [esi + ecx*8 + 4], edx
mov edx, 0xf244
mov ax, word [esi + ecx*8 + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004c7140
mov ecx, dword [esp + 0x18]
mov ebx, 0x9000
add esp, 8
xor eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 8]
cdq
lea ecx, [ecx + ecx*4]
test word [esi + ecx*8 + 0x10], bx
lea ecx, [esi + ecx*8]
je 0x4c976c
push edx
push eax
push ecx
call fcn.004e5760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
lea ecx, [esi + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
jne 0x4c981f
push 0
push ecx
call fcn.004c7140
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x4c97f2
push 0
push eax
push esi
call fcn.004e5760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4c984e
push esi
call fcn.004e4250
mov ecx, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
mov eax, 1
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4c98a0
push esi
call fcn.004e4250
add esp, 4
jmp 0x4c98a9
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x4c824e
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.004d1060
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
jmp 0x4c8838
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x4c9943
mov ebx, dword [esp + 0x14]
mov eax, 0x66666667
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x14]
sub ecx, dword [ebx + 0x68]
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 0x4cf723
bts edx, ecx
mov byte [esi + edi], dl
mov edi, ebx
mov ecx, dword [ebx + 0x68]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x68]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 4]
je 0x4cc2ef
mov ecx, edi
mov edi, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004c7140
add esp, 8
test eax, eax
jne 0x4cf725
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
xor eax, eax
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004c7140
add esp, 8
test eax, eax
jne 0x4c7f6d
jmp 0x4cf725
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4cf725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x4c9a4a
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x4c9a41
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x4c9a38
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x4c9a6c
movzx eax, byte [eax + 0x52d504]
jmp 0x4c9a6f
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x4c9a63
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
movzx eax, word [esi + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x5328e8]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov ecx, dword [esp + 0x10]
test word [ecx + 2], ax
jne 0x4cf725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4c9af4
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4c9af4
mov eax, edx
mov ecx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [esi + eax*8 + 0x10], cx
lea eax, [esi + eax*8]
jne 0x4c8f01
mov dword [eax], 0
mov ecx, 4
mov dword [eax + 4], 0
mov word [eax + 0x10], cx
mov ecx, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [esp + 0x10]
mov ecx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [esi + eax*8 + 0x10], cx
lea eax, [esi + eax*8]
je 0x4c9b2d
push eax
call fcn.004e4250
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, 1
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4cf725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4c7f6d
cmp byte [eax + 2], 0
je 0x4c7f6d
mov eax, dword [esp + 0x10]
mov ecx, 0x9000
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test word [esi + eax*8 + 0x10], cx
lea eax, [esi + eax*8]
je 0x4c9bb3
push eax
call fcn.004e4250
add esp, 4
jmp 0x4cf725
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4cf725
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x58], ebx
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x48]
mov dword [esp + 0x34], ebp
cmp eax, dword [edi + 0x1c]
je 0x4c9c34
cmp byte [esi + 2], 0
jne 0x4c9ca4
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x4c9c12
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4c9c58
mov eax, dword [eax + ebx*4 + 4]
test eax, eax
je 0x4c9c58
mov esi, dword [esi + 0x28]
lea ebx, [eax - 1]
mov edi, dword [esp + 0x14]
jmp 0x4c9bd1
cmp byte [edi], 0
je 0x4c9c6f
push esi
call fcn.004d1020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov edi, dword [esp + 0x14]
jmp 0x4c9bd5
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x4c9d2e
push esi
call fcn.004d1020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
je 0x4c9bd5
jmp 0x4cf875
push esi
call fcn.004d0980
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push edi
call fcn.00474ce0
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 0x4c9c98
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [esi + 0x54], ecx
mov eax, dword [edi + 0x28]
mov edi, dword [esp + 0x14]
jmp 0x4c9ccd
cmp byte [esi], 3
jne 0x4c9dbc
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4c9dbc
mov edx, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [ebp], eax
cmp eax, 0x80
jae 0x4c9ced
mov eax, 1
jmp 0x4c9cfc
push ebp
push dword [esi + 0x4c]
call fcn.004ad290
add esp, 8
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov edx, dword [ebp]
cmp dword [esi + 0x54], edx
jae 0x4c9dae
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x4c9f86
cmp eax, dword [esi + 0x50]
ja 0x4c9f86
movzx ecx, word [esi + 0x3e]
cmp ecx, ebx
ja 0x4ca072
mov edi, dword [esi + 0x34]
mov edx, dword [ebp]
cmp edi, edx
jae 0x4c9fa7
mov ebx, dword [esi + 0x4c]
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x4c9e21
xorps xmm0, xmm0
lea eax, [esp + 0x164]
push eax
movups xmmword [esp + 0x168], xmm0
movups xmmword [esp + 0x178], xmm0
movq qword [esp + 0x188], xmm0
push dword [ebp]
push dword [esi + 0x2c]
call fcn.004d1b10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ebx, dword [esp + 0x16c]
movzx eax, word [esi + 0x3e]
mov edx, dword [ebp]
mov edi, dword [esi + 0x34]
mov dword [esp + 0x30], ebx
jmp 0x4c9e23
mov ebx, dword [esi + 0x4c]
xor eax, eax
mov edi, dword [esi + 0x34]
mov dword [esp + 0x30], ebx
jmp 0x4c9e23
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov ecx, 0x9000
test word [esi + eax*8 + 0x10], cx
lea eax, [esi + eax*8]
je 0x4c9dfd
push eax
call fcn.004e4250
add esp, 4
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebp, dword [esp + 0x18]
mov ecx, 1
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, ecx
movzx eax, ax
xor ecx, ecx
mov dword [esp + 0x54], eax
add edx, ebx
add edi, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x68], edx
mov ebp, dword [ebp + eax*4]
add eax, 0x17
lea eax, [esi + eax*4]
mov dword [esp + 0x48], eax
movzx ebx, byte [edi]
mov dword [esp + 0x3c], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x4c9e66
movzx eax, byte [ebx + 0x5320e8]
inc edi
cdq
add ebp, eax
adc ecx, edx
jmp 0x4c9ea2
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.004ad290
mov ebx, dword [esp + 0x44]
add esp, 8
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x48]
mov dword [eax], ebx
cmp ebx, 0x80
jb 0x4c9e92
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x4c9e99
movzx eax, byte [ebx + 0x5320e8]
mov ecx, dword [esp + 0x50]
add ebp, eax
adc ecx, 0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
inc edx
mov dword [esp + 0x50], ecx
add eax, 4
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], eax
mov dword [ecx + edx*4], ebp
mov ecx, dword [esp + 0x50]
cmp edx, dword [esp + 0x58]
ja 0x4c9edb
cmp edi, dword [esp + 0x68]
jb 0x4c9e46
mov eax, dword [esp + 0x68]
jmp 0x4c9ee3
mov eax, dword [esp + 0x68]
cmp edi, eax
jb 0x4c9f3a
cmp edi, eax
ja 0x4c9f45
cmp ebp, dword [esi + 0x50]
jne 0x4c9f45
test ecx, ecx
jne 0x4c9f45
mov ebp, dword [esp + 0x34]
sub edi, dword [esp + 0x30]
movzx eax, dx
mov word [esi + 0x3e], ax
mov ecx, eax
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], 0
jne 0x4c9f35
test dword [esp + 0x174], 0x9000
jne 0x4c9f21
cmp dword [esp + 0x17c], 0
je 0x4c9f35
lea eax, [esp + 0x164]
push eax
call fcn.004e4210
movzx eax, word [esi + 0x3e]
add esp, 4
movzx eax, ax
jmp 0x4c9fab
test ecx, ecx
jb 0x4c9ef0
ja 0x4c9f45
cmp ebp, dword [esi + 0x50]
jbe 0x4c9ef0
mov ebp, dword [esp + 0x34]
cmp dword [ebp], 0
jne 0x4c9f55
xor edx, edx
mov edi, eax
jmp 0x4c9ef4
cmp dword [esi + 0x4c], 0
jne 0x4c9f82
test dword [esp + 0x174], 0x9000
jne 0x4c9f72
cmp dword [esp + 0x17c], 0
je 0x4c9f82
lea eax, [esp + 0x164]
push eax
call fcn.004e4210
add esp, 4
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4cf862
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [edx + eax*4]
mov dword [esp + 0x10], ebp
jmp 0x4c880c
xor ebx, ebx
mov eax, ecx
movzx eax, ax
cmp eax, dword [esp + 0x58]
ja 0x4ca076
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
cmp byte [ebp + 1], 0xf6
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, 0x9000
jne 0x4ca058
mov edx, dword [ebp + 0x10]
test word [ecx + 0x10], ax
je 0x4ca00f
push 0x2000
push edx
push ecx
call fcn.004e2f90
mov ebp, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
movups xmm0, xmmword [edx]
mov ebp, dword [esp + 0x18]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x4c8f8f
mov edi, dword [esp + 0x14]
mov edx, 0xafff
and ax, dx
or ax, bx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
test word [ecx + 0x10], ax
je 0x4ca064
push ecx
jmp 0x4c8f83
mov eax, 1
mov word [ecx + 0x10], ax
jmp 0x4c8f8b
mov ebx, dword [esi + ebx*4 + 0x5c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4ca09f
push edi
call fcn.004e4250
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x58]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ecx*4 + 4]
jb 0x4ca149
mov eax, dword [esp + 0x34]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x4ca0cf
push edi
push ebx
push ebp
call fcn.004d36c0
add esp, 0xc
jmp 0x4c8834
mov al, byte [esp + 0x38]
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 0x4ca115
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x78]
jg 0x4ca1d7
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887b
mov eax, dword [edi + 8]
jmp 0x4ca11b
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push eax
call fcn.004fd090
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 + 0x52d510]
mov word [edi + 0x10], ax
jmp 0x4c8834
mov al, byte [esp + 0x38]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x4ca169
cmp al, 0x80
je 0x4ca183
cmp ebx, 0xc
jb 0x4ca169
test bl, 1
je 0x4ca183
cmp al, 0xc0
je 0x4ca183
cmp ebx, 0x80
jb 0x4ca178
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x4ca17f
movzx eax, byte [ebx + 0x5320e8]
test eax, eax
jne 0x4ca197
push edi
push ebx
push 0x52e778
call fcn.004d36c0
add esp, 0xc
jmp 0x4c8834
push edi
push dword [esp + 0x90]
mov edi, dword [esp + 0x1c]
push dword [edi + 0x1c]
push 0
push dword [ebp + ecx*4]
push ebx
push ecx
push esi
call fcn.004e2fb0
mov edx, eax
add esp, 0x20
mov dword [esp + 0x20], edx
test edx, edx
je 0x4c880c
cmp edx, 7
je 0x4c887b
cmp edx, 0x12
jne 0x4cf875
mov ebp, dword [esp + 0x14]
push str.string_or_blob_too_big
push ebp
call fcn.004c7bc0
mov edx, 0x12
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov eax, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], edi
mov eax, dword [eax + 4]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
mov edx, dword [ecx + 4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x68], edx
cmp ax, word [ecx + 0x22]
jge 0x4c824e
lea ebx, [edx + 8]
mov dword [esp + 0x48], ebx
nop
movzx eax, word [ebx + 6]
test al, 0x60
je 0x4ca24e
test al, 0x20
jne 0x4ca30f
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x4ca30c
push dword [esp + 0x80]
movzx eax, byte [ebx]
push eax
push esi
call fcn.0045e7d0
movzx ecx, word [esi + 0x10]
add esp, 0xc
mov ebp, ecx
test cl, 1
jne case.default.0x4ca286
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x4ca286
jmp dword [edx*4 + 0x4d02d0]
test cl, 0x10
jmp 0x4ca302
test cl, 4
jmp 0x4ca302
test cl, 2
jmp 0x4ca302
test cl, 4
je 0x4ca2ff
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 0x4ca2d9
jb 0x4ca2c0
cmp edx, 0xffffffff
ja 0x4ca2d9
or ecx, 0x20
movzx eax, cx
and eax, 0xfffb
mov word [esi + 0x10], ax
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
jmp case.default.0x4ca286
mov edx, ebx
mov ecx, edi
call fcn.004fb9b0
or ebp, 8
movsd qword [esi], xmm0
movzx eax, bp
and eax, 0xfffb
mov word [esi + 0x10], ax
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
jmp case.default.0x4ca286
test cl, 0x28
je 0x4cf895
mov ecx, dword [esp + 0x28]
add esi, 0x28
movsx eax, word [ecx + 0x22]
inc edi
add ebx, 0x10
mov dword [esp + 0x3c], edi
mov dword [esp + 0x48], ebx
cmp edi, eax
jl 0x4ca230
jmp 0x4c8834
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [ebx]
push dword [esp + 0x80]
mov byte [esp + 0xac], al
push dword [esp + 0xac]
push esi
call fcn.0045e7d0
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x4ca3b3
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x4ca3b3
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4ca398
jb 0x4ca389
cmp edx, 0xffffffff
ja 0x4ca398
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x4ca3b3
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.004fb9b0
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 0x4cc44c
add esi, 0x28
jmp 0x4ca33e
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
xor ecx, ecx
movlpd qword [esp + 0x48], xmm0
mov dword [esp + 0x54], ecx
movlpd qword [esp + 0x68], xmm0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x3c], ebx
lea ebp, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x28], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
test edi, edi
je 0x4ca465
mov al, byte [edi]
lea esi, [ebx + 0x10]
mov ebp, dword [esp + 0x80]
mov byte [esp + 0xac], al
nop
push ebp
push dword [esp + 0xb0]
lea eax, [esi - 0x10]
push eax
call fcn.0045e7d0
add esp, 0xc
cmp byte [edi], 0x45
jne 0x4ca44b
movzx eax, word [esi]
test al, 4
je 0x4ca44b
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
mov al, byte [edi + 1]
inc edi
add esi, 0x28
mov byte [esp + 0xac], al
test al, al
jne 0x4ca420
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x48]
lea eax, [ebx - 0xc]
mov ebx, dword [esp + 0x6c]
lea eax, [eax + ebp*8]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x68], ebx
movzx ebx, word [eax - 0xc]
mov dword [esp + 0x58], eax
test bl, 1
je 0x4ca4ad
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [eax], ebx
jmp 0x4ca71d
test bl, 0x24
je 0x4ca670
mov ebp, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
test ebp, ebp
jg 0x4ca4d0
jl 0x4ca4c6
test esi, esi
jae 0x4ca4d0
mov ecx, esi
mov eax, ebp
not ecx
not eax
jmp 0x4ca4d4
mov ecx, esi
mov eax, ebp
inc dword [esp + 0x54]
test eax, eax
ja 0x4ca5de
jb 0x4ca4e7
cmp ecx, 0x7f
ja 0x4ca53e
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x4ca519
cmp ebx, ebp
jne 0x4ca519
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x95], 4
jb 0x4ca519
mov esi, dword [esp + 0x58]
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
mov esi, dword [esp + 0x58]
add edx, 1
mov ecx, dword [esp + 0x54]
mov eax, 1
adc edi, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
test eax, eax
ja 0x4ca5de
jb 0x4ca550
cmp ecx, 0x7fff
ja 0x4ca576
mov esi, dword [esp + 0x58]
add edx, 2
mov ecx, dword [esp + 0x54]
mov eax, 2
adc edi, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
test eax, eax
ja 0x4ca5de
jb 0x4ca584
cmp ecx, 0x7fffff
ja 0x4ca5aa
mov esi, dword [esp + 0x58]
add edx, 3
mov ecx, dword [esp + 0x54]
mov eax, 3
adc edi, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
test eax, eax
ja 0x4ca5de
jb 0x4ca5b8
cmp ecx, 0x7fffffff
ja 0x4ca5de
mov esi, dword [esp + 0x58]
add edx, 4
mov ecx, dword [esp + 0x54]
mov eax, 4
adc edi, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
cmp eax, 0x7fff
ja 0x4ca612
jb 0x4ca5ec
cmp ecx, 0xffffffff
ja 0x4ca612
mov esi, dword [esp + 0x58]
add edx, 6
mov ecx, dword [esp + 0x54]
mov eax, 5
adc edi, 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edi
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
add edx, 8
mov dword [esp + 0x34], edx
adc edi, 0
mov dword [esp + 0x30], edi
test bl, 0x20
je 0x4ca658
mov edx, ebp
mov ecx, esi
call fcn.004fb9b0
mov esi, dword [esp + 0x58]
and ebx, 0xffdf
mov ecx, dword [esp + 0x54]
or ebx, 8
mov eax, 7
movsd qword [esi - 0x1c], xmm0
mov word [esi - 0xc], bx
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
mov esi, dword [esp + 0x58]
mov eax, 6
mov ecx, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4ca721
test bl, 8
je 0x4ca68f
inc ecx
mov dword [eax], 7
add edx, 8
mov dword [esp + 0x34], edx
adc edi, 0
mov dword [esp + 0x30], edi
jmp 0x4ca71d
mov edi, dword [eax - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
lea ebp, [edi + 6]
lea ebp, [eax + ebp*2]
test ebx, 0x400
je 0x4ca6e0
mov esi, dword [esp + 0x58]
mov eax, edx
add esi, 0xffffffe4
or eax, dword [esp + 0x30]
mov ecx, dword [esi]
lea ebp, [ebp + ecx*2]
je 0x4ca6d1
push esi
call fcn.004d1940
add esp, 4
test eax, eax
jne 0x4c887b
add edi, dword [esi]
jmp 0x4ca6dc
mov eax, ecx
cdq
add dword [esp + 0x68], eax
adc dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
add edx, edi
mov esi, 1
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], edx
adc edi, 0
mov edx, ebp
mov dword [esp + 0x30], edi
shr edx, 7
xor ecx, ecx
mov eax, edx
or eax, ecx
je 0x4ca711
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x4ca703
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
add ecx, esi
mov dword [eax], ebp
mov dword [esp + 0x54], ecx
add eax, 0xffffffe4
cmp eax, dword [esp + 0x3c]
je 0x4ca73a
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
sub eax, 0x28
jmp 0x4ca48b
cmp ecx, 0x7e
jle 0x4ca799
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4ca764
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4ca756
mov eax, dword [esp + 0x54]
mov edi, 1
add eax, ebx
mov dword [esp + 0x54], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4ca791
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4ca783
mov ecx, dword [esp + 0x54]
cmp ebx, edi
jge 0x4ca79e
inc ecx
mov dword [esp + 0x54], ecx
mov ebx, dword [esp + 0x34]
mov eax, ecx
mov esi, dword [esp + 0x50]
cdq
mov ebp, eax
mov edi, edx
mov eax, dword [esp + 0x30]
add ebx, ebp
mov esi, dword [esi + 0x18]
mov ecx, ebx
adc eax, edi
add ecx, dword [esp + 0x68]
adc eax, dword [esp + 0x48]
mov dword [esp + 0x30], eax
mov eax, esi
cdq
cmp dword [esp + 0x30], edx
jg 0x4ca7d5
jl 0x4ca812
cmp ecx, eax
jbe 0x4ca812
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x30], edx
jg 0x4ca1d7
jl 0x4ca7f1
cmp ecx, eax
ja 0x4ca1d7
cmp esi, ebx
jge 0x4ca812
push 0
push ebx
push dword [esp + 0x58]
call fcn.004d1b70
add esp, 0xc
test eax, eax
jne 0x4c887b
mov edx, dword [esp + 0x50]
jmp 0x4ca81c
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x68]
mov eax, 0x10
mov dword [edx + 0xc], ebx
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x48]
je 0x4ca83f
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x54]
mov ebx, dword [edx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x4ca855
mov byte [ebx], al
inc ebx
jmp 0x4ca862
push edi
push ebp
push ebx
call fcn.004ba6f0
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x3c]
add edi, 0xc
nop dword [eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x4ca8ef
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x4ca92a
movzx ebp, byte [edx + 0x5320e8]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
lea edx, [ebp - 1]
cmp edx, 5
ja case.0x4ca898.5
jmp dword [edx*4 + 0x4d02e4]
mov byte [esi + 7], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 6], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 5], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 4], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 3], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 2], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 1], cl
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x4c], eax
mov byte [esi], cl
add esi, ebp
jmp 0x4ca92a
cmp edx, 0x80
jae 0x4ca907
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x4ca92a
mov eax, dword [edi]
test eax, eax
jle 0x4ca92a
jmp 0x4ca91b
push 0
push edx
push ebx
call fcn.004ba6f0
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x4ca92a
push eax
push dword [edi - 4]
push esi
call fcn.004fd090
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x28]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x3c]
cmp edi, eax
je 0x4cc44c
add edi, 0x28
jmp 0x4ca870
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x2c]
je 0x4ca96e
push eax
call fcn.00497cc0
add esp, 4
mov esi, eax
mov edi, edx
jmp 0x4ca99c
lea ecx, [esp + 0x28]
xorps xmm0, xmm0
push ecx
push eax
push ebp
movlpd qword [esp + 0x34], xmm0
call fcn.00495890
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
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 0x4ca9ce
push eax
call fcn.004832b0
add esp, 4
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4cd614
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4cd614
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x50], edi
test edi, edi
jne 0x4caabe
cmp dword [ebp + 0xc4], edi
jg 0x4cf8d9
test ebx, ebx
jne 0x4caa0b
xor esi, esi
jmp 0x4caa1f
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4caa10
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.004d4ff0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.0049db10
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4cad3f
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.004fd090
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x4caa80
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x4caa86
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 0x4cad3f
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov esi, dword [eax + 0x1ec]
test esi, esi
je 0x4caae7
nop
push ebx
push dword [esi]
call fcn.004c1f20
add esp, 8
test eax, eax
je 0x4cab08
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x4caad0
mov ebp, dword [esp + 0x14]
push ebx
push str.no_such_savepoint:__s
push ebp
call fcn.004c7bc0
mov edx, 1
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
cmp dword [ecx + 0xc4], 0
jle 0x4cab22
cmp edx, 1
je 0x4cf8f6
cmp dword [esi + 0x18], 0
jne 0x4cab8b
cmp byte [ecx + 0x5d], 0
je 0x4cab8b
mov ebx, 1
mov dword [esp + 0x48], ebx
cmp edx, ebx
jne 0x4cab93
push ebx
push dword [esp + 0x18]
call fcn.004c7320
mov edi, eax
add esp, 8
test edi, edi
jne 0x4cf95c
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push edi
mov byte [eax + 0x55], bl
call fcn.004d0c60
add esp, 4
cmp eax, 5
je 0x4cf927
mov edx, dword [edi + 0x24]
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf916
mov edx, dword [esp + 0x18]
mov byte [edx + 0x5d], 0
jmp 0x4cac85
mov dword [esp + 0x48], 0
mov eax, dword [ecx + 0x1f8]
sub eax, ebp
lea ebp, [eax - 1]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
cmp edx, 2
jne 0x4cac07
mov ecx, dword [ecx + 0x18]
xor ebx, ebx
and ecx, 1
mov dword [esp + 0x3c], ecx
test eax, eax
jle 0x4cac0d
xor ecx, 1
xor edi, edi
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x18]
push ecx
push 0x204
mov eax, dword [eax + 0x10]
push dword [edi + eax + 4]
call fcn.004988f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov eax, dword [esp + 0x18]
inc ebx
mov ecx, dword [esp + 0x28]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x4cabc3
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
jmp 0x4cac0d
xor ecx, ecx
mov dword [esp + 0x3c], ecx
xor ebx, ebx
test eax, eax
jle 0x4cac54
mov eax, dword [esp + 0x18]
xor edi, edi
nop dword [eax]
mov eax, dword [eax + 0x10]
push ebp
push edx
push dword [edi + eax + 4]
call fcn.00497d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov eax, dword [esp + 0x18]
inc ebx
mov edx, dword [esp + 0x50]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x4cac20
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4cac71
mov ebx, dword [esp + 0x18]
push 0
push ebx
call fcn.004a02b0
push ebx
call fcn.004bb530
add esp, 0xc
or dword [ebx + 0x18], 1
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x4cacbe
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
push ecx
push ebx
mov dword [ebx + 0x1ec], eax
call fcn.0049da00
dec dword [ebx + 0x1f8]
add esp, 8
mov ecx, dword [ebx + 0x1ec]
cmp ecx, esi
jne 0x4cac93
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
cmp edi, 1
jne 0x4cacea
mov eax, dword [esi + 0x18]
push esi
push edx
mov dword [edx + 0x1ec], eax
call fcn.0049da00
add esp, 8
test ebx, ebx
jne 0x4cad3b
mov eax, dword [esp + 0x18]
dec dword [eax + 0x1f8]
jmp 0x4cad17
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 0x4cad17
cmp edi, 2
jne 0x4cad3b
push ebp
mov ebp, dword [esp + 0x1c]
push edi
push ebp
call fcn.004d4ff0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
je 0x4cad3f
mov esi, ebp
mov ebp, dword [esp + 0x14]
jmp 0x4cf87d
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x97], 3
je 0x4cf957
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x4cad96
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x4cf9da
mov ebp, dword [ebx + 4]
mov ebx, dword [esp + 0x18]
shl ebp, 4
add ebp, dword [ebx + 0x10]
mov esi, dword [ebp + 4]
test esi, esi
je 0x4caeb7
lea eax, [esp + 0x3c]
push eax
push edi
push esi
call fcn.00494ec0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cfa0d
mov edi, dword [esp + 0x14]
test byte [edi + 0x98], 0x20
je 0x4caec7
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x4caec7
mov edx, ebx
cmp byte [edx + 0x55], 0
je 0x4cadfe
cmp dword [edx + 0xc0], 1
jle 0x4caeb3
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4cae1a
inc dword [edx + 0x1fc]
mov eax, dword [edx + 0x1f8]
add eax, dword [edx + 0x1fc]
mov dword [edi + 0x30], eax
dec eax
push eax
push 0
push edx
call fcn.004d4ff0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cae89
mov edi, dword [edi + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x4cae4b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x4cae4b
push esi
call fcn.00462350
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x4cae68
cmp byte [eax + 6], 0
je 0x4cae68
push edi
push eax
call fcn.00483a30
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x4cae70
mov dword [esp + 0x20], 0
cmp byte [esi + 9], 0
je 0x4cae85
add dword [esi + 0xc], 0xffffffff
jne 0x4cae85
push esi
call fcn.004e0290
add esp, 4
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x204]
mov dword [edi + 0x48], eax
mov dword [edi + 0x4c], ecx
mov eax, dword [ebx + 0x208]
mov ecx, dword [ebx + 0x20c]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ecx
jmp 0x4caebb
mov ebx, edx
jmp 0x4caec7
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], 0
je 0x4c8810
mov eax, dword [esp + 0x3c]
cmp eax, dword [ecx + 0xc]
jne 0x4cfa44
mov eax, dword [ebp + 0xc]
mov ebp, ecx
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 0x10]
jne 0x4cfa48
jmp 0x4c880c
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.00496020
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4caf66
push ecx
call fcn.004832b0
mov ecx, eax
add esp, 4
mov eax, dword [esp + 0xd0]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
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 + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 4]
push dword [edx + 0xc]
shl esi, 4
add esi, dword [ebp + 0x10]
push dword [edx + 8]
push dword [esi + 4]
call fcn.004989e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x4cafe5
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
or dword [ebp + 0x18], 1
push dword [edx + 4]
push ebp
call fcn.004a8100
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x4caff3
cmp eax, 2
jne 0x4caff3
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x4cb00b
push 0
push ebp
call fcn.004a02b0
add esp, 8
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov edi, dword [eax + ecx*4]
test edi, edi
je 0x4cb062
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4cb062
push dword [edi + 0x2c]
add edi, 0x2c
call fcn.00494f30
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4cb188
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
mov esi, dword [esp + 0x18]
and al, 3
cmp al, 1
je 0x4cfac9
mov eax, dword [esp + 0x10]
xor edi, edi
xor ebp, ebp
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x28], ecx
mov ebx, dword [eax + 4]
mov dword [esp + 0x48], ebx
cmp dl, 0x71
jne 0x4cb0ca
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
movzx ebx, word [edx + 2]
mov edx, dword [esp + 0x14]
and ebx, 8
mov al, byte [eax + 0x4c]
or ebx, 4
cmp al, byte [edx + 0x95]
jae 0x4cb0cc
mov byte [edx + 0x95], al
jmp 0x4cb0cc
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x4cb108
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea esi, [ecx + eax*8]
push esi
call fcn.004d1060
mov dword [esi], eax
mov ecx, 0xf244
mov dword [esi + 4], edx
add esp, 4
mov ax, word [esi + 0x10]
and ax, cx
or ax, 4
mov word [esi + 0x10], ax
mov eax, dword [esi]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x4cb11c
mov ebp, dword [ecx + 0x10]
movzx edi, word [ebp + 8]
jmp 0x4cb123
cmp al, 0xfd
jne 0x4cb123
mov edi, dword [ecx + 0x10]
push 0
push edi
push dword [ecx + 4]
push dword [esp + 0x20]
call fcn.0045cc60
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c887b
mov eax, dword [esp + 0x3c]
lea edi, [esi + 0x2c]
mov byte [esi + 1], al
mov eax, dword [esp + 0x28]
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x38], eax
push dword [edi]
push ebp
push ebx
push eax
push dword [esp + 0x58]
call fcn.00495a80
mov edx, eax
mov dword [esi + 0x30], ebp
mov eax, dword [esp + 0x24]
add esp, 0x14
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], edx
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 2]
mov eax, dword [edi]
and cl, 3
mov byte [eax + 3], cl
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edi, dword [eax + ecx*4]
movsx eax, word [edi + 0x3c]
push eax
push dword [edx + 4]
push dword [esp + 0x20]
call fcn.0045cc60
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c887f
mov byte [esi + 2], 1
or dword [esi + 8], 1
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, dword [esi + 8]
and ecx, 4
xor ecx, dword [esi + 8]
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 4
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.00495a80
add esp, 0x14
mov dword [esp + 0x20], eax
jmp 0x4c8838
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4cb263
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0xc], 0
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 8], 0x5461cf
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4cb2d1
test byte [esi + 8], 8
jne 0x4cb2d1
movsx eax, word [esi + 0x3c]
cmp dword [edx + 8], eax
jg 0x4cb2d1
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.00494fb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push 0
push dword [edx + 8]
push ecx
push edi
call fcn.0045cc60
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c887f
mov eax, dword [esp + 0x10]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
push 0x41e
movzx ecx, word [eax + 2]
or ecx, 5
push ecx
push edi
push ebp
push 0
push dword [ebp]
call fcn.004971f0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov eax, dword [edi]
cmp byte [eax + 9], dl
jne 0x4cb349
mov cl, byte [eax + 8]
test cl, cl
je 0x4cb349
cmp cl, 1
je 0x4cb349
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.004b37f0
add esp, 8
jmp 0x4cb356
push 0
push 1
push eax
call fcn.004612c0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cb3d3
mov eax, dword [esp + 0x10]
lea ebx, [esi + 0x38]
mov ebp, dword [eax + 0x10]
mov dword [esi + 0x30], ebp
test ebp, ebp
je 0x4cb3ac
movzx eax, word [eax + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.00495a30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cb3a6
push dword [esi + 0x2c]
push ebp
push 4
push dword [ebx]
push dword [edi]
call fcn.00495a80
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
mov byte [esi + 4], 0
jmp 0x4cb3cf
mov dword [ebx], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [edi]
call fcn.00495a80
mov edx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x4cfadb
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
push 1
push dword [edx + 8]
push dword [edx + 4]
push edi
call fcn.0045cc60
add esp, 0x10
test eax, eax
je 0x4c887f
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
push dword [edx + 0xc]
push ebp
call fcn.004d3ab0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov edi, dword [esp + 0x14]
mov dword [edx + 0x1c], eax
jne 0x4c81a3
jmp 0x4cf725
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push edi
call fcn.0045cc60
add esp, 0x10
test eax, eax
je 0x4c887f
mov ecx, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x5751cc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x60]
mov eax, dword [edx + 4]
mov edx, dword [ecx + eax*4]
test edx, edx
je 0x4cb51b
push edx
push edi
call fcn.004d0a90
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [edi + 0x60]
mov eax, dword [eax + 4]
mov dword [ecx + eax*4], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x48], 0
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov byte [esi + 2], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
cmp byte [esi + 4], 0
je 0x4cb671
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x3c], eax
and al, 0x2e
cmp al, 2
jne 0x4cb58d
push 0
push edi
call fcn.0045e840
add esp, 8
push edi
call fcn.004d1060
movzx ecx, word [edi + 0x10]
add esp, 4
mov dword [esp + 0x28], edx
mov ebp, eax
mov eax, dword [esp + 0x3c]
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x4cb63c
test cl, 8
jne 0x4cb60c
test cl, 1
jne 0x4cc2ef
cmp ebx, 0x17
jae 0x4cc2ef
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x4cb5eb
test byte [eax + 1], 8
je 0x4cb5eb
mov dword [esp + 0x64], 0
mov dword [esp + 0x20], 0
jmp 0x4c8834
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.004622c0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
jmp 0x4cb7ba
movsd xmm0, qword [edi]
sub esp, 8
mov edi, dword [esp + 0x30]
movsd qword [esp], xmm0
push edi
push ebp
call fcn.004afb20
add esp, 0x10
test eax, eax
jle 0x4cb632
test bl, 1
jne 0x4cb640
dec ebx
jmp 0x4cb640
jns 0x4cb640
test bl, 1
je 0x4cb640
inc ebx
jmp 0x4cb640
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x64]
push eax
push 0
push edi
push ebp
push dword [esi + 0x2c]
call fcn.00498250
mov edx, eax
mov dword [esi + 0x40], ebp
add esp, 0x14
mov dword [esp + 0x20], edx
mov dword [esi + 0x44], edi
test edx, edx
jne 0x4cf875
mov edi, dword [esp + 0x14]
jmp 0x4cb711
mov eax, dword [esi + 0x2c]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x5f], al
mov eax, 0
setne al
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x23c], eax
lea eax, [ebx - 1]
test al, 1
mov word [esp + 0x250], cx
mov ecx, dword [esp + 0x24]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x252], al
mov eax, dword [edx + 0xc]
mov byte [esp + 0x256], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x240], eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x240]
push eax
push dword [esi + 0x2c]
call fcn.004960d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
cmp byte [esp + 0x5f], al
je 0x4cb711
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
cmp byte [esp + 0x256], dl
je 0x4cb7ba
mov eax, dword [esp + 0x64]
cmp ebx, 0x17
jl 0x4cb7a1
test eax, eax
js 0x4cb764
jne 0x4cb729
cmp ebx, 0x18
je 0x4cb764
mov dword [esp + 0x64], 0
cmp dword [esp + 0x48], 0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
je 0x4c8f8f
add dword [esp + 0x10], 0x14
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push 0
push dword [esi + 0x2c]
mov dword [esp + 0x6c], 0
call fcn.00497150
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x4cb731
cmp edx, 0x65
jne 0x4cf875
mov dword [esp + 0x20], 0
mov dword [esp + 0x64], 1
jmp 0x4cf725
test eax, eax
jg 0x4cb7ca
jne 0x4cb7ac
cmp ebx, 0x15
je 0x4cb7ca
mov eax, dword [esi + 0x2c]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x64], 0
jne 0x4cc2ef
jmp 0x4cb731
mov ecx, dword [esi + 0x2c]
xor eax, eax
mov dword [esp + 0x64], 0
and byte [ecx + 1], 0xf1
mov word [ecx + 0x32], ax
cmp byte [ecx], al
jne 0x4cb809
movzx edx, word [ecx + 0x46]
test dx, dx
je 0x4cb809
mov eax, dword [ecx + 0x74]
cmp byte [eax + 8], 0
je 0x4cb809
lea eax, [edx - 1]
mov dword [esp + 0x20], 0
mov word [ecx + 0x46], ax
jmp 0x4cb731
push ecx
call fcn.00462d20
add esp, 4
jmp 0x4cb779
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 0x18]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
jne 0x4c8818
mov eax, dword [ebx + 0x30]
mov edi, dword [ecx + 4]
mov dword [esp + 0x2ac], eax
mov ax, word [ecx + 0x24]
mov word [esp + 0x2c0], ax
mov eax, dword [ecx + 0x20]
mov byte [esp + 0x2c2], 0
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x2b0], eax
mov esi, dword [ebx + 0x2c]
push esi
call fcn.00474ce0
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4cfaee
jb 0x4cb894
cmp ecx, 0x7ffffffe
ja 0x4cfaee
xor eax, eax
mov dword [esp + 0x270], ebp
mov word [esp + 0x26c], ax
mov dword [esp + 0x274], eax
lea eax, [esp + 0x25c]
push eax
push edx
push esi
call fcn.004d1b10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push eax
lea eax, [esp + 0x2b0]
push eax
push dword [esp + 0x26c]
push dword [esp + 0x274]
call fcn.004d2d40
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x274], 0
je 0x4cb907
lea eax, [esp + 0x25c]
push eax
call fcn.004e4210
add esp, 4
xor ebp, ebp
mov dword [esp + 0x20], ebp
test esi, esi
jle 0x4cb91e
mov ebp, dword [esp + 0x10]
cmp word [ebp + 2], 0
je 0x4cb960
test esi, esi
jns 0x4cc2ef
test edi, edi
jle 0x4cc44c
mov dword [ebx + 0x20], 0
dec edi
push 0
push dword [ebx + 0x2c]
call fcn.00497150
mov ebp, dword [esp + 0x20]
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
je 0x4cb865
cmp edx, 0x65
jne 0x4cad30
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add ebp, 0x14
mov dword [esp + 0x20], 0
jmp 0x4cf729
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
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 0x4cb9ab
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x4c7f6d
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x4c7d2c.9
cmp byte [eax + 2], 0
je 0x4c7f6d
jmp case.0x4c7d2c.9
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 0xc]
cmp eax, dword [ecx + 0x10]
jge 0x4c8818
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1d0], ecx
movzx eax, word [eax + 0x10]
mov word [esp + 0x1e0], ax
test ax, ax
je 0x4cba76
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0x1cc], eax
lea eax, [esp + 0x1cc]
push ebx
push eax
mov byte [esp + 0x1ea], 0
push dword [esi + 0x2c]
call fcn.004960d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4cbae4
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x4cba92
push ecx
call fcn.004d1940
add esp, 4
test eax, eax
jne 0x4c887f
push dword [esi + 0x30]
call fcn.004c7090
mov edi, eax
add esp, 4
test edi, edi
je 0x4c887f
mov ecx, dword [esp + 0x1d0]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.004d34b0
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004960d0
push edi
push ebp
mov dword [esp + 0x44], eax
call fcn.0049da00
mov edx, dword [esp + 0x44]
add esp, 0x24
mov edi, dword [esp + 0x14]
test edx, edx
jne 0x4cf875
mov ecx, dword [ebx]
test ecx, ecx
setne al
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [eax]
cmp al, 0x1d
jne 0x4cbb29
test ecx, ecx
je 0x4cc2ef
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
test ecx, ecx
jne 0x4cc2ef
cmp al, 0x1b
jne 0x4cbb7c
movzx edx, word [esp + 0x1e0]
test edx, edx
je 0x4cc450
mov eax, dword [esp + 0x1d0]
add eax, 0x10
nop
test byte [eax], 1
jne 0x4cc2ef
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4cbb50
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
cmp al, 0x1a
jne 0x4cc454
mov eax, ecx
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x4cbc3d
movups xmm0, xmmword [esi + eax*8]
movups xmmword [esp + 0x214], xmm0
movups xmm1, xmmword [esi + eax*8 + 0x10]
movups xmmword [esp + 0x224], xmm1
movq xmm0, qword [esi + eax*8 + 0x20]
movd eax, xmm1
movq qword [esp + 0x234], xmm0
test al, 4
jne 0x4cbc29
test al, 0x28
jne 0x4cbc0a
test al, 2
je 0x4cbc21
lea eax, [esp + 0x214]
push 1
push eax
call fcn.0045e840
add esp, 8
jmp 0x4cbc1a
lea eax, [esp + 0x214]
push eax
call fcn.004d10d0
add esp, 4
mov al, byte [esp + 0x224]
test al, 4
je 0x4cf725
mov edi, dword [esp + 0x214]
mov ebx, dword [esp + 0x218]
jmp 0x4cbc4a
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [esi + eax*8]
mov ebx, dword [esi + eax*8 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], 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 + 0x28]
push eax
push 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.00498250
mov dword [esi + 0x40], edi
mov edx, eax
mov eax, dword [esp + 0x3c]
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 + 0x20], edx
mov dword [esi + 0x24], eax
test eax, eax
je 0x4cca96
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x4cfb16
mov edi, dword [esp + 0x14]
jmp 0x4cf729
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4cbce0
push edx
call fcn.004832b0
add esp, 4
mov edx, eax
jmp 0x4cbce9
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 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 [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x48], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x28], edx
test word [edx + 0x10], ax
je 0x4cbd68
push edx
call fcn.004832b0
add esp, 4
mov dword [esp + 0x28], eax
jmp 0x4cbd71
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x60]
mov ebp, dword [eax + ecx*4]
test byte [ebp + 8], 2
jne 0x4cbe0c
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x4cbdc9
test byte [eax + 1], 8
je 0x4cbdc9
mov dword [esp + 0x20], 0
mov esi, dword [ebp + 0x2c]
push esi
call fcn.00474ce0
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
cmp esi, 0x7fffffff
jl 0x4cbdfc
jg 0x4cbdc3
cmp edi, 0xffffffff
jb 0x4cbdfc
or dword [ebp + 8], 2
jmp 0x4cbe14
lea ecx, [esp + 0x48]
push ecx
push eax
call fcn.004622c0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
cmp dword [esp + 0x48], eax
je 0x4cbd9a
mov edi, 1
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
jmp 0x4cbe14
add edi, 1
mov dword [esp + 0x3c], edi
adc esi, 0
mov dword [esp + 0x40], esi
jmp 0x4cbe14
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4cbeb4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x4cbe48
mov eax, dword [edx + 4]
test eax, eax
je 0x4cbe3d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4cbe34
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x4cbe52
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + eax*8]
push ebx
call fcn.004d1060
mov dword [ebx], eax
mov ecx, 0xf244
mov dword [ebx + 4], edx
add esp, 4
mov ax, word [ebx + 0x10]
and ax, cx
or ax, 4
mov word [ebx + 0x10], ax
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp ecx, 0xffffffff
jne 0x4cbe89
cmp eax, 0x7fffffff
je 0x4cbf16
test byte [ebp + 8], 2
jne 0x4cbf16
add ecx, 1
adc eax, 0
cmp esi, eax
jg 0x4cbeaf
jl 0x4cbea3
cmp edi, ecx
jae 0x4cbeaf
mov edi, ecx
mov esi, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
test byte [ebp + 8], 2
je 0x4cbf20
xor ebx, ebx
nop dword [eax]
lea eax, [esp + 0x3c]
push eax
push 8
call fcn.004511a0
mov esi, dword [esp + 0x48]
lea eax, [esp + 0x50]
mov edi, dword [esp + 0x44]
and esi, 0x3fffffff
push eax
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x4c], edi
push esi
push edi
push dword [ebp + 0x2c]
mov dword [esp + 0x5c], esi
call fcn.00498250
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
cmp dword [esp + 0x48], eax
jne 0x4cbf20
inc ebx
cmp ebx, 0x64
jl 0x4cbec0
mov edx, 0xd
jmp 0x4cf871
mov eax, dword [esp + 0x28]
mov byte [ebp + 3], 0
mov dword [ebp + 0x20], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4c8834
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [esp + 0x24]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x28], esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
mov ecx, dword [edi + ecx*8 + 4]
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], ecx
cmp byte [ebx + 1], 0xfb
jne 0x4cbf93
cmp dword [ebp + 0xfc], 0
je 0x4cbf93
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov ebx, dword [eax + ecx*8]
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
jmp 0x4cbf9b
mov eax, dword [esp + 0x10]
xor edi, edi
xor ebx, ebx
test byte [eax + 2], 1
je 0x4cbfc7
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x4cbfc7
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x148]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + edx*8 + 8]
mov dword [esp + 0x14c], eax
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x4cbff0
mov ecx, dword [esi + 0x24]
jmp 0x4cbff2
xor ecx, ecx
mov ebp, dword [esp + 0x24]
mov esi, 0x400
test word [ebp + edx*8 + 0x10], si
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
je 0x4cc01e
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x10]
jmp 0x4cc029
mov dword [esp + 0x15c], 0
mov dword [esp + 0x13c], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x144]
push eax
push dword [esi + 0x2c]
call fcn.00496630
inc dword [esp + 0x9c]
mov edx, eax
add esp, 0x10
mov byte [esi + 3], 0
mov dword [esp + 0x20], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x4cad30
test edi, edi
je 0x4cc450
push dword [esp + 0x148]
mov eax, dword [esp + 0x14]
mov ecx, 0x17
push dword [esp + 0x148]
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
add esp, 0x18
jmp 0x4c8838
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + 0x60]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebx + 8]
mov esi, dword [ecx + eax*4]
mov eax, ebx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4cc0e3
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x4cc0f4
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.004984b0
add esp, 0x10
jmp 0x4c9227
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x4cc169
cmp dword [ebp + 0xfc], 0
je 0x4cc169
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 0x4cc16d
cmp byte [edi + 4], 0
je 0x4cc16d
mov esi, dword [edi + 0x2c]
push esi
call fcn.00474ce0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x4cc16d
xor ebp, ebp
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.00495af0
inc dword [esp + 0x94]
mov edx, eax
add esp, 8
mov dword [edi + 0x20], 0
mov dword [esp + 0x20], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x4cf875
test byte [esp + 0x28], 1
je 0x4c8f8b
mov eax, dword [esp + 0x14]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xfc]
test eax, eax
je 0x4c8f8b
test ebx, ebx
je 0x4c8f8b
test byte [ebx + 0x1c], 0x80
jne 0x4c8f8b
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [ebx]
push ebp
mov ebp, dword [esp + 0x28]
push 9
push dword [ebp + 0xf8]
call eax
mov ecx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 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 + 0x10]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
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 + 0x28], eax
mov ebp, dword [edi + 0x20]
test ebp, ebp
jne 0x4cc287
push ebx
call fcn.004c7090
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x4cc33f
mov word [ebp + 0x14], si
lea eax, [esp + 0xd4]
push eax
push edi
call fcn.004e65a0
push ebp
push eax
push dword [esp + 0xe4]
push ebx
call fcn.004d34b0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x4cc2c4
mov eax, dword [ebp + 4]
add eax, 0x10
test byte [eax], 1
jne 0x4ce54f
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4cc2b3
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
push 0
push ebp
push dword [esi + eax*8 + 8]
push dword [esi + eax*8 + 0xc]
call fcn.004d2d40
add esp, 0x10
mov dword [esp + 0x20], 0
test eax, eax
je 0x4c8f8b
mov edi, dword [esp + 0x14]
jmp 0x4cf725
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
lea eax, [esp + 0xd8]
push eax
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x2c]
call fcn.004e65a0
mov edi, dword [esp + 0xe0]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x4cc349
push 0
push edi
push esi
call fcn.004d1b70
add esp, 0xc
test eax, eax
je 0x4cc354
mov edx, 7
jmp 0x4cf871
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 fcn.004fd090
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4cc3db
push esi
call fcn.004832b0
add esp, 4
mov esi, eax
jmp 0x4cc3e4
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
push edi
call fcn.00474ce0
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x4ca1d7
push esi
push eax
push edi
call fcn.004d1b10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xc], eax
jne 0x4cc454
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x4cc454
push esi
call fcn.004d1d00
add esp, 4
test eax, eax
jne 0x4c887f
jmp 0x4c8838
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4cc497
push edi
call fcn.004832b0
add esp, 4
mov edi, eax
jmp 0x4cc4a0
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x4cc4dd
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x24]
mov word [edi + 0x10], ax
mov edi, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp byte [esi + 3], 0
je 0x4cc4ee
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x4cc5b3
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x4cc54e
mov esi, dword [ecx]
lea edx, [esp + 0xa0]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push ebx
mov dword [esp + 0x30], eax
call fcn.004d4d20
mov edx, dword [esp + 0x30]
add esp, 0x10
test edx, edx
jne 0x4cc566
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x24]
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov edi, ebx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp byte [ecx], 0
je 0x4cc56d
push esi
call fcn.004d1020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
je 0x4cc575
mov ebp, ebx
jmp 0x4cf879
mov dword [esp + 0x20], 0
cmp byte [esi + 2], 0
je 0x4cc5a1
mov ecx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x24]
mov word [edi + 0x10], ax
mov edi, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov esi, dword [esi + 0x2c]
push esi
call fcn.00474ce0
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], eax
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov edi, ebx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x4cc61c
push 3
push 1
push ecx
push edi
call fcn.0045cc60
add esp, 0x10
test eax, eax
je 0x4c887f
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x5751cc
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x4c7f6d
push dword [eax + 0x2c]
call fcn.00494f30
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0x2c]
cmp dl, 0x89
jne 0x4cc6d3
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x4c81a3
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.004622c0
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x28]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esp + 0x20], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x4cf871
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jle 0x4c8814
test eax, eax
jne 0x4cf725
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp byte [ecx], al
jne 0x4cc678
test byte [ecx + 1], 8
je 0x4cc678
mov byte [esi + 2], al
mov byte [esi + 3], al
mov dword [esp + 0x20], eax
mov dword [esi + 0x20], eax
jmp 0x4cc6a6
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.00495f90
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
cmp dword [esp + 0xb0], eax
jne 0x4cc2ef
push esi
call fcn.00497cc0
add esp, 4
test edx, edx
jl 0x4c81a3
jg 0x4cc743
test eax, eax
jb 0x4c81a3
push edx
push eax
call fcn.004b1570
mov ecx, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x4c8814
mov dword [esp + 0xb0], 1
jmp 0x4cf725
inc dword [edi + 0xac]
mov edx, dword [esp + 0x10]
mov ebx, 1
mov eax, dword [edi + 0x60]
mov dword [esp + 0x28], ebx
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x2c]
cmp byte [edi], bl
jne 0x4cc7da
xor edx, edx
mov dword [esp + 0x20], edx
cmp byte [esi + 0x40], dl
jne 0x4cc7af
cmp dword [esi + 0x28], edx
lea eax, [esi + 0x28]
je 0x4cc7fd
push eax
lea eax, [esi + 0x48]
xor ebx, ebx
push eax
call fcn.004e6880
jmp 0x4cc7f4
push esi
call fcn.004e5d00
push eax
push esi
call fcn.004e5e30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push esi
call fcn.004e6600
add esp, 4
xor ebx, ebx
jmp 0x4cc7f7
lea eax, [esp + 0x28]
push eax
push esi
call fcn.00495f90
mov ebx, dword [esp + 0x30]
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov byte [edi + 2], bl
mov edi, dword [esp + 0x14]
cmp dword [ecx + 8], edx
jle 0x4c8814
test ebx, ebx
je 0x4c8814
jmp 0x4cf725
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x2c]
cmp byte [esi + 0x40], 0
je 0x4cc8b3
cmp byte [esi + 0x41], 0
je 0x4cc87b
push dword [esi + 0x10]
call fcn.004e4f60
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cc8e4
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x4cc8e4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], 0x65
mov edx, dword [esp + 0x20]
jmp 0x4cc929
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
push dword [esi + 0x14]
call fcn.004e4900
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cc8e4
cmp dword [esp + 0x28], eax
je 0x4cc8e4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], 0x65
mov edx, dword [esp + 0x20]
jmp 0x4cc929
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + 4]
mov dword [esi + 0x28], eax
mov dword [ecx + 4], 0
cmp dword [esi + 0x2c], 0
jne 0x4cc8d3
push ecx
push ebp
call fcn.004e64d0
add esp, 8
xor ecx, ecx
mov eax, 0x65
cmp dword [esi + 0x28], ecx
cmovne eax, ecx
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x4cc929
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
mov edi, dword [eax + ecx*4]
push dword [edi + 0x2c]
call fcn.00497ac0
jmp 0x4cc920
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
mov edi, dword [eax + ecx*4]
push dword [edi + 0x2c]
call fcn.00497150
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
mov dword [edi + 0x20], 0
test edx, edx
jne 0x4cc94f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov byte [edi + 2], dl
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp case.0x4c7d2c.9
cmp edx, 0x65
jne 0x4cf875
mov dword [esp + 0x20], 0
mov byte [edi + 2], 1
jmp 0x4cd618
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, edx
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x4cc993
mov eax, dword [esp + 0x14]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4cc9b9
push esi
call fcn.004d1940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x314], eax
mov dword [esp + 0x318], edx
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x30c], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x320], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x324], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x4cca02
mov ecx, dword [edi + 0x24]
jmp 0x4cca04
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x314]
push eax
push dword [edi + 0x2c]
call fcn.00496630
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 0x10
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4cca86
push esi
call fcn.004d1940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push esi
push edi
call fcn.004d3fb0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
jmp 0x4c8838
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x2cc], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x2e0], ax
mov byte [esp + 0x2e2], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2d0], eax
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x2d0]
push eax
push edi
call fcn.004960d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
cmp dword [esp + 0xdc], eax
jne 0x4ccb53
push 4
push edi
call fcn.00495af0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], 0
je 0x4ccb6f
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x4cfb3e
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ebp, dword [eax + ecx*4]
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x4ccbc6
push ebp
call fcn.004d1020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
jmp 0x4ccbce
mov dword [esp + 0x20], 0
cmp byte [ebp + 2], 0
jne 0x4ccddd
mov esi, dword [ebp + 0x2c]
push esi
call fcn.00474ce0
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [esp + 0x200], cx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x204], ecx
lea ecx, [esp + 0x1f0]
push ecx
push eax
push esi
mov dword [esp + 0x214], 0
call fcn.004d1b10
mov edx, eax
add esp, 0x10
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ebx, dword [esp + 0x1f4]
movzx esi, byte [ebx]
mov dword [esp + 0x28], esi
cmp esi, 0x80
jb 0x4ccc4c
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.004ad290
mov esi, dword [esp + 0x30]
add esp, 8
cmp esi, 3
jb 0x4cfb5a
mov edi, dword [esp + 0x1f8]
cmp esi, edi
ja 0x4cfb5a
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x28], ecx
cmp ecx, 0x80
jb 0x4ccc8a
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.004ad290
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x4cfb5a
cmp ecx, 7
je 0x4cfb5a
movzx edx, byte [ecx + 0x5320e8]
lea eax, [edx + esi]
cmp edi, eax
jb 0x4cfb5a
lea eax, [esp + 0x334]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.004d36c0
add esp, 0xc
cmp dword [esp + 0x204], 0
je 0x4ccce1
lea eax, [esp + 0x1ec]
push eax
call fcn.004e4210
add esp, 4
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], 0
cmp byte [eax], 0x8d
jne 0x4ccd4e
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov esi, dword [esp + 0x24]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x334]
mov ecx, dword [esp + 0x338]
mov byte [edx + 2], 0
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x10]
mov byte [edx + 3], 1
mov dword [edx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x28], ebp
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4ccda2
push edx
call fcn.004832b0
mov ecx, dword [esp + 0x33c]
mov edx, eax
mov eax, dword [esp + 0x338]
add esp, 4
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [esp + 0x338]
mov eax, 4
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x334]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
jmp 0x4c9dc7
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x4c7f6d
push eax
call fcn.004d0980
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
cmp dl, 0x2a
mov eax, dword [edi + 0x60]
mov ecx, dword [ebx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x2ec], eax
mov ax, word [ebx + 0x10]
mov word [esp + 0x300], ax
sbb al, al
mov byte [esp + 0x302], al
mov eax, ebx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [ecx + 0x2c]
push esi
mov dword [esp + 0x2f4], eax
call fcn.00474ce0
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x4cfb9c
cmp eax, 0x7fffffff
ja 0x4cfb9c
xor ecx, ecx
mov dword [esp + 0x298], ebp
mov word [esp + 0x294], cx
mov dword [esp + 0x29c], ecx
lea ecx, [esp + 0x284]
push ecx
push eax
push esi
call fcn.004d1b10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
push eax
lea eax, [esp + 0x2f0]
push eax
push dword [esp + 0x294]
push dword [esp + 0x29c]
call fcn.004d2d40
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x29c], 0
je 0x4ccf00
lea eax, [esp + 0x284]
push eax
call fcn.004e4210
add esp, 4
mov ecx, dword [esp + 0x10]
test byte [ecx], 1
jne 0x4ccf0d
neg esi
jmp 0x4ccf0e
inc esi
test esi, esi
jg 0x4cc2ef
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4ccf57
push edi
call fcn.004832b0
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 0x4cfba6
mov eax, dword [edx + 0xc]
mov ebp, eax
mov ebx, dword [edx + 4]
add ebp, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], 0
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ebp*8 + 4]
cmp byte [esi + 9], 0
je 0x4ccfac
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4ccfac
push esi
call fcn.00462350
add esp, 4
lea eax, [esp + 0x28]
push eax
push ebx
push esi
call fcn.00461c90
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x4ccfd4
add dword [esi + 0xc], 0xffffffff
jne 0x4ccfd4
push esi
call fcn.004e0290
add esp, 4
mov esi, dword [esp + 0x28]
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 + 0x20]
test edx, edx
jne 0x4cf875
test esi, esi
je 0x4cf3fb
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x10]
mov ecx, dword [edi + ebp*8 + 0xc]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4cd02b
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x4cd021
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x4cd016
mov ecx, dword [edi + ebp*8 + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4cd043
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x4cd03d
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x4cd032
mov al, byte [esp + 0x3c]
inc al
mov byte [esp + 0x73], al
jmp 0x4c8834
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xc0]
xorps xmm0, xmm0
movlpd qword [esp + 0xc0], xmm0
push eax
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [edx + 4]
push dword [eax + ecx*8 + 4]
call fcn.00494fb0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
cmp dword [ecx + 0xc], 0
je 0x4cd0ca
mov eax, dword [esp + 0xc0]
add dword [edi + 0x28], eax
mov eax, dword [esp + 0xc4]
adc dword [edi + 0x2c], eax
mov eax, ecx
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x4cd0c6
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc0]
add dword [esi + ecx*8], eax
mov eax, dword [esp + 0xc4]
adc dword [esi + ecx*8 + 4], eax
mov ecx, dword [esp + 0x10]
test edx, edx
jne 0x4cf875
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x4cd11a
push dword [eax + 0x2c]
push ebp
call fcn.004d3cb0
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.00494fb0
jmp 0x4cb44d
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4cd157
push esi
call fcn.004832b0
add esp, 4
mov esi, eax
jmp 0x4cd160
mov eax, 4
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], 0
mov eax, dword [ecx + 4]
push dword [ecx + 0xc]
shl eax, 4
lea ecx, [esp + 0x2c]
add eax, dword [ebp + 0x10]
push ecx
push dword [eax + 4]
call fcn.00495a30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
inc byte [ebp + 0x60]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x98], 0
mov esi, dword [ebp + 0x16c]
mov bl, byte [ebp + 0x5e]
cmp dword [edx + 4], 0
je 0x4cd1e9
mov dword [ebp + 0x16c], 0
mov byte [ebp + 0x5e], 0
lea eax, [esp + 0x98]
push eax
push 0
push 0
push dword [edx + 0x10]
push ebp
call fcn.0044e850
dec byte [ebp + 0x60]
mov edx, eax
mov dword [ebp + 0x16c], esi
add esp, 0x14
mov byte [ebp + 0x5e], bl
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], edx
test eax, eax
jne 0x4cd226
test edx, edx
je 0x4c81a3
push eax
push 0x534d04
push edi
call fcn.004c7bc0
push dword [esp + 0xa4]
call fcn.00451030
mov edx, dword [esp + 0x30]
add esp, 0x10
cmp edx, 7
je 0x4c887f
jmp 0x4cf875
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x4cd2a1
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.004bceb0
mov eax, dword [esp + 0x14]
and dword [ebp + 0x18], 0xffffffef
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
push esi
push ebp
call fcn.004ae2b0
or dword [ebp + 0x18], 1
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
and dword [edi + 0x98], 0xfffffffc
jmp 0x4cd391
mov dword [esp + 0x100], esi
lea eax, [edi + 0x7c]
mov dword [esp + 0xf8], ebp
add esi, esi
mov dword [esp + 0xfc], eax
mov dword [esp + 0x108], 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 + 0x110], eax
push dword [edx + 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.004b17d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4cfbbf
push 0
lea eax, [esp + 0xfc]
mov byte [ebp + 0xb1], 1
push eax
push fcn.004adf60
push esi
push ebp
mov dword [esp + 0x118], 0
mov dword [esp + 0x120], 0
call fcn.0044e850
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cd37c
mov eax, dword [esp + 0x104]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cd37c
cmp dword [esp + 0x10c], eax
jne 0x4cd37c
push 0x5398bc
push 0x184f2
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov dword [esp + 0x20], 0xb
push esi
push ebp
call fcn.0049da00
mov edx, dword [esp + 0x28]
add esp, 8
mov byte [ebp + 0xb1], 0
test edx, edx
je 0x4c81a3
push ebp
call fcn.004bb530
mov edx, dword [esp + 0x24]
add esp, 4
cmp edx, 7
je 0x4c887f
jmp 0x4cf871
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.00492580
add esp, 8
jmp 0x4cb450
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.004ad520
add esp, 0xc
test eax, eax
je 0x4cd407
cmp dword [ebp + 0x210], 0
jne 0x4cd3fd
add dword [eax + 0x18], 0xffffffff
jne 0x4cd407
push eax
push ebp
call fcn.0046a0d0
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
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.004ad520
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4cd483
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x4cd45b
mov eax, dword [edx + 0x14]
mov dword [esi + 8], eax
jmp 0x4cd475
test ecx, ecx
je 0x4cd475
nop
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x4cd46f
mov ecx, eax
test ecx, ecx
jne 0x4cd460
jmp 0x4cd475
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
push edx
push ebp
call fcn.004a9820
mov esi, dword [esp + 0x2c]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
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.004ad520
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4cf3ff
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x4cd52e
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.0046f800
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x4cd52e
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x4cd52e
cmp eax, esi
je 0x4cd529
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x4cd4f3
push esi
push ebp
call fcn.0049ebb0
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.0049ebb0
mov ecx, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
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, [esi + eax*8]
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0xe4]
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.00496b40
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x20], ebp
test word [esi + 0x10], ax
je 0x4cd5bf
push esi
call fcn.004e4250
add esp, 4
jmp 0x4cd5c8
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x4cd5ff
test ebp, ebp
jne 0x4cfbcd
push fcn.00451030
push 1
push 0xffffffffffffffff
dec eax
cdq
sub dword [ebx + edi*8], eax
push 0xffffffffffffffff
push dword [esp + 0xa4]
sbb dword [ebx + edi*8 + 4], edx
push esi
call fcn.004d2070
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x4cd6af
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
cmp dword [ebp + 0x128], 0
jne 0x4cfe5e
mov edi, dword [esp + 0x88]
cmp dword [esp + 0x84], edi
jb 0x4cebfd
mov ebx, dword [esp + 0x74]
ja 0x4cd650
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x4cf403
nop dword [eax + eax]
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x4cf3ff
add ebx, dword [ebp + 0x17c]
push dword [ebp + 0x178]
adc edi, 0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x8c], edi
call eax
add esp, 4
test eax, eax
jne 0x4cfc9e
cmp dword [esp + 0x84], edi
ja 0x4cd650
mov eax, dword [esp + 0x1c]
jb 0x4cd698
cmp eax, ebx
jae 0x4cd650
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4cd610
push dword [esp + 0x38]
push esi
call fcn.004d2480
add esp, 8
jmp 0x4cd610
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x4cd6f9
push esi
call fcn.004d1f90
add esp, 4
test eax, eax
jne 0x4c887f
mov eax, dword [esp + 0x24]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push dword [esi + 8]
call fcn.004bc050
add esp, 0xc
jmp 0x4c8838
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
movzx eax, word [edi + 0x10]
mov ecx, eax
test al, 0x10
je 0x4cd79f
mov esi, dword [edi + 8]
movzx ecx, word [esi + 0x1a]
test cl, 2
jne 0x4cd75b
mov eax, ecx
test cl, 1
jne 0x4cd754
push dword [esi + 8]
call fcn.0048d910
mov dword [esi + 8], eax
add esp, 4
movzx eax, word [esi + 0x1a]
or eax, 3
mov word [esi + 0x1a], ax
mov eax, dword [esi + 8]
test eax, eax
je 0x4cd79b
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4cd77a
push esi
call fcn.004bbf40
add esp, 4
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.004d1f20
add esp, 0xc
jmp 0x4cd618
movzx ecx, word [edi + 0x10]
test ecx, 0x9000
je 0x4cd7b5
push edi
call fcn.004e4250
add esp, 4
jmp case.0x4c7d2c.9
mov eax, 1
mov word [edi + 0x10], ax
jmp case.0x4c7d2c.9
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x4cd7f1
push esi
call fcn.004d1f90
add esp, 4
test eax, eax
jne 0x4c887f
test ebx, ebx
je 0x4cd6f9
mov eax, dword [esp + 0x24]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push ebx
push dword [esi + 8]
call fcn.004bc0e0
add esp, 0x10
test eax, eax
jne 0x4cc2ef
test ebx, ebx
js 0x4cf3ff
jmp 0x4cd6f9
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x28], ebx
lea eax, [eax + eax*4]
lea ebp, [esi + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x4cd861
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x4cd861
cmp dword [eax + 0x18], ecx
je 0x4c9de2
mov eax, dword [eax + 4]
test eax, eax
jne 0x4cd851
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x4cfbe5
test byte [ebp + 0x10], 0x10
jne 0x4cd990
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 0x4cd8a6
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov eax, ebx
cdq
push edx
push eax
push dword [esp + 0x20]
call fcn.0049db10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4c887b
push ebx
push 0
push esi
call fcn.004fd610
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x4cd8e7
cmp dword [ebp + 0x18], 0
je 0x4cd8f0
push ebp
call fcn.004e4210
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, 0x1010
mov word [ebp + 0x10], ax
sub ecx, dword [esp + 0x44]
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], ebx
mov ebx, dword [esp + 0x28]
mov dword [ebp + 0x24], 0x4d09e0
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 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 0x4cd986
mov edx, dword [esp + 0x18]
xor edi, edi
mov word [eax + 0x10], di
mov dword [eax + 0x14], edx
add eax, 0x28
cmp eax, ecx
jne 0x4cd976
mov edi, ebp
mov eax, dword [edi + 0xd8]
jmp 0x4cd993
mov esi, dword [ebp + 8]
mov ebp, dword [esp + 0x18]
lea edx, [esi + 0x58]
inc eax
mov dword [esp + 0x24], edx
mov dword [edi + 0xd8], eax
mov eax, dword [edi + 0xd0]
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 [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edi]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0xe4]
mov dword [esi + 0x28], eax
mov dword [edi + 0xe4], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0xd0], esi
mov dword [edi + 0x58], edx
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x14], ecx
movzx eax, word [esi + 0x40]
mov dword [edi + 0x18], eax
lea eax, [ecx + ecx*4]
lea ecx, [edx + eax*8]
mov dword [edi + 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 fcn.004fd610
mov ecx, dword [ebx]
add esp, 0xc
mov dword [edi + 0x68], ecx
mov eax, dword [ebx + 4]
mov dword [edi + 0x6c], eax
lea eax, [ecx - 0x14]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x10], eax
jmp 0x4cd614
push dword [esp + 0x10]
push edi
call fcn.00483270
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0xd0]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + edx*4 + 4]
add ecx, dword [eax + 4]
mov eax, 0x9000
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + edx*8]
test word [edi + 0x10], ax
je 0x4cdaa8
push 0x4000
push ecx
push edi
call fcn.004e2f90
add esp, 0xc
jmp 0x4c8838
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x10], eax
mov eax, 0x2000
test word [ecx + 0x10], ax
jne 0x4cf3ff
mov ax, word [edi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov word [edi + 0x10], ax
jmp 0x4c8838
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
je 0x4cdb18
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cdq
add dword [ebp + 0x208], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x20c], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cdq
je 0x4cdb45
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [edi + 0x44], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp dword [ecx + 4], 0
je 0x4cdb9b
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x4c8818
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x4cf725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x4cdb70
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4cdbcf
mov eax, dword [edx + 4]
test eax, eax
je 0x4cdbbd
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4cdbb4
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x4cdbdc
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
push edi
call fcn.004d1060
mov dword [edi], eax
mov ebx, 0xf244
mov dword [edi + 4], edx
movzx eax, word [edi + 0x10]
and ax, bx
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, [esi + eax*8]
push esi
call fcn.004d1060
mov dword [esi], eax
add esp, 8
mov dword [esi + 4], edx
movzx eax, word [esi + 0x10]
and ax, bx
or ax, 4
mov word [esi + 0x10], ax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4cebfd
jl 0x4cdc3d
cmp dword [edi], eax
jae 0x4cf3ff
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4c8838
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x4c824e
jg 0x4cdc6a
test ecx, ecx
je 0x4c824e
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 + 0x14]
jmp 0x4cf725
mov edx, dword [esp + 0x10]
push edx
push edi
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
call fcn.00483270
mov ecx, dword [esp + 0x2c]
mov edi, eax
add esp, 8
mov eax, dword [ecx + esi*8]
mov ecx, dword [ecx + esi*8 + 4]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
test ecx, ecx
jl 0x4cdd37
jg 0x4cdccd
test eax, eax
je 0x4cdd37
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + ebx*8 + 4]
mov eax, dword [esi + ebx*8]
test ecx, ecx
jl 0x4cdce2
jg 0x4cdcf3
test eax, eax
jne 0x4cdcf3
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
push eax
lea eax, [esp + 0xd0]
push eax
call fcn.00490d90
add esp, 0xc
test eax, eax
jne 0x4cdd3b
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
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 0x4c81a3
test edx, edx
jl 0x4cf725
jg 0x4cdd94
test ecx, ecx
je 0x4cf725
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x4cf725
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [esi + edx*8 + 4]
mov eax, dword [esi + edx*8]
cmp ecx, 0x80000000
jl 0x4cddd2
jg 0x4cddc5
test eax, eax
je 0x4cddd2
sub eax, 1
mov dword [esi + edx*8], eax
sbb ecx, 0
mov dword [esi + edx*8 + 4], ecx
or eax, ecx
je 0x4cf725
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.0049db10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4c887f
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, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x44]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x38]
mov dword [esi + 0xc], edi
mov byte [esi + 0x19], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov byte [edx + 1], 0xf1
mov dword [edx + 0x10], esi
mov byte [edx], 0xa3
jmp 0x4cde86
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov ebx, dword [esp + 0x24]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x4cdecb
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x4cdecb
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 0x4cdeb1
mov ebp, dword [esp + 0x18]
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 0x4cdeea
mov eax, dword [ecx + 0x1c]
jmp 0x4cdeed
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4cf3ff
jle 0x4cdf56
mov ecx, dword [esi]
test ecx, ecx
jne 0x4cdf09
xor eax, eax
jmp 0x4cdf3a
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x4cdf26
cmp byte [ecx + 0x12], 1
jne 0x4cdf26
mov eax, dword [ecx + 8]
jmp 0x4cdf3a
test dl, 1
je 0x4cdf2f
xor eax, eax
jmp 0x4cdf3a
push 1
push ecx
call fcn.004e2c40
add esp, 8
mov edi, dword [esp + 0x14]
push eax
push 0x534d04
push edi
call fcn.004c7bc0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4cdf5a
mov edi, dword [esp + 0x14]
cmp byte [esi + 0x19], 0
je 0x4cdf82
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x4cdf7e
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.004d1f20
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x4cdf95
cmp dword [eax + 0x18], 0
je 0x4cdfa0
push eax
call fcn.004e4210
mov eax, dword [esi]
add esp, 4
mov edx, dword [esp + 0x20]
mov ecx, 1
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x4c922d
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x4ce060
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
xorps xmm0, xmm0
mov eax, 0x9000
movups xmmword [esp + 0x18c], xmm0
movups xmmword [esp + 0x19c], xmm0
test word [edi + 0x10], ax
je 0x4ce007
push edi
call fcn.004e4250
add esp, 4
jmp 0x4ce010
mov eax, 1
mov word [edi + 0x10], ax
mov dword [esp + 0x18c], edi
mov dword [esp + 0x194], esi
mov dword [esp + 0x190], ebx
mov eax, dword [esi + 0x14]
mov al, byte [eax + 0x54]
mov byte [esp + 0x1a4], al
lea eax, [esp + 0x18c]
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1a0]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x4ce06c
push ebx
push esi
call fcn.004d19a0
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cfc05
test byte [esi + 0x10], 2
jne 0x4ce0a0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4cf3ff
push dword [esp + 0x38]
push esi
call fcn.004d2480
mov ecx, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x38c]
push eax
lea eax, [esp + 0x38c]
mov dword [esp + 0x388], 0
push eax
push dword [edx + 8]
mov dword [esp + 0x398], 0xffffffff
push dword [edx + 4]
mov dword [esp + 0x398], 0xffffffff
push ebp
call fcn.00498ca0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
test edx, edx
je 0x4ce13f
cmp edx, 5
jne 0x4cf875
mov dword [esp + 0x20], 0
mov dword [esp + 0x384], 1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
xor esi, esi
nop
mov eax, dword [esp + esi*4 + 0x384]
cdq
push edx
push eax
push edi
call fcn.004d1f20
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x4ce150
jmp 0x4c8838
mov ebx, dword [esp + 0x10]
push ebx
push edi
call fcn.00483270
mov edx, dword [ebx + 4]
add esp, 8
mov ecx, dword [ebp + 0x10]
add edx, edx
mov esi, dword [ebx + 0xc]
cmp esi, 0xffffffff
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x28], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ebp, byte [edi + 5]
mov ebx, ebp
cmovne ebx, esi
cmp byte [edi + 0x11], 3
jae 0x4ce1c3
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x4ce1c5
cmp dword [edi + 0x54], 0
jg 0x4ce1c3
jl 0x4ce1c5
cmp dword [edi + 0x50], 0
jbe 0x4ce1c5
mov ebx, ebp
cmp byte [edi + 0xf], 0
jne 0x4ce1db
cmp dword [edi], 0x56fb78
je 0x4ce1db
mov ecx, dword [edi + 0xb8]
jmp 0x4ce1e0
mov ecx, 0x52eba0
cmp ebx, 5
jne 0x4ce257
test ecx, ecx
je 0x4ce21d
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ce1f0
sub ecx, edx
and ecx, 0x3fffffff
je 0x4ce21d
cmp byte [edi + 0xd], 0
mov eax, dword [edi + 0x40]
mov eax, dword [eax]
jne 0x4ce21d
cmp byte [edi + 4], 0
jne 0x4ce257
cmp dword [eax], 2
jl 0x4ce21d
cmp dword [eax + 0x34], 0
jne 0x4ce257
mov ebx, ebp
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4ce229
mov ebx, ebp
push ebx
push edi
call fcn.004b3b10
mov ebx, dword [esp + 0x44]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x4ce3ac
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x4ce3cf
cmp ebx, ebp
je 0x4ce21f
cmp ebp, 5
je 0x4ce265
cmp ebx, 5
jne 0x4ce21f
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x55], 0
je 0x4cfc23
cmp dword [eax + 0xc0], 1
jg 0x4cfc23
cmp ebp, 5
jne 0x4ce372
xor esi, esi
cmp dword [edi + 0xe8], esi
jne 0x4ce2ef
push 1
push edi
mov dword [esp + 0xbc], esi
call fcn.004839e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4ce35a
mov eax, dword [edi]
lea ecx, [esp + 0xb4]
push ecx
push esi
push dword [edi + 0xec]
push eax
mov eax, dword [eax + 0x20]
call eax
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4ce35a
cmp dword [esp + 0xb4], eax
je 0x4ce2ef
push edi
call fcn.00483b50
mov esi, eax
add esp, 4
test esi, esi
jne 0x4ce35a
cmp dword [edi + 0xe8], 0
je 0x4ce35a
push edi
call fcn.00483810
mov esi, eax
add esp, 4
test esi, esi
jne 0x4ce35a
push dword [edi + 0xe0]
movzx eax, byte [edi + 0xb]
push dword [edi + 0xa8]
push eax
push dword [esp + 0x24]
push dword [edi + 0xe8]
call fcn.004d56c0
mov esi, eax
mov dword [edi + 0xe8], 0
push edi
mov dword [esp + 0x38], esi
call fcn.00483890
add esp, 0x18
test esi, esi
je 0x4ce35a
cmp byte [edi + 4], 0
jne 0x4ce35a
push 1
push edi
call fcn.004842c0
add esp, 8
jmp 0x4ce227
mov dword [esp + 0x20], esi
test esi, esi
jne 0x4ce227
push ebx
push edi
call fcn.004b3b10
add esp, 8
jmp 0x4ce38d
cmp ebp, 4
jne 0x4ce382
push 2
push edi
call fcn.004b3b10
add esp, 8
cmp dword [esp + 0x20], 0
jne 0x4ce227
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x2c]
call fcn.00498180
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x4ce223
mov ecx, dword [eax*4 + 0x52e248]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x4ce3cf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ce3c0
sub ecx, edx
and ecx, 0x3fffffff
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x12], al
cmp byte [esp + 0x38], al
je 0x4ce3ea
push dword [esp + 0x38]
push ebx
call fcn.004d2480
add esp, 8
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
jmp 0x4c8834
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x4ce40e
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x4ce410
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [edi + 0x7c]
push ebp
push eax
call fcn.004bc7b0
add esp, 0x10
jmp 0x4cb450
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 0x4ce451
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4ce451
push edi
call fcn.00462350
add esp, 4
cmp byte [esi + 0x11], 0
jne 0x4ce464
mov dword [esp + 0x20], 0x65
jmp 0x4ce525
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.0046f0f0
add esp, 0xc
mov dword [esp + 0x28], eax
cmp ebp, eax
jb 0x4ce4fb
cmp ebx, ebp
jae 0x4ce4fb
test ebx, ebx
je 0x4ce4f1
mov eax, dword [esi + 8]
test eax, eax
je 0x4ce4b1
push 0
push 0
push eax
call fcn.0048dd10
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce521
push esi
call fcn.00476cc0
push 0
push ebp
push dword [esp + 0x34]
push esi
call fcn.00476210
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce521
mov eax, dword [esi + 0xc]
push dword [eax + 0x48]
call fcn.004b41b0
mov ecx, dword [esi + 0x30]
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
jmp 0x4ce521
mov dword [esp + 0x20], 0x65
jmp 0x4ce521
push 0x5398bc
push 0x121ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov dword [esp + 0x20], 0xb
mov ebp, dword [esp + 0x18]
cmp byte [edi + 9], 0
je 0x4ce53a
add dword [edi + 0xc], 0xffffffff
jne 0x4ce53a
push edi
call fcn.004e0290
add esp, 4
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4c824e
cmp edx, 0x65
jne 0x4cf875
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], 0
jmp 0x4cf725
cmp dword [ecx + 4], 0
jne 0x4ce589
push dword [ecx + 8]
push ebp
call fcn.004a02b0
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x4ce614
mov eax, dword [ebp + 0x24]
and eax, 4
jne 0x4c7f6d
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x20], 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 0x4ce6e5
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xe4], bl
cmp byte [esi + 0xa], dl
jne 0x4ce650
push esi
call fcn.00462350
add esp, 4
push dword [esp + 0xe4]
push edi
push esi
call fcn.00489020
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4ce6cc
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x4ce685
cmp dword [ecx + 4], edi
jne 0x4ce67e
cmp dword [ecx], esi
je 0x4ce6b3
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x4ce675
push 0
push 0x10
call fcn.004b17f0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4ce6bf
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 0x4ce6bb
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x4ce6c4
mov edx, 7
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], edx
cmp byte [esi + 9], 0
je 0x4ce6e5
add dword [esi + 0xc], 0xffffffff
jne 0x4ce6e5
push esi
call fcn.004e0290
mov edx, dword [esp + 0x24]
add esp, 4
test edx, edx
je 0x4c8838
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 6
jne 0x4cfe8f
push dword [edi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.004c7bc0
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov esi, dword [esp + 0x18]
jmp 0x4cf881
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
mov esi, dword [edx + 0x10]
mov edx, dword [ebp + 0x180]
test edx, edx
jle 0x4ce764
cmp dword [ebp + 0x198], 0
jne 0x4ce764
mov edx, 6
mov dword [esp + 0x20], edx
test esi, esi
je 0x4cf875
push dword [esi + 8]
push edi
call fcn.004d4d20
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x4c922d
test esi, esi
jne 0x4ce783
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x4ce818
xor ecx, ecx
test edx, edx
jle 0x4ce7b0
mov eax, dword [ebp + 0x198]
nop
cmp dword [eax], esi
je 0x4ce831
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4ce7a0
push ebp
call fcn.00475ad0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce818
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce818
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 0x4ce818
cmp dword [edi + 0x50], 0
je 0x4ce818
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 + 0x20], eax
push dword [esi + 8]
mov edi, dword [esp + 0x18]
push edi
call fcn.004d4d20
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x4c922d
mov dword [esp + 0x20], 0
jmp 0x4ce818
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
movups xmmword [esp + 0x124], xmm0
mov dword [esp + 0x128], ebp
movups xmmword [esp + 0x114], xmm0
movq qword [esp + 0x134], xmm0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.004d18d0
mov dword [esp + 0x28], eax
add esp, 8
mov eax, dword [esp + 0x124]
and eax, 0x202
cmp eax, 0x202
jne 0x4ce8a6
cmp byte [esp + 0x126], 1
jne 0x4ce8a6
mov edx, dword [esp + 0x11c]
jmp 0x4ce8c8
test byte [esp + 0x124], 1
jne 0x4ce997
lea eax, [esp + 0x114]
push 1
push eax
call fcn.004e2c40
add esp, 8
mov edx, eax
test edx, edx
je 0x4ce997
mov eax, dword [esp + 0x10]
lea esi, [edi + 0x7c]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push edx
push ebp
call fcn.004a6ae0
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.0046f800
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4ce976
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x4ce976
cmp dword [eax + 0x14], 0
je 0x4ce976
push esi
push edx
push ecx
push ebx
push ebp
call fcn.004e70b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce98f
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4ce98f
cmp dword [eax], ebp
je 0x4ce941
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4ce934
jmp 0x4ce98f
push ebp
call fcn.00475ad0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4ce98f
push ebx
push ebp
call fcn.004ad0d0
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 0x4ce98f
push edi
push str.no_such_module:__s
push ebp
call fcn.004b17d0
add esp, 0xc
mov dword [esi], eax
mov dword [esp + 0x20], 1
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
test dword [esp + 0x124], 0x9000
jne 0x4ce9ae
cmp dword [esp + 0x12c], 0
je 0x4ce9be
lea eax, [esp + 0x114]
push eax
call fcn.004e4210
add esp, 4
mov edx, dword [esp + 0x20]
jmp 0x4cb456
mov edx, dword [esp + 0x10]
inc dword [ebp + 0xcc]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], 0
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push ebp
call fcn.004a6ae0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4cea7e
cmp byte [edi + 0x2b], 1
jne 0x4cea7e
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x4cea7e
nop
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x4cfc58
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x4cea10
push edi
push ebp
call fcn.004e75e0
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x4cea3f
mov eax, dword [ecx + 0x10]
inc dword [edi + 0x18]
push dword [esi + 8]
call eax
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4cea61
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x34], eax
call fcn.004d50c0
add esp, 4
cmp dword [ebp + 0x210], 0
jne 0x4cea70
add dword [edi + 0x18], 0xffffffff
jne 0x4cea7a
push edi
push ebp
call fcn.0046a0d0
add esp, 8
mov esi, dword [esp + 0x24]
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4cfc7c
mov edi, dword [esi]
test edi, edi
je 0x4cfc7c
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 + 0x30], eax
call fcn.004d4d20
mov edx, dword [esp + 0x30]
add esp, 0x10
test edx, edx
jne 0x4cc566
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.0045cc60
add esp, 0x10
test eax, eax
je 0x4cfc68
mov ecx, dword [esp + 0x90]
mov edi, ebx
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x9c], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4ceb7e
push edi
call fcn.004e4250
add esp, 4
jmp 0x4ceb87
mov eax, 1
mov word [edi + 0x10], ax
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4cebfd
mov edx, dword [eax + 8]
mov esi, dword [edx]
inc dword [eax + 0xc]
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [ebx]
push dword [eax + ecx*8]
mov eax, dword [esi + 0x60]
push edx
call eax
push dword [ebx + 0x34]
mov ebp, eax
mov dword [esp + 0x38], ebp
call fcn.004d50c0
add esp, 0x18
test ebp, ebp
jne 0x4cfc86
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x4cf3fb
push fcn.00451030
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push edi
call fcn.004d2070
add esp, 0x18
jmp 0x4c8834
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
call fcn.004ded00
test eax, eax
jne 0x4c887f
push eax
push 8
call fcn.004b17f0
mov edi, eax
add esp, 8
test edi, edi
je 0x4c887f
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x24]
mov dword [edi], ecx
mov ecx, dword [eax + 0xc]
push eax
push dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [edi + 4], ecx
call fcn.00483270
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.004e4210
mov dword [esi], str.ValueList
mov eax, 0x1a01
mov dword [esi + 8], edi
add esp, 0xc
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], fcn.00451030
jmp 0x4c8838
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
lea ebx, [edx + 5]
mov edi, dword [esi + ebx*8]
lea ebx, [esi + ebx*8]
movd xmm0, ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], ebx
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x48], ecx
mov eax, dword [ecx]
mov dword [esp + 0x50], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + edx*8]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov ebx, dword [eax + 0x5c]
test edi, edi
jle 0x4cedeb
cmp edi, 0x10
jb 0x4cedd3
cmp dword [0x575598], 2
jl 0x4cedd3
movaps xmm2, xmmword [0x539a90]
mov eax, edi
and eax, 0x8000000f
jns 0x4ced27
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x539aa0]
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 0x4ced40
cmp ecx, edi
jge 0x4cedeb
mov edx, dword [esp + 0x28]
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 0x4cede0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x74]
push dword [esp + 0x48]
push esi
mov eax, dword [edi + 0x20]
call eax
push dword [esp + 0x64]
mov ebp, dword [esp + 0x2c]
push ebp
mov dword [esp + 0x3c], eax
call fcn.004d4d20
mov edx, dword [esp + 0x3c]
add esp, 0x1c
test edx, edx
jne 0x4cf879
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x38]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x4c8808
mov edi, ebp
jmp 0x4cf725
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, edx
cmp byte [edi + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x4cee8c
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4cee7e
push esi
call fcn.004e4250
add esp, 4
jmp 0x4c8838
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x4c8838
mov eax, dword [edi + 0x2c]
xorps xmm0, xmm0
mov ebx, dword [eax]
mov al, byte [esp + 0x38]
mov ebp, dword [ebx]
movups xmmword [esp + 0x1bc], xmm0
mov byte [esp + 0x1c4], al
lea eax, [esp + 0x35c]
movups xmmword [esp + 0x1ac], xmm0
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x364], 0
mov dword [esp + 0x360], 0x1000000
test byte [eax + 2], 1
je 0x4cef0b
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ceefa
push esi
call fcn.004e4250
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x4cef1f
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 + 0x1b0]
push eax
push dword [edi + 0x2c]
mov eax, dword [ebp + 0x2c]
call eax
mov edi, dword [esp + 0x20]
push ebx
push edi
mov dword [esp + 0x34], eax
call fcn.004d4d20
add esp, 0x14
cmp dword [esp + 0x1c0], 0
jle 0x4cef9d
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x4cef6f
cmp byte [esi + 0x12], 1
jne 0x4cef6f
mov eax, dword [esi + 8]
jmp 0x4cef83
test cl, 1
je 0x4cef78
xor eax, eax
jmp 0x4cef83
push 1
push esi
call fcn.004e2c40
add esp, 8
push eax
push 0x534d04
push edi
call fcn.004c7bc0
mov eax, dword [esp + 0x1cc]
add esp, 0xc
mov dword [esp + 0x20], eax
test byte [esi + 0x10], 2
jne 0x4cefac
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
jmp 0x4cefc2
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4cefc2
push dword [esp + 0x38]
push esi
call fcn.004d2480
add esp, 8
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4cf875
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4c7e0d
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 + 0x2c], eax
call fcn.004d4d20
mov edx, dword [esp + 0x2c]
add esp, 0xc
test edx, edx
jne 0x4cf875
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4cd614
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
jmp 0x4cd614
mov edi, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and edi, 0x4000000
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 2
lea esi, [esi + eax*8]
jne 0x4cf090
mov byte [esi + 0x12], 1
jmp 0x4cf0af
cmp byte [esi + 0x12], 1
je 0x4cf0af
push 1
push esi
call fcn.004d2480
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4cf875
mov eax, dword [ebx]
push dword [esi + 8]
push ebx
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x20], eax
test edi, edi
jne 0x4cf0d2
and dword [ebp + 0x20], 0xfbffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
mov edi, dword [esp + 0x14]
push ebx
push edi
call fcn.004d4d20
mov edx, dword [esp + 0x28]
add esp, 8
and dword [edi + 0x98], 0xfffffffc
jmp 0x4c922d
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
cmp byte [ebp + 0x57], 0
jne 0x4c887f
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4cfc7c
mov ebx, dword [edi]
test ebx, ebx
je 0x4cfc7c
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x4c7e0d
mov al, byte [ebp + 0x5c]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x5c]
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 0x4cf15f
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4cf154
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x5c], al
lea eax, [esp + 0xf0]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x6f]
push edi
mov edi, dword [esp + 0x28]
push edi
mov byte [ebp + 0x5c], al
call fcn.004d4d20
mov edx, dword [esp + 0x38]
add esp, 0x18
test edx, edx
jne 0x4cf1e2
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], edx
je 0x4cf1bb
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x4cf875
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
cmp dl, 0x13
jne 0x4cf1b7
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4cf1bb
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x4cfcb9
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push dword [esp + 0x10]
push edi
call fcn.00483270
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [ebp + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x30]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
push dword [esp + 0x10]
push edi
call fcn.00483270
mov ecx, dword [ebp + 0x10]
mov ebx, eax
mov eax, dword [esp + 0x18]
add esp, 8
xor edi, edi
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4cf29e
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x4cf2b6
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4cf2b6
push esi
call fcn.00462350
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x4cf2c7
mov dword [eax + 0xa0], edi
jmp 0x4cf2cd
mov edi, dword [eax + 0xa0]
cmp byte [esi + 9], 0
je 0x4cf2e2
add dword [esi + 0xc], 0xffffffff
jne 0x4cf2e2
push esi
call fcn.004e0290
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x4c8838
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi], edi
je 0x4cf34a
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x38]
mov dword [esi], edi
mov byte [esi + 0x18], al
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x4cf34a
mov ebp, dword [esp + 0x10]
lea edx, [esi + 0x1c]
lea edx, [edx + ecx*4]
nop dword [eax + eax]
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 0x4cf330
mov ebp, dword [esp + 0x18]
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4cf3ff
jle 0x4cf3cd
movzx ecx, word [edi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x4cf39d
cmp byte [edi + 0x12], 1
jne 0x4cf39d
mov eax, dword [edi + 8]
jmp 0x4cf3b1
test cl, 1
je 0x4cf3a6
xor eax, eax
jmp 0x4cf3b1
push 1
push edi
call fcn.004e2c40
add esp, 8
mov edi, dword [esp + 0x14]
push eax
push 0x534d04
push edi
call fcn.004c7bc0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4cf3d1
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push dword [eax + 4]
lea eax, [edi + 0xe4]
push dword [esi + 0x10]
push eax
push ebp
call fcn.004c7640
mov edx, dword [esp + 0x30]
add esp, 0x10
mov dword [esi + 0x14], 0
jmp 0x4c922d
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, dword [ecx + 4]
mov edx, 0xf7ff
lea eax, [eax + eax*4]
and word [esi + eax*8 + 0x10], dx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, 0x800
test word [esi + edx*8 + 0x10], ax
je 0x4cf4a2
movzx eax, byte [esi + edx*8 + 0x13]
mov ebx, 0x9000
cdq
test word [ecx + 0x10], bx
je 0x4cf47d
push edx
push eax
push ecx
jmp 0x4c8f06
mov dword [ecx], eax
mov eax, 4
mov dword [ecx + 4], edx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4cf4cd
push ecx
call fcn.004e4250
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, 1
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
test byte [esi + edx*8 + 0x10], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
je 0x4cf529
mov eax, 0xf7ff
and word [esi + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov eax, 0x800
or word [esi + ecx*8 + 0x10], ax
mov al, byte [esi + edx*8]
mov byte [esi + ecx*8 + 0x13], al
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
push edx
push esi
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.0046edb0
mov ebx, dword [esp + 0x2c]
mov esi, eax
add esp, 8
mov ecx, edx
mov eax, dword [ebx + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.004fc100
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 0x4c8838
mov edx, dword [esp + 0x10]
push edx
push esi
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.0046edb0
mov esi, eax
add esp, 8
mov eax, dword [esp + 0x24]
mov ecx, edx
mov eax, dword [eax + ebx*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.004fc100
mov edi, eax
mov eax, dword [esp + 0x24]
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 + 0x14]
shl eax, cl
test eax, edx
jne 0x4cf5fa
inc dword [edi + 0xc4]
jmp 0x4cf725
inc dword [edi + 0xc0]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov cl, byte [ebp + 0x5e]
test cl, 0x41
je 0x4cf6d0
cmp byte [edi + 0x95], 0xfe
je 0x4cf6d0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x14]
test eax, eax
jne 0x4cf651
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x4cf6d0
push eax
test cl, 0x40
je 0x4cf67d
push edi
call fcn.004d0300
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.00451030
mov esi, dword [esp + 0x38]
add esp, 0x14
jmp 0x4cf6d0
cmp dword [ebp + 0xc8], 1
jle 0x4cf6bc
push str.____s
push ebp
call fcn.004b17d0
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push edi
push dword [ebp + 0xdc]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x4cf6b6
push esi
push ebp
call fcn.0049da00
add esp, 8
mov esi, dword [esp + 0x24]
jmp 0x4cf6d0
mov eax, dword [ebp + 0xd8]
push edi
push dword [ebp + 0xdc]
push 1
call eax
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, dword [0x56f204]
jl 0x4cf713
cmp byte [ecx], 0xb8
je 0x4c8818
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x4cf711
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x4cf708
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x4cf6f7
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [edi + 0xbc]
jmp 0x4cf729
mov edi, ebx
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4c7d06
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x4cf7fd
movzx eax, word [edx + 2]
test ax, ax
je 0x4cf7b7
push dword [eax*4 + 0x52d440]
push str._s_constraint_failed
push edi
call fcn.004c7bc0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4cf7cc
push eax
push dword [edi + 0x7c]
push str._z:__s
push ebp
call fcn.004b17d0
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x4cf7cc
push dword [edx + 0x10]
push 0x534d04
push edi
call fcn.004c7bc0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
push dword [edi + 0x7c]
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
push dword [edi + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [ebx + 4]
call fcn.0045a560
add esp, 0x14
push edi
call fcn.004d0c60
mov ebp, dword [esp + 0x18]
mov edi, eax
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp edi, 5
jne 0x4cf81d
mov dword [ebp + 0x24], eax
jmp 0x4cf964
cmp dword [ebp + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4cf964
push str.FOREIGN_KEY_constraint_failed
mov dword [edi + 0x24], 0x313
push edi
mov byte [edi + 0x94], 2
call fcn.004c7bc0
movsx edx, byte [edi + 0x96]
add esp, 8
sar edx, 7
and edx, 0x312
inc edx
jmp 0x4cf871
push 0x1760b
call fcn.0049c060
add esp, 4
mov edx, eax
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
cmp byte [esi + 0x57], 0
je 0x4cfe98
mov edx, 7
jmp 0x4cfec3
mov edx, dword [esp + 0x68]
add edi, edi
mov ebp, dword [esp + 0x14]
and ecx, 0x3f
push dword [edx + edi*8]
mov edx, dword [esp + 0x2c]
push dword [edx]
push dword [eax*4 + 0x56f2e8]
movzx eax, byte [ecx + 0x5328e8]
push dword [eax*4 + 0x56fbcc]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.004c7bc0
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov ebp, dword [esp + 0x14]
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebp
call fcn.004c7bc0
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov ebp, dword [esp + 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.004c7bc0
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov byte [esi + 0x55], 0
jmp 0x4cf87d
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
mov ebp, edi
imul ecx
mov ecx, dword [esp + 0x18]
mov edi, 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov byte [ecx + 0x55], 0
mov dword [ebp + 0x24], edi
jmp 0x4cf964
mov edi, 0x65
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x88]
nop dword [eax + eax]
cmp dword [esp + 0x84], ebx
jb 0x4cff93
mov edx, dword [esp + 0x74]
ja 0x4cf98d
cmp dword [esp + 0x1c], edx
jb 0x4cff93
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x4cff93
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x78], edx
adc ebx, 0
call eax
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
je 0x4cf970
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x74], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x20], edx
jmp 0x4cf879
mov esi, dword [esp + 0x18]
and edx, 0x100000
or edx, 0
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
je 0x4cf9ff
mov edx, 8
mov dword [esp + 0x20], edx
jmp 0x4cf881
mov edx, 0xb
mov dword [esp + 0x20], edx
jmp 0x4cf881
mov ebp, dword [esp + 0x14]
cmp dl, 5
jne 0x4cfe80
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x20]
imul ecx
mov ecx, ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edi
jmp 0x4cf964
mov ebp, dword [esp + 0x10]
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4cfa59
push eax
push ebx
call fcn.0049da00
add esp, 8
push 0
push 0x1c
push ebx
call fcn.0049db10
add esp, 0xc
test eax, eax
je 0x4cfa8a
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x533cb8]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x533cc0]
mov dword [eax + 0x18], ecx
mov dword [edi + 0x7c], eax
mov edx, dword [ebp + 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 + 0x3c]
je 0x4cfaad
push edx
push ebx
call fcn.004bb5b0
add esp, 8
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xffffffed
or eax, 1
mov dword [edi + 0x98], eax
jmp 0x4cf871
mov ebp, dword [esp + 0x14]
mov edx, 0x204
mov dword [esp + 0x20], edx
jmp 0x4cf87d
push dword [edi]
call fcn.00495050
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4cf875
push 0x5398bc
push 0x15dc7
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov edx, 0xb
jmp 0x4cf871
push 0x5398bc
push 0x17ed3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov edx, 0xb
jmp 0x4cf871
push str.index_corruption
push 0x1830d
push 0x30b
call fcn.004bb3d0
add esp, 0xc
jmp 0x4cf86f
cmp dword [esp + 0x204], 0
je 0x4cfb74
lea eax, [esp + 0x1ec]
push eax
call fcn.004e4210
add esp, 4
push 0x5398bc
push 0x15da6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov edx, 0xb
jmp 0x4cf871
push 0x183da
jmp 0x4cf867
mov ebp, dword [esp + 0x14]
mov edx, 6
mov dword [esp + 0x20], edx
mov byte [ebp + 0x94], 2
jmp 0x4cf879
push ebp
call fcn.004bb530
add esp, 4
jmp 0x4c887f
push dword [esp + 0x94]
call fcn.00451030
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4cf875
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x28], 1
call fcn.004c7bc0
add esp, 8
mov edx, 1
jmp 0x4cf875
push esi
call fcn.00454480
push eax
push 0x534d04
push edi
call fcn.004c7bc0
mov edx, dword [esp + 0x30]
add esp, 0x10
jmp 0x4cf875
mov ebp, dword [esp + 0x14]
mov ecx, str.out_of
cmp ebx, 5
mov dword [esp + 0x20], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebp
call fcn.004c7bc0
add esp, 0xc
mov edx, 1
jmp 0x4cf879
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x4cf871
push dword [esp + 0x90]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x4c887f
mov edx, 6
jmp 0x4cf871
push dword [esp + 0x9c]
call fcn.00451030
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4cf875
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x74], ecx
mov dword [esp + 0x88], eax
jmp 0x4cf871
cmp ecx, 5
movzx eax, cl
mov esi, 2
cmove eax, esi
mov byte [edi + 0x94], al
jmp 0x4cf875
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0x10]
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edi + 0x78], eax
cmp byte [ebp + 0x57], 0
jne 0x4c887f
test byte [ebp + 0x5e], 4
je 0x4cfd14
mov eax, dword [ebp + 0xd8]
push 0
push edi
push dword [ebp + 0xdc]
push 4
call eax
add esp, 0x10
mov ecx, ebx
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 0x64
jmp 0x4cf95c
mov edx, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x4cfe0d
test ecx, ecx
je 0x4cfd65
push 0x204
push ebp
call fcn.004bbe00
add esp, 8
mov al, 1
jmp 0x4cfda5
test ebx, ebx
je 0x4cfd8a
cmp dword [ebp + 0xc4], 0
jle 0x4cfd8a
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.004c7bc0
add esp, 8
mov edx, 5
jmp 0x4cf871
push 1
push edi
call fcn.004c7320
mov edi, eax
add esp, 8
test edi, edi
jne 0x4cf95c
mov edi, dword [esp + 0x14]
mov al, bl
push edi
mov byte [ebp + 0x55], al
call fcn.004d0c60
add esp, 4
cmp eax, 5
jne 0x4cfdea
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x44]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov al, 1
sub al, bl
mov edi, 5
mov byte [ebp + 0x55], al
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x24], edi
jmp 0x4cf960
push ebp
call fcn.004993e0
mov ebp, dword [esp + 0x18]
add esp, 4
mov edi, 0x65
mov eax, 1
cmp dword [ebp + 0x24], 0
cmovne edi, eax
jmp 0x4cf960
test ebx, ebx
jne 0x4cfe28
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.004c7bc0
add esp, 8
lea edx, [ebx + 1]
jmp 0x4cf871
test ecx, ecx
mov edx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, edx
push eax
push edi
call fcn.004c7bc0
add esp, 8
mov edx, 1
jmp 0x4cf871
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x4cf871
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
jmp 0x4c887f
mov esi, ebx
jmp 0x4cf87d
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jmp 0x4cf881
cmp edx, 0x210a
jne 0x4cfec7
push 0x5398bc
push 0x18cde
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0045a560
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x20], edx
cmp dword [ebp + 0x7c], 0
jne 0x4cfeea
cmp edx, 0xc0a
je 0x4cfeea
push edx
call fcn.00452490
push eax
push 0x534d04
push ebp
call fcn.004c7bc0
add esp, 0x10
mov ebx, dword [esp + 0x20]
push ebx
push dword [esp + 0x1c]
mov dword [ebp + 0x24], ebx
call fcn.004c22f0
push dword [ebp + 0x7c]
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x50]
push dword [ebp + 0xc8]
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.0045a560
add esp, 0x1c
cmp byte [ebp + 0x97], 2
jne 0x4cff3c
push ebp
call fcn.004d0c60
add esp, 4
cmp ebx, 0xc0a
jne 0x4cff78
push dword [esp + 0x18]
call fcn.004b2250
add esp, 4
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x73]
mov edi, 1
test al, al
je 0x4cf964
movzx eax, al
dec eax
push eax
push ecx
call fcn.004bb5b0
add esp, 8
jmp 0x4cf960
cmp ebx, 0xb
jne 0x4cff50
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], 0
jne 0x4cff54
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x20], eax
or dword [ecx + 0x24], 2
jmp 0x4cff54
mov ecx, dword [esp + 0x1c]
add dword [ebp + 0xb4], ecx
cmp dword [ebp + 0xa0], 0
je 0x4cffaf
push ebp
call fcn.004e4160
add esp, 4
mov ecx, dword [esp + 0x390]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004fb4f7
add esp, 0x384
ret