Function at 0x47bf30
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48cfb6
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
mov eax, dword [0x4bca04]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xe8], ecx
mov edi, dword [ebp + 0xc]
mov esi, edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], eax
xor eax, eax
mov dword [ebp - 0xec], eax
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0xdc], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xe4], edi
jb 0x47bf96
mov esi, dword [edi]
test eax, eax
je 0x47ccc8
push eax
push 0x40
push esi
call fcn.00463fc0
add esp, 0xc
test eax, eax
je 0x47ccc8
sub eax, esi
cmp eax, 0xffffffff
je 0x47ccc8
xor edx, edx
xorps xmm0, xmm0
mov ecx, 0xf
mov dword [ebp - 0xcc], edx
xor al, al
mov dword [ebp - 0x18], edx
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0xd5], al
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0x28], dl
xor ecx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0xd4], ecx
mov esi, dword [edi + 0x14]
mov eax, edi
cmp esi, 0x10
jb 0x47bfff
mov eax, dword [edi]
mov al, byte [eax + ecx]
add al, 0x3e
cmp al, 0x3b
jbe 0x47cb5b
mov eax, edi
cmp esi, 0x10
jb 0x47c015
mov eax, dword [edi]
cmp byte [eax + ecx], 0x40
jne 0x47cb5b
inc ecx
mov dword [ebp - 0xd4], ecx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xbc], ecx
cmp dword [ebp - 0xd4], ecx
jae case.0x47c067.65
mov eax, edi
cmp esi, 0x10
jb 0x47c044
mov eax, dword [edi]
mov edx, dword [ebp - 0xd4]
movsx eax, byte [eax + edx]
mov edx, dword [ebp - 0xcc]
add eax, 0xffffffc0
cmp eax, 0x2e
ja case.0x47c067.65
movzx eax, byte [eax + 0x47cd24]
jmp dword [eax*4 + 0x47cd0c]
mov eax, dword [ebp - 0xd4]
mov edx, edi
inc eax
mov byte [ebp - 0xd5], 1
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edi
cmp esi, 0x10
jb 0x47c097
mov edx, dword [edi]
mov dword [ebp - 0xc4], edx
cmp eax, ecx
jae 0x47c0c8
mov eax, ecx
mov ecx, dword [ebp - 0xc8]
sub eax, ecx
push eax
push 0x22
lea eax, [edx + ecx]
push eax
call fcn.00463fc0
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x47c0c8
sub ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xcc], ecx
jmp 0x47c0d2
mov dword [ebp - 0xcc], 0xffffffff
mov edx, dword [ebp - 0xd4]
mov ecx, edi
add edx, 2
mov dword [ebp - 0xc4], edi
cmp esi, 0x10
jb 0x47c0f0
mov ecx, dword [edi]
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0xbc]
cmp edx, eax
jae 0x47c117
sub eax, edx
push eax
lea eax, [ecx + edx]
push 0x22
push eax
call fcn.00463fc0
add esp, 0xc
test eax, eax
je 0x47c117
sub eax, dword [ebp - 0xc4]
jmp 0x47c11a
or eax, 0xffffffff
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0xd4], eax
cmp edx, 0xffffffff
je case.0x47c067.65
cmp eax, 0xffffffff
je case.0x47c067.65
lea ecx, [edx + 1]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0xc4], ecx
xorps xmm0, xmm0
mov ecx, dword [ebp - 0xbc]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x44], 0
cmp ecx, dword [ebp - 0xc4]
jb 0x47ccfc
sub eax, edx
lea edx, [eax - 1]
mov eax, dword [ebp - 0xc4]
sub ecx, eax
cmp ecx, edx
cmovb edx, ecx
mov ecx, edi
cmp esi, 0x10
jb 0x47c183
mov ecx, dword [edi]
add eax, ecx
lea ecx, [ebp - 0x58]
push edx
push eax
call fcn.004146a0
or dword [ebp - 0xdc], 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x48]
cmovae ecx, eax
push 0xd
push str.GAMEDIRECTORY
mov edx, esi
mov dword [ebp - 0xbc], eax
setae byte [ebp - 0xbd]
mov dword [ebp - 0xc4], esi
call fcn.00416460
add esp, 8
test al, al
je 0x47c23c
lea ecx, [ebp - 0x40]
call fcn.004119a0
or dword [ebp - 0xdc], 0x18
mov byte [ebp - 4], 2
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x28]
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.00413670
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x47c4bd
mov ecx, dword [ebp - 0x40]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47c40c
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd06
push ecx
call fcn.0045a450
add esp, 4
jmp 0x47c4bd
mov al, byte [ebp - 0xbd]
lea ecx, [ebp - 0x58]
mov edx, dword [ebp - 0xbc]
test al, al
cmovne ecx, edx
cmp esi, 0xd
jne 0x47c30e
mov edx, str.SAVEDIRECTORY
sub esi, 4
jb 0x47c274
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47c279
add ecx, 4
add edx, 4
sub esi, 4
jae 0x47c263
cmp esi, 0xfffffffc
je 0x47c2ad
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x47c2a6
cmp esi, 0xfffffffd
je 0x47c2ad
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x47c2a6
cmp esi, 0xfffffffe
je 0x47c2ad
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x47c2a6
cmp esi, 0xffffffff
je 0x47c2ad
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x47c2ad
sbb eax, eax
or eax, 1
jmp 0x47c2af
xor eax, eax
test eax, eax
jne 0x47c2fc
mov ecx, dword [ebp - 0xe8]
lea eax, [ebp - 0xa0]
push eax
call fcn.0047bd90
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x47c2d4
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00413670
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x8c]
cmp eax, 0x10
jb 0x47c4bd
mov ecx, dword [ebp - 0xa0]
jmp 0x47c3f1
mov esi, dword [ebp - 0xc4]
mov al, byte [ebp - 0xbd]
mov edx, dword [ebp - 0xbc]
test al, al
lea ecx, [ebp - 0x58]
cmovne ecx, edx
cmp esi, 0x11
jne 0x47c426
mov edx, str.BASESAVEDIRECTORY
sub esi, 4
jb 0x47c341
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47c346
add ecx, 4
add edx, 4
sub esi, 4
jae 0x47c330
cmp esi, 0xfffffffc
je 0x47c37a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x47c373
cmp esi, 0xfffffffd
je 0x47c37a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x47c373
cmp esi, 0xfffffffe
je 0x47c37a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x47c373
cmp esi, 0xffffffff
je 0x47c37a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x47c37a
sbb eax, eax
or eax, 1
jmp 0x47c37c
xor eax, eax
test eax, eax
jne 0x47c41a
mov byte [ebp - 4], 4
lea edx, [eax + 5]
mov esi, dword [ebp - 0xdc]
lea ecx, [ebp - 0x70]
xorps xmm0, xmm0
mov dword [ebp - 0x60], eax
movups xmmword [ebp - 0x70], xmm0
or esi, 0x20
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], al
mov dword [ebp - 0xec], esi
call fcn.00411ed0
lea ecx, [ebp - 0x70]
call fcn.00411740
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
push dword [ebp - 0x60]
cmovae eax, dword [ebp - 0x70]
lea ecx, [ebp - 0x28]
push eax
call fcn.00413670
and esi, 0xffffffdf
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xdc], esi
cmp eax, 0x10
jb 0x47c4bd
mov ecx, dword [ebp - 0x70]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47c40c
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd01
push ecx
call fcn.0045a450
add esp, 4
jmp 0x47c4bd
mov esi, dword [ebp - 0xc4]
mov al, byte [ebp - 0xbd]
test al, al
lea ecx, [ebp - 0x58]
cmovne ecx, dword [ebp - 0xbc]
cmp esi, 0x11
jne 0x47cb9a
mov edx, str.PERSONALDIRECTORY
sub esi, 4
jb 0x47c456
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x47c45b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x47c445
cmp esi, 0xfffffffc
je 0x47c48f
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x47c488
cmp esi, 0xfffffffd
je 0x47c48f
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x47c488
cmp esi, 0xfffffffe
je 0x47c48f
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x47c488
cmp esi, 0xffffffff
je 0x47c48f
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x47c48f
sbb eax, eax
or eax, 1
jmp 0x47c491
xor eax, eax
test eax, eax
jne 0x47cb9a
lea eax, [ebp - 0x88]
push eax
call fcn.0047bc70
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00413040
lea ecx, [ebp - 0x88]
call fcn.004121a0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x47cb71
mov ecx, dword [ebp - 0xbc]
inc eax
cmp eax, 0x1000
jb 0x47c4f2
mov eax, dword [ecx - 4]
sub ecx, eax
mov dword [ebp - 0xbc], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x47cd06
push dword [ebp - 0xbc]
call fcn.0045a450
add esp, 4
jmp 0x47cb71
mov esi, dword [ebp - 0xc4]
cmp edx, esi
jae 0x47c52a
lea eax, [edx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov word [eax + edx], 0xa
jmp 0x47cb71
mov eax, 0x7fffffff
sub eax, edx
cmp eax, 1
jb 0x47ccf7
lea eax, [edx + 1]
mov ecx, eax
mov dword [ebp - 0xc8], eax
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x47c557
mov ecx, 0x7fffffff
jmp 0x47c575
mov edx, esi
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp esi, eax
jbe 0x47c56d
mov ecx, 0x7fffffff
jmp 0x47c575
lea eax, [esi + edx]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0xbc], ecx
push eax
call fcn.00414b40
mov ecx, dword [ebp - 0xbc]
mov edx, eax
mov eax, dword [ebp - 0xc8]
add esp, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xd0], edx
push eax
lea ecx, [eax + edx]
mov dword [ebp - 0xcc], ecx
cmp esi, 0x10
jb 0x47c60e
mov ecx, dword [ebp - 0x28]
push ecx
push edx
mov dword [ebp - 0xc4], ecx
call fcn.004638d0
mov eax, dword [ebp - 0xcc]
add esp, 0xc
mov word [eax], 0xa
lea eax, [esi + 1]
cmp eax, 0x1000
mov eax, dword [ebp - 0xc4]
jb 0x47c5f7
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47cd06
mov eax, ecx
push eax
call fcn.0045a450
mov eax, dword [ebp - 0xd0]
add esp, 4
mov dword [ebp - 0x28], eax
jmp 0x47cb71
lea eax, [ebp - 0x28]
push eax
push edx
call fcn.004638d0
mov eax, dword [ebp - 0xcc]
add esp, 0xc
mov word [eax], 0xa
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0x28], eax
jmp 0x47cb71
mov esi, dword [ebp - 0xc4]
cmp edx, esi
jae 0x47c659
lea eax, [edx + 1]
cmp esi, 0x10
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
mov word [eax + edx], 0x40
jmp 0x47cb71
mov eax, 0x7fffffff
sub eax, edx
cmp eax, 1
jb 0x47ccf7
lea eax, [edx + 1]
mov ecx, eax
mov dword [ebp - 0xd0], eax
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x47c686
mov ecx, 0x7fffffff
jmp 0x47c6a4
mov edx, esi
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp esi, eax
jbe 0x47c69c
mov ecx, 0x7fffffff
jmp 0x47c6a4
lea eax, [edx + esi]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0xbc], ecx
push eax
call fcn.00414b40
mov ecx, dword [ebp - 0xbc]
mov edx, eax
mov eax, dword [ebp - 0xd0]
add esp, 4
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc8], edx
push eax
lea ecx, [eax + edx]
mov dword [ebp - 0xc4], ecx
cmp esi, 0x10
jb 0x47c73d
mov ecx, dword [ebp - 0x28]
push ecx
push edx
mov dword [ebp - 0xd0], ecx
call fcn.004638d0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov word [eax], 0x40
lea eax, [esi + 1]
cmp eax, 0x1000
mov eax, dword [ebp - 0xd0]
jb 0x47c726
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47cd06
mov eax, ecx
push eax
call fcn.0045a450
mov eax, dword [ebp - 0xc8]
add esp, 4
mov dword [ebp - 0x28], eax
jmp 0x47cb71
lea eax, [ebp - 0x28]
push eax
push edx
call fcn.004638d0
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov word [eax], 0x40
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x28], eax
jmp 0x47cb71
mov eax, dword [ebp - 0xd4]
mov edx, edi
inc eax
mov dword [ebp - 0xc8], edi
mov dword [ebp - 0xd0], eax
cmp esi, 0x10
jb 0x47c785
mov edx, dword [edi]
mov dword [ebp - 0xc8], edx
cmp eax, ecx
jae 0x47c7b6
mov eax, ecx
mov ecx, dword [ebp - 0xd0]
sub eax, ecx
push eax
push 0x22
lea eax, [edx + ecx]
push eax
call fcn.00463fc0
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x47c7b6
sub ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], ecx
jmp 0x47c7c0
mov dword [ebp - 0xd0], 0xffffffff
mov edx, dword [ebp - 0xd4]
mov ecx, edi
add edx, 2
mov dword [ebp - 0xc8], edi
cmp esi, 0x10
jb 0x47c7de
mov ecx, dword [edi]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ebp - 0xbc]
cmp edx, eax
jae 0x47c805
sub eax, edx
push eax
lea eax, [ecx + edx]
push 0x22
push eax
call fcn.00463fc0
add esp, 0xc
test eax, eax
je 0x47c805
sub eax, dword [ebp - 0xc8]
jmp 0x47c808
or eax, 0xffffffff
mov edx, dword [ebp - 0xd0]
xorps xmm0, xmm0
mov dword [ebp - 0xd4], eax
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
lea ecx, [edx + 1]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xbc]
cmp ecx, dword [ebp - 0xc8]
jb 0x47ccfc
sub eax, edx
lea edx, [eax - 1]
mov eax, dword [ebp - 0xc8]
sub ecx, eax
cmp ecx, edx
cmovb edx, ecx
mov ecx, edi
cmp esi, 0x10
jb 0x47c85f
mov ecx, dword [edi]
add eax, ecx
lea ecx, [ebp - 0x40]
push edx
push eax
call fcn.004146a0
or dword [ebp - 0xdc], 2
mov byte [ebp - 4], 6
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
mov edx, 0x811c9dc5
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x30]
setae byte [ebp - 0xbd]
cmovae eax, ecx
mov dword [ebp - 0xbc], ecx
xor ecx, ecx
test esi, esi
je 0x47c8b7
mov edi, eax
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x47c8a0
mov edi, dword [ebp - 0xe4]
push edx
lea eax, [ebp - 0x40]
mov ecx, 0x4cb4d0
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.00417c20
mov eax, dword [eax + 4]
test eax, eax
je 0x47c9a5
cmp eax, dword [0x4cb4d4]
je 0x47c9a5
mov esi, dword [eax + 0x20]
call fcn.00411f40
push esi
lea ecx, [ebp - 0xb8]
push ecx
mov ecx, eax
call fcn.004819e0
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x47c967
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x47c933
mov ecx, dword [ebp - 0x28]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47c92a
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd01
push ecx
call fcn.0045a450
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov eax, dword [ebp - 0xa4]
cmp eax, 0x10
jb 0x47cab8
mov ecx, dword [ebp - 0xb8]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47c997
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd01
push ecx
call fcn.0045a450
add esp, 4
jmp 0x47cab8
cmp byte [ebp - 0xbd], 0
lea ecx, [ebp - 0x40]
mov edx, dword [ebp - 0x14]
cmovne ecx, dword [ebp - 0xbc]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xc4], edx
cmp esi, edx
ja 0x47c9f0
mov eax, dword [ebp - 0x30]
lea esi, [ebp - 0x28]
cmp edx, 0x10
mov dword [ebp - 0x18], eax
push eax
cmovae esi, dword [ebp - 0x28]
push ecx
push esi
call fcn.004638d0
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov byte [esi + eax], 0
jmp 0x47cab8
cmp esi, 0x7fffffff
ja 0x47ccf7
mov ecx, esi
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x47ca10
mov ecx, 0x7fffffff
jmp 0x47ca3d
mov eax, edx
shr eax, 1
mov dword [ebp - 0xc8], eax
mov eax, 0x7fffffff
sub eax, dword [ebp - 0xc8]
cmp edx, eax
jbe 0x47ca30
mov ecx, 0x7fffffff
jmp 0x47ca3d
mov eax, dword [ebp - 0xc8]
add eax, edx
cmp ecx, eax
cmovb ecx, eax
lea eax, [ecx + 1]
mov dword [ebp - 0xcc], ecx
push eax
call fcn.00414b40
mov ecx, dword [ebp - 0xcc]
push esi
push dword [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ecx
call fcn.004638d0
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
mov eax, dword [ebp - 0xc4]
mov byte [ecx + esi], 0
cmp eax, 0x10
jb 0x47cab5
mov ecx, dword [ebp - 0x28]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47caa1
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd06
push ecx
call fcn.0045a450
mov eax, dword [ebp - 0xc8]
add esp, 4
mov dword [ebp - 0x28], eax
jmp 0x47cab8
mov dword [ebp - 0x28], ecx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x47cb71
mov ecx, dword [ebp - 0xbc]
inc eax
cmp eax, 0x1000
jb 0x47caed
mov eax, dword [ecx - 4]
sub ecx, eax
mov dword [ebp - 0xbc], eax
lea eax, [ecx - 4]
cmp eax, 0x1f
ja 0x47cd06
push dword [ebp - 0xbc]
call fcn.0045a450
add esp, 4
jmp 0x47cb71
call fcn.00411f40
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.00481760
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x47cb1c
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00413670
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x47cb71
mov ecx, dword [ebp - 0x40]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47cb50
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd01
push ecx
call fcn.0045a450
add esp, 4
jmp 0x47cb71
mov eax, edi
cmp esi, 0x10
jb 0x47cb64
mov eax, dword [edi]
movzx eax, byte [eax + ecx]
lea ecx, [ebp - 0x28]
push eax
call fcn.00412ef0
mov ecx, dword [ebp - 0xd4]
inc ecx
mov dword [ebp - 0xd4], ecx
cmp ecx, dword [edi + 0x10]
jae 0x47cbf6
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xcc], edx
jmp 0x47bff3
mov esi, dword [ebp - 0xe0]
mov ecx, esi
push edi
call fcn.00413250
lea ecx, [ebp - 0x58]
call fcn.004121a0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x47cbdf
mov ecx, dword [ebp - 0x28]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47cbd6
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd06
push ecx
call fcn.0045a450
add esp, 4
mov eax, esi
jmp 0x47ccda
mov esi, dword [ebp - 0xe0]
mov ecx, esi
push edi
call fcn.00413250
jmp 0x47cbb0
cmp byte [ebp - 0xd5], 0
je 0x47cc88
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x88]
call fcn.004805e0
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x47cc7d
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x47cc49
mov ecx, dword [ebp - 0x28]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47cc40
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd01
push ecx
call fcn.0045a450
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x88]
call fcn.004121a0
mov esi, dword [ebp - 0xe0]
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.00413110
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x47cbdf
mov ecx, dword [ebp - 0x28]
inc eax
mov edx, ecx
cmp eax, 0x1000
jb 0x47cbd6
mov ecx, dword [edx - 4]
sub edx, ecx
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x47cd06
jmp 0x47cbd6
mov ecx, dword [ebp - 0xe0]
push edi
call fcn.00413250
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004612e1
mov esp, ebp
pop ebp
ret 8
call fcn.004105c0
call fcn.00413940
call fcn.00469335
call fcn.00469335
nop
xor al, 0xc6
inc edi
add byte [ebx - 0x39], ah
inc edi
add ch, bh
retf 0x47