Function at 0x79bbb9
Capabilities:
Authenticate hmac
Encode data using xor
Execute anti-debugging instructions

Disassembly:
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x5d]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, eax
mov eax, dword [esp]
xchg ecx, edx
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, edx
mov edx, dword [esp]
rdtsc
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x61]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
and eax, 1
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x40]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], eax
xchg edx, eax
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], edx
xchg edx, eax
lea esp, [esp + 4]
je 0x798518
jne 0x798500
jmp 0x798516
add byte [eax], al
inc ecx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x57]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
cmp ecx, edi
pushfd
add ebp, 0x53
popfd
lea ebp, [ebp - 0x53]
jb 0x7991d4
xchg edx, ebx
mov ebx, dword [ebp - 8]
push edx
xchg edx, ebx
pop ebx
jmp 0x799108
popfd
lea ebx, [ebx]
je 0x7984c8
jne 0x7984c8
jmp 0x7984c6
add byte [eax], al
popfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x19]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
je 0x79916c
jne 0x79916c
jmp 0x79916a
pushfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x7a]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg esi, eax
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, eax
mov eax, dword [esp]
xchg esi, edx
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, edx
mov edx, dword [esp]
rdtsc
mov esi, esi
and eax, 1
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x79]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], eax
xchg edx, eax
lea esp, [esp + 4]
xchg ecx, eax
xchg dword [esp], ecx
xchg ecx, eax
lea esp, [esp + 4]
je 0x79862c
jne 0x798610
jmp 0x79862a
add byte [eax], al
xchg edx, eax
mov eax, dword [ebp - 4]
push edx
xchg edx, eax
pop eax
and eax, 0xfff
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x74]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
add eax, dword [esi]
push ebp
mov ebp, esp
leave
add dword [eax + ebx], edx
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x74]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
jmp 0x79916c
popfd
push ebx
mov ebx, dword [esp + 0xc]
pop ebx
je 0x7985c4
jne 0x7985c4
jmp 0x7985c2
add byte [eax], al
popfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x66]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
je 0x799194
jne 0x799194
jmp 0x799192
pushfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x42]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ecx, edx
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, edx
mov edx, dword [esp]
rdtsc
lea ebx, [ebx]
and eax, 1
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x3a]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg esi, edx
xchg dword [esp], esi
xchg esi, edx
lea esp, [esp + 4]
xchg ebx, eax
xchg dword [esp], ebx
xchg ebx, eax
lea esp, [esp + 4]
je 0x798768
jne 0x798750
jmp 0x798766
add byte cs:[edi], cl
mov bh, 0x44
dec esi
or byte [edi - 0x75], dl
jl 0x798705
movzx eax, word [esi + ecx*2 + 8]
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x18]
add al, 0x8d
jg 0x7986fd
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg edx, ecx
mov ecx, eax
push edx
xchg edx, ecx
pop ecx
shr edx, 0xc
pushfd
add ebp, 0x3c
popfd
lea ebp, [ebp - 0x3c]
cmp edx, 3
push ecx
mov ecx, dword [esp + 4]
ljmp 0x9d3c:0xc5839c0c
insd dword es:[edi], dx
les eax, [ebx - 0x74aefc06]
dec esp
and al, 4
lea ecx, [ecx + 0x12]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x799194
cmp edx, 0xa
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x54]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
jne 0x79916c
jmp 0x799194
popfd
push ebp
mov ebp, esp
leave
je 0x7986d8
jne 0x7986d8
jmp 0x7986d6
stosd dword es:[edi], eax
setge byte [ebx - 0x75]
pop esp
and al, 4
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x49]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x7991d4
jne 0x7991d4
jmp 0x7991d2
pushfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x43]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
mov ecx, ecx
and eax, 1
pushfd
add ebp, 8
popfd
lea ebp, [ebp - 8]
xchg edi, edx
xchg dword [esp], edi
xchg edi, edx
lea esp, [esp + 4]
xchg ecx, eax
xchg dword [esp], ecx
xchg ecx, eax
lea esp, [esp + 4]
je 0x798884
jne 0x798858
jmp 0x798882
nop
add byte [ebx], al
xor dl, byte [eax - 0x75]
inc esp
and al, 8
add esi, dword [edx]
push eax
mov eax, dword [esp + 8]
pop eax
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
lea edx, [esi + 4]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x53]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg dword [ebp - 8], eax
mov eax, edx
push dword [ebp - 8]
xchg dword [ebp - 8], eax
pop eax
test eax, eax
push ecx
mov ecx, dword [esp + 1]
pop ecx
jne 0x799238
xchg edi, ebx
mov ebx, dword [ebp + 8]
push edi
xchg edi, ebx
pop ebx
jmp 0x798ff4
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x69]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x798804
jne 0x798804
jmp 0x798802
add eax, dword [eax]
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x36]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x799108
jne 0x799108
jmp 0x799106
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0xa]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg edi, eax
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, eax
mov eax, dword [esp]
xchg ebx, edx
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, edx
mov edx, dword [esp]
rdtsc
pushfd
add ebp, 0x14
popfd
lea ebp, [ebp - 0x14]
and eax, 1
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x71]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], eax
xchg edx, eax
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], edx
xchg edx, eax
lea esp, [esp + 4]
je 0x7989ec
jne 0x7989c0
jmp 0x7989ea
inc esi
add byte [ebp - 0x74ae0788], cl
dec esp
and al, 4
lea edi, [eax - 8]
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 3]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, ebx
mov ebx, 0x231c
push ecx
xchg ecx, ebx
pop ebx
pushfd
push esi
mov esi, dword [esp]
pop esi
push 0x231c
push edx
mov edx, dword [esp + 4]
xor ecx, edx
mov edx, dword [esp]
lea esp, [esp + 8]
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x48]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
shr edi, 1
pushfd
add ebp, 7
popfd
lea ebp, [ebp - 7]
je 0x799108
lea esp, [esp]
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 8]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jmp 0x7991d4
popfd
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x3c]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
je 0x798934
jne 0x798934
jmp 0x798932
aaa
add byte [ebp + 0x244c8b51], bl
add al, 0x8d
dec ecx
outsb dx, byte [esi]
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x6e]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x799238
jne 0x799238
jmp 0x799236
pushfd
mov esi, esi
xchg edi, eax
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, eax
mov eax, dword [esp]
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x11]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
and eax, 1
mov eax, eax
xchg edi, edx
xchg dword [esp], edi
xchg edi, edx
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], edx
xchg edx, eax
lea esp, [esp + 4]
je 0x798bb8
jne 0x798b8c
jmp 0x798bb6
add byte [eax], al
cmp dword [edi], 8
pushfd
add ebp, 0x5c
popfd
lea ebp, [ebp - 0x5c]
jle 0x798f90
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, dword [edi + 0x5a]
xchg dword [esp], ebx
xchg ebx, eax
mov ebx, dword [edi + 0x56]
push eax
xchg ebx, eax
pop ebx
add eax, ebx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x55]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, eax
mov eax, dword [esp]
lea eax, [edi + 0x72]
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x66]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
pushfd
mov esi, esi
call fcn.00798b0b
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0xe]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x798a84
jne 0x798a84
jmp 0x798a82
add byte es:[ebp + 0x245c8b53], bl
or dword [ebx + 0xf], ebx
test byte [edi], ch
add al, 0
add byte [edi], cl
test dword [ecx], ebp
add al, 0
add cl, ch
and al, byte [eax + eax]
add byte [edi], bl
popfd
add byte [eax], al
popfd
push ebx
mov ebx, dword [esp + 9]
pop ebx
je 0x798ff4
jne 0x798ff4
jmp 0x798ff2
pushfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x79]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, eax
mov eax, dword [esp]
xchg ebx, edx
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, edx
mov edx, dword [esp]
rdtsc
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x18]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
and eax, 1
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x15]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ebx, edx
xchg dword [esp], ebx
xchg ebx, edx
lea esp, [esp + 4]
xchg edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x798cf4
jne 0x798cc8
jmp 0x798cf2
in al, 0x79
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
lea edx, [esi + 4]
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x22]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg dword [ebp - 4], eax
mov eax, ecx
push dword [ebp - 4]
xchg dword [ebp - 4], eax
pop eax
xchg dword [ebp - 8], ecx
mov ecx, edx
push dword [ebp - 8]
xchg dword [ebp - 8], ecx
pop ecx
test eax, eax
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0xa]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x798ff4
jmp 0x799238
popfd
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x6e]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
je 0x798c68
jne 0x798c68
jmp 0x798c66
jl 0x798cf4
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x72]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x7992b4
jne 0x7992b4
jmp 0x7992b2
xchg ecx, edi
xchg dword [esp], ecx
xchg ecx, edi
lea esp, [esp + 4]
xchg esi, eax
xchg dword [esp], eax
xchg esi, eax
lea esp, [esp + 4]
xor eax, eax
push eax
mov eax, dword [esp + 2]
pop eax
xchg ebx, eax
xchg dword [esp], eax
xchg ebx, eax
lea esp, [esp + 4]
mov esp, ebp
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x5e]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg edi, ebp
xchg dword [esp], edi
xchg edi, ebp
lea esp, [esp + 4]
ret
pop dword [eax]
cmp dword [edi], 8
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x11]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
jle 0x798f90
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, dword [edi + 0x5a]
xchg dword [esp], edx
xchg ebx, eax
mov ebx, dword [edi + 0x56]
push eax
xchg ebx, eax
pop ebx
add eax, ebx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x69]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg edi, eax
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, eax
mov eax, dword [esp]
lea eax, [edi + 0x72]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x7e]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ebx, eax
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, eax
mov eax, dword [esp]
pushfd
push ebp
mov ebp, esp
leave
call fcn.0079908c
push 0x523203f2
add esi, dword [edx]
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x50]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg ebx, eax
mov ebx, dword [esi + 4]
push eax
xchg ebx, eax
pop ebx
lea edx, [esi + 4]
push ecx
mov ecx, edx
pop ecx
xchg dword [ebp - 8], ecx
mov ecx, edx
push dword [ebp - 8]
xchg dword [ebp - 8], ecx
pop ecx
test eax, eax
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x38]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
jne 0x799238
xchg edi, ebx
mov ebx, dword [ebp + 8]
push edi
xchg edi, ebx
pop ebx
jmp 0x798ff4
add byte [eax], al
inc ecx
pushfd
add ebp, 0x2c
popfd
lea ebp, [ebp - 0x2c]
cmp ecx, edi
push ebp
mov ebp, esp
leave
jb 0x7991d4
xchg edx, ecx
mov ecx, dword [ebp - 8]
push edx
xchg edx, ecx
pop ecx
jmp 0x799108
add byte [eax], al
xchg edx, eax
mov eax, dword [ebp - 4]
push edx
xchg edx, eax
pop eax
and eax, 0xfff
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x2d]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
add eax, dword [esi]
pushfd
add ebp, 0x67
popfd
lea ebp, [ebp - 0x67]
add dword [eax + ebx], edx
pushfd
add ebp, 0x6e
popfd
lea ebp, [ebp - 0x6e]
jmp 0x79916c
inc eax
add byte [edi], cl
mov bh, 0x44
dec esi
or byte [ebx - 0x75], dl
pop esp
and al, 4
movzx eax, word [esi + ecx*2 + 8]
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x19]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg edx, ecx
mov ecx, eax
push edx
xchg edx, ecx
pop ecx
shr edx, 0xc
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x7c]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
cmp edx, 3
push ebp
mov ebp, esp
leave
je 0x798544
cmp edx, 0xa
pushfd
add ebp, 0x29
popfd
lea ebp, [ebp - 0x29]
jne 0x798434
jmp 0x799194
xor al, byte [eax]
lea edi, [eax - 8]
pushfd
add ebp, 0x4c
popfd
lea ebp, [ebp - 0x4c]
xchg ecx, esi
mov esi, 0x1d30
push ecx
xchg ecx, esi
pop esi
pushfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x6e]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
push 0x1d30
push ebx
mov ebx, dword [esp + 4]
xor ecx, ebx
mov ebx, dword [esp]
lea esp, [esp + 8]
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x16]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
shr edi, 1
pushfd
add ebp, 0x48
popfd
lea ebp, [ebp - 0x48]
je 0x798794
lea esp, [esp]
pushfd
add ebp, 0x1f
popfd
lea ebp, [ebp - 0x1f]
jmp 0x798658
pop esp
insd dword es:[edi], dx
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
lea edx, [esi + 4]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x2c]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg dword [ebp - 4], ebx
mov ebx, ecx
push dword [ebp - 4]
xchg dword [ebp - 4], ebx
pop ebx
xchg dword [ebp - 8], esi
mov esi, edx
push dword [ebp - 8]
xchg dword [ebp - 8], esi
pop esi
test eax, eax
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 1]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x798a18
jmp 0x7988b0
inc dword [esp + 4]
add ecx, dword [esp + 4]
and al, 4
popfd
lea esp, [esp + 4]
lea esi, [eax + ebx]
mov ebx, ebx
jmp 0x798bd4
call 0x79a8a8
xor esp, ebp
loop 0x799aea
xchg ebx, eax
pop ecx
std
fcmovb st(0), st(5)
pop edx
scasb al, byte es:[edi]
sub ah, ch
daa
jns 0x799b5d
xchg ebx, eax
lodsb al, byte gs:[esi]
sbb dword [edi + 0x34f85d8b], 0xffffff9f
lahf
mov ebx, dword [ebp - 8]
xor al, 0x9f
lahf
dec edi
jecxz 0x799b1d
dec edi
shr eax, 1
cli
or eax, 0x53a80000
loop 0x799b4c
inc ebx
mov edi, dword [ebx + 0xe89e88a]
add byte [eax], al
jae 0x799af3
dec esp
jnp 0x799af0
dec ebp
mov cl, 0xc6
call fcn.0079aa78
scasb al, byte es:[edi]
mov ebp, 0xe88db724
xchg ebp, eax
sldt word [eax]
mov bh, 0x8d
call 0x79aae8
pop ecx
cwde
inc ecx
cmc
call fcn.0079ab90
cmp eax, 0x8ebdf5ab
scasd eax, dword es:[edi]
inc dword [edi]
stosd dword es:[edi], eax
cmc
mov ebp, 0x7ffaf8e
mov cl, 0xb0
xor esp, dword [ecx + 0x3f]
int3
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x23]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xfffff7a5
xchg dword [esp], ecx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x5f]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ecx
push ebp
mov ebp, esp
leave
xchg dword [esp], ecx
push ebp
mov ebp, esp
leave
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x6b]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
jmp 0x799b04