Function at 0x4222d0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x4222f0
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422310
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
jns 0x42233e
mov eax, 0xffffffff
jmp 0x422345
lea eax, [ecx*2 + 0x36]
push eax
call fcn.0040cad0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 8], 0x29662b78
mov dword [esp + 0xc], 0x2d8b2f99
mov dword [esp + 0x10], 0x319e338b
mov dword [esp + 0x14], 0x357d3750
mov dword [esp + 0x18], 0x398e3b8c
mov dword [esp + 0x1c], 0x3d8c3f93
mov dword [esp + 0x20], 0x1ad0389
mov dword [esp + 0x24], 0x5b407b1
mov dword [esp + 0x28], 0x95f0b64
mov dword [esp + 0x2c], 0xdba0fa3
mov dword [esp + 0x30], 0x11bd13b8
mov dword [esp + 0x34], 0x15bf17a2
mov dword [esp + 0x38], 0x19461ba1
mov word [esp + 0x3c], 0x1f18
mov dword [esp + 0x3e], 0
mov eax, 7
nop
nop
movzx edx, byte [esp + eax + 1]
mov ebx, eax
and ebx, edx
lea ecx, [eax - 0x211e8a00]
or ecx, edx
xor ecx, ebx
mov edx, ecx
not edx
and edx, 0x24
and ecx, 0xdb
sub ecx, edx
inc cl
mov byte [esp + eax + 1], cl
inc eax
cmp eax, 0x41
jne 0x4223d0
movzx ecx, word [edi]
mov edx, dword [esp + 4]
mov eax, edx
test cx, cx
je 0x422431
add edi, 2
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x422420
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x422461
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422450
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x422491
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x422480
mov word [eax], 0
mov ebx, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4224a0
mov edi, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4224c0
mov edx, dword [esp + 0x74]
mov esi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x4224e0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
mov dword [esp + 0x54], edi
jns 0x422508
mov eax, 0xffffffff
jmp 0x422511
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp], esi
push eax
call fcn.0040cad0
add esp, 4
movzx ecx, word [ebx]
mov esi, eax
test cx, cx
je 0x422541
add ebx, 2
mov esi, eax
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422530
mov dword [esp + 0x44], eax
mov word [esi], 0x2f
mov dword [esp + 8], 0x29e12bf5
mov dword [esp + 0xc], 0x2dba2fb0
mov dword [esp + 0x10], 0xd140d3c7
mov dword [esp + 0x14], 0xd539d745
mov dword [esp + 0x18], 0xd948db45
mov dword [esp + 0x1c], 0xdd0fdf4d
mov dword [esp + 0x20], 0xc3dc
mov eax, 0xa19aa7f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x5e655811]
lea edx, [eax + 0x5e655900]
and edx, ebx
mov edi, edx
and edi, 0xfffffffd
mov ebp, edx
and ebp, 2
mov ecx, edx
or ecx, 0xfffffffd
inc ecx
imul ecx, edi
or edx, 2
imul edx, ebp
lea edi, [eax + ebx]
add ecx, ebx
sub ecx, edx
add ecx, eax
and edi, 1
or ecx, 1
add ecx, edi
add cl, 0x2c
mov byte [esp + eax + 0x5e655811], cl
inc eax
cmp eax, 0xa19aa813
jne 0x422590
add esi, 2
mov ecx, dword [esp + 0x54]
movzx eax, word [ecx]
test ax, ax
je 0x422613
add ecx, 2
mov edx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422600
jmp 0x422616
mov edx, dword [esp]
mov word [esi], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x422641
lea ecx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422630
mov word [esi], 0
movzx eax, word [edx]
test ax, ax
je 0x422671
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x422660
mov word [esi], 0
mov dword [esp + 8], 0xf9fafb2a
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov eax, 0xc92274ab
mov ecx, 0x36dd8b54
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x36dd8b5d]
mov edx, eax
and edx, edi
mov ebx, edx
and ebx, 2
mov ebp, edx
or edx, 2
imul edx, ebx
xor ebx, 2
and ebp, 0xffffffbd
imul ebp, ebx
add edx, ebp
mov ebx, edx
xor ebx, eax
and edx, ecx
add edx, edx
add ebx, edi
sub edx, ebx
mov edi, edx
and edi, 0x58
add edi, edi
xor edx, 0xa7
sub edx, edi
add dl, 2
mov byte [esp + eax + 0x36dd8b5d], dl
inc eax
dec ecx
cmp eax, 0xc92274b2
jne 0x4226a0
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
mov ebx, dword [esp + 0x14]
push ebx
mov edi, dword [esp + 0x58]
push edi
push dword [esp + 0x84]
call fcn.00426030
add esp, 0x1c
mov byte [esp], al
jmp dword [0x44cb70]