Function at 0x405c4c
Capabilities:
Packed with generic packer

Disassembly:
push ecx
push ecx
push ecx
add byte [ebx + 0x51510002], al
add byte [eax], al
or byte [eax], al
add byte [ebx], al
add byte [esp + edi*2 + 0x7c], bh
jl 0x405cde
jl 0x405cb5
push ecx
push ecx
push ecx
add byte [ebx + 0x51510002], al
add byte [eax], al
or byte [eax], al
add byte [edx - 0xe], ch
call 0x41c37b
push ebx
add byte [bx + si], al
jge 0x405cd5
call 0xe8454488
add al, 0xe8
add al, 0xe8
add al, 0xe8
add al, 0xe8
add al, 0xe8
add al, 0xe8
add al, 0xe8
add al, 0x7c
add dword [eax], eax
push 0xb
add byte [edx], al
add byte [ecx + 0x51], dl
add byte [eax], al
or byte [eax], al
add byte [ebx], al
add byte [esp + edi*2 + 0x7c], bh
jl 0x405d26
jl 0x405d0b
dec edi
mov edi, 0xc7c7c7c7
mov edi, 0x7dc7c7c7
jge 0x405d35
invalid
jge 0x405d34
jge 0x405d36
jge 0x405d38
jge 0x405d3a
jge 0x405d3c
add byte [ebx + 0x51510002], al
push ecx
push ecx
add byte [ebx + 0x51510002], al
add byte [eax], al
or byte [edx], bh
dec esp
and al, 8
add byte [edi + 0x6e], dl
push edi
outsb dx, byte [esi]
adc dword [esp + esi*2], eax
or al, 0
imul ecx, dword [edx], 0
jb 0x405ce9
add byte [edx + 8], dh
cmp cl, byte [esp + 8]
add byte [edi + 0x42], dl
add bh, bh
adc eax, 0x4071c8
invalid
call dword [0x4071c8]
ret 8
jl 0x405d89
jl 0x405d8b
jl 0x405d81
add dword [eax], eax
jge 0x405d92
jge 0x405d94
add byte [ebx + 0x51510002], al
push ecx
push ecx
add byte [ebx + 0x7c000002], al
jl 0x405da3
jl 0x405da4
jl 0x405da5
jl 0x405da6
jl 0x405da7
jl 0x405d7d
push ecx
add byte [eax], al
or byte [eax], al
add byte [ebx], al
add byte [esp + edi*2 + 0x7c], bh
jl 0x405d39
jl 0x405db2
jl 0x405db4
add byte [edx], al
add al, byte [eax]
and al, 8
add byte [eax + ecx], ah
or byte [eax], al
push edi
inc edx
add byte [edi + 0x42], dl
add bh, bh
adc eax, 0x4071c8
ret 8
inc eax
add dl, al
or byte [eax], al
add byte [eax], al
push 0xd
add byte [eax], al
add byte [edx + 0xd], ch
add byte [ebx], al
add byte [esp + edi*2 + 0x7c], bh
jl 0x405e07
jl 0x405dfd
xor eax, 0x7c7c7cff
jl 0x405e10
jl 0x405e12
jl 0x405e14
add byte [edx + 0x6a], ch
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0
push 0x6a
push 0x6a
push 0x6a
push 0x6a
push 0x6a
add byte [ebx - 0x7c7c7c7d], al
add byte [eax], dl
add dword [ebx + 0x838383], 0x10
add dword [ebx + 0x74100083], 0xffffffd1
jl 0x405e08
add byte [ebx + eax*4], al
mov edi, eax
or dword [eax], eax
jl 0x405e0c
add eax, dword [eax]
add byte [esi + eax], ah
pop es
add byte [eax], al
push es
push es
add byte [edi + eax], ah
push 0x11
add byte [edx + 0x11], ch
adc dword [eax], eax
add byte [ecx + ecx], bh
add dword [ecx], 0
push ss
add dword [ecx], 0
jl 0x405e1f
add byte [ebx - 0x7ce9ffff], al
add dword [eax], eax
add dword [ecx + 0x4b], esi
jno 0x405e6c
add dword [esi], ebp
add byte [esp + eax], bh
jge 0x405e2b
add byte [ebx + eax], bh
push 0xd
jl 0x405e30
add byte [edx + 0xd], ch
add byte [edi + eax], dh
jl 0x405e38
add byte [ecx + eax], bh
add dword [eax], eax
add dword [edx], 0
add dword [ecx], 0
add dword [ebx + eax], edi
push ebx
sub byte [eax], cl
add byte [eax], al
add byte [esi + 0x73], cl
or byte [eax], al
add byte [eax], al
cmp al, 0x73
je 0x405ec6
imul ebp, dword [esi + 0x67], 0x15733e
add byte [eax], al
and byte [eax], ah
inc esi
imul ebp, dword [ebp + 0x20], 0x22732522
sub al, 0x20
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0xa642520
jae 0x405e7b
outsb dx, byte [esi]
and byte gs:[0x7730a64], ah
add byte [eax], al
add byte [eax], ah
and byte [eax], ah
and byte [0x1730a73], ah
and eax, 0x1730a73
add byte [eax], al
add byte [edx], cl
arpl word [ecx], ax
add byte [eax], al
add byte [edx], al
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
jae 0x405e93
add byte [eax], al
jae 0x405ebe
add byte [eax], al
add byte [eax + eax], bh
pop ebp
sbb eax, 0x17d00
jl 0x405ea6
add byte [edx], ch
push 0
add byte [ebx + 0x1b720000], al
add byte [ecx + eax], bh
jo 0x405ed2
add byte [eax + eax], ah
push esi
add dword [ecx + 3], esi
add byte [ecx + eax], ah
add dword [eax], eax
push ebx
sub byte [edx], al
add byte [eax], al
add byte [ecx + eax], dh
je 0x405ec9
add byte [eax], al
add byte [eax], ah
dec esi
sub byte [ecx], al
add byte [eax], al
add byte [edi + eax], dh
add byte [eax], al
imul esi, dword [ebx + 0x73], 0x65636170
sub byte [edx], al
add byte [eax], al
add byte [edx + eax], dh
add byte [eax], al
xor byte cs:[ecx + eax], dh
add byte [eax], al
and byte [esi + 0x28], cl
add dword [eax], eax
add byte [eax], al
je 0x405edb
add byte [eax], al
add byte [ecx + 0x73], ch
jae 0x405f4b
popal
arpl word [ebp + 0x28], sp
add al, byte [eax]
add byte [eax], al
je 0x405ee7
add byte [eax], al
add byte [esi], ch
xor byte [ecx + eax], dh
add byte [eax], al
arpl word [eax], bp
add byte [eax], al
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add byte [ebx + 0xd], dh
add byte [eax], al
add byte [edx + esi*2 + 0x61], dh
arpl word [ebp + 0x62], sp
popal
arpl word [ebx + 0x2e], bp
jo 0x405f84
outsd dx, dword [esi]
jae 0x405f17
add byte [eax], al
add byte [edi], bh
outsb dx, byte gs:[esi]
js 0x405f88
jo 0x405f8b
jb 0x405f58
ret 0
ret 0
or eax, 0x42000000
popal
jae 0x405fb8
inc ebp
js 0x405fb9
jo 0x405fcd
je 0x405fc3
imul ebp, dword [edi + 0x6e], 0x574
outsd dx, dword [esi]
outsb dx, byte [esi]
je 0x405f63
add byte [eax], al
add byte [ecx + edi*2 + 0x70], dh
jae 0x405fdb
jo 0x405fca
jae 0x405fdb
or al, 0
add byte [eax], al
dec ecx
outsb dx, byte [esi]
jae 0x405fe3
popal
outsb dx, byte [esi]
arpl word [ebp + 0x54], sp
jns 0x405fe6
push edx
adc al, 0
add byte [eax], al
je 0x405f82
add byte [eax], al
add byte [ecx + edi*2 + 0x70], dh
jns 0x405ff4
push edx
adc dword [eax], eax
add byte [eax], al
je 0x405fa2
push ss
add byte [eax], al
add byte [edi + 0x66], bl
outsd dx, dword [esi]
jb 0x406001
popal
je 0x405ff6
imul bp, word [esi + 0x61], 0x5f6c
js 0x406003
pop edi
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0x874
add byte [edi + 0x5f], bl
outsb dx, byte [esi]
popal
insd dword es:[edi], dx
pop edi
pop edi
je 0x405fbe
add byte [eax], al
add byte [ecx + 0x73], ch
jae 0x40602d
jae 0x406030
jne 0x40601e
bound esp, qword [ebx + 0x6c]
arpl word [ecx + 0x73], bp
jae 0x406036
popal
jae 0x406034
je 0x405fce
or eax, dword [eax]
add byte [eax], al
push ebx
jns 0x406037
add byte [eax], al
add byte [ebx + 0x79], dl
outsb dx, byte [esi]
je 0x40602c
popal
js 0x406012
jb 0x406041
jb 0x40603f
outsd dx, dword [esi]
jb 0x406046
add al, 0
add byte [eax], al
popal
jb 0x406040
jae 0x40604f
or dword [eax], eax
add byte [eax], al
inc ebp
js 0x406045
jo 0x406059
jo 0x406059
imul ebp, dword [edi + 0x6e], 0x1e52
outsd dx, dword [esi]
outsb dx, byte [esi]
push edx
push ds
add byte [eax], al
add byte [edx + 0x17], dl
add byte [eax], al
add byte [esi + eax], dh
add byte [eax], al
jb 0x40606c
add byte [eax], al
add byte [edx + 0x73], dh
je 0x40606d
imul esi, dword [eax + 0x74], 6
insb byte es:[edi], dx
add byte [ebx + esi*2 + 0x74], ch
jae 0x406079
jb 0x406070
jo 0x40607d
add al, 0
add byte [eax], al
push 0x6f
imul ebp, dword [esi + 0x28], 0xa
or al, byte [eax]
add byte [eax], al
push edx
xor dword [eax], eax
add byte [eax], al
push edx
xor al, byte [eax]
add byte [eax], al
je 0x406027
add byte [eax], al
add byte [ebx + 0x74], dh
jns 0x406099
push edx
xor eax, dword [eax]
add byte [eax], al
add byte [ebx + eax], dh
add byte [eax], al
je 0x406034
add eax, dword [eax]
add byte [eax], al
add byte [ebp + 0x73], ch
add byte [eax], al
insd dword es:[edi], dx
jae 0x40609e
push edx
push edx
sbb dword [eax], eax
add byte [eax], al
push edx
sbb al, byte [eax]
add byte [eax], al
add byte [esi + eax], dh
add byte [eax], al
je 0x406049
add byte [eax], al
add byte [edi + 0x66], ch
jae 0x4060b0
outsd dx, dword [esi]
jae 0x4060b0
jae 0x4060b0
je 0x4060c1
pop es
add byte [eax], al
add byte [edx + 0x61], ah
insb byte es:[edi], dx
add byte [eax], al
bound esp, qword [ecx + 0x64]
insb byte es:[edi], dx
imul ebp, dword [esi + 0x65], 0xa74
add byte [ebx + 0x61], ah
jb 0x4060c6
or al, byte [eax]
add byte [eax], al
arpl word [ecx + 0x72], sp
je 0x4060d6
je 0x4060d6
jo 0x4060c6
arpl word [ebp + 0x28], sp
add byte [eax], al
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
jae 0x406080
add byte [ebx + 0xd], dh
add byte [eax], al
add byte [edx + esi*2 + 0x61], dh
arpl word [ebp + 0x62], sp
popal
arpl word [ebx + 0x2e], bp
jo 0x4060fb
outsd dx, dword [esi]
push edx
add eax, dword [eax]
add byte [eax], al
xchg ebx, eax
add byte [eax], al
add byte [ebx + 0x2e], dh
add byte [eax], al
add byte [eax], al
pop ss
lgdt [edx]
add dword [esi], ebx
add dword [eax], edx
add cl, byte [ecx]
add cl, byte [edi]
adc byte [edx], al
or dword [edx], eax
lgdt [eax]
add dword [eax], edx
add eax, dword [esi]
add dword [ebx], eax
add dword [edi], ebx
add dword [0xc020401], ecx
add dword [edi], edx
add dword [ecx + eax], ecx
pop ss
add dword [edi], edx
add dword [ecx + eax], ecx
sbb dword [edx], eax
adc byte [edx], al
and byte [ecx], al
push es
add dl, byte [esi]
add dword [ebx + 2], esp
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add al, 0
add byte [eax], al
inc ebx
add byte [eax], al
add byte [ebx + 0x40], dh
add byte [eax], al
add byte [eax + eax], dh
add byte [eax], al
jl 0x4060db
add byte [ebx + 0x27d0001], al
add dword [ecx], 0
jge 0x4060e2
add byte [ecx + eax], bh
add dword [eax], eax
add byte fs:[eax], al
imul ecx, dword [eax], 0
jae 0x40610b
add byte [edx + eax], bh
or al, 0x72
sub al, 0
add dword fs:[eax], eax
jl 0x4060f9
add byte [esi], dl
jge 0x406100
add byte [esi + 0x10], ch
add byte [edx + eax], ah
jl 0x406106
add byte [edx + eax], bh
add al, byte [eax]
add al, byte [eax]
push ss
jge 0x406113
add byte [ebx + eax], bh
push ebx
sub byte [ebx], al
add byte [eax], al
add byte [esi + 0x73], cl
add eax, dword [eax]
add byte [eax], al
add byte [ebx + 0x28], dl
add eax, dword [eax]
add byte [eax], al
dec esi
jae 0x406120
add byte [eax], al
add byte [0x7730a73], ah
and eax, 0x7730a73
add byte [eax], al
add byte [0x25203a73], ah
jae 0x406139
sub byte [edx], al
add byte [eax], al
add byte [ecx + ecx], dh
add byte [eax], al
pop edi
jae 0x4061ab
insd dword es:[edi], dx
pop edi
jae 0x4061b5
jb 0x406195
adc al, 0
add byte [eax], al
sub byte [eax + eax], al
add byte [eax], al
push edx
xor dword [eax], eax
add byte [eax], al
push edx
xor al, byte [eax]
add byte [eax], al
je 0x406160
add byte [eax], al
add byte [esi + 0x61], dh
insb byte es:[edi], dx
jne 0x4061c5
jae 0x4061d6
jb 0x4061b6
sbb al, 0
add byte [eax], al
sub byte [eax], al
add byte [eax], al
add byte [eax], ch
add byte [eax], al
add byte [eax], al
jae 0x406181
add byte [eax], al
add byte [edx + esi*2 + 0x61], dh
arpl word [ebp + 0x62], sp
popal
arpl word [ebx + 0x2e], bp
jo 0x4061fc
outsd dx, dword [esi]
push edx
cmp eax, 0xca000000
add byte [eax], al
add byte [ebx + 0xa], dh
add byte [eax], al
add byte [eax], al
add cl, byte [ecx + eax]
adc eax, dword [ecx]
or eax, 0x63011002
add dword [ebx], edx
add dword [0x63011002], ecx
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add eax, 0x43000000
add byte [eax], al
add byte [ebx + 0x67], dh
add byte [eax], al
jae 0x406216
add byte [eax], al
add byte [ecx + 0xe], bh
add byte [eax + eax], dh
je 0x4061b7
add byte [eax], al
add byte [eax + eax], bh
add dword [ecx], 0
push ebx
push edi
jl 0x4061ba
add byte [ebx + 0x57530001], al
outsb dx, byte [esi]
adc dword [eax], eax
add al, 0x74
add dword [eax], eax
imul ecx, dword [edx], 0
jb 0x4061ed
add byte [ecx], al
add dword [ecx], eax
outsb dx, byte [esi]
add dword [eax], eax
pop eax
jns 0x4061f6
add byte [edx + eax], dh
jl 0x4061dc
add byte [ebx + 0x7d0001], al
add byte [eax + eax], bh
push 3
add byte [ecx + eax], ah
add al, byte fs:[eax]
add al, byte [eax]
add dword [edx], 0
push ebx
push edi
outsb dx, byte [esi]
adc dword [eax], eax
add al, 0x74
add byte [esp + esi*2], al
add dword [eax], eax
imul ecx, dword [edx], 0
or al, byte [eax]
jb 0x406255
add byte [ecx], al
add dword [ecx], eax
outsb dx, byte [esi]
add dword [eax], eax
pop eax
add eax, dword fs:[eax]
je 0x406211
add byte [eax + eax], bh
add dword [ecx], 0
push 5
add byte [esi], dl
push ebx
sub byte [eax + eax], al
add byte [eax], al
dec esi
je 0x406226
add byte [eax], al