Function at 0x45d1c0
Capabilities:
Packed with generic packer

Disassembly:
add byte [ecx + 0x45c7e045], cl
in al, 1
add byte [eax], al
add byte [ebx + 0x408afc45], cl
dec eax
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x40]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
add al, byte [edx + ecx]
and al, 0xff
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
mov byte [eax + eax], al
add al, 0
add dword [eax], eax
add al, dh
cmpxchg byte [0x5bb718], ah
je 0x45d23c
push 0
call int.0045ccd4
mov eax, 0x100
lock cmpxchg byte [0x5bb718], ah
je 0x45d23c
push 0xa
call int.0045ccd4
jmp 0x45d20b
movsx esi, byte [ebx + 1]
and esi, dword [0x5bb724]
je 0x45d2b8
bsf eax, esi
lea esi, [eax*8]
mov ecx, dword [eax*4 + 0x5bb728]
bsf ecx, ecx
lea ecx, [ecx + esi*4]
lea edi, [ecx*8 + 0x5bb7a8]
mov esi, dword [edi + 4]
mov edx, dword [esi + 4]
mov dword [edi + 4], edx
mov dword [edx], edi
cmp edi, edx
jne 0x45d28c
mov edx, 0xfffffffe
rol edx, cl
and dword [eax*4 + 0x5bb728], edx
jne 0x45d28c
btr dword [0x5bb724], eax
mov edi, 0xccfffff0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add byte [eax], al
add byte [eax], al
add byte [ebx + 0x56], al
and byte [eax], ah
sti
mov esp, 0xa52407e6
popal
mov bl, 0xf1
fadd qword [ebx - 5]
lea esi, [esi - 0x23]
inc eax
jno 0x45d2ac
sbb byte [ebp + 0x14], ch
xor dword [eax + 0x26], esi
xor al, 0x9d
pushal
lds ebp, [eax - 0x1d]
imul edi, dword [ecx - 0x5d169c91], 0x443c7a1
add ebx, esp
inc eax
sal dword [esp + edx*2], 1
adc ebp, dword [esi - 0x675fa416]
loopne 0x45d336
pop ds
scasd eax, dword es:[edi]
pop ebx
dec esi
cmp byte [ecx + 0x62], dl
call 0x89778942
in eax, dx
mov esi, esi
mov eax, eax
mov eax, eax
mov eax, eax
mov ebx, ebx
mov ebx, ebx
mov eax, eax
mov ebp, ebp
cmp eax, 0x4bc
add byte [eax], al
jle 0x45d2af
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x48]
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x40]
mov al, byte [eax]
dec al
je 0x45d36a
dec al
je 0x45d3d7
dec al
je 0x45d43e
dec al
je 0x45d4eb
jmp 0x45d5c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
inc eax
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x20]
sub edx, eax
jb 0x45d5c6
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
test eax, eax
jbe 0x45d5c6
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x48]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp - 4]
mov eax, dword [edx + eax*4 + 0x40]
mov edx, dword [ebp - 0x1c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
add al, byte [edx + ecx]
and al, 0xff
mov edx, dword [ebp - 4]
movzx edx, byte [edx + 0x48]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + edx*4 + 0x40]
mov ecx, dword [ebp - 0x1c]
mov byte [esp + esi], al
lds eax, [eax]
add byte [eax], al
add byte [ebx - 0x48d77af4], cl
pop ebx
add byte [edi], cl
mov esp, 0xb10c8dc9
lea edi, [ecx*8 + 0x5bb7a8]
mov esi, dword [edi + 4]
mov edx, dword [esi + 4]
mov dword [edi + 4], edx
mov dword [edx], edi
cmp edi, edx
jne 0x45d470
mov edx, 0xfffffffe
rol edx, cl
and dword [eax*4 + 0x5bb728], edx
jne 0x45d470
btr dword [0x5bb724], eax
mov edi, 0xfffffff0
and edi, dword [esi - 4]
cmp edi, 0x10a60
jb 0x45d4ec
mov edx, edi
movzx edi, word [ebx + 0x1a]
sub edx, edi
lea eax, [edi + esi]
lea ecx, [edx + 3]
mov dword [eax - 4], ecx
mov dword [edx + eax - 8], edx
call fcn.0045d0f4
jmp 0x45d4f1
ret
and byte [edi + esi - 4], 0xf7
lea ecx, [edi + 6]
mov dword [esi - 4], ecx
xor eax, eax
mov byte [0x5bb718], al
mov dword [esi], ebx
mov dword [esi + 8], eax
mov dword [esi + 0xc], 1
mov dword [ebx + 0x10], esi
lea eax, [esi + 0x20]
movzx ecx, word [ebx + 2]
lea edx, [ecx + eax]
mov dword [ebx + 8], edx
add edi, esi
sub edi, ecx
mov dword [ebx + 0xc], edi
mov byte [ebx], 0
mov dword [eax - 4], esi
pop edi
pop esi
pop ebx
ret