Function at 0x4c5b35
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x65c748]
mov ecx, 0x4600018
and eax, 0xfffffff
cmp eax, ecx
ja 0x4c5c47
je 0x4c5c37
sub eax, 0x4600000
je 0x4c5c24
push 4
pop ecx
sub eax, ecx
je 0x4c5bf8
sub eax, ecx
je 0x4c5bd5
sub eax, ecx
je 0x4c5bb2
sub eax, ecx
je 0x4c5b8c
sub eax, ecx
jne 0x4c5c65
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x128]
jmp 0x4c5cd0
test byte [0x65c750], 2
je 0x4c5cd9
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x94]
and dword [eax], 0xffffffef
mov ecx, dword [0x65c670]
jmp fcn.004a89c2
mov eax, dword [0x65c670]
mov ecx, dword [eax + 0x11c]
mov eax, dword [0x65c750]
mov dword [ecx], eax
mov ecx, dword [0x65c668]
lea ecx, [ecx + 0x1058]
jmp 0x4e0abd
mov eax, dword [0x65c670]
mov ecx, dword [eax + 0x118]
mov eax, dword [0x65c750]
mov dword [ecx], eax
mov ecx, dword [0x65c668]
lea ecx, [ecx + 0x1058]
jmp 0x4e068a
mov eax, dword [0x65c670]
push 0x29
mov ecx, dword [eax + 0x114]
mov eax, dword [0x65c750]
mov dword [ecx], eax
mov ecx, dword [0x65bc74]
call fcn.0049de58
test al, al
je 0x4c5cd9
jmp 0x4dda98
mov eax, dword [0x65c670]
mov ecx, dword [eax + 0x110]
mov eax, dword [0x65c750]
mov dword [ecx], eax
ret
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x12c]
jmp 0x4c5cd0
sub eax, 0x460001c
je 0x4c5cc5
push 4
pop ecx
sub eax, ecx
je 0x4c5cb8
sub eax, ecx
je 0x4c5cab
sub eax, ecx
je 0x4c5c9e
sub eax, ecx
je 0x4c5c91
sub eax, ecx
je 0x4c5c84
cmp byte [0x65c71c], 0
je 0x4c5cd9
mov ecx, dword [0x65c678]
push 0x828
push 0x5e5248
mov eax, dword [ecx]
call dword [eax + 0x28]
ret
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x148]
jmp 0x4c5cd0
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x144]
jmp 0x4c5cd0
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x140]
jmp 0x4c5cd0
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x13c]
jmp 0x4c5cd0
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x134]
jmp 0x4c5cd0
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x130]
movzx ecx, byte [0x65c750]
mov dword [eax], ecx
ret
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x114]
mov eax, dword [eax]
cmp eax, 0x5000000
jne 0x4ddad2
mov eax, dword [ecx + 0x1d0]
and dword [eax], 0xe3ffffff
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x54]
and dword [eax], 0xfffff7ff
mov ecx, dword [0x65c670]
jmp fcn.004a89c2
cmp eax, 0x5000400
jne 0x4ddae7
mov eax, dword [ecx + 0x1d0]
and dword [eax], 0xb3ffffff
jmp 0x4ddab9
ret
mov eax, 0x565fb4
call fcn.00514868
sub esp, 0x24
mov edx, dword [0x65c670]
push ebx
push esi
push edi
mov eax, dword [edx + 0x118]
mov edi, ecx
mov dword [ebp - 0x18], edi
mov ebx, dword [eax]
and ebx, 0xffffff
inc ebx
test bl, 1
je 0x4e06ba
inc ebx
mov eax, dword [edx + 0x110]
mov ecx, dword [0x65c668]
mov esi, dword [eax]
add esi, ebx
call fcn.004c4c2a
cmp esi, eax
jbe 0x4e0728
cmp byte [0x65c71c], 0
je 0x4e0718
push esi
lea eax, [ebp - 0x30]
push 0x5e9ee4
push eax
call fcn.00490eb7
add esp, 0xc
mov edx, eax
and dword [ebp - 4], 0
cmp dword [edx + 0x14], 0x10
jb 0x4e06fc
mov edx, dword [edx]
mov ecx, dword [0x65c678]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
push 0
push 1
call fcn.00401fa5
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x120]
jmp 0x4e0a90
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x114]
mov eax, dword [eax]
cmp eax, 0x5000000
jb 0x4e0763
cmp eax, 0x50003ff
ja 0x4e0763
push 0
imul eax, ebx, 0x3f
xor edx, edx
push 0x19
pop ecx
div ecx
mov ecx, dword [0x65c68c]
push eax
push 0xb
call fcn.004d38de
jmp 0x4e0aac
cmp eax, 0x5000400
jb 0x4e07b4
cmp eax, 0x50004ff
ja 0x4e07b4
mov ecx, dword [0x65c668]
call fcn.004c4b7a
mov ecx, dword [0x65c684]
xor edx, edx
mov edi, eax
mov esi, dword [ecx + 0x20]
add esi, dword [ecx + 0xc]
test ebx, ebx
je 0x4e0744
mov eax, dword [0x65c670]
mov ecx, edx
xor ecx, 3
mov eax, dword [eax + 0x110]
mov eax, dword [eax]
add eax, edx
xor eax, 3
inc edx
mov al, byte [eax + edi]
mov byte [ecx + esi], al
cmp edx, ebx
jb 0x4e0790
jmp 0x4e0744
cmp eax, 0x5000580
jb 0x4e07c6
cmp eax, 0x50005bf
jbe 0x4e0a8a
cmp eax, 0x10000000
jb 0x4e0943
cmp eax, 0x1fbfffff
ja 0x4e0943
mov ecx, dword [0x65bc74]
push 0x8e
call fcn.0049de58
test al, al
je 0x4e093d
mov eax, dword [0x65c67c]
mov ecx, dword [0x65c668]
mov esi, dword [eax + 0x10]
mov dword [ebp - 0x10], esi
call fcn.004c4b7a
mov ecx, dword [0x65c67c]
push 0
push 2
mov dword [ebp - 0x14], eax
push dword [ecx + 0x18]
push esi
call fcn.004957d9
mov ecx, dword [0x65c670]
add esp, 0x10
mov eax, dword [ecx + 0x114]
add dword [eax], 0xf0000000
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x114]
mov edx, dword [eax]
mov eax, dword [0x65c67c]
mov edi, dword [eax + 0x18]
lea eax, [edx + ebx]
cmp eax, edi
jae 0x4e088d
xor esi, esi
test ebx, ebx
je 0x4e08c7
mov edi, dword [ebp - 0x10]
mov eax, dword [ecx + 0x110]
mov edx, dword [eax]
mov eax, dword [ecx + 0x114]
add edx, esi
xor edx, 3
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
add ecx, esi
xor ecx, 3
inc esi
mov al, byte [edx + eax]
mov byte [ecx + edi], al
mov ecx, dword [0x65c670]
cmp esi, ebx
jb 0x4e085b
mov ebx, edi
jmp 0x4e08ca
mov ebx, dword [ebp - 0x10]
push 0
pop esi
sub edi, edx
je 0x4e08ca
mov eax, dword [ecx + 0x110]
mov edx, dword [eax]
mov eax, dword [ecx + 0x114]
add edx, esi
xor edx, 3
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
add ecx, esi
xor ecx, 3
inc esi
mov al, byte [edx + eax]
mov byte [ecx + ebx], al
mov ecx, dword [0x65c670]
cmp esi, edi
jb 0x4e0897
jmp 0x4e08ca
mov ebx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x114]
add dword [eax], 0x10000000
mov eax, dword [0x65c658]
cmp byte [eax + 0x22552], 0
jne 0x4e08f3
mov ecx, dword [ebp - 0x18]
mov byte [eax + 0x22552], 1
call fcn.004e05b6
mov ecx, dword [0x65c664]
test ecx, ecx
je 0x4e0923
cmp byte [0x65c76a], 0
je 0x4e0923
mov edx, dword [0x65c670]
push 5
mov eax, dword [edx + 0x11c]
push dword [eax]
mov eax, dword [edx + 0x110]
push dword [eax]
call fcn.004d5498
mov eax, dword [0x65c67c]
push 0
push 1
push dword [eax + 0x18]
push ebx
call fcn.004957d9
add esp, 0x10
jmp 0x4e0718
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x114]
mov esi, 0x8000000
cmp dword [eax], esi
jb 0x4e09ef
cmp dword [eax], 0x8010000
ja 0x4e09ef
mov eax, dword [0x65c658]
push 2
pop edx
cmp dword [eax + 0x34], 0xffffffff
jne 0x4e097e
mov dword [eax + 0x34], edx
mov ecx, dword [0x65c670]
mov eax, dword [0x65c658]
cmp dword [eax + 0x34], edx
jne 0x4e09b6
mov eax, dword [ecx + 0x114]
mov ecx, dword [0x65c668]
push ebx
mov eax, dword [eax]
sub eax, esi
push eax
call fcn.004c4b7a
mov ecx, dword [0x65c670]
mov ecx, dword [ecx + 0x110]
add eax, dword [ecx]
mov ecx, dword [edi + 8]
push eax
call fcn.004c6f39
jmp 0x4e0718
cmp dword [eax + 0x34], 3
jne 0x4e0a35
mov eax, dword [ecx + 0x114]
mov ecx, dword [0x65c668]
push ebx
mov eax, dword [eax]
sub eax, esi
push eax
call fcn.004c4b7a
mov ecx, dword [0x65c670]
mov ecx, dword [ecx + 0x110]
add eax, dword [ecx]
mov ecx, dword [edi + 4]
push eax
call fcn.004c68f5
jmp 0x4e0718
mov eax, dword [0x65c658]
cmp dword [eax + 0x34], 3
jne 0x4e0a35
mov eax, dword [ecx + 0x114]
push dword [eax]
lea eax, [ebp - 0x30]
push 0x5e9f04
push eax
call fcn.00490eb7
add esp, 0xc
mov edx, eax
mov dword [ebp - 4], 3
cmp dword [edx + 0x14], 0x10
jb 0x4e0a24
mov edx, dword [edx]
mov ecx, dword [0x65c678]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4e0708
cmp byte [0x65c71c], 0
je 0x4e0a8a
mov eax, dword [ecx + 0x114]
push dword [eax]
lea eax, [ebp - 0x30]
push 0x5e9f30
push eax
call fcn.00490eb7
add esp, 0xc
mov edx, eax
mov dword [ebp - 4], 6
cmp dword [edx + 0x14], 0x10
jb 0x4e0a68
mov edx, dword [edx]
mov ecx, dword [0x65c678]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
push 0
push 1
call fcn.00401fa5
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x120]
and dword [eax], 0xfffffffe
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x94]
or dword [eax], 0x10
mov ecx, dword [0x65c670]
call fcn.004a89c2
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov eax, 0x5608bb
call fcn.00514868
sub esp, 0x2c
mov eax, dword [0x65c670]
push ebx
push esi
push edi
mov eax, dword [eax + 0x11c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [0x65bc74]
push 0x95
mov ebx, dword [eax]
and ebx, 0xfffffe
add ebx, 2
mov dword [ebp - 0x20], ebx
call fcn.0049de58
mov ecx, dword [0x65c670]
test al, al
mov eax, dword [ecx + 0x114]
mov esi, dword [eax]
jne 0x4e0b0e
and esi, 0xfffffffe
mov eax, dword [ecx + 0x120]
or dword [eax], 1
mov eax, dword [0x65c670]
mov ecx, dword [0x65c668]
mov eax, dword [eax + 0x110]
mov edi, dword [eax]
add edi, ebx
call fcn.004c4c2a
cmp edi, eax
jbe 0x4e0b73
cmp byte [0x65c72a], 0
je 0x4e1121
push edi
lea eax, [ebp - 0x38]
push 0x5e9f5c
push eax
call fcn.00490eb7
add esp, 0xc
mov edx, eax
and dword [ebp - 4], 0
cmp dword [edx + 0x14], 0x10
jb 0x4e0b62
mov edx, dword [edx]
mov ecx, dword [0x65c678]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4e1111
lea eax, [esi - 0x5000000]
cmp eax, 0x3ff
ja 0x4e0bcd
mov ecx, dword [0x65c668]
call fcn.004c4b7a
xor ecx, ecx
mov edx, eax
test ebx, ebx
je 0x4e0bae
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x110]
mov eax, dword [eax]
add eax, ecx
xor eax, 3
inc ecx
mov byte [eax + edx], 0
cmp ecx, ebx
jb 0x4e0b93
push 0
imul eax, ebx, 0x3f
xor edx, edx
push 0x19
pop ecx
div ecx
push eax
push 0xb
mov ecx, dword [0x65c68c]
call fcn.004d38de
jmp 0x4e1148
lea eax, [esi - 0x5000400]
cmp eax, 0xff
ja 0x4e0c21
mov ecx, dword [0x65c668]
call fcn.004c4b7a
mov ecx, dword [0x65c684]
xor esi, esi
mov dword [ebp - 0x20], eax
mov edi, dword [ecx + 0x20]
add edi, dword [ecx + 0xc]
test ebx, ebx
je 0x4e0bae
mov eax, dword [0x65c670]
mov edx, esi
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
mov al, byte [edx + edi]
add ecx, esi
mov edx, dword [ebp - 0x20]
xor ecx, 3
inc esi
mov byte [ecx + edx], al
cmp esi, ebx
jb 0x4e0bfa
jmp 0x4e0bae
lea eax, [esi - 0x5000580]
cmp eax, 0x3f
jbe 0x4e1121
lea edi, [esi - 0x6000000]
cmp edi, 0x3fffff
ja 0x4e0d8b
mov eax, dword [0x65c680]
mov ecx, dword [0x65c668]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x14], eax
call fcn.004c4b7a
mov ecx, dword [0x65c680]
mov edx, eax
mov dword [ebp - 0x10], edx
mov esi, dword [ecx + 0x18]
lea ecx, [edi + ebx]
cmp ecx, esi
jae 0x4e0ca5
xor esi, esi
test ebx, ebx
je 0x4e0d31
mov eax, dword [0x65c670]
lea edx, [esi + edi]
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
add ecx, esi
xor ecx, 3
inc esi
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x10]
mov byte [ecx + edx], al
cmp esi, ebx
jb 0x4e0c77
jmp 0x4e0d31
cmp edi, esi
jb 0x4e0ce0
sub edi, esi
cmp edi, esi
jae 0x4e0ca9
xor esi, esi
test ebx, ebx
je 0x4e0d31
mov eax, dword [0x65c670]
lea edx, [edi + esi]
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
add ecx, esi
xor ecx, 3
inc esi
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x10]
mov byte [ecx + edx], al
cmp esi, ebx
jb 0x4e0cb5
jmp 0x4e0d31
sub esi, edi
je 0x4e0d12
xor ebx, ebx
mov eax, dword [0x65c670]
lea edx, [ebx + edi]
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x14]
add ecx, ebx
xor ecx, 3
inc ebx
mov al, byte [edx + eax]
mov edx, dword [ebp - 0x10]
mov byte [ecx + edx], al
cmp ebx, esi
jb 0x4e0ce6
mov ebx, dword [ebp - 0x20]
sub ebx, esi
jmp 0x4e0d2d
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x110]
mov eax, dword [eax]
add eax, esi
xor eax, 3
inc esi
mov byte [eax + edx], 0
cmp esi, ebx
jb 0x4e0d16
mov eax, dword [0x65c658]
cmp byte [eax + 0x22552], 0
jne 0x4e0d4e
mov ecx, dword [ebp - 0x18]
mov byte [eax + 0x22552], 1
call fcn.004e05b6
mov ecx, dword [0x65c664]
test ecx, ecx
je 0x4e1121
cmp byte [0x65c76a], 0
je 0x4e1121
mov edx, dword [0x65c670]
push 5
mov eax, dword [edx + 0x11c]
push dword [eax]
mov eax, dword [edx + 0x110]
push dword [eax]
call fcn.004d5498
jmp 0x4e1121
lea eax, [esi - 0x8000000]
cmp eax, 0x88000
ja 0x4e0e28
mov eax, dword [0x65c658]
cmp dword [eax + 0x34], 0xffffffff
jne 0x4e0db3
mov dword [eax + 0x34], 2
mov eax, dword [0x65c658]
mov eax, dword [eax + 0x34]
cmp eax, 2
jne 0x4e0ded
mov ecx, dword [0x65c668]
lea eax, [esi - 0x8000000]
push ebx
push eax
call fcn.004c4b7a
mov ecx, dword [0x65c670]
mov ecx, dword [ecx + 0x110]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x18]
push eax
mov ecx, dword [ecx + 8]
call fcn.004c6ea8
jmp 0x4e1121
cmp eax, 3
jne 0x4e1148
mov ecx, dword [0x65c668]
lea eax, [esi - 0x8000000]
push ebx
push eax
call fcn.004c4b7a
mov ecx, dword [0x65c670]
mov ecx, dword [ecx + 0x110]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x18]
push eax
mov ecx, dword [ecx + 4]
call fcn.004c6697
jmp 0x4e1121
lea eax, [esi - 0x10000000]
mov dword [ebp - 0x10], eax
cmp eax, 0xfffffff
ja 0x4e10d9
mov eax, dword [0x65c67c]
mov ecx, dword [0x65c668]
mov edi, dword [eax + 0x10]
mov dword [ebp - 0x14], edi
call fcn.004c4b7a
mov ecx, dword [0x65c67c]
mov edx, eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], edx
mov esi, dword [ecx + 0x18]
lea ecx, [eax + ebx]
cmp ecx, esi
jae 0x4e0fbe
mov ecx, dword [0x65c670]
mov eax, dword [ecx + 0x110]
mov ecx, edi
add ecx, dword [ebp - 0x10]
add edx, dword [eax]
mov eax, edx
or eax, ecx
or eax, ebx
test al, 3
jne 0x4e0eae
test ebx, ebx
je 0x4e1066
lea esi, [ebx - 1]
sub ecx, edx
shr esi, 2
inc esi
mov eax, dword [ecx + edx]
mov dword [edx], eax
lea edx, [edx + 4]
sub esi, 1
jne 0x4e0e9c
jmp 0x4e1066
test al, 1
jne 0x4e0f92
test bl, 2
jne 0x4e0f5e
test dl, 2
jne 0x4e0ef4
test ebx, ebx
je 0x4e1066
lea esi, [ecx + 4]
lea ecx, [ebx - 1]
shr ecx, 2
inc ecx
mov ax, word [esi - 6]
mov word [edx + 2], ax
mov ax, word [esi]
lea esi, [esi + 4]
mov word [edx], ax
lea edx, [edx + 4]
sub ecx, 1
jne 0x4e0ed6
jmp 0x4e1066
test cl, 2
jne 0x4e0f29
test ebx, ebx
je 0x4e1066
lea esi, [edx + 4]
lea edx, [ebx - 1]
shr edx, 2
inc edx
mov ax, word [ecx + 2]
mov word [esi - 6], ax
mov ax, word [ecx]
lea ecx, [ecx + 4]
mov word [esi], ax
lea esi, [esi + 4]
sub edx, 1
jne 0x4e0f0b
jmp 0x4e1066
test ebx, ebx
je 0x4e1066
lea esi, [edx - 2]
lea edi, [ecx + 4]
sub ecx, edx
lea edx, [ebx - 1]
shr edx, 2
inc edx
mov ax, word [esi + ecx]
mov word [esi], ax
lea esi, [esi + 4]
mov ax, word [edi]
lea edi, [edi + 4]
mov word [esi + 2], ax
sub edx, 1
jne 0x4e0f40
jmp 0x4e1066
test ebx, ebx
je 0x4e1066
lea esi, [ebx - 1]
sub ecx, edx
shr esi, 1
mov dword [ebp - 0x14], ecx
inc esi
lea eax, [edx + ecx]
mov ecx, edx
xor eax, 2
xor ecx, 2
add edx, 2
mov ax, word [eax]
mov word [ecx], ax
mov ecx, dword [ebp - 0x14]
sub esi, 1
jne 0x4e0f71
jmp 0x4e1066
test ebx, ebx
je 0x4e1066
sub ecx, edx
mov esi, ebx
mov dword [ebp - 0x14], ecx
lea eax, [edx + ecx]
mov ecx, edx
xor eax, 3
xor ecx, 3
inc edx
mov al, byte [eax]
mov byte [ecx], al
mov ecx, dword [ebp - 0x14]
sub esi, 1
jne 0x4e0fa1
jmp 0x4e1066
cmp eax, esi
jb 0x4e1013
sub eax, esi
mov dword [ebp - 0x10], eax
cmp eax, esi
jb 0x4e0fd4
sub eax, esi
cmp eax, esi
jae 0x4e0fcb
mov dword [ebp - 0x10], eax
xor ecx, ecx
mov dword [ebp - 0x14], ecx
test ebx, ebx
je 0x4e1066
mov esi, dword [ebp - 0x1c]
lea edx, [eax + ecx]
mov eax, dword [0x65c670]
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x14]
mov al, byte [edx + edi]
xor ecx, 3
mov byte [ecx + esi], al
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, ebx
jb 0x4e0fe4
jmp 0x4e1066
sub esi, eax
je 0x4e1045
xor ebx, ebx
lea edx, [ebx + eax]
mov eax, dword [0x65c670]
xor edx, 3
mov eax, dword [eax + 0x110]
mov ecx, dword [eax]
mov al, byte [edx + edi]
add ecx, ebx
mov edx, dword [ebp - 0x1c]
xor ecx, 3
inc ebx
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x10]
cmp ebx, esi
jb 0x4e1019
mov ebx, dword [ebp - 0x20]
mov ecx, ebx
sub ecx, esi
jmp 0x4e1062
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x110]
mov eax, dword [eax]
add eax, esi
xor eax, 3
inc esi
mov byte [eax + edx], 0
cmp esi, ecx
jb 0x4e104b
mov eax, dword [0x65c658]
cmp byte [eax + 0x22552], 0
jne 0x4e1083
mov ecx, dword [ebp - 0x18]
mov byte [eax + 0x22552], 1
call fcn.004e05b6
mov ecx, dword [0x65c664]
test ecx, ecx
je 0x4e10b3
cmp byte [0x65c76a], 0
je 0x4e10b3
mov edx, dword [0x65c670]
push 5
mov eax, dword [edx + 0x11c]
push dword [eax]
mov eax, dword [edx + 0x110]
push dword [eax]
call fcn.004d5498
cmp byte [0x622535], 0
je 0x4e1121
mov ecx, dword [0x65c6b0]
push 0
call fcn.004d7daf
and eax, 0x3f
shr ebx, 3
add eax, ebx
push eax
push 8
jmp 0x4e0bbd
cmp byte [0x65c72a], 0
je 0x4e1121
push esi
lea eax, [ebp - 0x38]
push 0x5e9f80
push eax
call fcn.00490eb7
add esp, 0xc
mov edx, eax
mov dword [ebp - 4], 3
cmp dword [edx + 0x14], 0x10
jb 0x4e1105
mov edx, dword [edx]
mov ecx, dword [0x65c678]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
push 0
push 1
call fcn.00401fa5
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x120]
and dword [eax], 0xfffffffe
mov eax, dword [0x65c670]
mov eax, dword [eax + 0x94]
or dword [eax], 0x10
mov ecx, dword [0x65c670]
call fcn.004a89c2
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret