Function at 0x43fc88
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x54
push ebx
push esi
mov esi, edx
mov dword [ebp - 0x3c], ecx
xor edx, edx
mov dword [ebp - 0x34], esi
xor eax, eax
mov byte [ebp - 4], dl
inc eax
mov dword [ebp - 0x24], edx
push edi
mov byte [ebp - 2], dl
mov byte [ebp - 1], al
cmp byte [0x4e5688], dl
jne 0x43fcc0
call fcn.00461efc
mov byte [0x4e5688], al
xor edx, edx
test al, al
mov dword [ebp - 0x40], edx
push 4
setne al
mov byte [ebp - 3], dl
dec al
mov dword [ebp - 0x20], 0x2ee0
and al, 0x3c
mov dword [ebp - 0x10], edx
add al, 4
mov dword [ebp - 0x18], edx
mov byte [ebp - 6], al
mov eax, 0x5dc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], edx
mov byte [ebp - 5], dl
pop ebx
push 0x64
pop ecx
test esi, esi
je 0x44018f
mov eax, dword [ebp + 8]
or eax, dword [ebp + 0xc]
je 0x44018f
xor eax, eax
mov dword [0x4e8416], 0x400
inc eax
mov dword [0x4e8410], 5
mov word [0x4f841c], ax
mov edi, 0x508420
xor eax, eax
mov byte [0x4e841a], bl
xor ecx, ecx
mov dword [ebp - 0x38], edx
mov word [0x4e8414], cx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
cmp byte [ebp + 0x14], cl
je 0x43fd59
xor edx, edx
call fcn.0043669f
mov cx, word [0x4e8414]
push 0xc
pop eax
mov esi, 0xc0000001
cmp cx, ax
jae 0x440142
mov ecx, dword [ebp - 0x3c]
mov edx, 0x4e8416
push 0
push dword [0x4e8410]
call fcn.0040b701
mov esi, eax
mov dword [ebp - 0x48], esi
test esi, esi
jne 0x440142
push 0
push 0x3e8
push dword [0x517834]
rdtsc
push dword [0x517830]
mov edi, eax
mov esi, edx
call fcn.004c5d90
push edx
push eax
push esi
push edi
call fcn.004c5d90
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x18], eax
jne 0x43fdca
mov eax, dword [ebp + 0xc]
cmp dword [ebp - 0x1c], eax
je 0x44015b
and dword [ebp - 0xc], 0
and dword [ebp - 0x28], 0
movzx edi, bl
mov dword [ebp - 0x2c], edi
test bl, bl
je 0x43ff2a
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x14]
je 0x43fdee
mov eax, 0x5dc
lea ecx, [ebp - 0x40]
mov edx, 0x4f8418
push ecx
mov ecx, dword [ebp - 0x3c]
push 1
push eax
push edi
call fcn.004402cc
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x43ff2a
movzx esi, word [ebp - 0x40]
mov dword [ebp - 0x44], esi
cmp dword [esi*4 + 0x508420], eax
jne 0x43ff21
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x43feb0
cmp dword [ebp - 0x24], eax
jne 0x43feb0
push 0
push 0x3e8
push dword [0x517834]
rdtsc
push dword [0x517830]
mov edi, eax
mov esi, edx
call fcn.004c5d90
push edx
push eax
push esi
push edi
call fcn.004c5d90
mov ecx, eax
sub ecx, dword [ebp - 0x4c]
test ecx, ecx
jg 0x43fe65
push 0x37
pop ecx
mov esi, dword [ebp - 0x20]
mov eax, esi
shr eax, 3
mov dword [ebp - 0x30], ecx
sub ecx, eax
mov edi, dword [ebp - 0x2c]
add esi, ecx
mov eax, ecx
mov dword [ebp - 0x20], esi
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov edx, dword [ebp - 0x10]
mov eax, edx
shr eax, 2
sub ecx, eax
mov eax, esi
mov esi, dword [ebp - 0x44]
add edx, ecx
shr eax, 2
mov ecx, 0x5dc
add eax, edx
mov dword [ebp - 0x10], edx
shr eax, 1
mov dword [ebp - 0x14], eax
cmp eax, ecx
mov eax, dword [ebp - 0xc]
jbe 0x43feb0
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x4f8418]
inc eax
mov edx, dword [ebp - 0x28]
add ecx, 0xfffffffc
add edx, ecx
mov dword [ebp - 0xc], eax
mov dword [esi*4 + 0x508420], ecx
mov dword [ebp - 0x28], edx
test ecx, ecx
je 0x43ff0d
imul esi, dword [ebp + 0x10]
xor eax, eax
mov edx, esi
add edx, ecx
adc eax, eax
add edx, dword [ebp - 0x18]
adc eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0xc]
ja 0x44015f
jb 0x43fef6
cmp edx, dword [ebp + 8]
ja 0x44015f
mov eax, dword [ebp - 0x34]
push ecx
add eax, esi
push 0x4f8422
push eax
call fcn.004c5a50
mov edx, dword [ebp - 0x28]
add esp, 0xc
xor ecx, ecx
mov eax, edx
add eax, dword [ebp - 0x18]
adc ecx, dword [ebp - 0x1c]
cmp eax, dword [ebp + 8]
jne 0x43ff21
cmp ecx, dword [ebp + 0xc]
je 0x43ff2a
cmp dword [ebp - 0xc], edi
jb 0x43fde0
movzx ecx, bl
xor esi, esi
xor eax, eax
mov dword [ebp - 0x44], esi
xor edi, edi
mov edx, ecx
cmp ax, cx
jae 0x43ff56
movzx eax, di
mov eax, dword [eax*4 + 0x508420]
test eax, eax
je 0x43ff53
add esi, eax
inc edi
cmp di, cx
jb 0x43ff3d
mov dword [ebp - 0x44], esi
cmp di, dx
jne 0x43ffbf
mov dh, byte [ebp - 2]
mov al, byte [ebp - 1]
inc dh
and dword [ebp - 0x24], 0
mov byte [ebp - 2], dh
cmp bl, al
jbe 0x43ff92
fild dword [ebp - 0x2c]
xor al, al
mov byte [ebp - 1], bl
mov byte [ebp - 3], al
fstp qword [ebp - 0x50]
fld qword [ebp - 0x50]
fmul qword [0x4e2d98]
call fcn.004c6150
mov dh, byte [ebp - 2]
mov byte [ebp - 4], al
mov al, bl
cmp dh, bl
jb 0x44006a
cmp byte [ebp - 5], 0
je 0x43ffa8
cmp bl, al
je 0x44006a
mov al, byte [ebp - 6]
inc bl
cmp bl, al
ja 0x440068
xor al, al
mov byte [ebp - 2], al
jmp 0x44006a
mov eax, dword [ebp - 0x30]
add eax, eax
cmp eax, 0x5dc
jge 0x44000a
mov esi, dword [ebp - 0x20]
mov ecx, esi
shr ecx, 3
mov dword [ebp - 0x30], eax
sub eax, ecx
mov ecx, dword [ebp - 0x10]
add esi, eax
cdq
xor eax, edx
shr ecx, 2
sub eax, edx
mov dword [ebp - 0x20], esi
sub eax, ecx
mov edx, esi
mov ecx, dword [ebp - 0x10]
add ecx, eax
shr edx, 2
add edx, ecx
mov dword [ebp - 0x10], ecx
shr edx, 1
mov eax, 0x5dc
mov dword [ebp - 0x14], edx
cmp edx, eax
jbe 0x44000a
mov dword [ebp - 0x14], eax
mov dl, byte [ebp - 1]
xor eax, eax
mov dh, byte [ebp - 4]
inc eax
mov dword [ebp - 0x24], eax
xor al, al
inc byte [ebp - 3]
mov byte [ebp - 2], al
movzx eax, dh
movzx ecx, dl
sub ecx, eax
movzx eax, byte [ebp - 3]
cmp eax, ecx
jle 0x44005f
xor eax, eax
sub dl, dh
inc eax
mov byte [ebp - 1], dl
mov byte [ebp - 5], al
cmp dl, al
jae 0x440042
mov dl, al
mov byte [ebp - 1], al
movzx eax, dl
mov dword [ebp - 0x4c], eax
fild dword [ebp - 0x4c]
fstp qword [ebp - 0x50]
fld qword [ebp - 0x50]
fmul qword [0x4e2d98]
call fcn.004c6150
mov byte [ebp - 4], al
xor eax, eax
shr bl, 1
inc eax
cmp bl, al
jae 0x44006a
mov bl, al
mov esi, dword [ebp - 0x48]
mov byte [0x4e841a], bl
cmp esi, 0xc0000001
jne 0x440094
cmp dword [ebp - 0xc], 0
jne 0x440094
mov ax, word [0x4e8414]
inc ax
mov word [0x4e8414], ax
jmp 0x440136
add word [0x4f841c], di
mov eax, dword [ebp - 0x44]
add dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x18]
add edi, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edi
adc eax, 0
cmp byte [ebp + 0x14], 0
mov dword [ebp - 0x1c], eax
je 0x4400f2
mov ecx, dword [ebp - 0x38]
push 0x64
inc ecx
pop edx
mov dword [ebp - 0x38], ecx
cmp cx, dx
jb 0x4400f2
push 0x64
pop ecx
xor edx, edx
mov dword [ebp - 0x38], edx
mul ecx
push 0x64
pop edx
push dword [ebp + 0xc]
mov ecx, eax
mov eax, edi
push dword [ebp + 8]
mul edx
add ecx, edx
push ecx
push eax
call fcn.004c6030
xor edx, edx
mov ecx, eax
call fcn.0043669f
test bl, bl
je 0x440102
movzx ecx, bl
xor eax, eax
mov edi, 0x508420
rep stosd dword es:[edi], eax
mov ecx, dword [0x4f841c]
mov dword [0x4e8414], 0x4000000
mov dword [0x4e8410], 5
lea eax, [ecx - 1]
sar eax, 8
movzx edx, al
lea eax, [ecx - 1]
shl eax, 8
or edx, eax
xor eax, eax
mov word [0x4e8418], dx
push 0xc
pop ecx
cmp ax, cx
jb 0x43fd6a
push 0x64
pop ecx
cmp byte [ebp + 0x14], 0
je 0x440152
xor edx, edx
call fcn.0043669f
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x10
xor esi, esi
jmp 0x440142
mov ecx, dword [ebp - 0x3c]
mov edx, 0x4e8416
push 5
pop eax
push 0
push eax
mov esi, 0xc0000001
mov dword [0x4e8416], 0x500
mov dword [0x4e8410], eax
mov byte [0x4e841a], 0
call fcn.0040b701
jmp 0x440142
mov esi, 0xc000000d
jmp 0x440145