Function at 0x1002baa1
Capabilities:
Authenticate hmac
Execute anti-debugging instructions
Terminate process

Disassembly:
popfd
push ebp
mov ebp, esp
leave
je 0x10047bb8
jne 0x10047bb8
jmp 0x10047bb6
pushfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x7c]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, 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 esi, edx
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, edx
mov edx, dword [esp]
rdtsc
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x73]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
and eax, 1
push ebp
mov ebp, esp
leave
xchg edx, eax
xchg dword [esp], eax
xchg edx, eax
lea esp, [esp + 4]
xchg edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x10045f54
jne 0x100482a0
jmp 0x10045f52
jmp 0x9b54aa5b
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x4e]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x10046608
jne 0x10046608
jmp 0x10046606
pushfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x32]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, 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 edx, eax
lea esp, [esp - 4]
mov dword [esp], eax
mov eax, edx
mov edx, dword [esp]
rdtsc
push ebx
mov ebx, esi
pop ebx
and eax, 1
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x7c]
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 0x10035d2c
jne 0x1002ae98
jmp 0x10035d2a
add al, 0x8d
inc eax
or byte [edi - 0x76fbdbbc], al
inc esp
and al, 4
call fcn.10030f0c
or eax, 0x27c45b8
add al, ch
sub cl, al
add dword [eax], eax
call fcn.10054380
dec ebp
cwde
jl 0x100351d2
adc bh, bh
push ecx
call 0x97035276
out dx, al
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, ebp
mov ebp, dword [esp]
xchg ebp, ecx
mov ecx, esp
push ebp
xchg ebp, ecx
pop ecx
push 0xc
not dword [esp]
inc dword [esp]
add esp, dword [esp]
lea esp, [esp + 4]
xchg edi, ebx
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, ebx
mov ebx, dword [esp]
xchg ebx, eax
mov eax, dword [ebp + 8]
push ebx
xchg ebx, eax
pop eax
xchg edx, esi
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, esi
mov esi, dword [esp]
xchg ebx, edi
lea esp, [esp - 4]
mov dword [esp], ebx
mov ebx, edi
mov edi, dword [esp]
xchg esi, eax
mov eax, dword [ebx]
push esi
xchg esi, eax
pop eax
cmp esi, 8
pushfd
add ebp, 0x54
popfd
lea ebp, [ebp - 0x54]
jle 0x1002ba50
xchg ecx, eax
mov ecx, dword [ebx + 0x36]
push eax
xchg ecx, eax
pop ecx
test eax, eax
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x27]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x10052540
xchg ecx, ebx
mov ebx, dword [ebp + 0xc]
push ecx
xchg ecx, ebx
pop ebx
jmp 0x10042bc4
ljmp 0x244c:0x8b519d00
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x19]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x10056ab0
jne 0x10056ab0
jmp 0x10056aae
popfd
pushfd
add ebp, 0x26
popfd
lea ebp, [ebp - 0x26]
je 0x1005721c
jne 0x1005721c
jmp 0x1005721a
pop eax
add byte [ebp - 0x361374ab], bl
popfd
push ebp
mov ebp, esp
leave
je 0x1003f984
jne 0x1003f984
jmp 0x1003f982
add eax, dword [eax]
xchg ebx, esi
mov esi, dword [edx + 0x10]
push ebx
xchg ebx, esi
pop esi
xchg edi, eax
mov eax, dword [edx + 0xc]
push edi
xchg edi, eax
pop eax
add ebx, ecx
push ebp
mov ebp, esp
leave
add edi, ecx
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x41]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg dword [ebp - 8], ecx
mov ecx, ebx
push dword [ebp - 8]
xchg dword [ebp - 8], ecx
pop ecx
lea ebx, [eax + ecx]
lea ecx, [ecx]
xchg ecx, edi
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, edi
mov edi, dword [esp]
xchg dword [ebp - 0xc], ecx
mov ecx, ebx
push dword [ebp - 0xc]
xchg dword [ebp - 0xc], ecx
pop ecx
pushfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x5b]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
call fcn.1003f9fb
popfd
lea esi, [esi]
je 0x1004bea4
jne 0x1004bea4
jmp 0x1004bea2
cmp eax, ebp
xchg ecx, ebx
mov ebx, dword [ebp + 0xc]
push ecx
xchg ecx, ebx
pop ebx
xchg edx, eax
mov edx, dword [ecx + 0x3c]
push eax
xchg edx, eax
pop edx
mov eax, dword [eax + ecx + 0x80]
pushfd
add ebp, 0x70
popfd
lea ebp, [ebp - 0x70]
test eax, eax
pushfd
add ebp, 8
popfd
lea ebp, [ebp - 8]
je 0x100515f0
jmp 0x10046608
pushfd
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x14]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, 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 esi, edx
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, edx
mov edx, dword [esp]
rdtsc
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x18]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
and eax, 1
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x63]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg esi, edx
xchg dword [esp], esi
xchg esi, edx
lea esp, [esp + 4]
xchg esi, eax
xchg dword [esp], esi
xchg esi, eax
lea esp, [esp + 4]
je 0x10030d58
jne 0x10040ec0
jmp 0x10030d56
sbb eax, 0x368d9d00
popfd
lea esi, [esi]
je 0x100515f0
jne 0x100515f0
jmp 0x100515ee
add byte [eax], al
popfd
push ebp
mov ebp, esp
leave
je 0x10041358
jne 0x10041358
jmp 0x10041356
add byte [eax], al
lea edx, [eax + ecx]
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x57]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
mov ecx, dword [edx]
push eax
xchg ecx, eax
pop ecx
xchg dword [ebp - 4], eax
mov eax, edx
push dword [ebp - 4]
xchg dword [ebp - 4], eax
pop eax
test eax, eax
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x11]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
je 0x100341dc
jmp 0x10046b68
pushfd
push ecx
mov ecx, eax
pop ecx
xchg esi, eax
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, 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 edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x42]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
and eax, 1
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 1]
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 edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x1003e5c4
jne 0x10037874
jmp 0x1003e5c2
mov bh, 0
cmp esi, 8
push ecx
mov ecx, eax
pop ecx
jle 0x100515f0
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, dword [ebx + 0x3a]
xchg dword [esp], ecx
xchg esi, eax
mov esi, dword [ebx + 0x36]
push eax
xchg esi, eax
pop esi
add eax, ecx
pushfd
add ebp, 0x7a
popfd
lea ebp, [ebp - 0x7a]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
lea eax, [ebx + 0x72]
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x5c]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, 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 edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x30]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
call fcn.10047c41
popfd
pushfd
add ebp, 0x66
popfd
lea ebp, [ebp - 0x66]
je 0x1004b324
jne 0x1004b324
jmp 0x1004b322
fiadd dword [eax]
xchg ecx, edi
mov edi, dword [ebp + 0xc]
push ecx
xchg ecx, edi
pop edi
xchg edx, eax
mov edx, dword [ecx + 0x3c]
push eax
xchg edx, eax
pop edx
mov eax, dword [eax + ecx + 0x80]
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]
test eax, eax
lea esi, [esi]
je 0x100515f0
jmp 0x10046608
movaps xmmword [ebp - 0x74aff7ec], xmm1
rcr dword [eax - 0x69], 0x8b
cmp dl, byte [eax - 0x69]
lea edx, [eax + ecx]
push eax
mov eax, ecx
pop eax
xchg edi, eax
mov edi, dword [edx]
push eax
xchg edi, eax
pop edi
xchg dword [ebp - 4], ebx
mov ebx, edx
push dword [ebp - 4]
xchg dword [ebp - 4], ebx
pop ebx
test eax, eax
pushfd
add ebp, 0x2d
popfd
lea ebp, [ebp - 0x2d]
je 0x10056ab0
jmp 0x1003f984
pushfd
add ebp, 0x41
popfd
lea ebp, [ebp - 0x41]
add dword [esp], 0xfffefd42
xchg dword [esp], ecx
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 9]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ecx
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x3e]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ecx
pushfd
add ebp, 0x29
popfd
lea ebp, [ebp - 0x29]
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x1c]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jmp 0x10051410
pop esi
add byte [edi - 0x68dbfb79], dl
xchg edi, eax
xchg dword [esp], eax
xchg edi, eax
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 + 4]
lea eax, [eax + 0x61]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ebx, eax
xchg dword [esp], eax
xchg ebx, eax
lea esp, [esp + 4]
mov esp, ebp
pushfd
add ebp, 0x46
popfd
lea ebp, [ebp - 0x46]
xchg ebp, eax
xchg dword [esp], eax
xchg ebp, eax
lea esp, [esp + 4]
ret
jmp 0x10035220
add byte [eax], al
xchg ecx, edi
xchg dword [esp], ecx
xchg ecx, edi
lea esp, [esp + 4]
xchg edi, esi
xchg dword [esp], edi
xchg edi, esi
lea esp, [esp + 4]
xor eax, eax
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x3c]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg ecx, ebx
xchg dword [esp], ecx
xchg ecx, ebx
lea esp, [esp + 4]
mov esp, ebp
pushfd
add ebp, 0x5e
popfd
lea ebp, [ebp - 0x5e]
xchg ebp, eax
xchg dword [esp], eax
xchg ebp, eax
lea esp, [esp + 4]
ret
pushfd
lea eax, [eax]
xchg esi, eax
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, 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 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]
and eax, 1
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]
xchg edx, eax
xchg dword [esp], eax
xchg edx, eax
lea esp, [esp + 4]
xchg edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x10043604
jne 0x100581f8
jmp 0x10043602
sbb byte [esi - 0x74f7017d], cl
ror byte [edi], 0x8e
xor eax, 0x8dffffab
and al, 0xfc
cmp esi, 8
mov eax, eax
jle 0x100515f0
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, dword [ebx + 0x3a]
xchg dword [esp], edx
xchg ecx, eax
mov ecx, dword [ebx + 0x36]
push eax
xchg ecx, eax
pop ecx
add eax, ecx
pushfd
add ebp, 0x45
popfd
lea ebp, [ebp - 0x45]
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, [ebx + 0x72]
push eax
mov eax, ecx
pop eax
xchg edi, eax
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, eax
mov eax, dword [esp]
pushfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x75]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
call 0x10056b24
lea ecx, [ecx]
add dword [esp], 0xffff9779
xchg dword [esp], ecx
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x14]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ecx
push edx
mov edx, dword [esp + 9]
pop edx
xchg dword [esp], ecx
pushfd
add ebp, 0x4e
popfd
lea ebp, [ebp - 0x4e]
popfd
mov edx, edx
jmp fcn.1002da30
fdivr dword [ecx]
xchg ebx, eax
mov eax, dword [edx + 0x10]
push ebx
xchg ebx, eax
pop eax
xchg edi, ecx
mov ecx, dword [edx + 0xc]
push edi
xchg edi, ecx
pop ecx
add ebx, ecx
push ebp
mov ebp, esp
leave
add edi, ecx
lea ecx, [ecx]
xchg dword [ebp - 8], esi
mov esi, ebx
push dword [ebp - 8]
xchg dword [ebp - 8], esi
pop esi
lea ebx, [eax + ecx]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 7]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
xchg ecx, edi
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, edi
mov edi, dword [esp]
xchg dword [ebp - 0xc], esi
mov esi, ebx
push dword [ebp - 0xc]
xchg dword [ebp - 0xc], esi
pop esi
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x7c]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
call 0x10057293
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x45]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xffff8f87
xchg dword [esp], ecx
lea eax, [eax]
xchg dword [esp + 4], ecx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x47]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ecx
push ebp
mov ebp, esp
leave
popfd
mov ecx, ecx
jmp dword [0x1005cc74]
popfd
push ebp
mov ebp, esp
leave
je 0x100507f8
jne 0x100507f8
jmp 0x100507f6