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

Disassembly:
sub esp, 0x384
mov eax, dword [0x5340e4]
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 0x4b1c75
push edi
call fcn.004b1b50
add esp, 4
cmp dword [ebp + 0x174], 0
je 0x4b1c94
mov ecx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
xor eax, eax
jmp 0x4b1c9a
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x88], eax
mov dword [esp + 0x74], ecx
je 0x4b9e68
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 0x4b9e4b
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.0x4b1d2c.89
jmp dword [ebx*4 + 0x4b9fcc]
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.0x4b1d2c.9
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x4b2818
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 0x4b1d06
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 0x4b9725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
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 0x4b1d06
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4b2818
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4b975c
cmp dword [ecx + 4], 0
jne 0x4b975c
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.004baa00
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 0x4b1eed
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 0x4b1d06
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 0x4b1f57
push ecx
call fcn.0046d2b0
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 0x4b1d06
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 0x4b1d06
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 0x4b1fac
push edx
call fcn.0046d2b0
add esp, 4
mov edx, eax
jmp 0x4b1fb5
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 0x4b1d06
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 0x4b2003
push ecx
call fcn.0046d2b0
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 0x4b1d06
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 0x4b205a
push esi
call fcn.0046d2b0
add esp, 4
mov esi, eax
jmp 0x4b2063
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4b206e
xor ecx, ecx
jmp 0x4b2086
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4b2073
sub ecx, edi
mov edi, dword [esp + 0x14]
and ecx, 0x3fffffff
cmp byte [esp + 0x38], 1
mov dword [ebx + 4], ecx
je 0x4b2124
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.004bc070
mov ebp, eax
add esp, 0x18
mov dword [esp + 0x20], ebp
test ebp, ebp
jne 0x4b41d7
test byte [esi + 0x10], 2
mov al, byte [esp + 0x38]
jne 0x4b20c3
mov byte [esi + 0x12], al
jmp 0x4b20dd
cmp byte [esi + 0x12], al
je 0x4b20dd
push dword [esp + 0x38]
push esi
call fcn.004bc480
add esp, 8
test eax, eax
jne 0x4b287b
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 0x4b2110
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4b2110
push eax
push ebp
call fcn.00487a00
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 0x4b41d7
mov byte [ebx], 0x49
jmp 0x4b2136
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 0x4b2158
push ecx
call fcn.0046d2b0
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 0x4b21a3
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 0x4b21a3
cmp dword [ebx + esi*8 + 4], edx
jne 0x4b21a3
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 0x4b1d06
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 0x4b21e6
push edx
call fcn.0046d2b0
add esp, 4
mov edx, eax
jmp 0x4b21ef
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 0x4b8bfd
mov eax, 0x9000
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x4b223f
lea eax, [esi - 0x10]
push eax
call fcn.004ce250
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x4b2225
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 0x4b1d06
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 0x4b1d06
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 0x4b22ce
push esi
call fcn.0046d2b0
add esp, 4
mov esi, eax
mov edx, 0x9000
jmp 0x4b22d7
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 0x4b2384
test word [esi + 0x10], dx
jne 0x4b22f4
cmp dword [esi + 0x18], ecx
je 0x4b22fd
push esi
call fcn.004ce210
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.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004e7970
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 0x4b1d06
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.004bc070
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 0x4b1d06
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 0x4b23f3
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x4b23e6
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x4b41d7
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 0x4b2414
push esi
call fcn.004ce250
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 0x4b1d06
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 0x4b2481
cmp dword [esi + 0x18], 0
je 0x4b248a
push esi
call fcn.004ce210
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 0x4b253a
test cl, 0x12
je 0x4b2531
test ecx, 0x400
je 0x4b2512
mov eax, dword [esi]
add eax, dword [esi + 0xc]
test eax, eax
jg 0x4b24de
test cl, 0x10
je 0x4b2512
mov eax, 1
push 1
push eax
push esi
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004e7970
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 0x4b2520
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4b2531
push esi
call fcn.004ce1c0
add esp, 4
test eax, eax
jne 0x4b287f
mov eax, 0xbfff
and word [esi + 0x10], ax
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x4b2470
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 0x4b1d06
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 0x4b259f
push 0x4000
push edi
push esi
call fcn.004ccf90
add esp, 0xc
jmp 0x4b25ce
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 0x4b25ce
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 0x4b2658
test al, 0x12
je 0x4b264b
test eax, 0x400
je 0x4b262c
mov ecx, dword [esi]
add ecx, dword [esi + 0xc]
test ecx, ecx
jg 0x4b25f8
test al, 0x10
je 0x4b262c
mov ecx, 1
push 1
push ecx
push esi
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287f
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004e7970
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 0x4b263a
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4b264b
push esi
call fcn.004ce1c0
add esp, 4
test eax, eax
jne 0x4b287f
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 0x4b2675
test byte [ecx + 2], 2
je 0x4b2675
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x4b2252
add esi, 0x28
add edi, 0x28
jmp 0x4b2583
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 0x4b26d6
push 0x4000
push edx
push ecx
call fcn.004ccf90
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1f6d
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 0x4b1d06
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 0x4b2763
push eax
push edx
push ecx
call fcn.004cf760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
cmp dword [edi + 0x44], 0
jg 0x4b9833
jl 0x4b279e
cmp dword [edi + 0x40], 0
ja 0x4b9833
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b2857
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x4b282b
push ebp
call fcn.004ce250
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 0x4b1d06
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 0x4b1d06
test cl, 0x12
jne 0x4b28e7
cmp dword [esi + 0x18], 0x20
jge 0x4b28a5
push 0
push 0x20
push esi
call fcn.004bbb70
add esp, 0xc
test eax, eax
je 0x4b28b2
mov byte [esi + 0x12], 0
mov ebp, dword [esp + 0x18]
push ebp
call fcn.0049c250
mov ebp, dword [esp + 0x18]
push str.out_of_memory
push ebp
call fcn.004b1bc0
mov edx, 7
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4b9879
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.004ce290
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 0x4b2943
push dword [esp + 0x38]
push esi
call fcn.004bc480
add esp, 8
jmp 0x4b293f
test ecx, 0x400
je 0x4b294d
mov eax, dword [esi + 0xc]
add eax, dword [esi]
test eax, eax
jg 0x4b290b
test bl, 0x10
jne 0x4b2906
mov eax, dword [esp + 0x28]
movzx ecx, ax
jmp 0x4b2943
mov eax, 1
push 1
push eax
push esi
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287b
push dword [esi]
push eax
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
push eax
call fcn.004e7970
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 0x4b29c6
cmp dword [edi + 0x18], 0x20
jge 0x4b297a
push 0
push 0x20
push edi
call fcn.004bbb70
add esp, 0xc
test eax, eax
je 0x4b2987
mov byte [edi + 0x12], 0
jmp 0x4b287b
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.004ce290
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 0x4b29be
push dword [esp + 0x38]
push edi
call fcn.004bc480
movzx ebx, word [edi + 0x10]
add esp, 8
and ebx, 0xfffd
jmp 0x4b29ee
test ebx, 0x400
je 0x4b29ee
push edi
call fcn.004bb940
add esp, 4
test eax, eax
jne 0x4b287b
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 0x4b41d7
jl 0x4b2a1f
cmp ecx, eax
ja 0x4b41d7
xor eax, eax
cmp ebp, edi
sete al
push eax
mov eax, dword [esp + 0x2c]
add eax, 2
push eax
push ebp
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287b
mov ax, word [ebp + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [ebp + 0x10], ax
cmp ebp, edi
je 0x4b2a6d
push dword [edi + 0xc]
push dword [edi + 8]
push dword [ebp + 8]
call fcn.004e73f0
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.004e73f0
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 0x4b2aa2
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 0x4b2808
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 0x4b2b52
or cl, bl
test cl, 1
jne 0x4b2ec1
and edx, 0x2d
je 0x4b2b27
mov ebx, edx
mov eax, esi
jmp 0x4b2b37
push edi
call fcn.00451310
movzx ebx, ax
add esp, 4
movzx eax, word [ebp + 0x10]
and eax, 0x2d
jne 0x4b2b48
push ebp
call fcn.00451310
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x4b2cec
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.0x4b2b7c
jmp dword [eax*4 + 0x4ba2b0]
push esi
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.0047ad90
add esp, 0xc
test eax, eax
jne 0x4b2ce8
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
jmp 0x4b2e9c
test edi, edi
jne 0x4b2bd3
cmp esi, 0x80000000
jne 0x4b2bd3
test ebp, ebp
jg 0x4b2ce8
jl 0x4b2bc5
test ebx, ebx
jae 0x4b2ce8
add ebx, 0
adc ebp, 0x80000000
jmp 0x4b2e9c
neg edi
adc esi, 0
neg esi
jmp case.0x4b2b7c.106
test esi, esi
jl 0x4b2c39
jg 0x4b2be6
test edi, edi
je 0x4b2c2f
push esi
push edi
push 0x7fffffff
push 0xffffffffffffffff
call fcn.004e64e0
cmp ebp, edx
jg 0x4b2ce8
jl 0x4b2c06
cmp ebx, eax
ja 0x4b2ce8
push esi
push edi
push 0x80000000
push 0
call fcn.004e64e0
cmp ebp, edx
jg 0x4b2caf
jl 0x4b2ce8
cmp ebx, eax
jae 0x4b2caf
jmp 0x4b2ce8
test esi, esi
jg 0x4b2caf
jl 0x4b2c39
test edi, edi
jae 0x4b2caf
test ebp, ebp
jl 0x4b2c6e
jg 0x4b2c43
test ebx, ebx
je 0x4b2c64
push ebp
push ebx
push 0x80000000
push 0
call fcn.004e64e0
cmp esi, edx
jg 0x4b2caf
jl 0x4b2ce8
cmp edi, eax
jae 0x4b2caf
jmp 0x4b2ce8
test ebp, ebp
jg 0x4b2caf
jl 0x4b2c6e
test ebx, ebx
jae 0x4b2caf
test edi, edi
jne 0x4b2c7a
cmp esi, 0x80000000
je 0x4b2ce8
test ebx, ebx
jne 0x4b2c86
cmp ebp, 0x80000000
je 0x4b2ce8
push esi
push edi
push 0x80000000
push 1
call fcn.004e64e0
mov ecx, ebx
neg ecx
mov dword [esp + 0x28], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x4b2ce8
jl 0x4b2caf
cmp dword [esp + 0x28], eax
ja 0x4b2ce8
push esi
push edi
push ebp
push ebx
call fcn.004e6670
jmp 0x4b2e98
mov eax, edi
or eax, esi
je 0x4b2ec1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4b2e6e
test ebx, ebx
jne 0x4b2e6e
cmp ebp, 0x80000000
jne 0x4b2e6e
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x48]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x4b2d0d
movsd xmm0, qword [ebx]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4b2d63
test al, 0x24
je 0x4b2d2c
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.004e5d00
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4b2d63
test al, 0x12
je 0x4b2d54
push ebx
call fcn.00469ea0
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
add esp, 4
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esp + 0xb8]
jmp 0x4b2d63
movsd xmm0, qword [esp + 0xb8]
movsd qword [esp + 0x28], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x4b2d72
movsd xmm0, qword [ebp]
jmp 0x4b2d9a
test al, 0x24
je 0x4b2d83
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.004e5d00
jmp 0x4b2d9a
test al, 0x12
je 0x4b2d9a
push ebp
call fcn.00469ea0
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.0x4b2da9
jmp dword [eax*4 + 0x4ba2c0]
addsd xmm0, qword [esp + 0x28]
jmp 0x4b2e24
subsd xmm0, qword [esp + 0x28]
jmp 0x4b2e24
mulsd xmm0, qword [esp + 0x28]
jmp 0x4b2e24
movsd xmm1, qword [esp + 0x28]
ucomisd xmm1, qword [esp + 0xb8]
lahf
test ah, 0x44
jnp 0x4b2ec1
divsd xmm0, xmm1
jmp 0x4b2e24
push ebx
call fcn.004bb060
push ebp
mov esi, eax
mov edi, edx
call fcn.004bb060
mov ecx, esi
add esp, 8
or ecx, edi
je 0x4b2ec1
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4b2e14
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004e66b0
mov ecx, eax
call fcn.004e5d00
movsd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x2c]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x4b2e4a
mov eax, dword [esp + 0x28]
and ecx, 0xfffff
or eax, ecx
jne 0x4b2ec1
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 0x4b2808
push esi
push edi
push ebp
push ebx
call fcn.004e64e0
jmp 0x4b2e98
mov eax, edi
or eax, esi
je 0x4b2ec1
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4b2e8f
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.004e66b0
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 0x4b2808
mov eax, dword [esp + 0x68]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x4b2ed6
push eax
jmp 0x4b2800
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4b2808
mov eax, dword [ecx + 4]
test eax, eax
je 0x4b2818
lea eax, [eax + eax*4]
mov edx, 0x9000
test word [esi + eax*8 + 0x10], dx
lea eax, [esi + eax*8]
je 0x4b2f25
push 0
push 0
push eax
call fcn.004cf760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
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 0x4b2fd2
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x4b2faa
push ebp
call fcn.004ce250
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 0x4b1d06
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 0x4b1d06
push ecx
call fcn.004bb060
mov ebx, eax
mov esi, edx
push edi
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], esi
call fcn.004bb060
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x4b3006
and ebx, edi
and esi, edx
jmp 0x4b306c
cmp cl, 0x67
jne 0x4b3011
or ebx, edi
or esi, edx
jmp 0x4b306c
mov eax, edi
or eax, edx
je 0x4b306c
test edx, edx
jg 0x4b3045
jl 0x4b3021
test edi, edi
jae 0x4b303a
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4b3045
jg 0x4b3033
cmp edi, 0xffffffc0
jbe 0x4b3045
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4b3087
jg 0x4b3045
cmp edi, 0x40
jb 0x4b3087
test esi, esi
jg 0x4b305b
jl 0x4b304f
test ebx, ebx
jae 0x4b305b
cmp cl, 0x68
je 0x4b305b
or ebx, 0xffffffff
or esi, ebx
jmp 0x4b306c
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 0x4b2830
movq xmm1, qword [esp + 0xe8]
movd xmm0, edi
cmp cl, 0x68
jne 0x4b30a5
psllq xmm1, xmm0
movq qword [esp + 0x28], xmm1
jmp 0x4b3064
psrlq xmm1, xmm0
movq qword [esp + 0x28], xmm1
test esi, esi
jg 0x4b3064
jl 0x4b30b9
test ebx, ebx
jae 0x4b3064
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.004e6240
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
or ebx, eax
or esi, edx
jmp 0x4b306c
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push esi
call fcn.004bb060
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 0x4b1d06
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 0x4b3183
test al, 0x28
jne 0x4b3158
test al, 2
je 0x4b3161
push 1
push esi
call fcn.00448860
add esp, 8
jmp 0x4b3161
push esi
call fcn.004bb0d0
add esp, 4
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x4b3183
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
jne 0x4b9729
mov edx, 0x14
jmp 0x4b9871
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 0x4b1d06
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea eax, [esi + eax*8]
je 0x4b2818
push eax
call fcn.004bbe50
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b320e
push esi
call fcn.004bb940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9e87
mov eax, dword [esp + 0x10]
push dword [esp + 0x80]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.004bb790
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b32fe
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x4b32be
jg 0x4b3294
cmp ebp, edx
jbe 0x4b32b4
mov eax, dword [0x5322dc]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4b9725
mov dword [esp + 0x60], 1
jmp 0x4b280c
cmp ecx, eax
jg 0x4b32de
jl 0x4b32be
cmp ebp, edx
jae 0x4b32de
mov eax, dword [0x5322d4]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4b9725
mov dword [esp + 0x60], 0xffffffff
jmp 0x4b280c
mov eax, dword [0x5322d8]
mov edi, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x4b9725
mov dword [esp + 0x60], 0
jmp 0x4b280c
mov ebx, dword [esp + 0x28]
mov eax, ecx
or eax, ebx
test al, 1
je 0x4b337e
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x4b334f
test dl, 1
je 0x4b333c
test ecx, 0x100
jne 0x4b333c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 0
movzx edx, byte [eax]
mov eax, dword [0x5322d8]
jmp 0x4b349c
mov eax, ecx
not eax
and eax, 1
lea eax, [eax*2 - 1]
jmp 0x4b3474
mov edi, dword [esp + 0x14]
test al, 0x10
jne 0x4b9725
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 0x4b1d06
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x4b33cc
test al, 2
je 0x4b345f
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x4b33b0
push 0
push edi
call fcn.00448860
movzx ecx, word [esi + 0x10]
add esp, 8
mov dword [esp + 0x34], ecx
and cl, 0x2e
cmp cl, 2
jne 0x4b345f
push 0
push esi
call fcn.00448860
add esp, 8
jmp 0x4b345f
cmp dl, 0x42
jne 0x4b345f
test al, 2
je 0x4b345f
test bl, 2
jne 0x4b3425
test bl, 0x2c
je 0x4b3425
push 1
push dword [esp + 0x84]
push edi
call fcn.004bc400
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 0x4b3421
mov eax, ebx
or eax, 2
movzx ecx, ax
mov dword [esp + 0x34], ecx
jmp 0x4b3425
mov ecx, dword [esp + 0x34]
test cl, 2
jne 0x4b345f
test cl, 0x2c
je 0x4b345f
push 1
push dword [esp + 0x84]
push esi
call fcn.004bc400
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.0049bd90
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 0x4b348e
mov eax, dword [0x5322d4]
jmp 0x4b349c
jne 0x4b3497
mov eax, dword [0x5322d8]
jmp 0x4b349c
mov eax, dword [0x5322dc]
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 0x4b21a3
jmp 0x4b9725
cmp dword [esp + 0x60], 0
je 0x4b9725
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ebx, dword [esp + 0x10]
test byte [ebx + 2], 1
jne 0x4b34e1
xor eax, eax
jmp 0x4b34e7
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 0x4b21a3
lea ebx, [edx + 0x14]
test eax, eax
je 0x4b3521
mov edi, dword [eax + esi*4]
jmp 0x4b3523
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.0049bd90
mov edx, eax
add esp, 0xc
mov dword [esp + 0x60], edx
test edx, edx
jne 0x4b3576
mov eax, dword [esp + 0x3c]
inc esi
mov edx, dword [esp + 0x48]
add ebx, 4
cmp esi, dword [esp + 0x28]
jl 0x4b3518
jmp 0x4b2834
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
mov esi, dword [esp + 0x24]
je 0x4b35ad
mov eax, dword [esp + 0x68]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4b35a7
mov eax, dword [esp + 0x50]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4b35ad
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.0x4b1d2c.89
neg edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x4b3609
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 0x4b1d06
jne 0x4b362e
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 0x4b1d06
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 0x4b1d06
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.004b1140
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.004b1140
mov ecx, ebx
add esp, 0x10
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x4b3693
mov dl, byte [esi + eax + 0x511d2c]
jmp 0x4b369a
mov dl, byte [esi + eax + 0x511d38]
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x24]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x4b36d9
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 0x4b1d06
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 0x4b1d06
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.004b1140
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 0x4b376c
push edx
push eax
push ecx
call fcn.004cf760
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
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 0x4b381f
push 0
push ecx
call fcn.004b1140
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x4b37f2
push 0
push eax
push esi
call fcn.004cf760
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 0x4b1d06
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 0x4b1d06
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4b384e
push esi
call fcn.004ce250
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 0x4b1d06
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 0x4b1d06
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 0x4b38a0
push esi
call fcn.004ce250
add esp, 4
jmp 0x4b38a9
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x4b224e
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.004bb060
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
jmp 0x4b2838
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x4b3943
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 0x4b9723
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 0x4b1d06
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 0x4b62ef
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 0x4b1d06
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.004b1140
add esp, 8
test eax, eax
jne 0x4b9725
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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.004b1140
add esp, 8
test eax, eax
jne 0x4b1f6d
jmp 0x4b9725
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4b9725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x4b3a4a
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 0x4b3a41
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x4b3a38
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x4b3a6c
movzx eax, byte [eax + 0x511d74]
jmp 0x4b3a6f
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x4b3a63
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 + 0x517158]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov ecx, dword [esp + 0x10]
test word [ecx + 2], ax
jne 0x4b9725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4b3af4
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4b3af4
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 0x4b2f01
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 0x4b1d06
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 0x4b3b2d
push eax
call fcn.004ce250
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4b9725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4b1f6d
cmp byte [eax + 2], 0
je 0x4b1f6d
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 0x4b3bb3
push eax
call fcn.004ce250
add esp, 4
jmp 0x4b9725
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4b9725
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 0x4b3c34
cmp byte [esi + 2], 0
jne 0x4b3ca4
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x4b3c12
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4b3c58
mov eax, dword [eax + ebx*4 + 4]
test eax, eax
je 0x4b3c58
mov esi, dword [esi + 0x28]
lea ebx, [eax - 1]
mov edi, dword [esp + 0x14]
jmp 0x4b3bd1
cmp byte [edi], 0
je 0x4b3c6f
push esi
call fcn.004bb020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov edi, dword [esp + 0x14]
jmp 0x4b3bd5
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x4b3d2e
push esi
call fcn.004bb020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b3bd5
jmp 0x4b9875
push esi
call fcn.004ba980
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push edi
call fcn.0045ed00
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 0x4b3c98
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 0x4b3ccd
cmp byte [esi], 3
jne 0x4b3dbc
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4b3dbc
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 0x4b3ced
mov eax, 1
jmp 0x4b3cfc
push ebp
push dword [esi + 0x4c]
call fcn.00497290
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 0x4b3dae
mov dword [esi + 0x4c], eax
mov dword [esi + 0x54], eax
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x4b3f86
cmp eax, dword [esi + 0x50]
ja 0x4b3f86
movzx ecx, word [esi + 0x3e]
cmp ecx, ebx
ja 0x4b4072
mov edi, dword [esi + 0x34]
mov edx, dword [ebp]
cmp edi, edx
jae 0x4b3fa7
mov ebx, dword [esi + 0x4c]
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x4b3e21
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.004bbb10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b3e23
mov ebx, dword [esi + 0x4c]
xor eax, eax
mov edi, dword [esi + 0x34]
mov dword [esp + 0x30], ebx
jmp 0x4b3e23
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 0x4b3dfd
push eax
call fcn.004ce250
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 0x4b1d06
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 0x4b1d06
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 0x4b3e66
movzx eax, byte [ebx + 0x516958]
inc edi
cdq
add ebp, eax
adc ecx, edx
jmp 0x4b3ea2
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00497290
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 0x4b3e92
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x4b3e99
movzx eax, byte [ebx + 0x516958]
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 0x4b3edb
cmp edi, dword [esp + 0x68]
jb 0x4b3e46
mov eax, dword [esp + 0x68]
jmp 0x4b3ee3
mov eax, dword [esp + 0x68]
cmp edi, eax
jb 0x4b3f3a
cmp edi, eax
ja 0x4b3f45
cmp ebp, dword [esi + 0x50]
jne 0x4b3f45
test ecx, ecx
jne 0x4b3f45
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 0x4b3f35
test dword [esp + 0x174], 0x9000
jne 0x4b3f21
cmp dword [esp + 0x17c], 0
je 0x4b3f35
lea eax, [esp + 0x164]
push eax
call fcn.004ce210
movzx eax, word [esi + 0x3e]
add esp, 4
movzx eax, ax
jmp 0x4b3fab
test ecx, ecx
jb 0x4b3ef0
ja 0x4b3f45
cmp ebp, dword [esi + 0x50]
jbe 0x4b3ef0
mov ebp, dword [esp + 0x34]
cmp dword [ebp], 0
jne 0x4b3f55
xor edx, edx
mov edi, eax
jmp 0x4b3ef4
cmp dword [esi + 0x4c], 0
jne 0x4b3f82
test dword [esp + 0x174], 0x9000
jne 0x4b3f72
cmp dword [esp + 0x17c], 0
je 0x4b3f82
lea eax, [esp + 0x164]
push eax
call fcn.004ce210
add esp, 4
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4b9862
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [edx + eax*4]
mov dword [esp + 0x10], ebp
jmp 0x4b280c
xor ebx, ebx
mov eax, ecx
movzx eax, ax
cmp eax, dword [esp + 0x58]
ja 0x4b4076
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 0x4b4058
mov edx, dword [ebp + 0x10]
test word [ecx + 0x10], ax
je 0x4b400f
push 0x2000
push edx
push ecx
call fcn.004ccf90
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 0x4b1d06
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 0x4b2f8f
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 0x4b1d06
test word [ecx + 0x10], ax
je 0x4b4064
push ecx
jmp 0x4b2f83
mov eax, 1
mov word [ecx + 0x10], ax
jmp 0x4b2f8b
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 0x4b409f
push edi
call fcn.004ce250
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 0x4b4149
mov eax, dword [esp + 0x34]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x4b40cf
push edi
push ebx
push ebp
call fcn.004bd6c0
add esp, 0xc
jmp 0x4b2834
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 0x4b4115
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 0x78]
jg 0x4b41d7
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287b
mov eax, dword [edi + 8]
jmp 0x4b411b
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push eax
call fcn.004e73f0
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 + 0x511d80]
mov word [edi + 0x10], ax
jmp 0x4b2834
mov al, byte [esp + 0x38]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x4b4169
cmp al, 0x80
je 0x4b4183
cmp ebx, 0xc
jb 0x4b4169
test bl, 1
je 0x4b4183
cmp al, 0xc0
je 0x4b4183
cmp ebx, 0x80
jb 0x4b4178
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x4b417f
movzx eax, byte [ebx + 0x516958]
test eax, eax
jne 0x4b4197
push edi
push ebx
push 0x512fe8
call fcn.004bd6c0
add esp, 0xc
jmp 0x4b2834
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.004ccfb0
mov edx, eax
add esp, 0x20
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b280c
cmp edx, 7
je 0x4b287b
cmp edx, 0x12
jne 0x4b9875
mov ebp, dword [esp + 0x14]
push str.string_or_blob_too_big
push ebp
call fcn.004b1bc0
mov edx, 0x12
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4b9879
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 0x4b224e
lea ebx, [edx + 8]
mov dword [esp + 0x48], ebx
nop
movzx eax, word [ebx + 6]
test al, 0x60
je 0x4b424e
test al, 0x20
jne 0x4b430f
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x4b430c
push dword [esp + 0x80]
movzx eax, byte [ebx]
push eax
push esi
call fcn.004487f0
movzx ecx, word [esi + 0x10]
add esp, 0xc
mov ebp, ecx
test cl, 1
jne case.default.0x4b4286
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x4b4286
jmp dword [edx*4 + 0x4ba2d0]
test cl, 0x10
jmp 0x4b4302
test cl, 4
jmp 0x4b4302
test cl, 2
jmp 0x4b4302
test cl, 4
je 0x4b42ff
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 0x4b42d9
jb 0x4b42c0
cmp edx, 0xffffffff
ja 0x4b42d9
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.0x4b4286
mov edx, ebx
mov ecx, edi
call fcn.004e5d00
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.0x4b4286
test cl, 0x28
je 0x4b9895
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 0x4b4230
jmp 0x4b2834
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.004487f0
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x4b43b3
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x4b43b3
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x4b4398
jb 0x4b4389
cmp edx, 0xffffffff
ja 0x4b4398
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x4b43b3
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.004e5d00
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 0x4b644c
add esi, 0x28
jmp 0x4b433e
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 0x4b4465
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.004487f0
add esp, 0xc
cmp byte [edi], 0x45
jne 0x4b444b
movzx eax, word [esi]
test al, 4
je 0x4b444b
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 0x4b4420
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 0x4b44ad
and ebx, 0x400
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc ecx
mov dword [eax], ebx
jmp 0x4b471d
test bl, 0x24
je 0x4b4670
mov ebp, dword [eax - 0x18]
mov esi, dword [eax - 0x1c]
test ebp, ebp
jg 0x4b44d0
jl 0x4b44c6
test esi, esi
jae 0x4b44d0
mov ecx, esi
mov eax, ebp
not ecx
not eax
jmp 0x4b44d4
mov ecx, esi
mov eax, ebp
inc dword [esp + 0x54]
test eax, eax
ja 0x4b45de
jb 0x4b44e7
cmp ecx, 0x7f
ja 0x4b453e
mov eax, esi
xor ebx, ebx
and eax, 1
cmp eax, esi
jne 0x4b4519
cmp ebx, ebp
jne 0x4b4519
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x95], 4
jb 0x4b4519
mov esi, dword [esp + 0x58]
lea eax, [ecx + 8]
mov ecx, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4b4721
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 0x4b4721
test eax, eax
ja 0x4b45de
jb 0x4b4550
cmp ecx, 0x7fff
ja 0x4b4576
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 0x4b4721
test eax, eax
ja 0x4b45de
jb 0x4b4584
cmp ecx, 0x7fffff
ja 0x4b45aa
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 0x4b4721
test eax, eax
ja 0x4b45de
jb 0x4b45b8
cmp ecx, 0x7fffffff
ja 0x4b45de
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 0x4b4721
cmp eax, 0x7fff
ja 0x4b4612
jb 0x4b45ec
cmp ecx, 0xffffffff
ja 0x4b4612
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 0x4b4721
add edx, 8
mov dword [esp + 0x34], edx
adc edi, 0
mov dword [esp + 0x30], edi
test bl, 0x20
je 0x4b4658
mov edx, ebp
mov ecx, esi
call fcn.004e5d00
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 0x4b4721
mov esi, dword [esp + 0x58]
mov eax, 6
mov ecx, dword [esp + 0x54]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
jmp 0x4b4721
test bl, 8
je 0x4b468f
inc ecx
mov dword [eax], 7
add edx, 8
mov dword [esp + 0x34], edx
adc edi, 0
mov dword [esp + 0x30], edi
jmp 0x4b471d
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 0x4b46e0
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 0x4b46d1
push esi
call fcn.004bb940
add esp, 4
test eax, eax
jne 0x4b287b
add edi, dword [esi]
jmp 0x4b46dc
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 0x4b4711
shrd edx, ecx, 7
inc esi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x4b4703
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 0x4b473a
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
sub eax, 0x28
jmp 0x4b448b
cmp ecx, 0x7e
jle 0x4b4799
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4b4764
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4b4756
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 0x4b4791
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4b4783
mov ecx, dword [esp + 0x54]
cmp ebx, edi
jge 0x4b479e
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 0x4b47d5
jl 0x4b4812
cmp ecx, eax
jbe 0x4b4812
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x30], edx
jg 0x4b41d7
jl 0x4b47f1
cmp ecx, eax
ja 0x4b41d7
cmp esi, ebx
jge 0x4b4812
push 0
push ebx
push dword [esp + 0x58]
call fcn.004bbb70
add esp, 0xc
test eax, eax
jne 0x4b287b
mov edx, dword [esp + 0x50]
jmp 0x4b481c
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 0x4b483f
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 0x4b4855
mov byte [ebx], al
inc ebx
jmp 0x4b4862
push edi
push ebp
push ebx
call fcn.004a46f0
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 0x4b48ef
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x4b492a
movzx ebp, byte [edx + 0x516958]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
lea edx, [ebp - 1]
cmp edx, 5
ja case.0x4b4898.5
jmp dword [edx*4 + 0x4ba2e4]
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 0x4b492a
cmp edx, 0x80
jae 0x4b4907
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x4b492a
mov eax, dword [edi]
test eax, eax
jle 0x4b492a
jmp 0x4b491b
push 0
push edx
push ebx
call fcn.004a46f0
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x4b492a
push eax
push dword [edi - 4]
push esi
call fcn.004e73f0
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 0x4b644c
add edi, 0x28
jmp 0x4b4870
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 0x4b496e
push eax
call fcn.00481cc0
add esp, 4
mov esi, eax
mov edi, edx
jmp 0x4b499c
lea ecx, [esp + 0x28]
xorps xmm0, xmm0
push ecx
push eax
push ebp
movlpd qword [esp + 0x34], xmm0
call fcn.0047f890
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b49ce
push eax
call fcn.0046d2b0
add esp, 4
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4b7614
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], esi
mov dword [eax + 4], edi
jmp 0x4b7614
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x50], edi
test edi, edi
jne 0x4b4abe
cmp dword [ebp + 0xc4], edi
jg 0x4b98d9
test ebx, ebx
jne 0x4b4a0b
xor esi, esi
jmp 0x4b4a1f
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4b4a10
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.004beff0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.00487b10
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4b4d3f
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.004e73f0
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x4b4a80
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x4b4a86
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 0x4b4d3f
mov eax, dword [esp + 0x18]
xor ebp, ebp
mov esi, dword [eax + 0x1ec]
test esi, esi
je 0x4b4ae7
nop
push ebx
push dword [esi]
call fcn.004abf20
add esp, 8
test eax, eax
je 0x4b4b08
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x4b4ad0
mov ebp, dword [esp + 0x14]
push ebx
push str.no_such_savepoint:__s
push ebp
call fcn.004b1bc0
mov edx, 1
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4b9879
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
cmp dword [ecx + 0xc4], 0
jle 0x4b4b22
cmp edx, 1
je 0x4b98f6
cmp dword [esi + 0x18], 0
jne 0x4b4b8b
cmp byte [ecx + 0x5d], 0
je 0x4b4b8b
mov ebx, 1
mov dword [esp + 0x48], ebx
cmp edx, ebx
jne 0x4b4b93
push ebx
push dword [esp + 0x18]
call fcn.004b1320
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b995c
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push edi
mov byte [eax + 0x55], bl
call fcn.004bac60
add esp, 4
cmp eax, 5
je 0x4b9927
mov edx, dword [edi + 0x24]
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9916
mov edx, dword [esp + 0x18]
mov byte [edx + 0x5d], 0
jmp 0x4b4c85
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 0x4b4c07
mov ecx, dword [ecx + 0x18]
xor ebx, ebx
and ecx, 1
mov dword [esp + 0x3c], ecx
test eax, eax
jle 0x4b4c0d
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.004828f0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov eax, dword [esp + 0x18]
inc ebx
mov ecx, dword [esp + 0x28]
add edi, 0x10
mov eax, dword [eax + 0x14]
cmp ebx, eax
jl 0x4b4bc3
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
jmp 0x4b4c0d
xor ecx, ecx
mov dword [esp + 0x3c], ecx
xor ebx, ebx
test eax, eax
jle 0x4b4c54
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.00481d30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov eax, dword [esp + 0x18]
inc ebx
mov edx, dword [esp + 0x50]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x4b4c20
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4b4c71
mov ebx, dword [esp + 0x18]
push 0
push ebx
call fcn.0048a2b0
push ebx
call fcn.004a5530
add esp, 0xc
or dword [ebx + 0x18], 1
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x1ec]
cmp ecx, esi
je 0x4b4cbe
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
push ecx
push ebx
mov dword [ebx + 0x1ec], eax
call fcn.00487a00
dec dword [ebx + 0x1f8]
add esp, 8
mov ecx, dword [ebx + 0x1ec]
cmp ecx, esi
jne 0x4b4c93
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
cmp edi, 1
jne 0x4b4cea
mov eax, dword [esi + 0x18]
push esi
push edx
mov dword [edx + 0x1ec], eax
call fcn.00487a00
add esp, 8
test ebx, ebx
jne 0x4b4d3b
mov eax, dword [esp + 0x18]
dec dword [eax + 0x1f8]
jmp 0x4b4d17
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 0x4b4d17
cmp edi, 2
jne 0x4b4d3b
push ebp
mov ebp, dword [esp + 0x1c]
push edi
push ebp
call fcn.004beff0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b4d3f
mov esi, ebp
mov ebp, dword [esp + 0x14]
jmp 0x4b987d
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x97], 3
je 0x4b9957
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x4b4d96
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x4b99da
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 0x4b4eb7
lea eax, [esp + 0x3c]
push eax
push edi
push esi
call fcn.0047eec0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9a0d
mov edi, dword [esp + 0x14]
test byte [edi + 0x98], 0x20
je 0x4b4ec7
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x4b4ec7
mov edx, ebx
cmp byte [edx + 0x55], 0
je 0x4b4dfe
cmp dword [edx + 0xc0], 1
jle 0x4b4eb3
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4b4e1a
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.004beff0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b4e89
mov edi, dword [edi + 0x30]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], al
je 0x4b4e4b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x4b4e4b
push esi
call fcn.0044c370
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x4b4e68
cmp byte [eax + 6], 0
je 0x4b4e68
push edi
push eax
call fcn.0046da30
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x4b4e70
mov dword [esp + 0x20], 0
cmp byte [esi + 9], 0
je 0x4b4e85
add dword [esi + 0xc], 0xffffffff
jne 0x4b4e85
push esi
call fcn.004ca290
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 0x4b4ebb
mov ebx, edx
jmp 0x4b4ec7
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], 0
je 0x4b2810
mov eax, dword [esp + 0x3c]
cmp eax, dword [ecx + 0xc]
jne 0x4b9a44
mov eax, dword [ebp + 0xc]
mov ebp, ecx
mov eax, dword [eax + 4]
cmp eax, dword [ebp + 0x10]
jne 0x4b9a48
jmp 0x4b280c
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.00480020
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 0x4b4f66
push ecx
call fcn.0046d2b0
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 0x4b1d06
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 0x4b1d06
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.004829e0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x20], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x4b4fe5
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.00492100
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x4b4ff3
cmp eax, 2
jne 0x4b4ff3
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x4b500b
push 0
push ebp
call fcn.0048a2b0
add esp, 8
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b5062
mov eax, dword [edi + 0x38]
cmp eax, dword [ebx + 8]
jne 0x4b5062
push dword [edi + 0x2c]
add edi, 0x2c
call fcn.0047ef30
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4b5188
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x98]
mov esi, dword [esp + 0x18]
and al, 3
cmp al, 1
je 0x4b9ac9
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 0x4b50ca
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 0x4b50cc
mov byte [edx + 0x95], al
jmp 0x4b50cc
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x4b5108
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea esi, [ecx + eax*8]
push esi
call fcn.004bb060
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 0x4b511c
mov ebp, dword [ecx + 0x10]
movzx edi, word [ebp + 8]
jmp 0x4b5123
cmp al, 0xfd
jne 0x4b5123
mov edi, dword [ecx + 0x10]
push 0
push edi
push dword [ecx + 4]
push dword [esp + 0x20]
call fcn.00446c80
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4b287b
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.0047fa80
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 0x4b9875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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.00446c80
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4b287f
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.0047fa80
add esp, 0x14
mov dword [esp + 0x20], eax
jmp 0x4b2838
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4b5263
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], 0x52a5cb
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4b52d1
test byte [esi + 8], 8
jne 0x4b52d1
movsx eax, word [esi + 0x3c]
cmp dword [edx + 8], eax
jg 0x4b52d1
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.0047efb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b1d06
push 0
push dword [edx + 8]
push ecx
push edi
call fcn.00446c80
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4b287f
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.004811f0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov eax, dword [edi]
cmp byte [eax + 9], dl
jne 0x4b5349
mov cl, byte [eax + 8]
test cl, cl
je 0x4b5349
cmp cl, 1
je 0x4b5349
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.0049d7f0
add esp, 8
jmp 0x4b5356
push 0
push 1
push eax
call fcn.0044b2e0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b53d3
mov eax, dword [esp + 0x10]
lea ebx, [esi + 0x38]
mov ebp, dword [eax + 0x10]
mov dword [esi + 0x30], ebp
test ebp, ebp
je 0x4b53ac
movzx eax, word [eax + 2]
or eax, 2
push eax
push ebx
push dword [edi]
call fcn.0047fa30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b53a6
push dword [esi + 0x2c]
push ebp
push 4
push dword [ebx]
push dword [edi]
call fcn.0047fa80
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
mov byte [esi + 4], 0
jmp 0x4b53cf
mov dword [ebx], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [edi]
call fcn.0047fa80
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 0x4b9adb
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 0x4b1d06
mov edx, dword [esp + 0x10]
push 1
push dword [edx + 8]
push dword [edx + 4]
push edi
call fcn.00446c80
add esp, 0x10
test eax, eax
je 0x4b287f
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.004bdab0
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b21a3
jmp 0x4b9725
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push edi
call fcn.00446c80
add esp, 0x10
test eax, eax
je 0x4b287f
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], 0x536fbc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b551b
push edx
push edi
call fcn.004baa90
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 0x4b1d06
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 0x4b5671
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 0x4b558d
push 0
push edi
call fcn.00448860
add esp, 8
push edi
call fcn.004bb060
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 0x4b563c
test cl, 8
jne 0x4b560c
test cl, 1
jne 0x4b62ef
cmp ebx, 0x17
jae 0x4b62ef
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
jne 0x4b55eb
test byte [eax + 1], 8
je 0x4b55eb
mov dword [esp + 0x64], 0
mov dword [esp + 0x20], 0
jmp 0x4b2834
lea ecx, [esp + 0x64]
push ecx
push eax
call fcn.0044c2e0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
jmp 0x4b57ba
movsd xmm0, qword [edi]
sub esp, 8
mov edi, dword [esp + 0x30]
movsd qword [esp], xmm0
push edi
push ebp
call fcn.00499b20
add esp, 0x10
test eax, eax
jle 0x4b5632
test bl, 1
jne 0x4b5640
dec ebx
jmp 0x4b5640
jns 0x4b5640
test bl, 1
je 0x4b5640
inc ebx
jmp 0x4b5640
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x64]
push eax
push 0
push edi
push ebp
push dword [esi + 0x2c]
call fcn.00482250
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 0x4b9875
mov edi, dword [esp + 0x14]
jmp 0x4b5711
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.004800d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
cmp byte [esp + 0x5f], al
je 0x4b5711
mov eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
cmp byte [esp + 0x256], dl
je 0x4b57ba
mov eax, dword [esp + 0x64]
cmp ebx, 0x17
jl 0x4b57a1
test eax, eax
js 0x4b5764
jne 0x4b5729
cmp ebx, 0x18
je 0x4b5764
mov dword [esp + 0x64], 0
cmp dword [esp + 0x48], 0
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
je 0x4b2f8f
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 0x4b1d06
push 0
push dword [esi + 0x2c]
mov dword [esp + 0x6c], 0
call fcn.00481150
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b5731
cmp edx, 0x65
jne 0x4b9875
mov dword [esp + 0x20], 0
mov dword [esp + 0x64], 1
jmp 0x4b9725
test eax, eax
jg 0x4b57ca
jne 0x4b57ac
cmp ebx, 0x15
je 0x4b57ca
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 0x4b62ef
jmp 0x4b5731
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 0x4b5809
movzx edx, word [ecx + 0x46]
test dx, dx
je 0x4b5809
mov eax, dword [ecx + 0x74]
cmp byte [eax + 8], 0
je 0x4b5809
lea eax, [edx - 1]
mov dword [esp + 0x20], 0
mov word [ecx + 0x46], ax
jmp 0x4b5731
push ecx
call fcn.0044cd40
add esp, 4
jmp 0x4b5779
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 0x4b2818
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.0045ed00
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4b9aee
jb 0x4b5894
cmp ecx, 0x7ffffffe
ja 0x4b9aee
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.004bbb10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push eax
lea eax, [esp + 0x2b0]
push eax
push dword [esp + 0x26c]
push dword [esp + 0x274]
call fcn.004bcd40
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x274], 0
je 0x4b5907
lea eax, [esp + 0x25c]
push eax
call fcn.004ce210
add esp, 4
xor ebp, ebp
mov dword [esp + 0x20], ebp
test esi, esi
jle 0x4b591e
mov ebp, dword [esp + 0x10]
cmp word [ebp + 2], 0
je 0x4b5960
test esi, esi
jns 0x4b62ef
test edi, edi
jle 0x4b644c
mov dword [ebx + 0x20], 0
dec edi
push 0
push dword [ebx + 0x2c]
call fcn.00481150
mov ebp, dword [esp + 0x20]
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b5865
cmp edx, 0x65
jne 0x4b4d30
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add ebp, 0x14
mov dword [esp + 0x20], 0
jmp 0x4b9729
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 0x4b59ab
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x4b1f6d
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x4b1d2c.9
cmp byte [eax + 2], 0
je 0x4b1f6d
jmp case.0x4b1d2c.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 0x4b2818
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 0x4b5a76
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.004800d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
jmp 0x4b5ae4
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x4b5a92
push ecx
call fcn.004bb940
add esp, 4
test eax, eax
jne 0x4b287f
push dword [esi + 0x30]
call fcn.004b1090
mov edi, eax
add esp, 4
test edi, edi
je 0x4b287f
mov ecx, dword [esp + 0x1d0]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.004bd4b0
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004800d0
push edi
push ebp
mov dword [esp + 0x44], eax
call fcn.00487a00
mov edx, dword [esp + 0x44]
add esp, 0x24
mov edi, dword [esp + 0x14]
test edx, edx
jne 0x4b9875
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 0x4b5b29
test ecx, ecx
je 0x4b62ef
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
test ecx, ecx
jne 0x4b62ef
cmp al, 0x1b
jne 0x4b5b7c
movzx edx, word [esp + 0x1e0]
test edx, edx
je 0x4b6450
mov eax, dword [esp + 0x1d0]
add eax, 0x10
nop
test byte [eax], 1
jne 0x4b62ef
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4b5b50
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov ecx, dword [esp + 0x10]
cmp al, 0x1a
jne 0x4b6454
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 0x4b1d06
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x4b5c3d
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 0x4b5c29
test al, 0x28
jne 0x4b5c0a
test al, 2
je 0x4b5c21
lea eax, [esp + 0x214]
push 1
push eax
call fcn.00448860
add esp, 8
jmp 0x4b5c1a
lea eax, [esp + 0x214]
push eax
call fcn.004bb0d0
add esp, 4
mov al, byte [esp + 0x224]
test al, 4
je 0x4b9725
mov edi, dword [esp + 0x214]
mov ebx, dword [esp + 0x218]
jmp 0x4b5c4a
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.00482250
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 0x4b6a96
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x4b9b16
mov edi, dword [esp + 0x14]
jmp 0x4b9729
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 0x4b5ce0
push edx
call fcn.0046d2b0
add esp, 4
mov edx, eax
jmp 0x4b5ce9
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 0x4b1d06
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 0x4b5d68
push edx
call fcn.0046d2b0
add esp, 4
mov dword [esp + 0x28], eax
jmp 0x4b5d71
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 0x4b5e0c
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x4b5dc9
test byte [eax + 1], 8
je 0x4b5dc9
mov dword [esp + 0x20], 0
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0045ed00
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 0x4b5dfc
jg 0x4b5dc3
cmp edi, 0xffffffff
jb 0x4b5dfc
or dword [ebp + 8], 2
jmp 0x4b5e14
lea ecx, [esp + 0x48]
push ecx
push eax
call fcn.0044c2e0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
cmp dword [esp + 0x48], eax
je 0x4b5d9a
mov edi, 1
xor esi, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], esi
jmp 0x4b5e14
add edi, 1
mov dword [esp + 0x3c], edi
adc esi, 0
mov dword [esp + 0x40], esi
jmp 0x4b5e14
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x4b5eb4
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x4b5e48
mov eax, dword [edx + 4]
test eax, eax
je 0x4b5e3d
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4b5e34
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
jmp 0x4b5e52
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea ebx, [ecx + eax*8]
push ebx
call fcn.004bb060
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 0x4b5e89
cmp eax, 0x7fffffff
je 0x4b5f16
test byte [ebp + 8], 2
jne 0x4b5f16
add ecx, 1
adc eax, 0
cmp esi, eax
jg 0x4b5eaf
jl 0x4b5ea3
cmp edi, ecx
jae 0x4b5eaf
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 0x4b5f20
xor ebx, ebx
nop dword [eax]
lea eax, [esp + 0x3c]
push eax
push 8
call fcn.0043b1d0
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.00482250
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
cmp dword [esp + 0x48], eax
jne 0x4b5f20
inc ebx
cmp ebx, 0x64
jl 0x4b5ec0
mov edx, 0xd
jmp 0x4b9871
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 0x4b2834
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 0x4b5f93
cmp dword [ebp + 0xfc], 0
je 0x4b5f93
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 0x4b5f9b
mov eax, dword [esp + 0x10]
xor edi, edi
xor ebx, ebx
test byte [eax + 2], 1
je 0x4b5fc7
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x4b5fc7
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 0x4b5ff0
mov ecx, dword [esi + 0x24]
jmp 0x4b5ff2
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 0x4b601e
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x10]
jmp 0x4b6029
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.00480630
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 0x4b4d30
test edi, edi
je 0x4b6450
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 0x4b2838
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 0x4b60e3
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x4b60f4
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.004824b0
add esp, 0x10
jmp 0x4b3227
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 0x4b6169
cmp dword [ebp + 0xfc], 0
je 0x4b6169
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 0x4b616d
cmp byte [edi + 4], 0
je 0x4b616d
mov esi, dword [edi + 0x2c]
push esi
call fcn.0045ed00
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 0x4b616d
xor ebp, ebp
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.0047faf0
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 0x4b9875
test byte [esp + 0x28], 1
je 0x4b2f8b
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 0x4b2f8b
test ebx, ebx
je 0x4b2f8b
test byte [ebx + 0x1c], 0x80
jne 0x4b2f8b
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 0x4b1d06
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 0x4b1d06
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 0x4b6287
push ebx
call fcn.004b1090
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x4b633f
mov word [ebp + 0x14], si
lea eax, [esp + 0xd4]
push eax
push edi
call fcn.004d05a0
push ebp
push eax
push dword [esp + 0xe4]
push ebx
call fcn.004bd4b0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x4b62c4
mov eax, dword [ebp + 4]
add eax, 0x10
test byte [eax], 1
jne 0x4b854f
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4b62b3
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.004bcd40
add esp, 0x10
mov dword [esp + 0x20], 0
test eax, eax
je 0x4b2f8b
mov edi, dword [esp + 0x14]
jmp 0x4b9725
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.004d05a0
mov edi, dword [esp + 0xe0]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x4b6349
push 0
push edi
push esi
call fcn.004bbb70
add esp, 0xc
test eax, eax
je 0x4b6354
mov edx, 7
jmp 0x4b9871
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.004e73f0
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 0x4b1d06
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 0x4b63db
push esi
call fcn.0046d2b0
add esp, 4
mov esi, eax
jmp 0x4b63e4
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.0045ed00
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x4b41d7
push esi
push eax
push edi
call fcn.004bbb10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 0xc], eax
jne 0x4b6454
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x4b6454
push esi
call fcn.004bbd00
add esp, 4
test eax, eax
jne 0x4b287f
jmp 0x4b2838
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 0x4b1d06
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 0x4b6497
push edi
call fcn.0046d2b0
add esp, 4
mov edi, eax
jmp 0x4b64a0
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 0x4b64dd
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 0x4b1d06
cmp byte [esi + 3], 0
je 0x4b64ee
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
jmp 0x4b65b3
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x4b654e
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.004bed20
mov edx, dword [esp + 0x30]
add esp, 0x10
test edx, edx
jne 0x4b6566
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 0x4b1d06
cmp byte [ecx], 0
je 0x4b656d
push esi
call fcn.004bb020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b6575
mov ebp, ebx
jmp 0x4b9879
mov dword [esp + 0x20], 0
cmp byte [esi + 2], 0
je 0x4b65a1
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 0x4b1d06
mov esi, dword [esi + 0x2c]
push esi
call fcn.0045ed00
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 0x4b1d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x4b661c
push 3
push 1
push ecx
push edi
call fcn.00446c80
add esp, 0x10
test eax, eax
je 0x4b287f
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x536fbc
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x4b1f6d
push dword [eax + 0x2c]
call fcn.0047ef30
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b66d3
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
je 0x4b21a3
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.0044c2e0
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 0x4b9871
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 0
jle 0x4b2814
test eax, eax
jne 0x4b9725
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
cmp byte [ecx], al
jne 0x4b6678
test byte [ecx + 1], 8
je 0x4b6678
mov byte [esi + 2], al
mov byte [esi + 3], al
mov dword [esp + 0x20], eax
mov dword [esi + 0x20], eax
jmp 0x4b66a6
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.0047ff90
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
cmp dword [esp + 0xb0], eax
jne 0x4b62ef
push esi
call fcn.00481cc0
add esp, 4
test edx, edx
jl 0x4b21a3
jg 0x4b6743
test eax, eax
jb 0x4b21a3
push edx
push eax
call fcn.0049b570
mov ecx, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x4b2814
mov dword [esp + 0xb0], 1
jmp 0x4b9725
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 0x4b67da
xor edx, edx
mov dword [esp + 0x20], edx
cmp byte [esi + 0x40], dl
jne 0x4b67af
cmp dword [esi + 0x28], edx
lea eax, [esi + 0x28]
je 0x4b67fd
push eax
lea eax, [esi + 0x48]
xor ebx, ebx
push eax
call fcn.004d0880
jmp 0x4b67f4
push esi
call fcn.004cfd00
push eax
push esi
call fcn.004cfe30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push esi
call fcn.004d0600
add esp, 4
xor ebx, ebx
jmp 0x4b67f7
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0047ff90
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 0x4b9875
mov ecx, dword [esp + 0x10]
mov byte [edi + 2], bl
mov edi, dword [esp + 0x14]
cmp dword [ecx + 8], edx
jle 0x4b2814
test ebx, ebx
je 0x4b2814
jmp 0x4b9725
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 0x4b68b3
cmp byte [esi + 0x41], 0
je 0x4b687b
push dword [esi + 0x10]
call fcn.004cef60
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b68e4
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x4b68e4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], 0x65
mov edx, dword [esp + 0x20]
jmp 0x4b6929
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
push dword [esi + 0x14]
call fcn.004ce900
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b68e4
cmp dword [esp + 0x28], eax
je 0x4b68e4
mov esi, dword [esp + 0x24]
mov dword [esp + 0x20], 0x65
mov edx, dword [esp + 0x20]
jmp 0x4b6929
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 0x4b68d3
push ecx
push ebp
call fcn.004d04d0
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 0x4b6929
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.00481ac0
jmp 0x4b6920
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.00481150
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
mov dword [edi + 0x20], 0
test edx, edx
jne 0x4b694f
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.0x4b1d2c.9
cmp edx, 0x65
jne 0x4b9875
mov dword [esp + 0x20], 0
mov byte [edi + 2], 1
jmp 0x4b7618
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 0x4b6993
mov eax, dword [esp + 0x14]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x4b69b9
push esi
call fcn.004bb940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b6a02
mov ecx, dword [edi + 0x24]
jmp 0x4b6a04
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x314]
push eax
push dword [edi + 0x2c]
call fcn.00480630
mov edx, eax
mov dword [edi + 0x20], 0
add esp, 0x10
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b6a86
push esi
call fcn.004bb940
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push esi
push edi
call fcn.004bdfb0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
jmp 0x4b2838
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.004800d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
cmp dword [esp + 0xdc], eax
jne 0x4b6b53
push 4
push edi
call fcn.0047faf0
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b1d06
mov ecx, dword [esp + 0x10]
cmp word [ecx + 2], 0
je 0x4b6b6f
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x4b9b3e
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 0x4b1d06
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 0x4b6bc6
push ebp
call fcn.004bb020
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
jmp 0x4b6bce
mov dword [esp + 0x20], 0
cmp byte [ebp + 2], 0
jne 0x4b6ddd
mov esi, dword [ebp + 0x2c]
push esi
call fcn.0045ed00
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.004bbb10
mov edx, eax
add esp, 0x10
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ebx, dword [esp + 0x1f4]
movzx esi, byte [ebx]
mov dword [esp + 0x28], esi
cmp esi, 0x80
jb 0x4b6c4c
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.00497290
mov esi, dword [esp + 0x30]
add esp, 8
cmp esi, 3
jb 0x4b9b5a
mov edi, dword [esp + 0x1f8]
cmp esi, edi
ja 0x4b9b5a
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x28], ecx
cmp ecx, 0x80
jb 0x4b6c8a
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.00497290
mov ecx, dword [esp + 0x30]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x4b9b5a
cmp ecx, 7
je 0x4b9b5a
movzx edx, byte [ecx + 0x516958]
lea eax, [edx + esi]
cmp edi, eax
jb 0x4b9b5a
lea eax, [esp + 0x334]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.004bd6c0
add esp, 0xc
cmp dword [esp + 0x204], 0
je 0x4b6ce1
lea eax, [esp + 0x1ec]
push eax
call fcn.004ce210
add esp, 4
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], 0
cmp byte [eax], 0x8d
jne 0x4b6d4e
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 0x4b1d06
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 0x4b6da2
push edx
call fcn.0046d2b0
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 0x4b1d06
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 0x4b1d06
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
jmp 0x4b3dc7
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x4b1f6d
push eax
call fcn.004ba980
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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.0045ed00
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x4b9b9c
cmp eax, 0x7fffffff
ja 0x4b9b9c
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.004bbb10
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
push eax
lea eax, [esp + 0x2f0]
push eax
push dword [esp + 0x294]
push dword [esp + 0x29c]
call fcn.004bcd40
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x29c], 0
je 0x4b6f00
lea eax, [esp + 0x284]
push eax
call fcn.004ce210
add esp, 4
mov ecx, dword [esp + 0x10]
test byte [ecx], 1
jne 0x4b6f0d
neg esi
jmp 0x4b6f0e
inc esi
test esi, esi
jg 0x4b62ef
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b6f57
push edi
call fcn.0046d2b0
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 0x4b9ba6
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 0x4b6fac
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4b6fac
push esi
call fcn.0044c370
add esp, 4
lea eax, [esp + 0x28]
push eax
push ebx
push esi
call fcn.0044bcb0
add esp, 0xc
mov dword [esp + 0x20], eax
cmp byte [esi + 9], 0
je 0x4b6fd4
add dword [esi + 0xc], 0xffffffff
jne 0x4b6fd4
push esi
call fcn.004ca290
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 0x4b9875
test esi, esi
je 0x4b93fb
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 0x4b702b
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x4b7021
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x4b7016
mov ecx, dword [edi + ebp*8 + 0xc]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x4b7043
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x4b703d
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x4b7032
mov al, byte [esp + 0x3c]
inc al
mov byte [esp + 0x73], al
jmp 0x4b2834
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.0047efb0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x20], edx
cmp dword [ecx + 0xc], 0
je 0x4b70ca
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 0x4b70c6
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 0x4b9875
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b711a
push dword [eax + 0x2c]
push ebp
call fcn.004bdcb0
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.0047efb0
jmp 0x4b544d
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 0x4b7157
push esi
call fcn.0046d2b0
add esp, 4
mov esi, eax
jmp 0x4b7160
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.0047fa30
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b1d06
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 0x4b71e9
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.00438880
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 0x4b7226
test edx, edx
je 0x4b21a3
push eax
push 0x51956c
push edi
call fcn.004b1bc0
push dword [esp + 0xa4]
call fcn.0043b060
mov edx, dword [esp + 0x30]
add esp, 0x10
cmp edx, 7
je 0x4b287f
jmp 0x4b9875
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x10], 0
mov esi, dword [edx + 4]
jne 0x4b72a1
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.004a6eb0
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.004982b0
or dword [ebp + 0x18], 1
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
and dword [edi + 0x98], 0xfffffffc
jmp 0x4b7391
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.0049b7d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4b9bbf
push 0
lea eax, [esp + 0xfc]
mov byte [ebp + 0xb1], 1
push eax
push fcn.00497f60
push esi
push ebp
mov dword [esp + 0x118], 0
mov dword [esp + 0x120], 0
call fcn.00438880
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b737c
mov eax, dword [esp + 0x104]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b737c
cmp dword [esp + 0x10c], eax
jne 0x4b737c
push 0x51e124
push 0x184f2
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov dword [esp + 0x20], 0xb
push esi
push ebp
call fcn.00487a00
mov edx, dword [esp + 0x28]
add esp, 8
mov byte [ebp + 0xb1], 0
test edx, edx
je 0x4b21a3
push ebp
call fcn.004a5530
mov edx, dword [esp + 0x24]
add esp, 4
cmp edx, 7
je 0x4b287f
jmp 0x4b9871
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.0047c580
add esp, 8
jmp 0x4b5450
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.00497520
add esp, 0xc
test eax, eax
je 0x4b7407
cmp dword [ebp + 0x210], 0
jne 0x4b73fd
add dword [eax + 0x18], 0xffffffff
jne 0x4b7407
push eax
push ebp
call fcn.004540f0
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 0x4b1d06
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.00497520
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4b7483
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 8]
cmp ecx, edx
jne 0x4b745b
mov eax, dword [edx + 0x14]
mov dword [esi + 8], eax
jmp 0x4b7475
test ecx, ecx
je 0x4b7475
nop
mov eax, dword [ecx + 0x14]
cmp eax, edx
je 0x4b746f
mov ecx, eax
test ecx, ecx
jne 0x4b7460
jmp 0x4b7475
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
push edx
push ebp
call fcn.00493820
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 0x4b1d06
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.00497520
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b93ff
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x4b752e
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.00459820
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x4b752e
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x4b752e
cmp eax, esi
je 0x4b7529
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x4b74f3
push esi
push ebp
call fcn.00488bb0
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 0x4b1d06
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.00488bb0
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 0x4b1d06
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.00480b40
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x20], ebp
test word [esi + 0x10], ax
je 0x4b75bf
push esi
call fcn.004ce250
add esp, 4
jmp 0x4b75c8
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x4b75ff
test ebp, ebp
jne 0x4b9bcd
push fcn.0043b060
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.004bc070
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x4b76af
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 0x4b9e5e
mov edi, dword [esp + 0x88]
cmp dword [esp + 0x84], edi
jb 0x4b8bfd
mov ebx, dword [esp + 0x74]
ja 0x4b7650
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x4b9403
nop dword [eax + eax]
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x4b93ff
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 0x4b9c9e
cmp dword [esp + 0x84], edi
ja 0x4b7650
mov eax, dword [esp + 0x1c]
jb 0x4b7698
cmp eax, ebx
jae 0x4b7650
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4b7610
push dword [esp + 0x38]
push esi
call fcn.004bc480
add esp, 8
jmp 0x4b7610
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 0x4b76f9
push esi
call fcn.004bbf90
add esp, 4
test eax, eax
jne 0x4b287f
mov eax, dword [esp + 0x24]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push dword [esi + 8]
call fcn.004a6050
add esp, 0xc
jmp 0x4b2838
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 0x4b779f
mov esi, dword [edi + 8]
movzx ecx, word [esi + 0x1a]
test cl, 2
jne 0x4b775b
mov eax, ecx
test cl, 1
jne 0x4b7754
push dword [esi + 8]
call fcn.00477910
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 0x4b779b
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4b777a
push esi
call fcn.004a5f40
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.004bbf20
add esp, 0xc
jmp 0x4b7618
movzx ecx, word [edi + 0x10]
test ecx, 0x9000
je 0x4b77b5
push edi
call fcn.004ce250
add esp, 4
jmp case.0x4b1d2c.9
mov eax, 1
mov word [edi + 0x10], ax
jmp case.0x4b1d2c.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 0x4b77f1
push esi
call fcn.004bbf90
add esp, 4
test eax, eax
jne 0x4b287f
test ebx, ebx
je 0x4b76f9
mov eax, dword [esp + 0x24]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
push ebx
push dword [esi + 8]
call fcn.004a60e0
add esp, 0x10
test eax, eax
jne 0x4b62ef
test ebx, ebx
js 0x4b93ff
jmp 0x4b76f9
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 0x4b7861
mov eax, dword [edi + 0xd0]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x4b7861
cmp dword [eax + 0x18], ecx
je 0x4b3de2
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b7851
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0xd8]
cmp eax, dword [ecx + 0xa0]
jge 0x4b9be5
test byte [ebp + 0x10], 0x10
jne 0x4b7990
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 0x4b78a6
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.00487b10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b287b
push ebx
push 0
push esi
call fcn.004e7970
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x4b78e7
cmp dword [ebp + 0x18], 0
je 0x4b78f0
push ebp
call fcn.004ce210
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], 0x4ba9e0
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 0x4b7986
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 0x4b7976
mov edi, ebp
mov eax, dword [edi + 0xd8]
jmp 0x4b7993
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.004e7970
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 0x4b7614
push dword [esp + 0x10]
push edi
call fcn.0046d270
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 0x4b7aa8
push 0x4000
push ecx
push edi
call fcn.004ccf90
add esp, 0xc
jmp 0x4b2838
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 0x4b93ff
mov ax, word [edi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov word [edi + 0x10], ax
jmp 0x4b2838
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
je 0x4b7b18
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 0x4b1d06
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x10]
cdq
je 0x4b7b45
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [edi + 0x44], edx
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
cmp dword [ecx + 4], 0
je 0x4b7b9b
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x4b2818
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x4b9725
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jmp 0x4b7b70
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4b7bcf
mov eax, dword [edx + 4]
test eax, eax
je 0x4b7bbd
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4b7bb4
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 0x4b7bdc
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
push edi
call fcn.004bb060
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.004bb060
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 0x4b8bfd
jl 0x4b7c3d
cmp dword [edi], eax
jae 0x4b93ff
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4b2838
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 0x4b224e
jg 0x4b7c6a
test ecx, ecx
je 0x4b224e
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 0x4b9725
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.0046d270
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 0x4b7d37
jg 0x4b7ccd
test eax, eax
je 0x4b7d37
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + ebx*8 + 4]
mov eax, dword [esi + ebx*8]
test ecx, ecx
jl 0x4b7ce2
jg 0x4b7cf3
test eax, eax
jne 0x4b7cf3
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.0047ad90
add esp, 0xc
test eax, eax
jne 0x4b7d3b
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 0x4b1d06
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 0x4b1d06
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 0x4b21a3
test edx, edx
jl 0x4b9725
jg 0x4b7d94
test ecx, ecx
je 0x4b9725
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x4b9725
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 0x4b7dd2
jg 0x4b7dc5
test eax, eax
je 0x4b7dd2
sub eax, 1
mov dword [esi + edx*8], eax
sbb ecx, 0
mov dword [esi + edx*8 + 4], ecx
or eax, ecx
je 0x4b9725
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov edx, dword [esp + 0x10]
push 0
movzx ebx, word [edx + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.00487b10
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b287f
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 0x4b7e86
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 0x4b7ecb
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x4b7ecb
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 0x4b7eb1
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 0x4b7eea
mov eax, dword [ecx + 0x1c]
jmp 0x4b7eed
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x4b93ff
jle 0x4b7f56
mov ecx, dword [esi]
test ecx, ecx
jne 0x4b7f09
xor eax, eax
jmp 0x4b7f3a
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x4b7f26
cmp byte [ecx + 0x12], 1
jne 0x4b7f26
mov eax, dword [ecx + 8]
jmp 0x4b7f3a
test dl, 1
je 0x4b7f2f
xor eax, eax
jmp 0x4b7f3a
push 1
push ecx
call fcn.004ccc40
add esp, 8
mov edi, dword [esp + 0x14]
push eax
push 0x51956c
push edi
call fcn.004b1bc0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4b7f5a
mov edi, dword [esp + 0x14]
cmp byte [esi + 0x19], 0
je 0x4b7f82
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x4b7f7e
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.004bbf20
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x4b7f95
cmp dword [eax + 0x18], 0
je 0x4b7fa0
push eax
call fcn.004ce210
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 0x4b322d
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 0x4b8060
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 0x4b8007
push edi
call fcn.004ce250
add esp, 4
jmp 0x4b8010
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 0x4b806c
push ebx
push esi
call fcn.004bb9a0
add esp, 8
mov edx, eax
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9c05
test byte [esi + 0x10], 2
jne 0x4b80a0
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 0x4b1d06
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4b93ff
push dword [esp + 0x38]
push esi
call fcn.004bc480
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 0x4b1d06
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.00482ca0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x20], edx
test edx, edx
je 0x4b813f
cmp edx, 5
jne 0x4b9875
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.004bbf20
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x4b8150
jmp 0x4b2838
mov ebx, dword [esp + 0x10]
push ebx
push edi
call fcn.0046d270
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 0x4b81c3
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x4b81c5
cmp dword [edi + 0x54], 0
jg 0x4b81c3
jl 0x4b81c5
cmp dword [edi + 0x50], 0
jbe 0x4b81c5
mov ebx, ebp
cmp byte [edi + 0xf], 0
jne 0x4b81db
cmp dword [edi], 0x532b70
je 0x4b81db
mov ecx, dword [edi + 0xb8]
jmp 0x4b81e0
mov ecx, 0x513410
cmp ebx, 5
jne 0x4b8257
test ecx, ecx
je 0x4b821d
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4b81f0
sub ecx, edx
and ecx, 0x3fffffff
je 0x4b821d
cmp byte [edi + 0xd], 0
mov eax, dword [edi + 0x40]
mov eax, dword [eax]
jne 0x4b821d
cmp byte [edi + 4], 0
jne 0x4b8257
cmp dword [eax], 2
jl 0x4b821d
cmp dword [eax + 0x34], 0
jne 0x4b8257
mov ebx, ebp
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4b8229
mov ebx, ebp
push ebx
push edi
call fcn.0049db10
mov ebx, dword [esp + 0x44]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x4b83ac
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x4b83cf
cmp ebx, ebp
je 0x4b821f
cmp ebp, 5
je 0x4b8265
cmp ebx, 5
jne 0x4b821f
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x55], 0
je 0x4b9c23
cmp dword [eax + 0xc0], 1
jg 0x4b9c23
cmp ebp, 5
jne 0x4b8372
xor esi, esi
cmp dword [edi + 0xe8], esi
jne 0x4b82ef
push 1
push edi
mov dword [esp + 0xbc], esi
call fcn.0046d9e0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4b835a
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 0x4b835a
cmp dword [esp + 0xb4], eax
je 0x4b82ef
push edi
call fcn.0046db50
mov esi, eax
add esp, 4
test esi, esi
jne 0x4b835a
cmp dword [edi + 0xe8], 0
je 0x4b835a
push edi
call fcn.0046d810
mov esi, eax
add esp, 4
test esi, esi
jne 0x4b835a
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.004bf6c0
mov esi, eax
mov dword [edi + 0xe8], 0
push edi
mov dword [esp + 0x38], esi
call fcn.0046d890
add esp, 0x18
test esi, esi
je 0x4b835a
cmp byte [edi + 4], 0
jne 0x4b835a
push 1
push edi
call fcn.0046e2c0
add esp, 8
jmp 0x4b8227
mov dword [esp + 0x20], esi
test esi, esi
jne 0x4b8227
push ebx
push edi
call fcn.0049db10
add esp, 8
jmp 0x4b838d
cmp ebp, 4
jne 0x4b8382
push 2
push edi
call fcn.0049db10
add esp, 8
cmp dword [esp + 0x20], 0
jne 0x4b8227
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x2c]
call fcn.00482180
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x4b8223
mov ecx, dword [eax*4 + 0x512ab8]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x4b83cf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4b83c0
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 0x4b83ea
push dword [esp + 0x38]
push ebx
call fcn.004bc480
add esp, 8
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
jmp 0x4b2834
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x4b840e
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x4b8410
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [edi + 0x7c]
push ebp
push eax
call fcn.004a67b0
add esp, 0x10
jmp 0x4b5450
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 0x4b8451
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4b8451
push edi
call fcn.0044c370
add esp, 4
cmp byte [esi + 0x11], 0
jne 0x4b8464
mov dword [esp + 0x20], 0x65
jmp 0x4b8525
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.00459110
add esp, 0xc
mov dword [esp + 0x28], eax
cmp ebp, eax
jb 0x4b84fb
cmp ebx, ebp
jae 0x4b84fb
test ebx, ebx
je 0x4b84f1
mov eax, dword [esi + 8]
test eax, eax
je 0x4b84b1
push 0
push 0
push eax
call fcn.00477d10
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b8521
push esi
call fcn.00460ce0
push 0
push ebp
push dword [esp + 0x34]
push esi
call fcn.00460230
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b8521
mov eax, dword [esi + 0xc]
push dword [eax + 0x48]
call fcn.0049e1b0
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 0x4b8521
mov dword [esp + 0x20], 0x65
jmp 0x4b8521
push 0x51e124
push 0x121ea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov dword [esp + 0x20], 0xb
mov ebp, dword [esp + 0x18]
cmp byte [edi + 9], 0
je 0x4b853a
add dword [edi + 0xc], 0xffffffff
jne 0x4b853a
push edi
call fcn.004ca290
add esp, 4
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4b224e
cmp edx, 0x65
jne 0x4b9875
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], 0
jmp 0x4b9725
cmp dword [ecx + 4], 0
jne 0x4b8589
push dword [ecx + 8]
push ebp
call fcn.0048a2b0
mov ecx, dword [esp + 0x18]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
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 0x4b1d06
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 0x4b1d06
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x4b8614
mov eax, dword [ebp + 0x24]
and eax, 4
jne 0x4b1f6d
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 0x4b86e5
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xe4], bl
cmp byte [esi + 0xa], dl
jne 0x4b8650
push esi
call fcn.0044c370
add esp, 4
push dword [esp + 0xe4]
push edi
push esi
call fcn.00473020
mov edx, eax
add esp, 0xc
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b86cc
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x4b8685
cmp dword [ecx + 4], edi
jne 0x4b867e
cmp dword [ecx], esi
je 0x4b86b3
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x4b8675
push 0
push 0x10
call fcn.0049b7f0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4b86bf
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 0x4b86bb
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x4b86c4
mov edx, 7
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x20], edx
cmp byte [esi + 9], 0
je 0x4b86e5
add dword [esi + 0xc], 0xffffffff
jne 0x4b86e5
push esi
call fcn.004ca290
mov edx, dword [esp + 0x24]
add esp, 4
test edx, edx
je 0x4b2838
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 6
jne 0x4b9e8f
push dword [edi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.004b1bc0
mov edx, dword [esp + 0x2c]
add esp, 0xc
mov esi, dword [esp + 0x18]
jmp 0x4b9881
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], 0
mov esi, dword [edx + 0x10]
mov edx, dword [ebp + 0x180]
test edx, edx
jle 0x4b8764
cmp dword [ebp + 0x198], 0
jne 0x4b8764
mov edx, 6
mov dword [esp + 0x20], edx
test esi, esi
je 0x4b9875
push dword [esi + 8]
push edi
call fcn.004bed20
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x4b322d
test esi, esi
jne 0x4b8783
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x4b8818
xor ecx, ecx
test edx, edx
jle 0x4b87b0
mov eax, dword [ebp + 0x198]
nop
cmp dword [eax], esi
je 0x4b8831
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4b87a0
push ebp
call fcn.0045faf0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b8818
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b8818
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 0x4b8818
cmp dword [edi + 0x50], 0
je 0x4b8818
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.004bed20
mov edx, dword [esp + 0x28]
add esp, 8
jmp 0x4b322d
mov dword [esp + 0x20], 0
jmp 0x4b8818
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.004bb8d0
mov dword [esp + 0x28], eax
add esp, 8
mov eax, dword [esp + 0x124]
and eax, 0x202
cmp eax, 0x202
jne 0x4b88a6
cmp byte [esp + 0x126], 1
jne 0x4b88a6
mov edx, dword [esp + 0x11c]
jmp 0x4b88c8
test byte [esp + 0x124], 1
jne 0x4b8997
lea eax, [esp + 0x114]
push 1
push eax
call fcn.004ccc40
add esp, 8
mov edx, eax
test edx, edx
je 0x4b8997
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.00490ae0
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.00459820
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4b8976
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x4b8976
cmp dword [eax + 0x14], 0
je 0x4b8976
push esi
push edx
push ecx
push ebx
push ebp
call fcn.004d10b0
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b898f
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4b898f
cmp dword [eax], ebp
je 0x4b8941
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4b8934
jmp 0x4b898f
push ebp
call fcn.0045faf0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4b898f
push ebx
push ebp
call fcn.004970d0
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 0x4b898f
push edi
push str.no_such_module:__s
push ebp
call fcn.0049b7d0
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 0x4b89ae
cmp dword [esp + 0x12c], 0
je 0x4b89be
lea eax, [esp + 0x114]
push eax
call fcn.004ce210
add esp, 4
mov edx, dword [esp + 0x20]
jmp 0x4b5456
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.00490ae0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4b8a7e
cmp byte [edi + 0x2b], 1
jne 0x4b8a7e
mov ecx, dword [edi + 0x34]
test ecx, ecx
je 0x4b8a7e
nop
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x4b9c58
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x4b8a10
push edi
push ebp
call fcn.004d15e0
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x4b8a3f
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 0x4b8a61
mov dword [esi + 8], eax
push esi
mov dword [edi + 0x34], eax
call fcn.004bf0c0
add esp, 4
cmp dword [ebp + 0x210], 0
jne 0x4b8a70
add dword [edi + 0x18], 0xffffffff
jne 0x4b8a7a
push edi
push ebp
call fcn.004540f0
add esp, 8
mov esi, dword [esp + 0x24]
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
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 0x4b1d06
mov edx, dword [esp + 0x10]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x4b9c7c
mov edi, dword [esi]
test edi, edi
je 0x4b9c7c
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.004bed20
mov edx, dword [esp + 0x30]
add esp, 0x10
test edx, edx
jne 0x4b6566
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.00446c80
add esp, 0x10
test eax, eax
je 0x4b9c68
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 0x4b1d06
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 0x4b8b7e
push edi
call fcn.004ce250
add esp, 4
jmp 0x4b8b87
mov eax, 1
mov word [edi + 0x10], ax
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x4b8bfd
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.004bf0c0
add esp, 0x18
test ebp, ebp
jne 0x4b9c86
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x4b93fb
push fcn.0043b060
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
push edi
call fcn.004bc070
add esp, 0x18
jmp 0x4b2834
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 0x4b1d06
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
call fcn.004c8d00
test eax, eax
jne 0x4b287f
push eax
push 8
call fcn.0049b7f0
mov edi, eax
add esp, 8
test edi, edi
je 0x4b287f
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.0046d270
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.004ce210
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.0043b060
jmp 0x4b2838
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 0x4b8deb
cmp edi, 0x10
jb 0x4b8dd3
cmp dword [0x537530], 2
jl 0x4b8dd3
movaps xmm2, xmmword [0x51e2f0]
mov eax, edi
and eax, 0x8000000f
jns 0x4b8d27
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x51e300]
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 0x4b8d40
cmp ecx, edi
jge 0x4b8deb
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 0x4b8de0
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.004bed20
mov edx, dword [esp + 0x3c]
add esp, 0x1c
test edx, edx
jne 0x4b9879
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 0x4b2808
mov edi, ebp
jmp 0x4b9725
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 0x4b8e8c
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4b8e7e
push esi
call fcn.004ce250
add esp, 4
jmp 0x4b2838
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x4b2838
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 0x4b8f0b
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4b8efa
push esi
call fcn.004ce250
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x4b8f1f
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.004bed20
add esp, 0x14
cmp dword [esp + 0x1c0], 0
jle 0x4b8f9d
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x4b8f6f
cmp byte [esi + 0x12], 1
jne 0x4b8f6f
mov eax, dword [esi + 8]
jmp 0x4b8f83
test cl, 1
je 0x4b8f78
xor eax, eax
jmp 0x4b8f83
push 1
push esi
call fcn.004ccc40
add esp, 8
push eax
push 0x51956c
push edi
call fcn.004b1bc0
mov eax, dword [esp + 0x1cc]
add esp, 0xc
mov dword [esp + 0x20], eax
test byte [esi + 0x10], 2
jne 0x4b8fac
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], al
jmp 0x4b8fc2
mov al, byte [esp + 0x38]
cmp byte [esi + 0x12], al
je 0x4b8fc2
push dword [esp + 0x38]
push esi
call fcn.004bc480
add esp, 8
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4b9875
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 0x4b1d06
mov ecx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4b1e0d
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.004bed20
mov edx, dword [esp + 0x2c]
add esp, 0xc
test edx, edx
jne 0x4b9875
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4b7614
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 0x4b7614
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 0x4b9090
mov byte [esi + 0x12], 1
jmp 0x4b90af
cmp byte [esi + 0x12], 1
je 0x4b90af
push 1
push esi
call fcn.004bc480
mov edx, eax
add esp, 8
mov dword [esp + 0x20], edx
test edx, edx
jne 0x4b9875
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 0x4b90d2
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.004bed20
mov edx, dword [esp + 0x28]
add esp, 8
and dword [edi + 0x98], 0xfffffffc
jmp 0x4b322d
xorps xmm0, xmm0
movlpd qword [esp + 0xf0], xmm0
cmp byte [ebp + 0x57], 0
jne 0x4b287f
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x4b9c7c
mov ebx, dword [edi]
test ebx, ebx
je 0x4b9c7c
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x4b1e0d
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 0x4b915f
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4b9154
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.004bed20
mov edx, dword [esp + 0x38]
add esp, 0x18
test edx, edx
jne 0x4b91e2
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 4], edx
je 0x4b91bb
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 0x4b9875
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
cmp dl, 0x13
jne 0x4b91b7
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4b91bb
movzx ecx, word [ecx + 2]
cmp ecx, 4
jne 0x4b9cb9
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 0x4b1d06
push dword [esp + 0x10]
push edi
call fcn.0046d270
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 0x4b1d06
push dword [esp + 0x10]
push edi
call fcn.0046d270
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 0x4b929e
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x4b92b6
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4b92b6
push esi
call fcn.0044c370
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x4b92c7
mov dword [eax + 0xa0], edi
jmp 0x4b92cd
mov edi, dword [eax + 0xa0]
cmp byte [esi + 9], 0
je 0x4b92e2
add dword [esi + 0xc], 0xffffffff
jne 0x4b92e2
push esi
call fcn.004ca290
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x4b2838
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 0x4b934a
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 0x4b934a
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 0x4b9330
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 0x4b93ff
jle 0x4b93cd
movzx ecx, word [edi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x4b939d
cmp byte [edi + 0x12], 1
jne 0x4b939d
mov eax, dword [edi + 8]
jmp 0x4b93b1
test cl, 1
je 0x4b93a6
xor eax, eax
jmp 0x4b93b1
push 1
push edi
call fcn.004ccc40
add esp, 8
mov edi, dword [esp + 0x14]
push eax
push 0x51956c
push edi
call fcn.004b1bc0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4b93d1
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.004b1640
mov edx, dword [esp + 0x30]
add esp, 0x10
mov dword [esi + 0x14], 0
jmp 0x4b322d
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 0x4b1d06
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 0x4b1d06
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 0x4b94a2
movzx eax, byte [esi + edx*8 + 0x13]
mov ebx, 0x9000
cdq
test word [ecx + 0x10], bx
je 0x4b947d
push edx
push eax
push ecx
jmp 0x4b2f06
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 0x4b1d06
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4b94cd
push ecx
call fcn.004ce250
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x84]
add ecx, 0x14
jmp 0x4b1d06
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 0x4b1d06
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 0x4b9529
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 0x4b1d06
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 0x4b1d06
mov edx, dword [esp + 0x10]
push edx
push esi
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.00458dd0
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.004e6260
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 0x4b2838
mov edx, dword [esp + 0x10]
push edx
push esi
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.00458dd0
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.004e6260
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 0x4b95fa
inc dword [edi + 0xc4]
jmp 0x4b9725
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 0x4b1d06
mov cl, byte [ebp + 0x5e]
test cl, 0x41
je 0x4b96d0
cmp byte [edi + 0x95], 0xfe
je 0x4b96d0
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x14]
test eax, eax
jne 0x4b9651
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x4b96d0
push eax
test cl, 0x40
je 0x4b967d
push edi
call fcn.004ba300
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.0043b060
mov esi, dword [esp + 0x38]
add esp, 0x14
jmp 0x4b96d0
cmp dword [ebp + 0xc8], 1
jle 0x4b96bc
push str.____s
push ebp
call fcn.0049b7d0
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 0x4b96b6
push esi
push ebp
call fcn.00487a00
add esp, 8
mov esi, dword [esp + 0x24]
jmp 0x4b96d0
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 [0x5321fc]
jl 0x4b9713
cmp byte [ecx], 0xb8
je 0x4b2818
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x4b9711
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x4b9708
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x4b96f7
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov dword [ebp + 4], eax
inc dword [edi + 0xbc]
jmp 0x4b9729
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 0x4b1d06
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 0x4b97fd
movzx eax, word [edx + 2]
test ax, ax
je 0x4b97b7
push dword [eax*4 + 0x511cb0]
push str._s_constraint_failed
push edi
call fcn.004b1bc0
mov ebx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4b97cc
push eax
push dword [edi + 0x7c]
push str._z:__s
push ebp
call fcn.0049b7d0
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x4b97cc
push dword [edx + 0x10]
push 0x51956c
push edi
call fcn.004b1bc0
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.00444580
add esp, 0x14
push edi
call fcn.004bac60
mov ebp, dword [esp + 0x18]
mov edi, eax
mov ecx, dword [esp + 0x1c]
add esp, 4
cmp edi, 5
jne 0x4b981d
mov dword [ebp + 0x24], eax
jmp 0x4b9964
cmp dword [ebp + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4b9964
push str.FOREIGN_KEY_constraint_failed
mov dword [edi + 0x24], 0x313
push edi
mov byte [edi + 0x94], 2
call fcn.004b1bc0
movsx edx, byte [edi + 0x96]
add esp, 8
sar edx, 7
and edx, 0x312
inc edx
jmp 0x4b9871
push 0x1760b
call fcn.00486060
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 0x4b9e98
mov edx, 7
jmp 0x4b9ec3
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 + 0x5322e0]
movzx eax, byte [ecx + 0x517158]
push dword [eax*4 + 0x532bc4]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.004b1bc0
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x20], edx
jmp 0x4b9879
mov ebp, dword [esp + 0x14]
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebp
call fcn.004b1bc0
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4b9879
mov ebp, dword [esp + 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.004b1bc0
mov edx, 5
add esp, 8
mov dword [esp + 0x20], edx
jmp 0x4b9879
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov byte [esi + 0x55], 0
jmp 0x4b987d
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 0x4b9964
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 0x4b9f93
mov edx, dword [esp + 0x74]
ja 0x4b998d
cmp dword [esp + 0x1c], edx
jb 0x4b9f93
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x4b9f93
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 0x4b9970
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 0x4b9879
mov esi, dword [esp + 0x18]
and edx, 0x100000
or edx, 0
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
je 0x4b99ff
mov edx, 8
mov dword [esp + 0x20], edx
jmp 0x4b9881
mov edx, 0xb
mov dword [esp + 0x20], edx
jmp 0x4b9881
mov ebp, dword [esp + 0x14]
cmp dl, 5
jne 0x4b9e80
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 0x4b9964
mov ebp, dword [esp + 0x10]
mov eax, dword [edi + 0x7c]
test eax, eax
je 0x4b9a59
push eax
push ebx
call fcn.00487a00
add esp, 8
push 0
push 0x1c
push ebx
call fcn.00487b10
add esp, 0xc
test eax, eax
je 0x4b9a8a
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x518520]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x518528]
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 0x4b9aad
push edx
push ebx
call fcn.004a55b0
add esp, 8
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xffffffed
or eax, 1
mov dword [edi + 0x98], eax
jmp 0x4b9871
mov ebp, dword [esp + 0x14]
mov edx, 0x204
mov dword [esp + 0x20], edx
jmp 0x4b987d
push dword [edi]
call fcn.0047f050
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4b9875
push 0x51e124
push 0x15dc7
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov edx, 0xb
jmp 0x4b9871
push 0x51e124
push 0x17ed3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov edx, 0xb
jmp 0x4b9871
push str.index_corruption
push 0x1830d
push 0x30b
call fcn.004a53d0
add esp, 0xc
jmp 0x4b986f
cmp dword [esp + 0x204], 0
je 0x4b9b74
lea eax, [esp + 0x1ec]
push eax
call fcn.004ce210
add esp, 4
push 0x51e124
push 0x15da6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov edx, 0xb
jmp 0x4b9871
push 0x183da
jmp 0x4b9867
mov ebp, dword [esp + 0x14]
mov edx, 6
mov dword [esp + 0x20], edx
mov byte [ebp + 0x94], 2
jmp 0x4b9879
push ebp
call fcn.004a5530
add esp, 4
jmp 0x4b287f
push dword [esp + 0x94]
call fcn.0043b060
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4b9875
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x28], 1
call fcn.004b1bc0
add esp, 8
mov edx, 1
jmp 0x4b9875
push esi
call fcn.0043e4a0
push eax
push 0x51956c
push edi
call fcn.004b1bc0
mov edx, dword [esp + 0x30]
add esp, 0x10
jmp 0x4b9875
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.004b1bc0
add esp, 0xc
mov edx, 1
jmp 0x4b9879
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x4b9871
push dword [esp + 0x90]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x4b287f
mov edx, 6
jmp 0x4b9871
push dword [esp + 0x9c]
call fcn.0043b060
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4b9875
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x74], ecx
mov dword [esp + 0x88], eax
jmp 0x4b9871
cmp ecx, 5
movzx eax, cl
mov esi, 2
cmove eax, esi
mov byte [edi + 0x94], al
jmp 0x4b9875
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 0x4b287f
test byte [ebp + 0x5e], 4
je 0x4b9d14
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 0x4b995c
mov edx, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmp ebx, eax
je 0x4b9e0d
test ecx, ecx
je 0x4b9d65
push 0x204
push ebp
call fcn.004a5e00
add esp, 8
mov al, 1
jmp 0x4b9da5
test ebx, ebx
je 0x4b9d8a
cmp dword [ebp + 0xc4], 0
jle 0x4b9d8a
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.004b1bc0
add esp, 8
mov edx, 5
jmp 0x4b9871
push 1
push edi
call fcn.004b1320
mov edi, eax
add esp, 8
test edi, edi
jne 0x4b995c
mov edi, dword [esp + 0x14]
mov al, bl
push edi
mov byte [ebp + 0x55], al
call fcn.004bac60
add esp, 4
cmp eax, 5
jne 0x4b9dea
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 0x4b9960
push ebp
call fcn.004833e0
mov ebp, dword [esp + 0x18]
add esp, 4
mov edi, 0x65
mov eax, 1
cmp dword [ebp + 0x24], 0
cmovne edi, eax
jmp 0x4b9960
test ebx, ebx
jne 0x4b9e28
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.004b1bc0
add esp, 8
lea edx, [ebx + 1]
jmp 0x4b9871
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.004b1bc0
add esp, 8
mov edx, 1
jmp 0x4b9871
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x4b9871
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
jmp 0x4b287f
mov esi, ebx
jmp 0x4b987d
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
jmp 0x4b9881
cmp edx, 0x210a
jne 0x4b9ec7
push 0x51e124
push 0x18cde
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00444580
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x20], edx
cmp dword [ebp + 0x7c], 0
jne 0x4b9eea
cmp edx, 0xc0a
je 0x4b9eea
push edx
call fcn.0043c4c0
push eax
push 0x51956c
push ebp
call fcn.004b1bc0
add esp, 0x10
mov ebx, dword [esp + 0x20]
push ebx
push dword [esp + 0x1c]
mov dword [ebp + 0x24], ebx
call fcn.004ac2f0
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.00444580
add esp, 0x1c
cmp byte [ebp + 0x97], 2
jne 0x4b9f3c
push ebp
call fcn.004bac60
add esp, 4
cmp ebx, 0xc0a
jne 0x4b9f78
push dword [esp + 0x18]
call fcn.0049c250
add esp, 4
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x73]
mov edi, 1
test al, al
je 0x4b9964
movzx eax, al
dec eax
push eax
push ecx
call fcn.004a55b0
add esp, 8
jmp 0x4b9960
cmp ebx, 0xb
jne 0x4b9f50
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], 0
jne 0x4b9f54
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x20], eax
or dword [ecx + 0x24], 2
jmp 0x4b9f54
mov ecx, dword [esp + 0x1c]
add dword [ebp + 0xb4], ecx
cmp dword [ebp + 0xa0], 0
je 0x4b9faf
push ebp
call fcn.004ce160
add esp, 4
mov ecx, dword [esp + 0x390]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e56df
add esp, 0x384
ret