Function at 0x40f3eb
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
xchg dword [ebp - 0x38], ecx
push 0x6d87783b
fsubr qword [eax]
cmp bh, byte [eax - 0xd]
sub byte [edx], bh
js 0x40eea4
adc byte [ebx + 0x740df36a], 0xf3
and eax, 0x907c1270
push edx
das
js 0x40ef39
and dword [ebx - 0x263fa0d], edi
xchg dword [edi - 3], esi
invalid
js 0x40eead
xchg dword [ebp - 0x38], ecx
push 0x6d87783b
fsubr qword [eax]
cmp bh, byte [eax - 0xd]
dec ebp
enter 0x3b68, 0x78
xchg dword [ebp - 0x24], ebp
sub byte [edx], bh
js 0x40ef25
cmp ch, 0x87
or eax, 0x687d412e
push 0x3b
js 0x40ef4a
push 0xc783b6a
dec esp
nop
rcr byte [edx], 0x78
js 0x40ef67
std
mov eax, 0x86fb670c
cwde
push cs
mov ch, 0x2e
nop
sti
xchg byte [eax - 0x6fd14af2], bl
rcr byte [edx], 1
js 0x40efcd
and dword [eax + 0x787873ab], edx
mov edi, 0x78787478
js 0x40efad
mov eax, 0x785e6190
js 0x40ef24
nop
mov eax, 0x91787873
add al, 0x87
xchg dword [edi + 0x6e0d87fd], eax
xchg dword [edi + 0xd87fd87], eax
outsb dx, byte [esi]
nop
retf 0x7873
js 0x40ef70
mov byte [edi + 0x3a298c6d], al
mov byte [edi + 0x3a298c6d], al
js 0x40efad
nop
adc dword [ebx + 0x78], esi
js 0x40ef7c
jle 0x40efae
mov edi, 0x34f3aa93
pop esp
jo 0x40efc4
dec ebx
mov es, word [ebx - 0x4a]
push cs
push ecx
adc bl, byte [eax - 0x70df55b5]
mov dword [ebx + 0x3c], eax
pop esp
push 0xf890640b
jae 0x40f025
js 0x40efdd
mov edi, 0x78787478
mov edi, 0x78787478
js 0x40ef4a
adc dword [edi], edi
js 0x40f036
sti
mov esp, 0x26b84b6c
mov ebx, 0x5c34d777
push 0x5c0c8729
pop esp
je 0x40ef60
fiadd dword [ebp + 0x21218787]
mov ebx, 0x757445fb
and dword [esi], esp
mov ebx, 0x757445fb
cmp edi, dword [eax + 0x79]
js 0x40f058
or eax, 0x1ba1907d
js 0x40f05e
xchg dword [esp + ebx*2], ecx
jl 0x40ef7b
dec eax
sbb bh, byte [eax + 0x78]
adc byte [edi - 0x6f878788], al
nop
jns 0x40f076
js 0x40f071
and dword [ecx], esp
mov ebx, 0x7845f91e
js 0x40f03a
js 0x40f039
and cl, byte [0x7844d94b]
cmp byte [eax - 7], bh
sar byte [eax + 0x78], 0x38
js 0x40f03b
cmp eax, 0x5a0d7878
pop edx
push ds
stc
shl byte [eax + 0x78], 0x38
js 0x40f093
jns 0x40f02f
outsd dx, dword [esi]
sti
ror byte [eax + edi*2], 0x38
js 0x40f0a0
or al, 0x78
cmp byte [eax + 0x76], bh
push cs
jbe 0x40f078
mov cl, 0x41
invalid
js 0x40f0ac
in eax, dx
mov ecx, 0x4bbbb9f3
mov ebx, 0x12bbb84b
sbb byte [eax], dl
dec ebx
mov eax, 0x101812bb
rcl ch, 0x3a
js 0x40efd5
mov ebx, dword [eax + edi*2 + 0x78]
sti
sbb eax, 0x3df57884
call 0xc8ae777c
sub byte [edx], bh
js 0x40f017
cmp eax, 0x87878684
xchg edi, eax
in al, dx
js 0x40f0da
invalid
js 0x40f093
adc bh, byte [eax - 0xd]
aam 0x28
cmp bh, byte [eax - 0x79]
sub byte [edx], bh
js 0x40eff4
stosd dword es:[edi], eax
sub byte [edi + 0x3a28e46d], al
js 0x40f069
in al, 0x28
cmp bh, byte [eax - 0xd]
mov ch, bh
mov cs, word [0x906a1275]
jne 0x40f08e
push 0xffffffffffffff90
xchg dword cs:[edi - 0xd6ede79], eax
jns 0x40f0ff
js 0x40f07a
inc esi
xchg dword cs:[ebp - 0xc], ebp
sub dword [edx], edi
js 0x40f0c0
adc bh, byte [eax - 3]
js 0x40f092
mov eax, 0xab87760d
sub byte [edi + 0x3a28e06d], al
js 0x40f033
xchg ecx, eax
adc al, 0x79
js 0x40f11e
push 0xf3983df1
jl 0x40f0a1
jl 0x40f0a1
cmp eax, 0x703ef3a4
int1
cmp eax, 0x7406f3a0
stc
lahf
xchg dword [edi], eax
pop es
js 0x40f139
js 0x40f049
xchg dword [ebx - 0x1f9278d8], ebp
stosd dword es:[edi], eax
sub byte [edi + 0x3a28e06d], al
sub byte [edx], bh
js 0x40f0be
or eax, 0x7a86fb98
or al, 0x7e
stc
cwde
sti
xchg byte [edx + 0xc], bh
jle 0x40f0cc
mov bh, 0x78
clc
js 0x40f0ce
js 0x40f150
xor eax, 0xb9b9f3a4
cwde
jo 0x40f0d4
movsb byte es:[edi], byte [esi]
mov ecx, 0xf37098b9
sub eax, 0xf1ba7ba0
mov al, byte [0x4df1ba7b]
dec ebp
insb byte es:[edi], dx
jne 0x40f125
js 0x40f0c7
jne 0x40f12a
cmp edi, dword [eax - 0xf]
js 0x40f0e2
int1
jne 0x40f14b
jne 0x40f130
js 0x40f0e8
insd dword es:[edi], dx
pop esp
jne 0x40f136
js 0x40f0ee
inc ebp
pushal
jne 0x40f13c
js 0x40f093
lea eax, [esi + 0x3df18787]
cwde
dec ebx
mov dword [0x98902b3b], eax
sub edi, dword [eax + 0x78]
and ebp, edi
mov eax, 0x6412700d
nop
rol dword [esi - 0x6fde7879], 0xc0
dec ebp
js 0x40f19d
xchg dword [ecx], esp
nop
ror byte [ebp + 0x78], 0x78
std
mov eax, 0x6812700d
nop
push 0x8786d090
xchg dword [ecx], esp
nop
rol byte [esi - 0x6fde7879], 1
and dword [eax + 0x78781424], edx
and al, 0x14
js 0x40f1ae
int1
and eax, 0x35129084
nop
adc dh, byte [0xb8fd7878]
js 0x40f1b6
std
mov eax, 0x63127005
nop
add eax, 0x90631270
pop ds
jge 0x40f1c0
js 0x40f16b
xchg dword [ebp - 0x30], ebp
sub byte [edx], bh
js 0x40f12c
insd dword es:[edi], dx
shr byte [eax], 1
cmp bh, byte [eax - 0x25]
fild dword [eax]
push edx
cmp edi, dword [eax - 0x70]
add byte [edx + 0x3b], dl
js 0x40f0e6
jnp 0x40f16b
js 0x40f1d2
fstp xword [ebp + esi*2 + 0x3b]
jne 0x40f199
js 0x40f0f0
cmp byte [edx], dl
js 0x40f1dc
std
mov eax, 0x70127005
nop
cmp dword [ebp + 0x78], edi
js 0x40f191
nop
les ebx, [edi]
js 0x40f1ed
std
mov eax, 0x71127005
nop
dec eax
jge 0x40f1f7
js 0x40f1a2
sub edx, dword [eax + 0x78787e3d]
and ebp, edi
mov eax, 0x90287f0c
jge 0x40f209
js 0x40f1b4
nop
inc esp
pop ds
js 0x40f210
cld
and eax, 0x777e0cc4
iretd
ja 0x40f16e
xor eax, 0x127b93b8
jnp 0x40f1b6
jb 0x40f1c7
sub dword [eax], ebp
adc bh, byte [eax + 0x10]
js 0x40f225
cmp byte [eax - 0x70], bh
js 0x40f140
sbb byte [ecx + 0x79], 0x78
int1
cmp eax, 0x9805fb9c
js 0x40f1c9
pushfd
sti
add eax, 0x7e0d7898
sub byte [eax + 0x78787f11], dl
jle 0x40f1e6
nop
adc dword [edi + 0x78], edi
jg 0x40f23a
js 0x40f154
nop
invalid
js 0x40f15c
push esi
cmp eax, 0xf370f394
jno 0x40f1c3
xor eax, 0x902928ac
sbb eax, 0x21217878
mov ebx, 0xf3901df3
and dword [ebx - 0xc6fe20d], edi
cmp eax, 0x9c3df1ac
pushfd
sti
add eax, 0x7e0d7898
sub byte [eax + 0x78787f32], dl
nop
sbb eax, 0xbf78787f
js 0x40f1b8
cmp eax, 0x87878684
xchg ebx, esi
cmp eax, 0x4b6b939c
mov eax, 0x1df3bb38
nop
mov edi, 0x8786843d
pushfd
xchg ebx, eax
imul ecx, dword [ebx - 0x48], 0x38
mov ebx, 0xbf901df3
cmp eax, 0x87878684
xchg eax, eax
xchg dword [eax + 0x78], edi
sbb eax, 0x843dbf90
xchg byte [edi - 0x783f7879], al
js 0x40f28e
xchg dword [edi + 0x787887c0], eax
js 0x40f1a8
sbb eax, 0xbb78785b
nop
rcl byte [ebx], 0x78
js 0x40f1b4
outsb dx, byte [esi]
xchg byte [edi - 0x6b0cd279], al
sub dword [ebx], ebp
cmp eax, 0x74b8fb74
xchg dword [edi + 0x2994f32d], eax
sub esi, ebx
cmp eax, 0x74b8fb74
int1
cmp eax, 0x65f31c84
js 0x40f2b2
js 0x40f2b4
jnp 0x40f25b
fstp xword [eax + 0x78]
js 0x40f2bc
cmp eax, 0x7425f370
adc eax, 0x841bf384
xchg dword [eax + 0x70bab123], ebx
js 0x40f278
and edi, edi
jl 0x40f2b8
pop esp
xchg dword [eax + 0x2994f32d], ebx
sub dword [ebx], ebp
das
sbb al, 0xf3
dec ebp
js 0x40f2e3
js 0x40f2e5
int1
or eax, 0x803dbf84
dec dword [edx + 0x78127838]
xchg dword [0x800d8774], ecx
js 0x40f201
or eax, 0x800d8774
add byte [edi + 0x190700d], 0x63
xchg dword [0x63019070], ecx
jns 0x40f2ff
cmp eax, 0x7c38f374
sti
je 0x40f27e
cmp byte [ebx + edi*8 - 0x68], bh
cwde
test ebx, esi
xor eax, 0x7c39f174
sbb al, 0xf3
inc ebp
js 0x40f313
js 0x40f315
and eax, 0x1c43f184
int1
js 0x40f31f
js 0x40f321
daa
and esi, dword es:[ecx + 0x2d7870ba]
xchg esp, eax
xchg esp, eax
sti
xchg esp, eax
jo 0x40f2e2
das
das
test cl, dh
cmp eax, 0x28b84b84
sub byte [eax], ch
xchg dword [0x6c0d8784], ecx
test byte [ebx - 0x48], cl
sub byte [eax], ch
sub byte [edi + 0xd87840d], al
insb byte es:[edi], dx
xchg dword [0x740d8768], ecx
xchg dword [0xf469070], ecx
js 0x40f34e
sti
mov esp, 0x803df158
daa
and esi, ebx
cmp eax, 0x259df380
popfd
popfd
and eax, 0xf3842ebb
or al, 0x5c
mov ebx, 0xcf3842e
pop esp
je 0x40f2e0
jo 0x40f33b
mov dh, 0x90
mov dword es:[edi + 0x2e781287], eax
xchg dword [esi], ecx
insb byte es:[edi], dx
xchg dword [esi], ecx
je 0x40f312
adc bh, byte [eax - 0x79]
js 0x40f289
or al, 0x5c
pop esp
xchg dword [esi], ecx
push 0x5c5c0c87
nop
jnp 0x40f31e
js 0x40f389
sti
mov esp, 0x2dbb2658
xchg esp, eax
sti
pop eax
mov ebx, 0xfb94f32d
mov ebx, 0xfb94f32d
xchg esp, eax
inc eax
sub edi, ecx
stc
add eax, 0x78795b70
jo 0x40f37c
jns 0x40f39b
js 0x40f332
push 0xffffffffffffffc0
invalid
cmp byte [ecx + 0x787878c8], dl
sti
sbb eax, 0x3dbf78a0
movsb byte es:[edi], byte [esi]
xchg ebx, eax
mov edi, dword [eax]
js 0x40f2fc
cmp eax, 0x388b93a4
js 0x40f31d
and byte [ebx + 0x35f5783a], 0xa0
dec ebx
mov ecx, 0xf3983df1
cmp eax, 0x9c3df160
cmp eax, 0x903df174
cmp eax, 0x943df164
cmp eax, 0x883df158
cmp eax, 0x603df398
int1
cmp eax, 0x743df39c
int1
cmp eax, 0x643df390
int1
cmp eax, 0x583df394
int1
cmp eax, 0x8c1dfb88
js 0x40f368
sti
sbb eax, 0x1dfb788c
sbb eax, 0x1dfb7880
cmp byte [eax - 5], 0x1d
test byte [eax - 0xf], bh
sbb eax, 0x8015f18c
sbb al, 0xd9
js 0x40f3f6
js 0x40f3f8
int1
cmp eax, 0xa03df5a0
sbb al, 0xdb
js 0x40f402
fstp xword [eax + 0x78]
js 0x40f403
js 0x40f404
js 0x40f34c
mov edi, 0x7879b03d
js 0x40f40b
cmp eax, 0x787879b0
js 0x40f387
cmp eax, 0xb43df170
cmp eax, 0xb43df170
cmp eax, 0xa83df168
nop
push 0x90a83df1
int1
cmp eax, 0x4a7890a8
js 0x40f3ec
js 0x40f41c
clc
clc
js 0x40f421
js 0x40f39c
cmp eax, 0xb43df5ac
sub bl, dh
cmp eax, 0x87488770
sub eax, 0xfb2121ac
sbb eax, 0x5fb78b0
test byte [eax + 0xc], bh
js 0x40f3d0
outsd dx, dword [esi]
sbb al, 0xf3
js 0x40f442
js 0x40f444
jnp 0x40f3c2
and eax, 0x1c7bf1a0
int1
mov al, byte [0xf11c7bf1]
js 0x40f450
js 0x40f450
js 0x40f452
js 0x40f36e
xchg ebx, eax
jno 0x40f3d0
cmp eax, 0x78db1ca0
js 0x40f45c
js 0x40f3d9
cmp eax, 0xbbb123b0
sub eax, 0x2b2994f3
xchg esp, eax
sub dword [ebx], ebp
test bl, dh
cmp eax, 0x7030f374
dec ebx
jo 0x40f443
xor eax, 0x882d9074
xchg dword [edi - 0xc8fc20d], eax
jo 0x40f3f6
cmp byte [ebx + edi*8 - 0x68], bh
cmp byte [ebx + edi*8 - 0x68], bh
jl 0x40f401
cwde
push ds
or al, 0x69
cmp eax, 0x5c38bf74
cmp eax, 0x5c38bf74
jns 0x40f48a
js 0x40f48b
js 0x40f48c
js 0x40f460
dec ebx
mov eax, 0x93149338
adc dl, byte [edx]
jns 0x40f411
cmp eax, 0x60088774
cmp eax, 0x6c088774
or byte [eax - 0xd], ah
cmp eax, 0x6c088774
cmp eax, 0x74088774
adc bh, byte [eax - 0x79]
or eax, 0x743df368
xchg dword [eax], ecx
push 0x90700d87
stosb byte es:[edi], al
or eax, 0xbcfb7878
sti
mov esp, 0x743df358
sti
add byte [eax + edi*2 + 0xd], bl
pop eax
cmp eax, 0x5c00fb74
js 0x40f45a
jae 0x40f3d6
or eax, 0x740d8770
nop
jge 0x40f3dd
jo 0x40f3d9
or eax, 0x867d9074
xchg dword [edi + 0x78127812], eax
adc bh, byte [eax + 0x12]
adc bh, byte [eax + 0x12]
js 0x40f46e
js 0x40f470
js 0x40f472
js 0x40f474
js 0x40f459
cmp eax, 0x5b102884
jns 0x40f4e3
js 0x40f3fd
fld qword [esi - 0x43047879]
cmp eax, 0x7425f384
xchg byte [edi + 0x64bcfb87], al
xchg ebx, edi
mov esp, 0x843df364
and eax, 0x641bf374
adc ebx, dword [eax - 0x79]
cwde
dec ebx
mov eax, 0xbbb12338
cmp eax, 0x7425f384
sbb esp, dword [ebx + esi*8 + 0x13]
pop eax
xchg dword [eax + 0x2338b84b], ebx
mov cl, 0xbb
sub eax, 0x2b2994f3
xchg esp, eax
sub dword [ebx], ebp
sub ebp, dword [esi]
das
das
add eax, 0x683ff370
invalid
invalid
pushal
mov ecx, 0x2319c
mov ah, byte [ecx + 0x400fff]
rol ah, 0x5c
ror ah, 0x57
rol ah, 0x8b
xor ah, 0x78
mov byte [ecx + 0x400fff], ah
loop 0x4241a1
popal
jmp 0x40f21d