Function at 0x51d424
Capabilities:
Execute anti-debugging instructions

Disassembly:
jmp 0x51d20f
mov word [esp + 7], si
push edi
mov byte [esp + 0xf], al
push eax
call fcn.0051d184
push ebx
je 0x51d278
outsb dx, byte [esi]
push 0x6c646e61
inc ebp
js 0x51d291
jo 0x51d2a5
imul ebp, dword [edi + 0x6e], reloc.KERNEL32.dll_GetProcAddress
jb 0x51d23b
push ebx
je 0x51d292
je 0x51d2a5
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add ch, bh
dec esp
popal
jbe 0x51d2b3
inc ebx
jb 0x51d2ba
je 0x51d2bc
arpl word [ecx + 0x6c], sp
push ebx
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
add byte [ebp + 0x6e], dl
push 0x6c646e61
inc ebp
js 0x51d2cd
jo 0x51d2e1
imul ebp, dword [edi + 0x6e], reloc.KERNEL32.dll_GetProcAddress
jb 0x51d277
inc edi
je 0x51d2ce
je 0x51d2ef
imul ebp, dword [esi + 0x67], reloc.KERNEL32.dll_GetProcAddress
push edi
add byte [ebp + 0x6c], al
je 0x51d2f1
inc ebx
jb 0x51d2f8
je 0x51d2fa
arpl word [ecx + 0x6c], sp
popal
insb byte es:[edi], dx
push ebx
arpl word gs:[ecx + ebp*2 + 0x6f], si
outsb dx, byte [esi]
add byte [ecx + 0x6e], cl
je 0x51d305
jb 0x51d30e
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
inc esp
inc esp
arpl word gs:[edx + 0x65], si
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d2b1
int3
je 0x51d2fb
outsb dx, byte [esi]
jbe 0x51d322
jb 0x51d32a
outsd dx, dword [esi]
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d314
je 0x51d335
imul ebp, dword [esi + 0x67], reloc.KERNEL32.dll_GetProcAddress
je 0x51d312
imul ebp, dword [ebp + 0x50], reloc.KERNEL32.dll_GetProcAddress
jb 0x51d2d7
insb byte es:[edi], dx
push eax
outsd dx, dword [esi]
imul ebp, dword [esi + 0x74], 0x5f007265
pop edi
cmpsb byte [esi], byte es:[edi]
inc esi
jb 0x51d341
inc ebp
outsb dx, byte [esi]
jbe 0x51d34a
jb 0x51d352
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d33c
je 0x51d35d
imul ebp, dword [esi + 0x67], reloc.KERNEL32.dll_GetProcAddress
push edi
add byte [edi + 0x65], al
je 0x51d33a
inc edi
je 0x51d33a
outsb dx, byte [esi]
jbe 0x51d361
jb 0x51d369
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d353
je 0x51d374
imul ebp, dword [esi + 0x67], reloc.KERNEL32.dll_GetProcAddress
jae 0x51d35e
add cl, dl
push eax
inc esi
jb 0x51d372
inc ebp
inc ebp
inc ebp
outsb dx, byte [esi]
jbe 0x51d37b
jb 0x51d383
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d36d
je 0x51d38e
imul ebp, dword [esi + 0x67], reloc.KERNEL32.dll_GetProcAddress
dec ecx
outsb dx, byte [esi]
je 0x51d38b
jb 0x51d394
outsd dx, dword [esi]
arpl word [ebx + 0x65], bp
dec ecx
imul esp, dword [ebp + 0x64], 0x49
outsb dx, byte [esi]
arpl word [edx + 0x65], si
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d337
rol dword [edi + 0x65], cl
je 0x51d381
outsb dx, byte [esi]
jbe 0x51d3a8
jb 0x51d3b0
outsb dx, byte [esi]
insd dword es:[edi], dx
outsb dx, byte gs:[esi]
je 0x51d39d
popal
jb 0x51d3b3
popal
bound ebp, qword [ebp + 0x41]
add byte [esi + 0x6c], al
jne 0x51d3c7
jae 0x51d3bd
push 0x656c6946
inc edx
jne 0x51d3c2
inc esi
imul ebp, dword [ebp + 0x42], 0x65666675
jb 0x51d3d3
jb 0x51d3d3
jb 0x51d3d3
add byte [edx - 0x1b], cl
adc al, 0x87
dec ebp
dec edx
in eax, 0x14
xchg dword [esi], ebp
dec ebp
jne 0x51d3d5
je entry0
inc edx
jns 0x51d3e2
je entry0
push esp
push esp
outsd dx, dword [esi]
push edi
imul esp, dword [ebp + 0x43], reloc.KERNEL32.dll_GetProcAddress
sub edi, dword [ecx + reloc.KERNEL32.dll_GetProcAddress]
inc ebx
push 0x2b007261
mov ecx, 0x1ebb4829
sbb byte [ebx - 0x77], bh
jnp 0x51d30c
je 0x51d3a9
pop es
and al, 0x10
call dword [ebx + 0x48]
insb byte es:[edi], dx
add dword [eax + reloc.KERNEL32.dll_GetProcAddress], ecx
and al, 4
and al, 4
invalid
sbb al, 0
add byte [eax], al
and byte [ebx + 0x68], dl
imul esp, dword [ebp + 0x6c], 0x206e6564
jbe 0x51d420
lea edx, reloc.KERNEL32.dll_GetProcAddress
mov dx, 0xe35
pushal
std
xchg dl, dh
jmp 0x51d443
bound ebx, qword [ebp + 0x74ffffec]
and al, 0x1c
mov word [esp + 0x1d], dx
mov dword [esp + 0x12], edx
jmp 0x51d40e