Function at 0x4061f9
Capabilities:
Encode data using xor

Disassembly:
cmp byte [ebp - 0xc], 0
je 0x4061c6
mov eax, dword [ebp - 0x18]
xor edx, edx
jmp 0x4061d9
movsx eax, word [ebp - 0x40]
cmp eax, dword [ebp - 0x18]
jg 0x4061d2
mov eax, dword [ebp - 0x18]
movsx edx, word [ebp - 0x40]
sub edx, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
lea ebx, [ebp - 0x3d]
cmp byte [ebp - 0x3e], 0
je 0x4061f6
cmp esi, dword [ebp + 8]
jne 0x4061f6
mov al, 0x2d
stosb byte es:[edi], al
lodsb al, byte [esi]
cmp al, 0x23
mov edx, 0x55c907f2
mov ebx, 0x554903b2
xor ebx, edx
mov ecx, 0x2cc300bd
xor ecx, 0x2e9262bc
xor ebx, ecx
push ebx
pop edi
mov edx, 0xffffffff
xor edi, edx
and edi, 0x291b729
and ebx, 0xfd6e48d6
or ebx, edi
xor edx, edx
add edx, ebx
push edx
pop edi
sub edi, 0x3d
mov eax, dword [edi + 0x3d]
mov edx, 0x279f01e4
xor edx, 0x4a2061f2
push edx
push 0x126fd1c3
mov ecx, 0x3f869ee0
pop edx
xor ecx, edx
pop esi
xor ecx, esi
mov edx, ecx
push edx
push 0x7cd78d8b
mov edx, 0x3f8a08be
pop esi
xor edx, esi
push edx
mov esi, 0x5d8f6f51
mov ebx, 0x5e84c551
xor ebx, esi
pop ecx
xor ebx, ecx
pop edi
xor ebx, edi
mov esi, 0xfffffffc
add esp, esi
mov edx, 0
xor edx, esp
mov dword [edx], ebx
mov esi, esp
push 0x8f8397dd
mov edi, 0x707c6821
pop ecx
xor edi, ecx
add esp, edi
mov dword [esp], esi
mov esi, 0x1a47069d
xor esi, 0x31e87e4f
mov ecx, 0x4233831
mov ebx, 0x1204c64a
xor ecx, ebx
xor ecx, esi
push 0x54235ae8
mov ebx, 0x69abdc01
pop edi
xor ebx, edi
xor ecx, ebx
xor ebx, ebx
add ebx, ecx
add esp, 0xfffffffc
mov edx, esp
mov dword [edx], ebx
mov ebx, 0
mov edx, 0x800
xor ebx, edx
mov edx, 0x159ddd3f
mov edi, 0x159ddd3f
xor edi, edx
xor ebx, edi
mov ecx, 0x1140c142
mov edx, 0x4001c00
xor ecx, edx
mov edi, 0x65bb20b9
xor ecx, edi
xor ecx, 0x70fb6bfb
xor ebx, ecx
mov esi, ebx
mov edx, esi
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], edx
mov esi, 0x298be6c4
xor esi, 0x2101ae26
push esi
mov ebx, 0x22810200
mov esi, 0x50620098
xor ebx, esi
pop edx
xor ebx, edx
mov esi, ebx
add esp, 0xfffffffc
mov dword [esp], esi
mov edi, 0x356109b2
xor edi, 0x3f32b29d
mov ebx, edi
xor ebx, 0xffffffff
and ebx, 0x707ae155
and edi, 0x8f851eaa
or edi, ebx
pop ecx
xor edi, ecx
mov ebx, edi
mov esi, ebx
mov edx, esi
add esp, 0xfffffffc
mov dword [esp], edx
call eax
pop esi
mov edx, 0x1e082408
mov ebx, 0x1ea669f
xor ebx, edx
mov esi, 0x31f2ec95
xor ebx, esi
mov edx, ebx
push edx
push 0xe13eba6
mov edi, 0x7503a11f
pop ebx
xor edi, ebx
mov eax, 0x142bfe22
xor eax, 0x412b19bc
xor eax, edi
pop ecx
xor eax, ecx
mov edx, 0x11191212
mov ecx, 0x567a2159
xor ecx, edx
push 0x619a2b9c
mov edi, 0x2d0c1717
pop edx
xor edi, edx
xor edi, ecx
mov edx, 0x45e0dd7d
xor edx, 0x6512e1ba
mov ebx, 0x1e7e275d
xor ebx, 0x353974c4
xor ebx, edx
xor ebx, edi
mov edi, 0x5b8070de
xor edi, 0x1118b458
push edi
mov edi, 0x216d5f5
mov esi, 0xecbaee1
xor esi, edi
pop ecx
xor esi, ecx
mov edi, 0x541df159
mov edx, 0x5594f3a5
xor edx, edi
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x478c31cf
and edx, 0xb873ce30
or edx, ecx
xor edx, esi
mov ecx, eax
mov esi, 0xfffffffc
add esp, esi
mov dword [esp], ecx
push 0x4cb97bc2
mov esi, 0x4cb97bc2
pop ecx
xor esi, ecx
xor esi, edx
mov ecx, 0x39db9900
mov edi, 0xc62466fc
xor ecx, edi
add esp, ecx
mov dword [esp], esi
xor eax, eax
mov al, byte [ebx]
add edx, eax
mov al, byte [edx]
pop edx
mov byte [ebx], al
mov edi, 0x73b49bbb
xor edi, 0x777be91b
mov ecx, 0x14d130db
mov esi, 0xefe1bd84
xor esi, ecx
xor esi, edi
add ebx, esi
pop eax
push 0x2a82000b
mov esi, 0x2eb64c3a
pop ecx
xor esi, ecx
mov edi, 0xfbcbb3ce
xor esi, edi
add eax, esi
test eax, eax
jne 0x406408
push 0x101980c9
mov ecx, 0x101985c9
pop esi
xor ecx, esi
push 0x67e58b72
mov edx, 0x67a58b72
pop esi
xor edx, esi
xor ecx, edx
mov eax, 0x1020
mov esi, 0x10
xor eax, esi
mov edx, 0x480a
mov esi, 0x40
xor edx, esi
xor eax, edx
xor ecx, eax
call ecx
pop esi
pop esi
ret