Function at 0x422630
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422650
mov ecx, 0xfffffffe
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422660
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x422680
mov eax, 0xffffffff
jmp 0x422689
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.004082d0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x50], 0xc941cbae
mov dword [esp + 0x54], 0xc55dc745
mov dword [esp + 0x58], 0xc1bfc34a
mov dword [esp + 0x5c], 0xfd6cff51
mov dword [esp + 0x60], 0xf961fb70
mov dword [esp + 0x64], 0xf57af770
mov dword [esp + 0x68], 0xf16ef383
mov dword [esp + 0x6c], 0xeda2efb3
mov dword [esp + 0x70], 0xe9adeba2
mov dword [esp + 0x74], 0xe5a1e7a4
mov dword [esp + 0x78], 0xe1abe3ae
mov dword [esp + 0x7c], 0x1d591fae
mov dword [esp + 0x80], 0x197e1b57
mov dword [esp + 0x84], 0x158a178f
mov dword [esp + 0x88], 0x1112138a
mov word [esp + 0x8c], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x26
mov edx, ecx
xor edx, 0x66123e53
add edx, esi
mov esi, edx
and esi, 0x55
or esi, 0xa8
and edx, 0xaa
xor edx, esi
xor dl, byte [esp + ecx + 0x50]
xor dl, 0xa8
add dl, 0x61
mov byte [esp + ecx + 0x50], dl
inc ecx
add eax, 2
cmp ecx, 0x3e
jne 0x422730
mov dword [esp + 4], 0xf790964
mov dword [esp + 8], 0x3710d78
mov dword [esp + 0xc], 0x7670176
mov dword [esp + 0x10], 0x1b7f057f
mov dword [esp + 0x14], 0x1f7a1974
mov dword [esp + 0x18], 0x13681d79
mov dword [esp + 0x1c], 0x17631171
mov dword [esp + 0x20], 0x2b5e1568
mov dword [esp + 0x24], 0x2f532944
mov dword [esp + 0x28], 0x23ac2d5f
mov dword [esp + 0x2c], 0x2743211d
mov dword [esp + 0x30], 0x3b4e25ac
mov dword [esp + 0x34], 0x3f4c395d
mov dword [esp + 0x38], 0x334b3d4b
mov dword [esp + 0x3c], 0x37443143
mov dword [esp + 0x40], 0x4b75350b
mov dword [esp + 0x44], 0x4f4e4977
mov word [esp + 0x48], 0
mov eax, 0x584c9982
nop
nop
nop
movzx ebp, byte [esp + eax - 0x584c997e]
mov edx, eax
and edx, ebp
mov edi, edx
mov ecx, edx
mov esi, edx
xor ebp, eax
lea ebx, [edx*2]
add ebx, ebp
and edx, 2
or edi, 0xfd
inc edi
and ecx, 0xfffffffd
imul ecx, edi
or esi, 2
imul esi, edx
sub ecx, esi
add ebx, ecx
add bl, 0x76
mov byte [esp + eax - 0x584c997e], bl
inc eax
cmp eax, 0x584c99c8
jne 0x422800
mov ebp, dword [esp + 0xac]
mov ecx, dword [ebp + 4]
movzx edx, word [ecx]
mov esi, dword [esp]
mov eax, esi
test dx, dx
je 0x422881
add ecx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422870
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x4228b1
lea edx, [esp + 6]
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 0x4228a0
mov word [eax], 0
mov edx, dword [esp + 0xa8]
movzx ecx, word [edx]
test cx, cx
je 0x4228e1
add edx, 2
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 0x4228d0
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x422911
lea edx, [esp + 0x52]
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 0x422900
mov word [eax], 0
mov eax, dword [esp + 0xb0]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x422930
mov edx, eax
and edx, 0x12
mov esi, dword [ebp]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x422950
sar eax, 1
mov esi, dword [ebp + 8]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x422970
xor eax, 9
add edx, eax
sar ecx, 1
sar edi, 1
add ecx, edx
lea eax, [edi + ecx]
add eax, 2
test eax, eax
jns 0x422997
mov eax, 0xffffffff
jmp 0x4229a0
add ecx, edi
lea eax, [ecx*2 + 4]
push eax
call fcn.004082d0
add esp, 4
mov dword [esp + 4], 0xb95dbb6d
mov dword [esp + 8], 0xbd22bf24
mov dword [esp + 0xc], 0xb126b327
mov dword [esp + 0x10], 0xb567b725
mov word [esp + 0x14], 0xabb4
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov edi, 0x1b7af75f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x1b7af75b]
mov ecx, edi
or ecx, edx
lea esi, [edi - 0x1b7af700]
or esi, edi
and esi, edx
sub ecx, esi
add cl, 0x25
mov byte [esp + edi - 0x1b7af75b], cl
inc edi
cmp edi, 0x1b7af777
jne 0x4229f0
movzx ecx, word [esp + 4]
mov esi, eax
test cx, cx
je 0x422a41
lea edx, [esp + 6]
mov esi, eax
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422a30
mov word [esi], 0
movzx ecx, word [ebx]
test cx, cx
je 0x422a71
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x422a60
mov word [esi], 0x5f
add esi, 2
mov ecx, dword [ebp]
movzx edx, word [ecx]
test dx, dx
je 0x422aa1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], dx
add esi, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422a90
mov dword [esp + 0x4c], eax
mov word [esi], 0x5f
add esi, 2
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
test dx, dx
je 0x422ad1
add ecx, 2
nop
nop
nop
nop
nop
mov word [esi], dx
add esi, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x422ac0
mov word [esi], 0
mov dword [esp + 4], 0x7776798e
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
xor ecx, ecx
nop
nop
movzx ebp, byte [esp + ecx + 4]
mov edx, eax
and edx, 0xc
mov ebx, ecx
xor ebx, 0x2d1f5b96
add ebx, edx
mov edx, ebx
and edx, ebp
mov esi, edx
and esi, 0xffffffbd
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
xor edi, 2
imul edi, esi
add edx, edi
add ebx, ebp
mov esi, edx
xor esi, ebx
not edx
and edx, ebx
add edx, edx
sub edx, esi
add dl, 0x12
mov byte [esp + ecx + 4], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x422af0
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
mov esi, dword [esp + 0x10]
push esi
mov edi, dword [esp + 0x60]
push edi
push dword [esp + 0xbc]
call fcn.00422e30
add esp, 0x1c
mov ebx, eax
jmp dword [0x446184]