Function at 0x459810
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x78
mov dword [0x4cc700], 2
mov dword [0x5bf940], 0x200000
push ebx
push ebp
or ebp, 0xffffffff
push esi
test eax, eax
push edi
mov dword [0x5bf944], 0x100000
mov byte [0x5bf954], 0
mov byte [0x5bf955], 2
je 0x459958
cmp dword [0x4efd74], ebp
je 0x459a19
mov eax, dword [str.1.24]
mov edx, dword [0x4ccd60]
mov ecx, dword [str.SAVEGAME.TMP]
mov edi, dword [eax + 2]
mov eax, dword [0x4ccd64]
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ecx
mov cl, byte [0x4ccd68]
lea edx, [esp + 0x60]
push edx
mov dword [esp + 0x6c], eax
mov byte [esp + 0x70], cl
call fcn.00498780
mov esi, eax
add esp, 4
test esi, esi
je 0x4598c1
lea eax, [esp + 0x24]
push 4
push eax
push esi
call fcn.00498980
mov eax, dword [esp + 0x30]
add esp, 0xc
cmp eax, edi
je 0x4598e7
push esi
call fcn.00498a70
add esp, 4
mov edi, dword [0x5c7b40]
mov ecx, 0xfba
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [0x5c7b40]
mov dword [ecx], 0xcafebabe
mov dword [0x4efd74], ebp
jmp 0x459a19
mov ebx, dword [0x5c7b40]
lea ecx, [esp + 0x1c]
push 4
push ecx
push esi
mov dword [esp + 0x2c], 0x3e80
call fcn.00498980
mov edx, dword [esp + 0x28]
push edx
call fcn.00496b60
mov edi, eax
mov eax, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00498980
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x3c]
push ecx
push edi
push edx
push ebx
call fcn.0049aaa0
push edi
call fcn.00496b70
mov eax, dword [0x5c7b40]
push 0x68
add eax, 0x3e80
push eax
push esi
call fcn.00498980
push esi
call fcn.00498a70
add esp, 0x40
mov dword [0x4efd74], ebp
jmp 0x459a19
mov eax, dword [0x4df9f4]
mov ecx, dword [0x4efd74]
cmp ecx, eax
je 0x459a19
cmp eax, 5
jge 0x459a14
mov edx, dword [str.1.24]
test eax, eax
mov edi, dword [edx + 2]
jge 0x4599a9
mov eax, dword [str.SAVEGAME.TMP]
mov ecx, dword [0x4ccd60]
mov edx, dword [0x4ccd64]
mov dword [esp + 0x60], eax
mov al, byte [0x4ccd68]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov byte [esp + 0x6c], al
jmp 0x4599bc
push eax
lea ecx, [esp + 0x64]
push str.SAVEGAME._03u
push ecx
call fcn.004b57c2
add esp, 0xc
lea edx, [esp + 0x60]
push edx
call fcn.00498780
mov esi, eax
add esp, 4
test esi, esi
je 0x4599f4
lea eax, [esp + 0x24]
push 4
push eax
push esi
call fcn.00498980
mov eax, dword [esp + 0x30]
add esp, 0xc
cmp eax, edi
je 0x459a71
push esi
call fcn.00498a70
add esp, 4
mov edi, dword [0x5c7b40]
mov ecx, 0xfba
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [0x5c7b40]
mov dword [ecx], 0xcafebabe
mov eax, dword [0x4df9f4]
mov dword [0x4efd74], eax
call fcn.00447020
call fcn.00444740
mov eax, dword [0x61aea0]
mov edi, dword [0x5f48d0]
test eax, eax
lea edx, [esp + 0x38]
jne 0x459a3c
mov edi, dword [0x5f48cc]
mov ecx, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [0x62bdbc]
and ecx, 3
cmp eax, 0x190
rep movsb byte es:[edi], byte [esi]
jg 0x459adc
mov ecx, dword [0x55f384]
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x459ae6
mov ebx, dword [0x5c7b40]
lea ecx, [esp + 0x1c]
push 4
push ecx
push esi
mov dword [esp + 0x2c], 0x3e80
call fcn.00498980
mov edx, dword [esp + 0x28]
push edx
call fcn.00496b60
mov edi, eax
mov eax, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00498980
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x3c]
push ecx
push edi
push edx
push ebx
call fcn.0049aaa0
push edi
call fcn.00496b70
mov eax, dword [0x5c7b40]
push 0x68
add eax, 0x3e80
push eax
push esi
call fcn.00498980
push esi
call fcn.00498a70
add esp, 0x40
jmp 0x459a0f
mov edx, dword [0x55f384]
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x38]
push eax
call fcn.00447fc0
mov ecx, dword [0x55f384]
mov eax, dword [0x62bdb8]
lea edx, [esp + 0x3c]
push ecx
push edx
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
mov eax, dword [0x62bdbc]
add eax, eax
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.0047e690
mov eax, dword [0x62bdbc]
mov ecx, dword [0x62bdb8]
cdq
and edx, 0xf
add esp, 0x14
add eax, edx
sar eax, 4
mov dword [esp + 0x18], eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x2aaaaaab
mov ebp, edx
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
xor ebx, ebx
mov dword [esp + 0x14], edx
cmp ebx, 5
jge 0x459b9a
mov eax, dword [esp + 0x1c]
mov dl, bl
add dl, 0x31
push eax
mov eax, dword [0x62bdbc]
mov byte [esp + 0x3c], dl
cdq
sub eax, edx
lea ecx, [esp + 0x3c]
sar eax, 1
mov edx, 0x8010
push ecx
sub edx, eax
push ebp
push edx
mov byte [esp + 0x49], 0
call fcn.0047e690
add esp, 0x10
cmp ebx, dword [0x4df9f4]
jne 0x459ca7
mov eax, dword [0x4ccdc4]
cmp ebx, 5
mov dword [esp + 0x38], eax
jne 0x459bc6
mov ecx, dword [esp + 0x14]
mov edi, dword [0x5f4ad4]
add ebp, ecx
lea edx, [esp + 0x38]
jmp 0x459c1d
mov ecx, dword [0x5c7b40]
lea edi, [ebx + 0x1fc]
shl edi, 5
add edi, ecx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x8c]
mov ecx, edx
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x459c42
call fcn.0048db40
test al, 0x80
je 0x459c42
lea edx, [esp + 0x38]
mov edi, 0x4cc800
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0x8000
call fcn.0048db40
mov edx, dword [esp + 0x24]
shr eax, 1
push eax
add edx, 8
push ebp
push edx
call fcn.0047edf0
mov ecx, dword [0x62bdbc]
mov eax, 0x66666667
shl ecx, 0x10
imul ecx
sar edx, 1
mov eax, edx
mov ecx, ebp
shr eax, 0x1f
add esp, 0x18
add edx, eax
shl ecx, 0x10
mov dword [0x5bf960], edx
mov dword [0x5bf964], ecx
mov byte [0x5bf974], 0
mov byte [0x5bf975], 0
jmp 0x459d28
mov dx, word [0x4c6830]
mov al, byte [0x4c6832]
cmp ebx, 5
mov word [esp + 0x38], dx
mov byte [esp + 0x3a], al
jne 0x459cd3
mov ecx, dword [esp + 0x14]
mov edi, dword [0x5f4ad4]
add ebp, ecx
lea edx, [esp + 0x38]
jmp 0x459ce8
mov ecx, dword [0x5c7b40]
lea edi, [ebx + 0x1fc]
shl edi, 5
add edi, ecx
lea edx, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov edx, dword [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
push eax
push ecx
add edx, 8
push ebp
push edx
call fcn.0047e690
add esp, 0x10
mov edx, dword [esp + 0x14]
add ebp, edx
inc ebx
cmp ebx, 6
jl 0x459b62
mov eax, dword [0x5c7b40]
mov ecx, dword [eax]
mov eax, dword [0x62bd84]
cmp ecx, 0xcafebabe
jne 0x45a059
mov ecx, dword [0x62bdbc]
cmp eax, 8
jne 0x459eab
cmp ecx, 0x190
jg 0x459dab
mov eax, 0x55555556
mov esi, dword [0x62bdb8]
imul ecx
mov ecx, edx
mov eax, esi
shr ecx, 0x1f
add edx, ecx
mov edi, edx
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
sar eax, 2
imul eax, dword [0x62bdc0]
add edx, eax
mov eax, 0x2aaaaaab
lea ecx, [edx + edi*2 - 8]
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x459dd9
mov eax, ecx
cdq
sub eax, edx
mov edi, eax
mov eax, dword [0x62bdb8]
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
sar eax, 2
mov ecx, eax
imul ecx, dword [0x62bdc0]
sar edi, 1
add ecx, edx
mov edx, eax
lea ecx, [ecx + edi - 8]
test edx, edx
jle 0x45a030
mov ebp, edx
mov bl, 0x88
test edi, edi
mov byte [esp + 0x10], bl
jle 0x459e3b
mov esi, edi
mov eax, dword [0x62bdd0]
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
mov eax, dword [eax + 0x62c040]
mov dword [0x62bdd0], edx
xor dword [edx + 0x62c040], eax
mov edx, dword [esp + 0x10]
and eax, 7
and edx, 0xff
lea eax, [eax + edx + 0x83]
cdq
sub eax, edx
sar eax, 1
mov byte [ecx], al
inc ecx
dec esi
mov byte [esp + 0x10], al
jne 0x459def
mov eax, dword [0x62bdc0]
sub eax, edi
add ecx, eax
test edi, edi
jle 0x459e96
mov esi, edi
mov eax, dword [0x62bdd0]
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
mov eax, dword [eax + 0x62c040]
mov dword [0x62bdd0], edx
xor dword [edx + 0x62c040], eax
mov edx, dword [esp + 0x10]
and eax, 7
and edx, 0xff
lea eax, [eax + edx + 0x88]
cdq
sub eax, edx
sar eax, 1
mov byte [ecx], al
inc ecx
dec esi
mov byte [esp + 0x10], al
jne 0x459e4a
mov eax, dword [0x62bdc0]
sub eax, edi
add ecx, eax
dec ebp
jne 0x459de5
jmp 0x45a030
cmp ecx, 0x190
jg 0x459ef7
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [0x62bdb8]
mov eax, ecx
mov ebp, edx
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
sar eax, 2
imul eax, dword [0x62bdc0]
add edx, eax
mov eax, 0x2aaaaaab
lea esi, [edx + ebp*4 - 0x10]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
jmp 0x459f25
mov eax, ecx
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [0x62bdb8]
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
sar eax, 2
mov ecx, eax
imul ecx, dword [0x62bdc0]
sar ebp, 1
add edx, ecx
lea esi, [edx + ebp*2 - 0x10]
mov edx, eax
test edx, edx
jle 0x45a030
mov dword [esp + 0x1c], edx
test ebp, ebp
mov byte [esp + 0x10], 0x88
jle 0x459fa1
mov ecx, 0x88
mov edi, ebp
mov eax, dword [0x62bdd0]
add esi, 2
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
mov eax, dword [eax + 0x62c040]
mov dword [0x62bdd0], edx
mov ebx, dword [edx + 0x62c040]
xor ebx, eax
and eax, 7
mov dword [edx + 0x62c040], ebx
lea eax, [eax + ecx + 0x83]
cdq
sub eax, edx
sar eax, 1
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
dec edi
mov ax, word [ecx*2 + 0x5c7b60]
mov word [esi - 2], ax
jne 0x459f41
mov ecx, dword [0x62bdc0]
lea ebx, [ebp + ebp]
sub ecx, ebx
add esi, ecx
test ebp, ebp
jle 0x45a017
mov ecx, dword [esp + 0x10]
mov edi, ebp
and ecx, 0xff
mov eax, dword [0x62bdd0]
add esi, 2
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
mov eax, dword [eax + 0x62c040]
mov dword [0x62bdd0], edx
xor dword [edx + 0x62c040], eax
and eax, 7
lea eax, [eax + ecx + 0x88]
cdq
sub eax, edx
sar eax, 1
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
dec edi
mov ax, word [ecx*2 + 0x5c7b60]
mov word [esi - 2], ax
jne 0x459fbf
mov ecx, dword [0x62bdc0]
mov eax, dword [esp + 0x1c]
sub ecx, ebx
add esi, ecx
dec eax
mov dword [esp + 0x1c], eax
jne 0x459f31
mov edx, dword [0x55f384]
mov eax, dword [0x5f4ae8]
mov ecx, dword [0x62bdb8]
push edx
push eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
sub ecx, eax
add ecx, 0x10
push ecx
jmp 0x45a6c4
cmp eax, 8
jne 0x45a33f
mov edi, dword [0x62bdbc]
cmp edi, 0x190
jg 0x45a0d0
mov eax, 0x55555556
mov ebx, dword [0x62bdb8]
imul edi
mov ecx, edx
mov eax, ebx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
sar eax, 2
imul eax, dword [0x62bdc0]
add edx, eax
mov eax, 0x1e00000
lea ecx, [edx + ebp*2 - 8]
cdq
idiv edi
mov dword [esp + 0x1c], eax
mov eax, 0x12c0000
cdq
idiv ebx
mov dword [esp + 0x14], eax
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x10], edx
jmp 0x45a11c
mov ebx, dword [0x62bdb8]
mov eax, edi
cdq
sub eax, edx
mov ebp, eax
mov eax, ebx
cdq
and edx, 3
add eax, edx
mov esi, eax
mov eax, dword [0x62bdc4]
sar esi, 2
mov ecx, esi
mov dword [esp + 0x10], esi
imul ecx, dword [0x62bdc0]
add ecx, eax
mov eax, 0x1400000
cdq
idiv edi
sar ebp, 1
lea ecx, [ecx + ebp - 8]
mov dword [esp + 0x1c], eax
mov eax, 0xc80000
cdq
idiv ebx
mov dword [esp + 0x14], eax
xor esi, esi
xor edi, edi
mov eax, edi
add edi, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
sub al, 0x7c
mov byte [esp + esi + 0x28], al
inc esi
cmp edi, 0x30
jl 0x45a120
mov eax, dword [esp + 0x10]
cmp ebx, 0x190
mov dword [esp + 0x18], 0
jle 0x45a251
test eax, eax
jle 0x45a5e1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov edx, dword [0x5c7b40]
sar eax, 0x10
xor edi, edi
mov byte [esp + 0x10], 0x88
lea esi, [eax + eax*4]
shl esi, 5
add esi, edx
test ebp, ebp
jle 0x45a1b0
mov ebx, ebp
mov edx, edi
xor eax, eax
sar edx, 0x10
mov al, byte [edx + esi]
mov edx, dword [esp + 0x10]
and edx, 0xff
lea eax, [eax + edx + 0x80]
cdq
sub eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 1
mov byte [ecx], al
inc ecx
add edi, edx
dec ebx
mov byte [esp + 0x10], al
jne 0x45a180
mov eax, dword [0x62bdc0]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
sub eax, ebp
add ecx, eax
add esi, edx
test ebp, ebp
mov dword [esp + 0x18], esi
jle 0x45a226
mov esi, ebp
mov edx, dword [0x62bdc0]
mov eax, ecx
sub eax, edx
mov dl, byte [eax]
mov eax, dword [0x62bdd0]
mov byte [esp + 0x10], dl
mov dl, al
add dl, 4
sub al, 0x2c
and edx, 0xff
and eax, 0xff
mov dword [0x62bdd0], edx
mov eax, dword [eax + 0x62c040]
mov ebx, dword [edx + 0x62c040]
xor ebx, eax
and al, 3
mov dword [edx + 0x62c040], ebx
mov edx, dword [esp + 0x10]
and edx, 0xff
mov dl, byte [esp + edx - 0x58]
sub dl, al
mov byte [ecx], dl
inc ecx
dec esi
jne 0x45a1cd
mov eax, dword [0x62bdc0]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
sub eax, ebp
add ecx, eax
mov eax, dword [esp + 0x20]
add esi, edx
dec eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jne 0x45a15e
jmp 0x45a5e1
test eax, eax
jle 0x45a5e1
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x18]
mov esi, dword [0x5c7b40]
mov eax, edi
sar eax, 0x10
lea eax, [eax + eax*4]
shl eax, 5
add eax, esi
xor esi, esi
test ebp, ebp
jle 0x45a293
mov edx, ebp
mov ebx, esi
sar ebx, 0x10
mov bl, byte [ebx + eax]
add bl, 0x80
mov byte [ecx], bl
mov ebx, dword [esp + 0x1c]
inc ecx
add esi, ebx
dec edx
jne 0x45a27c
mov eax, dword [0x62bdc0]
mov edx, dword [0x5c7b40]
sub eax, ebp
add ecx, eax
mov eax, dword [esp + 0x14]
add edi, eax
mov eax, edi
mov dword [esp + 0x18], edi
sar eax, 0x10
xor edi, edi
lea esi, [eax + eax*4]
shl esi, 5
add esi, edx
test ebp, ebp
jle 0x45a314
mov ebx, ebp
mov edx, edi
sar edx, 0x10
mov al, byte [edx + esi]
mov byte [esp + 0x10], al
mov eax, dword [0x62bdd0]
mov dl, al
sub al, 0x2c
add dl, 4
and eax, 0xff
and edx, 0xff
mov eax, dword [eax + 0x62c040]
mov dword [0x62bdd0], edx
xor dword [edx + 0x62c040], eax
mov edx, dword [esp + 0x10]
and edx, 0xff
and al, 1
mov dl, byte [esp + edx + 0x28]
sub dl, al
mov byte [ecx], dl
mov edx, dword [esp + 0x1c]
inc ecx
add edi, edx
dec ebx
jne 0x45a2c1
mov eax, dword [0x62bdc0]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
sub eax, ebp
add ecx, eax
mov eax, dword [esp + 0x20]
add esi, edx
dec eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jne 0x45a25d
jmp 0x45a5e1
cmp dword [0x62bdbc], 0x190
jg 0x45a3af
mov ebx, dword [0x62bdbc]
mov eax, 0x55555556
imul ebx
mov esi, dword [0x62bdb8]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov edi, edx
mov ecx, dword [0x62bdc4]
cdq
and edx, 3
add eax, edx
sar eax, 2
imul eax, dword [0x62bdc0]
add ecx, eax
mov eax, 0x1e00000
cdq
idiv ebx
lea ecx, [ecx + edi*4 - 0x10]
mov dword [esp + 0x1c], eax
mov eax, 0x12c0000
cdq
idiv esi
mov dword [esp + 0x14], eax
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
jmp 0x45a3fe
mov ebx, dword [0x62bdbc]
mov ebp, dword [0x62bdb8]
mov eax, ebx
cdq
sub eax, edx
mov edi, eax
mov eax, ebp
cdq
and edx, 3
add eax, edx
mov edx, dword [0x62bdc4]
mov esi, eax
mov eax, 0x1400000
sar esi, 2
mov ecx, esi
imul ecx, dword [0x62bdc0]
sar edi, 1
add edx, ecx
lea ecx, [edx + edi*2 - 0x10]
cdq
idiv ebx
mov dword [esp + 0x1c], eax
mov eax, 0xc80000
cdq
idiv ebp
mov dword [esp + 0x14], eax
xor ebp, ebp
xor ebx, ebx
mov eax, ebx
add ebx, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
sub al, 0x7c
mov byte [esp + ebp + 0x28], al
inc ebp
cmp ebx, 0x30
jl 0x45a402
mov eax, dword [0x62bdb8]
xor edx, edx
cmp eax, 0x190
mov dword [esp + 0x18], edx
jle 0x45a50c
test esi, esi
jle 0x45a5e1
mov dword [esp + 0x24], esi
mov ebx, dword [0x5c7b40]
mov esi, edx
sar esi, 0x10
xor ebp, ebp
lea esi, [esi + esi*4]
shl esi, 5
add esi, ebx
test edi, edi
jle 0x45a4a7
mov eax, 0x88
mov dword [esp + 0x20], edi
mov edx, ebp
xor ebx, ebx
sar edx, 0x10
add ecx, 2
mov bl, byte [edx + esi]
lea eax, [ebx + eax + 0x80]
mov ebx, dword [esp + 0x1c]
cdq
sub eax, edx
add ebp, ebx
sar eax, 1
mov byte [esp + 0x10], al
mov eax, dword [esp + 0x10]
and eax, 0xff
mov dx, word [eax*2 + 0x5c7b60]
mov word [ecx - 2], dx
mov edx, dword [esp + 0x20]
dec edx
mov dword [esp + 0x20], edx
jne 0x45a460
mov edx, dword [esp + 0x18]
mov eax, dword [0x62bdc0]
mov ebx, dword [esp + 0x14]
lea esi, [edi + edi]
add edx, ebx
sub eax, esi
add ecx, eax
test edi, edi
jle 0x45a4e5
mov ebp, edi
mov ebx, dword [0x62bdc0]
mov eax, ecx
sub eax, ebx
mov ebx, dword [0x5adc50]
shr ebx, 1
mov al, byte [eax]
add ecx, 2
shr al, 1
and al, bl
dec ebp
movzx ax, al
mov word [ecx - 2], ax
jne 0x45a4bf
mov eax, dword [0x62bdc0]
sub eax, esi
mov esi, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x24]
add edx, esi
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], eax
jne 0x45a43e
jmp 0x45a5e1
test esi, esi
jle 0x45a5e1
mov dword [esp + 0x20], esi
mov ebp, dword [0x5c7b40]
mov eax, edx
sar eax, 0x10
xor esi, esi
lea eax, [eax + eax*4]
shl eax, 5
add eax, ebp
test edi, edi
jle 0x45a55f
mov dword [esp + 0x24], edi
mov ebp, esi
xor ebx, ebx
sar ebp, 0x10
add ecx, 2
mov bl, byte [eax + ebp]
mov ebp, dword [esp + 0x1c]
add esi, ebp
mov bx, word [ebx*2 + 0x5c7c60]
mov word [ecx - 2], bx
mov ebx, dword [esp + 0x24]
dec ebx
mov dword [esp + 0x24], ebx
jne 0x45a535
mov ebx, dword [esp + 0x14]
mov esi, dword [0x62bdc0]
lea eax, [edi + edi]
add edx, ebx
sub esi, eax
mov ebx, dword [0x5c7b40]
mov eax, edx
add ecx, esi
sar eax, 0x10
xor ebp, ebp
lea esi, [eax + eax*4]
shl esi, 5
add esi, ebx
test edi, edi
jle 0x45a5bf
mov dword [esp + 0x24], edi
mov ebx, dword [0x5adc50]
mov eax, ebp
sar eax, 0x10
shr ebx, 1
mov al, byte [eax + esi]
add ecx, 2
shr al, 1
and al, bl
mov ebx, dword [esp + 0x1c]
movzx ax, al
mov word [ecx - 2], ax
mov eax, dword [esp + 0x24]
add ebp, ebx
dec eax
mov dword [esp + 0x24], eax
jne 0x45a58f
mov esi, dword [0x62bdc0]
lea eax, [edi + edi]
sub esi, eax
mov eax, dword [esp + 0x20]
add ecx, esi
mov esi, dword [esp + 0x14]
add edx, esi
dec eax
mov dword [esp + 0x20], eax
jne 0x45a518
mov ecx, dword [0x62bdb8]
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov dl, byte [0x4c6832]
sar eax, 2
sub ecx, eax
mov eax, dword [0x5c7b40]
add ecx, 0x10
mov byte [esp + 0x3a], dl
mov ebx, ecx
mov cx, word [0x4c6830]
mov word [esp + 0x38], cx
lea edi, [eax + 0x3ec0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x38]
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
mov eax, dword [0x55f384]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
inc eax
push eax
mov eax, dword [0x62bdbc]
cdq
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
sub eax, edx
push ecx
push ebx
sar eax, 1
push eax
call fcn.0047e690
mov eax, dword [0x5c7b40]
add esp, 0x10
mov ecx, dword [eax + 0x3ee0]
mov eax, dword [eax + 0x3ee4]
cmp eax, 4
ja case.default.0x45a67d
jmp dword [eax*4 + 0x45a738]
mov edi, dword [0x5f4af0]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x38]
test al, al
je 0x45a6d7
mov edx, dword [0x55f384]
lea eax, [esp + 0x38]
inc edx
add ebx, 0x10
push edx
push eax
push ebx
mov eax, dword [0x62bdbc]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.0047e690
add esp, 0x10
push 1
call fcn.00447050
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov edx, dword [0x5f4954]
jmp 0x45a707
mov edx, dword [0x5f4958]
jmp 0x45a707
mov edx, dword [0x5f495c]
jmp 0x45a707
mov edx, dword [0x5f4960]
mov eax, dword [0x5f4af4]
push edx
push ecx
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.004b57c2
add esp, 0x10
jmp 0x45a6ab
push 1
mov byte [esp + 0x3c], 0
call fcn.00447050
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret