Function at 0x4c15ec
Capabilities:
Execute anti-debugging instructions

Disassembly:
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x16]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x4fa574
jne 0x4fa574
jmp 0x4fa572
add byte [eax], al
xchg ecx, esi
xchg dword [esp], ecx
xchg ecx, esi
lea esp, [esp + 4]
cmp edi, 8
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x6d]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
jle 0x4fc3b8
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, dword [ecx + 0x5a]
xchg dword [esp], edi
xchg edx, eax
mov edx, dword [ecx + 0x56]
push eax
xchg edx, eax
pop edx
add eax, ebx
lea ebx, [ebx]
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, [ecx + 0x72]
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 6]
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
lea edi, [edi]
call 0x49ff28
mov eax, eax
add dword [esp], 0x53479
xchg dword [esp], ebx
pushfd
add ebp, 0x58
popfd
lea ebp, [ebp - 0x58]
xchg dword [esp + 4], ebx
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x12]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ebx
pushfd
add ebp, 0x16
popfd
lea ebp, [ebp - 0x16]
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x64]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jmp fcn.0050e788
jmp 0x519fb8
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x47]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x4d2530
jne 0x4d2530
jmp 0x4d252e
add byte [eax], al
lea edi, [eax - 8]
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x55]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
xchg ecx, edi
mov edi, 0x14a3625a
push ecx
xchg ecx, edi
pop edi
pushfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x60]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
push 0x14a3625a
push edi
mov edi, dword [esp + 4]
xor ecx, edi
mov edi, dword [esp]
lea esp, [esp + 8]
popfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x3b]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
shr edi, 1
push ebp
mov ebp, esp
leave
je 0x4fcf9c
mov edi, edi
pushfd
add ebp, 0x2f
popfd
lea ebp, [ebp - 0x2f]
jmp 0x4cc7cc
in al, dx
add byte [edi], cl
mov bh, 0x44
dec esi
or byte [ebp - 0x740d78f7], cl
invalid
movzx eax, word [esi + ecx*2 + 8]
lea ecx, [ecx]
xchg edx, esi
mov esi, eax
push edx
xchg edx, esi
pop esi
shr edx, 0xc
push ebp
mov ebp, esp
leave
cmp edx, 3
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x31]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x4d5814
cmp edx, 0xa
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x40]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jne 0x51a0ac
jmp 0x4d4ba8
push 0x51f00300
add esi, eax
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x43]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
test eax, eax
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0xe]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jne 0x50bf68
xchg ecx, edx
mov edx, dword [ebp + 8]
push ecx
xchg ecx, edx
pop edx
xchg edi, eax
mov eax, dword [ecx]
push edi
xchg edi, eax
pop eax
jmp 0x5166bc
add byte [bx - 0x7426], al
pop ebp
cld
xchg edx, ebx
mov ebx, dword [ebp - 4]
push edx
xchg edx, ebx
pop ebx
and eax, 0xfff
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x33]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
add eax, dword [esi]
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x25]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
add dword [eax + ebx], edx
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x48]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
jmp 0x5085bc
pushfd
push ebp
mov ebp, esp
leave
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, 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, 0x1a
popfd
lea ebp, [ebp - 0x1a]
and eax, 1
pushfd
add ebp, 0x5d
popfd
lea ebp, [ebp - 0x5d]
xchg ebx, edx
xchg dword [esp], ebx
xchg ebx, edx
lea esp, [esp + 4]
xchg ebx, eax
xchg dword [esp], ebx
xchg ebx, eax
lea esp, [esp + 4]
je 0x50831c
jne 0x49db9c
jmp 0x50831a
pushfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, 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
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x72]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
and eax, 1
push eax
mov eax, dword [esp + 4]
lea eax, [eax]
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 ecx, eax
xchg dword [esp], ecx
xchg ecx, eax
lea esp, [esp + 4]
je 0x4ef9ec
jne 0x4e13f4
jmp 0x4ef9ea
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x7b]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x51295c
jne 0x51295c
jmp 0x51295a
pop esi
add byte [ebp + 0x24448b50], bl
add al, 0x8d
inc eax
xor al, 0x87
inc esp
and al, 4
popfd
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x34]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
je 0x4cc7cc
jne 0x4cc7cc
jmp 0x4cc7ca
pop eax
add byte [ebp + 0x245c8b53], bl
add al, 0x8d
pop ebx
xor al, byte [edi - 0x76fbdba4]
pop esp
and al, 4
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x32]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x5085bc
jne 0x5085bc
jmp 0x5085ba
popfd
mov edx, edx
je 0x5029cc
jne 0x5029cc
jmp 0x5029ca
add byte fs:[edi - 0x3b27436], al
xchg edx, ecx
mov ecx, dword [ebp - 4]
push edx
xchg edx, ecx
pop ecx
and eax, 0xfff
mov ebx, ebx
add eax, dword [esi]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x18]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
add dword [eax + ebx], edx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x2d]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jmp 0x5085bc
scasb al, byte es:[edi]
adc bl, byte [ebp + 0x244c8b51]
add al, 0x8d
dec ecx
pop ss
popfd
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x17]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
je 0x4fcf9c
jne 0x4fcf9c
jmp 0x4fcf9a
add byte [eax], al
popfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x74]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x5166bc
jne 0x5166bc
jmp 0x5166ba
xchg esi, edi
xchg dword [esp], esi
xchg esi, edi
lea esp, [esp + 4]
xor eax, eax
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x6d]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
xchg edx, ebx
xchg dword [esp], edx
xchg edx, ebx
lea esp, [esp + 4]
mov esp, ebp
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 edi, ebp
xchg dword [esp], edi
xchg edi, ebp
lea esp, [esp + 4]
ret
add byte [eax], al
add esi, eax
lea edi, [edi]
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
test eax, eax
pushfd
add ebp, 0xb
popfd
lea ebp, [ebp - 0xb]
jne 0x50bf68
xchg ecx, edi
mov edi, dword [ebp + 8]
push ecx
xchg ecx, edi
pop edi
xchg edi, eax
mov eax, dword [ecx]
push edi
xchg edi, eax
pop eax
jmp 0x511e80
add eax, 0x8b574171
jl 0x5029f5
inc ecx
push edi
mov edi, dword [esp + 4]
add al, 0x8d
jg 0x502a27
lea edi, [edi + 0x52]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
cmp ecx, edi
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x5e]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
add al, 0x8b
or al, 0x24
lea esp, [esp + 4]
jb 0x4cc7cc
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
jmp 0x4fcf9c
mov ebp, esp
leave
add dword [esp], 0xfffeb8f6
xchg dword [esp], ebx
push edi
mov edi, dword [esp + 4]
lea edi, [edi + 0x59]
xchg dword [esp + 4], edi
mov dword [esp + 4], edi
mov edi, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ebx
push ebx
mov ebx, dword [esp + 5]
pop ebx
xchg dword [esp], ebx
push edi
mov edi, dword [esp]
pop edi
popfd
mov ebx, ebx
ret
scasd eax, dword es:[edi]
add byte [ebp + 0x24748b56], bl
add al, 0x8d
jbe 0x508382
popfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x5d]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
je 0x4d4ba8
jne 0x4d4ba8
jmp 0x4d4ba6
lea esp, [esp + 4]
add dword [esp], 0x615e8d
xchg dword [esp], edx
mov ebx, ebx
xchg dword [esp + 4], edx
pushfd
add ebp, 3
popfd
lea ebp, [ebp - 3]
xchg dword [esp], edx
lea esi, [esi]
popfd
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 6]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
ret
add byte [eax], al
inc ecx
push ebp
mov ebp, esp
leave
cmp ecx, edi
lea ecx, [ecx]
jb 0x4cc7cc
xchg ecx, eax
mov ecx, dword [esi + 4]
push eax
xchg ecx, eax
pop ecx
jmp 0x4fcf9c
lea edi, [eax - 8]
lea ebx, [ebx]
xchg ecx, edi
mov edi, 0x384d21b8
push ecx
xchg ecx, edi
pop edi
pushfd
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 4]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
push 0x384d21b8
push ebx
mov ebx, dword [esp + 4]
xor ecx, ebx
mov ebx, dword [esp]
lea esp, [esp + 8]
popfd
push ebx
mov ebx, edi
pop ebx
shr edi, 1
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x56]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
je 0x518808
mov edi, edi
mov esi, esi
jmp 0x4dd910
popfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0x13]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, dword [esp]
lea esp, [esp + 4]
je 0x49fe9c
jne 0x49fe9c
jmp 0x49fe9a
pushfd
push edx
mov edx, dword [esp + 4]
lea edx, [edx + 0xb]
xchg dword [esp + 4], edx
mov dword [esp + 4], edx
mov edx, 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
pushfd
add ebp, 0x17
popfd
lea ebp, [ebp - 0x17]
and eax, 1
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x43]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg ecx, edx
xchg dword [esp], ecx
xchg ecx, edx
lea esp, [esp + 4]
xchg edi, eax
xchg dword [esp], edi
xchg edi, eax
lea esp, [esp + 4]
je 0x4fbae8
jne 0x50e554
jmp 0x4fbae6
in al, dx
sub ecx, dword [edi]
mov bh, 0x44
dec esi
or byte [ebx + eax*4 - 0x72628e3b], bl
insd dword es:[edi], dx
pop dword [edi + 0x52d88bda]
movzx eax, word [esi + ecx*2 + 8]
pushfd
add ebp, 0x71
popfd
lea ebp, [ebp - 0x71]
xchg edx, ebx
mov ebx, eax
push edx
xchg edx, ebx
pop ebx
shr edx, 0xc
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x50]
xchg dword [esp + 4], eax
mov dword [esp + 4], eax
mov eax, dword [esp]
lea esp, [esp + 4]
cmp edx, 3
push ebp
mov ebp, esp
leave
je 0x4d4ba8
cmp edx, 0xa
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x2c]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jne 0x5085bc
jmp 0x4d4ba8
xchg ebp, eax
push ecx
xchg esi, eax
xchg dword [esp], eax
xchg esi, eax
lea esp, [esp + 4]
cmp edi, 8
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x6b]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
jle 0x4fc3b8
lea esp, [esp - 4]
mov dword [esp], esi
mov esi, dword [ecx + 0x5a]
xchg dword [esp], esi
xchg ebx, eax
mov ebx, dword [ecx + 0x56]
push eax
xchg ebx, eax
pop ebx
add eax, ebx
push ebp
mov ebp, esp
leave
xchg edx, eax
lea esp, [esp - 4]
mov dword [esp], edx
mov edx, 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, [ecx + 0x72]
push eax
mov eax, dword [esp + 4]
lea eax, [eax + 0x38]
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]
pushfd
pushfd
add ebp, 0x33
popfd
lea ebp, [ebp - 0x33]
call 0x51674e
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x75]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
add dword [esp], 0xfffdcc53
xchg dword [esp], ebx
push ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + 0x18]
xchg dword [esp + 4], ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp + 4], ebx
push ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + 0x26]
xchg dword [esp + 4], ebx
mov dword [esp + 4], ebx
mov ebx, dword [esp]
lea esp, [esp + 4]
xchg dword [esp], ebx
push ebp
mov ebp, esp
leave
popfd
pushfd
add ebp, 0x53
popfd
lea ebp, [ebp - 0x53]
jmp fcn.0050e788
pushfd
pushfd
add ebp, 0x6f
popfd
lea ebp, [ebp - 0x6f]
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
lea ebx, [ebx]
and eax, 1
mov ecx, ecx
xchg ebx, edx
xchg dword [esp], ebx
xchg ebx, edx
lea esp, [esp + 4]
xchg edx, eax
xchg dword [esp], edx
xchg edx, eax
lea esp, [esp + 4]
je 0x4fb18c
jne 0x4c30c0
jmp 0x4fb18a
call 0x4c206c
mov byte [ebp - 0x63], cl
add edx, dword [edx]
stc
cmp dword [esi - 0x2e], edx
pushal
xor cl, ah
out dx, al
xchg ebx, eax
insb byte es:[edi], dx
out dx, eax
xchg dword [esi + 0x79], ebp
popfd
mov eax, eax
je 0x4c938c
jne 0x4c938c
jmp 0x4c938a
pushfd
push ebp
mov ebp, esp
leave
xchg ecx, eax
lea esp, [esp - 4]
mov dword [esp], ecx
mov ecx, eax
mov eax, dword [esp]
xchg edi, edx
lea esp, [esp - 4]
mov dword [esp], edi
mov edi, edx
mov edx, dword [esp]
rdtsc
push esi
mov esi, dword [esp + 4]
lea esi, [esi + 0x57]
xchg dword [esp + 4], esi
mov dword [esp + 4], esi
mov esi, dword [esp]
lea esp, [esp + 4]
and eax, 1
lea esi, [esi]
xchg ecx, edx
xchg dword [esp], ecx
xchg ecx, edx
lea esp, [esp + 4]
xchg ecx, eax
xchg dword [esp], ecx
xchg ecx, eax
lea esp, [esp + 4]
je 0x4f9598
jne 0x4f95c4
jmp 0x4f9596