Function at 0x404c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
push edi
sub esp, 0xb0
mov eax, 0x1e28acbe
mov word [ebp - 0xe], 0xa423
mov byte [ebp - 0xf], 0x1d
mov dword [ebp - 0x14], 0x1e28acbb
mov word [ebp - 0x8e], 0x86cd
mov dword [ebp - 0x18], 0x32c821e4
mov ecx, dword [ebp - 0x14]
mov edx, 0x6ef15eb0
sub edx, ecx
mov dword [ebp - 0xa4], edx
lea ecx, [ebp - 0x8c]
lea edx, [ebp - 0x68]
mov byte [ebp - 0x8c], 0x6e
mov byte [ebp - 0x8b], 0x74
mov byte [ebp - 0x8a], 0x64
mov bl, byte [ebp - 0xf]
mov bh, 0x89
sub bh, bl
mov byte [ebp - 0x89], bh
mov bh, bl
xor bh, 0x71
mov byte [ebp - 0x88], bh
mov byte [ebp - 0x87], 0x2e
mov byte [ebp - 0x86], 0x64
mov bh, bl
add bh, 0x4f
mov byte [ebp - 0x85], bh
mov byte [ebp - 0x84], 0x6c
xor bl, 0x1d
mov byte [ebp - 0x83], bl
mov byte [ebp - 0x82], 0xbd
movaps xmm0, xmmword [str.ntdll.dl]
movups xmmword [ebp - 0x68], xmm0
mov word [ebp - 0x58], 0x6c
mov si, word [ebp - 0xe]
add si, 0x5bdd
mov word [ebp - 0x56], si
mov si, word [ebp - 0xe]
add si, 0x5b9a
mov word [ebp - 0x54], si
mov dword [ebp - 0x4e], 0
mov dword [ebp - 0x52], 0
mov dword [ebp - 0x46], 0
mov dword [ebp - 0x4a], 0
mov dword [ebp - 0x3e], 0
mov dword [ebp - 0x42], 0
mov dword [ebp - 0x36], 0
mov dword [ebp - 0x3a], 0
mov word [ebp - 0x32], 0
movsx edi, byte [ebp - 0x70]
mov si, di
mov word [ebp - 0x30], si
movsx edi, byte [ebp - 0x6f]
mov si, di
mov word [ebp - 0x2e], si
movsx edi, byte [ebp - 0x6e]
mov si, di
mov word [ebp - 0x2c], si
mov bl, byte [ebp - 0x6d]
movsx edi, bl
mov si, di
mov word [ebp - 0x2a], si
mov edi, dword [0x45291c]
shl edi, 1
sub eax, dword [ebp - 0x14]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xac], ecx
call fcn.00405f00
mov ecx, dword [0x45291c]
mov eax, dword [eax + ecx + 0x24]
mov eax, dword [eax + 0xc]
mov ecx, eax
add ecx, 0x14
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa0], 0
cmp eax, ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xb4], eax
jne 0x404f00
mov eax, dword [ebp - 0xa0]
add esp, 0xb0
pop edi
pop ebx
pop esi
pop ebp
ret
mov eax, 0x6aff8254
mov word [ebp - 0x6c], 0xb68f
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xa0], 0
cmp eax, ecx
ja 0x404e95
jmp 0x404e06
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x94]
mov dx, word [eax + 0x24]
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x94]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x9c], eax
shr dx, 1
movzx eax, dx
mov dword [ebp - 0x20], eax
cmp dx, 0
je 0x404e9d
jmp 0x404eb8
mov eax, dword [ebp - 0x14]
xor eax, 0x75c8db5f
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x24], ecx
cmp edx, eax
je 0x404e9d
jmp 0x404ec1
cmp word [ebp - 0x6c], 0x35da
jne 0x404e78
mov ax, word [ebp - 0x8e]
mov cx, word [ebp - 0xe]
xor cx, 0x71fa
cmp ax, cx
jb 0x404e17
jmp 0x404e9d
mov dword [ebp - 0x1c], 0
jmp 0x404f0e
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xa0], 0
mov ecx, dword [ebp - 0xb0]
cmp eax, ecx
je 0x404e06
jmp 0x404e35
mov eax, dword [ebp - 0x9c]
mov cl, byte [ebp - 0x69]
mov dword [ebp - 0xa0], eax
test cl, 1
jne 0x404e06
jmp 0x404e9d
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x28], eax
jmp 0x404e35
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x1c]
mov dx, word [eax + ecx*2]
mov si, word [ebp + ecx*2 - 0x68]
mov di, word [ebp - 0xe]
add di, 0x5b9c
mov bx, dx
add bx, di
mov di, dx
add di, 0x20
cmp bx, 0x1a
cmovb dx, di
cmp si, dx
sete al
and al, 1
mov byte [ebp - 0x69], al
mov eax, dword [ebp - 0x14]
xor eax, 0x1e28acba
add ecx, eax
mov al, byte [ebp - 0x69]
cmp dx, 0
setne ah
and al, ah
cmp ecx, dword [ebp - 0x20]
setb ah
and ah, al
mov dword [ebp - 0x1c], ecx
test ah, 1
jne 0x404f0e
jmp 0x404ee6