Function at 0x45da68
Capabilities:
Packed with generic packer

Disassembly:
mov edx, dword [esp]
lea esp, [esp + 4]
call 0x45d7a3
mov dword [esp], ebp
lea ebp, [esp + 0xa]
push ebx
lea esp, [esp - 4]
mov dword [esp], edi
mov ebx, edx
add ebx, 0xfffaa8f7
push word [esp + 0x10]
popf
mov eax, dword [ebx]
pop edi
mov ebx, dword [esp]
lea esp, [esp + 4]
mov ebp, dword [esp]
lea esp, [esp + 4]
pop edx
lea esp, [esp + 2]
cmp dword [esp + 0x38], 0x74c97117
cmove ebx, ebx
pushf
call 0x45d7ef
mov dword [esp], edx
call 0x45d84e
push dword [ebp + 0xc]
cmp dword [ebp - 0x1c], edi
outsb dx, byte [esi]
jbe 0x45d803
push str.mscoree.dll
dec ebx
pop ebp
inc eax
add byte [ebx + 0x5d], cl
inc esi
dec esp
std
mov esi, 0x40a8c0
push eax
call fcn.0045e61c
push ebp
dec byte [ecx]
imul edi, dword [eax + 0x46], 0xfffc65e8
dec dword [ebx + 0x5708b344]
mov eax, esi
cmp esi, edi
push dword [ebp + 8]
cmp al, 9
je 0x45d84e
pop ebp
inc esi
inc edx
push 0xffffffffffffffff
adc eax, sym.imp.KERNEL32.dll_GetCurrentThreadId
mov edx, dword [ebp - 4]
pop ebp
pop esi
bound ebp, qword [ecx + 0x6b]
mov al, byte [esi + 3]
cmp cx, word [0x40b6c4]
dec ebx
dec esp
mov edx, dword [esp]
lea esp, [esp + 4]
push esi
lea esi, [esp + 0xa]
push ebx
lea esp, [esp - 4]
mov dword [esp], ebp
mov ebx, edx
add ebx, 0xfffad7e1
push word [esp + 0x10]
popf
mov dword [ebx], eax
mov ebp, dword [esp]
lea esp, [esp + 4]
pop ebx
mov esi, dword [esp]
lea esp, [esp + 4]
pop edx
lea esp, [esp + 2]
cmp dword [esp + 0x68], 0xc10613b5
cmove edi, ecx
pushf
push ecx
call 0x45d8f2
push esi
arpl word [edi + 0x7b], bp
dec edi
inc esp
dec eax
push edi
pushal
dec esi
inc edx
dec ebp
dec esi
pop esi
outsb dx, byte [esi]
imul ebp, dword [ebp + 0x5d], 0x6a794960
inc ebx
jnp 0x45d907
dec edx
dec esp
push esp
inc ebx
push 0x78
inc edx
insd dword es:[edi], dx
push eax
pop ebx
bound ecx, qword [esi + 0x6d]
pop edi
pop esp
pop ebx
arpl word [ebx + 0x5c], ax
push esp
dec ecx
arpl word [eax + 0x5d], bx
push ebp
pop esi
dec ebx
pop edx
push ecx
inc ebp
inc ecx
pop edx
arpl word [ecx + 0x59], dx
inc edx
jns 0x45d939
dec edx
pop ecx
push ecx
inc edi
dec edi
push ebx
push ebp
popal
push ebp
pop ecx
dec ebx
imul edi, dword [eax + 0x66], 0x44
pop ecx
lea esp, [esp - 4]
mov dword [esp], esi
lea esi, [esp + 0xa]
call 0x45d906
mov dword [esp], edi
cmp al, 0x24
lea esp, [esp - 4]
mov dword [esp], ebp
mov edi, ecx
add edi, 0xfffaa7cc
push word [esp + 0x10]
popf
mov eax, dword [edi]
pop ebp
lock xchg dword [esp], edi
lea esp, [esp + 4]
mov esi, dword [esp]
lea esp, [esp + 4]
mov ecx, dword [esp]
lea esp, [esp + 4]
and al, 4
lea esp, [esp + 2]
cmp ebp, 0xe534e8b1
cmove edi, ebx
pushf
lea esp, [esp - 4]
mov dword [esp], esi
call 0x45d9d0
dec edi
dec ebx
dec eax
dec esp
dec esi
pushal
push eax
pop eax
push ebx
insb byte es:[di], dx
bound ebx, qword [ebx + 0x60]
imul ebp, dword [ebx + 0x49], 0x4e784e62
pop edx
popal
push 0x4c
dec ebx
arpl word [ebp + 0x6b], bp
pop ebx
bound ecx, qword [edi + 0x6f]
outsd dx, dword [esi]
insd dword es:[edi], dx
insd dword es:[edi], dx
pop ebx
insd dword es:[edi], dx
inc esp
inc ebx
bound bx, dword [eax + 0x5c]
arpl word [esi + 0x52], bx
dec esp
pop ecx
push esp
popal
imul eax, dword [eax + edi*2 + 0x47], 0x6e
dec edx
inc esp
insb byte es:[edi], dx
dec ecx
push eax
pop edx
dec ecx
push 0x4d
push ecx
push ecx
inc ebx
bound ecx, qword [edx + 0x49]
imul edx, dword [ecx + 0x65], 0x49406a40
dec ebx
push edx
inc ecx
insb byte es:[edi], dx
outsd dx, dword [esi]
dec esi
dec esi
dec esi
dec ebx
dec ebp
push ebp
inc si
dec esp
imul edx, dword [edi + 0x52], 0x4c664f50
dec esp
push ebx
insb byte es:[edi], dx
pop ecx
pop ecx
js 0x45da3b
pushal
pop ebp
inc ebp
pop ebx
dec ebp
inc eax
push eax
push 0x644f4d50
pop si
push ebp
lea ebp, [esp + 0xa]
push edi
push edx
mov edi, esi
add edi, 0xfffad67e
push eax
lea eax, [esi - 0x5b680]
push word [esp + 0x14]
popf
mov dword [edi], eax
pop eax
pop edx
mov edi, dword [esp]
lea esp, [esp + 4]
mov ebp, dword [esp]
lea esp, [esp + 4]
mov esi, dword [esp]
lea esp, [esp + 4]
lea esp, [esp + 2]
cmp edi, 0x98989665
cmove eax, ecx
pushf
push ecx
call 0x45da68
outsb dx, byte gs:[esi]
push edi
outsb dx, byte [esi]
push eax
pop eax
pushal
jnp 0x45da7d
push 0x4e
inc esi
insb byte es:[edi], dx
pop esi
dec esi
inc eax
dec ebp
pop ecx
inc esp
outsb dx, byte [si]
pop ebp
inc edx
push 0x42
push 0x49
imul eax, dword [bx + 0x69], 0x6d
push 0x4f
outsd dx, dword [esi]
inc ecx
inc edi
outsd dx, dword [esi]
bound ecx, qword [ebp + 0x69]
pop ebp
jns 0x45daac
inc esp
push ebp
push eax
arpl word [esi + 0x5a], dx
dec edi
pop ebp
pop ecx
pop esi
push edx
push esi
jns 0x45dab5
inc edi
pop esp
pop ecx
dec edx
inc ebp
push eax
dec eax
inc ecx
popal
pushal
bound ebx, qword [edi - 0x10]
xchg dword [esp], ecx
lea esp, [esp + 4]
push eax
lea eax, [esp + 0xa]
call 0x45da7d
mov dword [esp], ebp
call 0x45da85
mov dword [esp], edi
mov ebp, ecx
add ebp, 0xfffad5ba
push word [esp + 0x10]
popf
mov dword ds:[ebp], esi
mov edi, dword [esp]
lea esp, [esp + 4]
pop ebp
mov eax, dword [esp]
lea esp, [esp + 4]
and al, 4
add al, 0x59
pop ecx
lea esp, [esp + 2]
cmp dword [esp + 0x5c], 0x1087afaf
pop esp
scasd eax, dword es:[edi]
scasd eax, dword es:[edi]
xchg dword [eax], edx
je 0x45dad1
pushf
call 0x45dac3
mov dword [esp], esi
call fcn.0045db1c
pop esp
jno 0x45dad3
not eax
jne 0x45db14
inc edx
push 0xc
jne 0x45dadc
or al, 0x75
push es
mov dword [esi], edi
jne 0x45dade
cmp esi, ebx
pop edi
outsb dx, byte [esi]
call esi
mov byte [eax + 5], 0xa
inc esp
xor bx, bx
movdqa xmmword [edi], xmm0
push ebp
jbe 0x45daf3
inc eax
inc ebp
push edi
push ebp
pop ecx
mov edi, ecx
jae 0x45db15
invalid
jbe 0x45db1a
mov dword [ebp + 0xc], esi
test eax, eax
rcr byte [edi + 0x55], 0x4f
invalid