Function at 0x43d3f9
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
xor eax, eax
mov dword [ebp - 0x3c], ecx
xor ecx, ecx
inc eax
push esi
mov esi, edx
mov byte [ebp - 8], cl
push edi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x24], ecx
mov byte [ebp - 6], cl
mov byte [ebp - 5], al
cmp byte [0x4c0744], cl
jne 0x43d431
call fcn.004616c2
mov byte [0x4c0744], al
xor ecx, ecx
test al, al
mov dword [ebp - 0x40], ecx
push 4
setne al
mov dword [ebp - 0x20], 0x2ee0
dec al
mov dword [ebp - 0x14], ecx
and al, 0x3c
mov dword [ebp - 0x1c], ecx
add al, 4
mov byte [ebp - 9], cl
mov byte [ebp - 0xc], al
mov eax, 0x5dc
mov dword [ebp - 0x30], eax
mov dl, cl
mov dword [ebp - 0x18], eax
mov byte [ebp - 7], dl
pop ebx
push 0x64
pop eax
test esi, esi
je 0x43d8e9
cmp dword [ebp + 8], 0
je 0x43d8e9
xor eax, eax
mov dword [0x4c3806], 0x400
inc eax
mov dword [0x4c3800], 5
mov word [0x4d380c], ax
mov edi, 0x4e3810
xor eax, eax
mov byte [0x4c380a], bl
xor ecx, ecx
mov word [0x4c3804], cx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x38], eax
cmp byte [ebp + 0x10], al
je 0x43d4cc
xor edx, edx
call fcn.00433bbf
mov cx, word [0x4c3804]
mov dl, byte [ebp - 7]
push 0xc
pop eax
mov esi, 0xc0000001
cmp cx, ax
jae 0x43d8c8
mov al, byte [ebp - 5]
mov ecx, dword [ebp - 0x3c]
push 0
push dword [0x4c3800]
mov byte [ebp - 0xb], dl
mov edx, 0x4c3806
mov byte [ebp - 0xa], al
call fcn.0040b8b1
mov esi, eax
mov dword [ebp - 0x48], esi
test esi, esi
jne 0x43d8c8
push 0
push 0x3e8
push dword [0x4f1bd4]
rdtsc
push dword [0x4f1bd0]
mov edi, eax
mov esi, edx
call fcn.004a7bf0
push edx
push eax
push esi
push edi
call fcn.004a7bf0
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 8]
cmp dword [ebp - 0x1c], eax
je 0x43d8e5
and dword [ebp - 0x10], 0
xor edi, edi
movzx esi, bl
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x2c], esi
test bl, bl
je 0x43d684
cmp dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x18]
je 0x43d563
mov eax, 0x5dc
lea ecx, [ebp - 0x40]
mov edx, 0x4d3808
push ecx
mov ecx, dword [ebp - 0x3c]
push 1
push eax
push esi
call fcn.0043da28
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x43d684
movzx edx, word [ebp - 0x40]
mov dword [ebp - 0x44], edx
cmp dword [edx*4 + 0x4e3810], eax
jne 0x43d67b
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x43d62c
cmp dword [ebp - 0x24], eax
jne 0x43d62c
push 0
push 0x3e8
push dword [0x4f1bd4]
rdtsc
push dword [0x4f1bd0]
mov edi, eax
mov esi, edx
call fcn.004a7bf0
push edx
push eax
push esi
push edi
call fcn.004a7bf0
mov ecx, eax
sub ecx, dword [ebp - 0x50]
test ecx, ecx
jg 0x43d5de
push 0x37
pop ecx
mov esi, dword [ebp - 0x20]
mov eax, esi
shr eax, 3
mov dword [ebp - 0x30], ecx
sub ecx, eax
add esi, ecx
mov eax, ecx
cdq
mov edi, esi
mov ecx, eax
shr edi, 2
xor ecx, edx
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x2c]
sub ecx, edx
mov edx, dword [ebp - 0x14]
mov eax, edx
shr eax, 2
sub ecx, eax
mov eax, 0x5dc
add edx, ecx
add edi, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x44]
shr edi, 1
mov dword [ebp - 0x18], edi
cmp edi, eax
mov edi, dword [ebp - 0x28]
jbe 0x43d629
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x4d3808]
inc eax
add ecx, 0xfffffffc
mov dword [ebp - 0x10], eax
add edi, ecx
mov dword [edx*4 + 0x4e3810], ecx
mov dword [ebp - 0x28], edi
test ecx, ecx
je 0x43d671
imul edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
add eax, edx
add eax, ecx
cmp eax, dword [ebp + 8]
ja 0x43d89a
mov eax, dword [ebp - 0x34]
push ecx
add eax, edx
push 0x4d3812
push eax
call fcn.004a78b0
add esp, 0xc
mov eax, dword [ebp - 0x1c]
add eax, edi
cmp eax, dword [ebp + 8]
je 0x43d684
cmp dword [ebp - 0x10], esi
jb 0x43d555
movzx ecx, bl
xor esi, esi
xor eax, eax
mov dword [ebp - 0x44], esi
xor edi, edi
mov edx, ecx
cmp ax, cx
jae 0x43d6b0
movzx eax, di
mov eax, dword [eax*4 + 0x4e3810]
test eax, eax
je 0x43d6ad
add esi, eax
inc edi
cmp di, cx
jb 0x43d697
mov dword [ebp - 0x44], esi
cmp di, dx
jne 0x43d721
mov cl, byte [ebp - 6]
mov al, byte [ebp - 5]
inc cl
and dword [ebp - 0x24], 0
mov byte [ebp - 6], cl
cmp bl, al
jbe 0x43d6e7
fild dword [ebp - 0x2c]
mov byte [ebp - 5], bl
fstp qword [ebp - 0x54]
fld qword [ebp - 0x54]
fmul qword [0x4bdf18]
call fcn.004a7fb0
mov cl, byte [ebp - 6]
mov byte [ebp - 8], al
mov al, bl
cmp byte [ebp - 0xa], bl
sbb dh, dh
not dh
and dh, byte [ebp - 0xb]
mov byte [ebp - 7], dh
cmp cl, bl
jb 0x43d7cf
cmp byte [ebp - 9], 0
je 0x43d70a
cmp bl, al
je 0x43d7cf
mov al, byte [ebp - 0xc]
inc bl
cmp bl, al
ja 0x43d7cd
xor al, al
mov byte [ebp - 6], al
jmp 0x43d7cf
mov eax, dword [ebp - 0x30]
add eax, eax
cmp eax, 0x5dc
jge 0x43d76c
mov esi, dword [ebp - 0x20]
mov ecx, esi
shr ecx, 3
mov dword [ebp - 0x30], eax
sub eax, ecx
mov ecx, dword [ebp - 0x14]
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 - 0x14]
add ecx, eax
shr edx, 2
add edx, ecx
mov dword [ebp - 0x14], ecx
shr edx, 1
mov eax, 0x5dc
mov dword [ebp - 0x18], edx
cmp edx, eax
jbe 0x43d76c
mov dword [ebp - 0x18], eax
mov dh, byte [ebp - 7]
xor eax, eax
mov dl, byte [ebp - 5]
inc eax
mov dword [ebp - 0x24], eax
xor al, al
mov byte [ebp - 6], al
inc dh
movzx eax, byte [ebp - 8]
movzx ecx, dl
sub ecx, eax
mov byte [ebp - 7], dh
movzx eax, dh
cmp eax, ecx
jle 0x43d7c4
sub dl, byte [ebp - 8]
xor eax, eax
inc eax
mov byte [ebp - 5], dl
mov byte [ebp - 9], al
cmp dl, al
jae 0x43d7a7
mov dl, al
mov byte [ebp - 5], dl
movzx eax, dl
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x50]
fstp qword [ebp - 0x54]
fld qword [ebp - 0x54]
fmul qword [0x4bdf18]
call fcn.004a7fb0
mov byte [ebp - 8], al
xor eax, eax
shr bl, 1
inc eax
cmp bl, al
jae 0x43d7cf
mov bl, al
mov esi, dword [ebp - 0x48]
mov byte [0x4c380a], bl
cmp esi, 0xc0000001
jne 0x43d7f9
cmp dword [ebp - 0x10], 0
jne 0x43d7f9
mov ax, word [0x4c3804]
inc ax
mov word [0x4c3804], ax
jmp 0x43d88a
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x44]
add ecx, eax
add word [0x4d380c], di
add dword [ebp - 0x34], eax
cmp byte [ebp + 0x10], 0
mov dword [ebp - 0x1c], ecx
je 0x43d841
mov edi, dword [ebp - 0x38]
push 0x64
inc edi
pop edx
mov dword [ebp - 0x38], edi
cmp di, dx
jb 0x43d841
xor eax, eax
mov dword [ebp - 0x38], eax
mov eax, ecx
mul edx
push 0
push dword [ebp + 8]
push edx
push eax
call fcn.004a7e90
xor edx, edx
mov ecx, eax
call fcn.00433bbf
movzx eax, bl
xor ecx, ecx
cmp cx, ax
jae 0x43d856
mov ecx, eax
mov edi, 0x4e3810
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [0x4d380c]
mov dword [0x4c3804], 0x4000000
mov dword [0x4c3800], 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 [0x4c3808], dx
push 0xc
pop ecx
cmp ax, cx
jae 0x43d8c8
mov dl, byte [ebp - 7]
jmp 0x43d4dd
mov ecx, dword [ebp - 0x3c]
mov edx, 0x4c3806
push 5
pop eax
push 0
push eax
mov esi, 0xc0000001
mov dword [0x4c3806], 0x500
mov dword [0x4c3800], eax
mov byte [0x4c380a], 0
call fcn.0040b8b1
push 0x64
pop eax
cmp byte [ebp + 0x10], 0
je 0x43d8da
xor edx, edx
mov ecx, eax
call fcn.00433bbf
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor esi, esi
jmp 0x43d8c8
mov esi, 0xc000000d
jmp 0x43d8cb