Function at 0x40f82c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd28
mov ecx, dword [0x440b34]
mov dword [esp + 0x130], 0x4b17cb0c
mov dword [esp + 0x134], 0
mov byte [esp + 0x138], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 8
ja 0x40f258
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0x130]
lea esi, [eax + 0x4d]
add eax, edx
and esi, edx
add esi, esi
sub eax, esi
add eax, 0x7de5be4d
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x230]
add al, 0xe5
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 0x130], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 9
jb 0x40f210
mov edx, dword [str.LPnhqo___muffinwtf]
mov dword [esp + 0x230], 0x34ccdcc5
mov dword [esp + 0x234], 0xc4d9dac8
mov dword [esp + 0x238], 0xccd1d6c8
mov dword [esp + 0x23c], 0xd4c1c0d5
mov dword [esp + 0x240], 0xfd2eeecf
mov dword [esp + 0x244], 0x3b03ffed
mov dword [esp + 0x248], 0xff263130
mov dword [esp + 0x24c], 0x470be1f9
mov dword [esp + 0x250], 0
mov byte [esp + 0x254], 0
mov dword [esp + 0xa98], 0
mov eax, dword [esp + 0xa98]
cmp eax, 0x24
ja 0x40f33a
mov eax, dword [esp + 0xa98]
mov esi, dword [esp + 0xa98]
movzx esi, byte [esp + esi + 0x230]
lea edi, [eax + 0x69d3dd4f]
mov ebx, esi
not ebx
or ebx, edi
and edi, esi
add edi, ebx
neg edi
add eax, edi
add eax, 0x69d3dd4e
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
add al, 0xd7
mov esi, dword [esp + 0xa98]
mov byte [esp + esi + 0x230], al
inc dword [esp + 0xa98]
mov eax, dword [esp + 0xa98]
cmp eax, 0x25
jb 0x40f2e0
movzx ebx, byte [esp + 0x230]
lea eax, [esp + 0xa98]
test bl, bl
je 0x40f36b
lea esi, [esp + 0x231]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f360
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f38b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f380
mov byte [eax], 0
movzx edx, byte [esp + 0x130]
test dl, dl
je 0x40f3bb
lea esi, [esp + 0x131]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f3b0
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f3db
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f3d0
mov byte [eax], 0
lea ecx, [esp + 0xa98]
mov dword [esp + 0x230], 0x3b8939f3
mov dword [esp + 0x234], 0x3f883d94
mov dword [esp + 0x238], 0x3ae0199
mov dword [esp + 0x23c], 0x7eb05b6
mov dword [esp + 0x240], 0xbb309d2
mov dword [esp + 0x244], 0xfab0dba
mov dword [esp + 0x248], 0x13f011f4
mov dword [esp + 0x24c], 0x17a415b1
mov dword [esp + 0x250], 0x1bb419a6
mov dword [esp + 0x254], 0x1fb91db1
mov dword [esp + 0x258], 0xe354e1bd
mov dword [esp + 0x25c], 0xe755e549
mov dword [esp + 0x260], 0xeb19e948
mov dword [esp + 0x264], 0xef03ed52
mov dword [esp + 0x268], 0xf349f157
mov dword [esp + 0x26c], 0xf71bf54b
mov dword [esp + 0x270], 0xfb49f950
mov dword [esp + 0x274], 0xff53fd48
mov dword [esp + 0x278], 0xc377c111
mov dword [esp + 0x27c], 0xc768c570
mov dword [esp + 0x280], 0xcb66c961
mov dword [esp + 0x284], 0xcf7dcd6f
mov dword [esp + 0x288], 0xd377d16a
mov dword [esp + 0x28c], 0xd7dbd576
mov dword [esp + 0x290], 0xdbd8d9dc
mov word [esp + 0x29c], 0
mov dword [esp + 0x298], 0
mov dword [esp + 0x294], 0
mov dword [esp + 0x60], 0
mov edx, dword [esp + 0x60]
cmp edx, 0x6d
ja 0x40f57e
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x60]
movzx esi, byte [esp + esi + 0x230]
lea edi, [edx + esi]
add edi, 0xfff436d7
add edx, 0xfff436d7
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x130], edi
mov edx, dword [esp + 0x130]
add dl, 0x1f
mov esi, dword [esp + 0x60]
mov byte [esp + esi + 0x230], dl
inc dword [esp + 0x60]
mov edx, dword [esp + 0x60]
cmp edx, 0x6e
jb 0x40f530
sub eax, ecx
mov dword [esp + 0x130], 0xb313b16f
mov dword [esp + 0x134], 0xb72fb524
mov word [esp + 0x138], 0xa9a8
mov dword [esp + 0x13a], 0
mov dword [esp + 0x13e], 0
mov dword [esp + 0x142], 0
mov word [esp + 0x146], 0
mov dword [esp + 0xa30], 0
mov edx, dword [esp + 0xa30]
cmp edx, 0x17
ja 0x40f656
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xa30]
mov esi, dword [esp + 0xa30]
movzx esi, byte [esp + esi + 0x130]
lea edi, [edx + esi]
add edx, 0xc8
and edx, esi
add edx, edx
sub edi, edx
add edi, 0xa165f7c8
mov dword [esp + 0x60], edi
mov edx, dword [esp + 0x60]
mov esi, edx
or esi, 0x87
and edx, 0x87
add edx, esi
inc dl
mov esi, dword [esp + 0xa30]
mov byte [esp + esi + 0x130], dl
inc dword [esp + 0xa30]
mov edx, dword [esp + 0xa30]
cmp edx, 0x18
jb 0x40f5f0
lea edx, [esp + 0x108]
lea esi, [esp + 0xf8]
lea edi, [esp + 0x230]
lea ebx, [esp + 0x130]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x4464cc
call fcn.0040c5a0
add esp, 0x1c
movzx eax, al
xor esi, esi
jmp dword [eax*4 + 0x441854]
push 0x104
lea eax, [esp + 0x234]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0x108]
mov edi, dword [esp + 0xf8]
mov edx, ecx
and edx, 0xfffffffc
mov esi, ecx
and esi, 3
mov eax, ecx
or eax, 3
imul eax, esi
xor esi, 3
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40f6de
cmp edx, 0x2e
jne 0x40f6df
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40f6ee
cmp ecx, 0x2e
jne 0x40f6ef
dec eax
push eax
call fcn.00408cc0
add esp, 4
mov esi, eax
jmp dword [0x44185c]
mov dword [esp + 0x230], 0x83404146
mov dword [esp + 0x234], 0
mov word [esp + 0x238], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 9
ja case.0x40f91b.2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0x230]
lea edx, [eax + ecx]
add eax, 0xb
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xb2ee8e0b
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x130]
add al, 0xb3
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0x230], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0xa
jb 0x40f740
jmp case.0x40f91b.2
jmp dword [0x4418ac]
mov dword [esp + 0x230], 0x83404146
mov dword [esp + 0x234], 0
mov word [esp + 0x238], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 9
ja 0x40f790
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0x230]
lea edx, [eax + ecx]
add eax, 0xb
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xb2ee8e0b
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x130]
add al, 0xb3
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0x230], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0xa
jb 0x40f7d0
jmp 0x40f790
mov esi, dword [esp + 0x230]
jmp dword [0x4418b4]
xor ebx, ebx
test esi, esi
sete bl
xor eax, eax
jmp dword [ebx*4 + 0x44188c]
push esi
call fcn.00401ef0
add esp, 4
mov dword [esp + 0xf0], eax
jmp dword [ebx*4 + 0x441894]
push esi
call fcn.00408cd0
add esp, 4
push dword [esp + 0xf0]
call fcn.00402810
add esp, 4
mov esi, eax
mov word [esp + 0x230], 0x7806
mov byte [esp + 0x232], 0x8a
mov dword [esp + 0x233], 0
mov dword [esp + 0x237], 0
mov byte [esp + 0x23b], 0
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, 0xb
mov ebx, edi
ja 0x40f8fa
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
movzx ecx, byte [esp + ecx + 0x230]
mov edx, eax
and edx, 0xefa4542
xor eax, 0x8efa4542
lea eax, [eax + edx*2]
xor eax, ecx
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x130]
add al, 0x32
mov ecx, dword [esp + 0x60]
mov byte [esp + ecx + 0x230], al
inc dword [esp + 0x60]
mov eax, dword [esp + 0x60]
cmp eax, 0xc
jb case.default.0x40f91b
lea eax, [esp + 0x230]
push eax
mov dword [esp + 0xf0], esi
push esi
call fcn.00402880
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
xor eax, eax
jmp dword [ecx*4 + 0x44189c]
jmp dword [0x4418a4]
mov ecx, dword [0x4418dc]
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push esi
call fcn.00432b50
add esp, 4
push esi
call fcn.00432b50
add esp, 4
jmp dword [0x4418c0]
jmp dword [0x4418d0]
push esi
push edi
call fcn.00433d70
add esp, 8
push esi
push edi
call fcn.00433d70
add esp, 8
jmp dword [0x441864]
jmp dword [0x44186c]
mov edi, ebx
mov eax, dword [case.0x40f68a.13]
nop
nop
nop
jmp eax
push dword [esp + 0xf8]
call fcn.00437150
add esp, 4
push dword [esp + 0xf8]
call fcn.00437150
add esp, 4
jmp dword [0x441878]