Function at 0x5ca860
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x5ca87d
cmp dword [ebx + 0x2c], 0
jne 0x5ca882
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x5ca88a
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0x40
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], 0
mov dword [ebx + 0x2e4], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebp - 0x10], 0x40
call fcn.005c7040
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x5ca8e0
push 0x660558
call fcn.005c9720
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
push edi
push ebx
mov dword [ebp - 4], esi
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov edi, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x1c], eax
cmp esi, edi
jbe 0x5caa1e
cmp eax, 0x3c
je 0x5ca918
cmp eax, 0xffffffff
jne 0x5caa27
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x5ca928
cmp edi, 0xffffffff
jne 0x5ca936
push dword [ebp + 8]
call fcn.005c8aa0
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.005c7e50
add esp, 4
test eax, eax
je 0x5caa0d
mov eax, edi
sub eax, 1
je 0x5ca9bb
sub eax, 1
je 0x5ca99f
sub eax, 1
jne 0x5caa0d
cmp dword [ebx + 0x44], esi
je 0x5cb00d
mov edi, dword [ebp - 8]
mov dword [edi + 0x18], 3
push dword [ebp + 8]
mov eax, dword [ebx + 0x44]
push edi
push ebx
call eax
add esp, 0xc
test eax, eax
jne 0x5caa0d
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.005c9720
add esp, 0xc
jmp 0x5cb14c
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call fcn.005cc140
add esp, 0xc
test eax, eax
jmp 0x5caa07
cmp dword [ebx + 0x2e8], esi
je 0x5ca9f2
push dword [ebp + 8]
call fcn.005c80d0
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x5ca9f5
cmp dword [edi + 0x18], esi
jne 0x5ca9f5
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.005ca5b0
add esp, 8
test eax, eax
jmp 0x5caa07
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.005ca550
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5cb01f
mov eax, dword [ebp - 0xc]
test eax, eax
mov edi, dword [ebp + 8]
cmove eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x5cb11e
cmp eax, 0x3c
jne 0x5cafce
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x5cab59
nop word [eax + eax]
push esi
call fcn.005c9070
add esp, 4
test eax, eax
jne 0x5cab59
cmp esi, 0x3e
je 0x5cab59
cmp esi, 0x2f
jne 0x5caa7a
cmp edi, dword [ebp + 8]
ja 0x5cab59
jmp 0x5caada
cmp esi, 0x3c
je 0x5cb037
cmp esi, 0x26
jne 0x5caac2
push dword [ebp - 8]
push ebx
call fcn.005cb610
add esp, 8
cmp eax, 0xffffffff
je 0x5cb14c
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.005ca740
add esp, 0x10
test eax, eax
je 0x5cb14c
mov edi, dword [ebp - 4]
jmp 0x5cab42
cmp esi, 0x30
jge 0x5caada
cmp esi, 0x21
je 0x5caada
cmp esi, 0x2d
je 0x5caada
cmp esi, 0x2e
jne 0x5cb14c
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 4]
push eax
push esi
call fcn.005ca740
add esp, 0x10
test eax, eax
je 0x5cb14c
mov edi, dword [ebp - 4]
mov eax, edi
mov ecx, dword [ebp + 8]
sub eax, ecx
cmp eax, 1
jne 0x5cab0b
cmp byte [ecx], 0x3f
je 0x5cab59
cmp eax, 3
jne 0x5cab26
push eax
push 0x660610
push ecx
call 0x7c75b0
add esp, 0xc
test eax, eax
je 0x5cab59
mov ecx, dword [ebp + 8]
mov eax, edi
sub eax, ecx
cmp eax, 8
jne 0x5cab42
push eax
push 0x6602cc
push ecx
call 0x7c75b0
add esp, 0xc
test eax, eax
je 0x5cab59
mov eax, dword [ebx + 0x2f0]
xor eax, 2
add byte [eax], al
push ebx
call eax
mov esi, eax
add esp, 4
push 0x2653575
push ebp
lodsd eax, dword [esi]
adc dword [edx], ecx
inc eax
pop es
inc eax
ja 0x5cab43
push ebp
hlt
inc esi
test al, 0x63
push 0xbcb83f1f
sal eax, cl
ret 0xc039
mov ecx, 0x3427ee05
sbb byte [edx - 0x75a5e7b8], al
les eax, [esi - 0x36]
pop ebx
ret 0xa59
jg 0x5cb030
add eax, 0x864b0f7
push esp
mov byte [ecx + 0x3d113c64], dl
jnp 0x5cb023
xchg ebp, eax
ja 0x5cafa9
idiv byte [ebx - 0x12]
mov dl, 0xc7
div ebp
lea esp, [ebp + 0x4de33183]
push eax
add dword [esi + 0x76e438e5], esp
dec ebp
aad 0xca
ja 0x5cb071
jne 0x5caf91
js 0x5cb04e
test dword [esi], ecx
aad 5
les edx, [ebp + 0x58d5d6e1]
cmpsb byte [esi], byte es:[edi]
hlt
xchg esp, eax
ror dword [esi], 1
scasb al, byte es:[edi]
jne 0x5cb05b
xchg esi, eax
mov ecx, dword [edi]
aam 0xb8
pop ebp
jns 0x5cb055
xor eax, 0x8312458c
xchg edx, eax
scasb al, byte es:[edi]
adc al, byte [ebx + 0x1ae0ae92]
loopne 0x5cb03f
sar dword [eax - 0xa92e094], 1
rcl esp, 1
lodsd eax, dword [esi]
fldenv [ebp - 0x29]
xlatb
xor eax, 0x1a4994d1
pushal
imul dword [bp + di + 0x61]
adc dword [esi + ebx*2 + 0x5597ca05], esp
in al, dx
add eax, 0xec5597ca
popfd
xchg ecx, eax
pop edi
ljmp 0xa6f5
cmpsb byte [esi], byte es:[edi]
insb byte es:[edi], dx
inc edx
test dword [ecx], esi
xor eax, 0x285b56e2
mov ah, 0x9b
aad 0x23
push esi
pop ebx
sub byte [ebx + ebx*4 + 0x1c23d52e], dh
adc dword [0xf151c5ba], ebx
aad 0x23
sbb al, 0x11
sbb eax, 0xf151c5ba
stosd dword es:[edi], eax
aam 0xb7
push esi
and dword [edi - 0x7b4e9b1c], edx
ficom word [ebx + 0x37078773]
xchg dword [edi], eax
aaa
movsb byte es:[edi], byte [esi]
push ebp
loop 0x5cb0e2
mov bl, 0xcc
mov ch, 0xac
add byte [edi*2 - 0x332639d], ch
in al, 9
xchg ebx, eax
jne 0x5cb0de
push ss
sbb dword [edi + 0xe5e218d], 0x228d27d4
mov bl, 0xeb
xchg edi, eax
push eax
and al, byte [edx - 0x20b4c7ab]
mov ah, 0x53
scasd eax, dword es:[edi]
invalid
xchg edx, eax
push ebp
movsd dword es:[edi], dword [esi]
mov edi, 0x858d04e9
xchg ebp, eax
push edx
call 0x56594cc7
adc byte [esp + edi*2 - 0x67af82f3], ah
push edi
out 0x45, al
sub edx, dword [0x49cdeeac]
jmp 0x95e23deb
xchg esi, eax
hlt
xor al, 0xa4
sub byte [ebx + ebp*8 + 0x16], 0xb5
mov bl, 0xf0
pop ss
xor eax, 0xeae0550d
inc ecx
salc
mov dword [0xf409aa40], eax
stosb byte es:[edi], al
or esp, esi
dec esp
mov ecx, 0x9e8bb981
inc ebp
div dword [esi - 1]
stosd dword es:[edi], eax
daa
push 0xd5e81514
dec eax
sbb dword [ebp - 0x68], esp
mov es, word [ecx]
mov dh, 0x67
add ah, al
xchg esi, eax
jl 0x5cb0fd
mov ebx, dword [esi - 0x198b08bb]
jmp [ebx + 0x15146827]
xor eax, 0xd52b2ccc
cmc
sbb byte [ecx + 0x27], dl
lodsd eax, dword [esi]
fadd dword [edi + 0x31d1385]
fild qword gs:[edx]
test dword [ebx], edx
sbb eax, 0x2adf6503
cmpsb byte [esi], byte es:[edi]
sub eax, 0x70771e55
shl dword [edi], 1
jnp 0x5cb10a
std
insb byte es:[edi], dx
sbb byte [edx + 0x41de51fa], dh
adc esi, dword [esi - 0x3d]
dec edi
popfd
aam 0x71
loope 0x5cb1bb
sub eax, 0xbf2ba0a4
jecxz 0x5cb125
je 0x5cb1e8
jnp 0x5cb1b4
cli
stosd dword es:[edi], eax
inc ebp
pop ebx
sahf
fiadd word [0x6adef7d7]
insd dword es:[edi], dx
retf 0xcf0b
invalid
pop ss
push ecx
mov byte [eax], cl
lea esi, [0xc4a80377]
jb 0x5cb1a7
add ebp, dword [eax + 0x15e772c4]
adc edi, ebp
jne 0x5cb15e
adc eax, 0x9975ef11
ror byte [edi + 0x25cf4571], cl
mov bh, byte [esi]
inc ebp
insd dword es:[edi], dx
cmpsd dword [esi], dword es:[edi]
push ecx
test dword [si + 0xb], 0xd04558b1
or bl, ch
add eax, 0xcbe2b652
in al, 0x80
js 0x5cb219
pop ebx
pop edx
iretd
pop es
std
push esp
fmul dword [edi - 0x71]
and eax, dword [esi]
loopne 0x5cb243
add dh, ah
dec esp
invalid
add eax, 0xaf97d356
mov dh, 0x87
jmp 0x5cb268
imul edx, dword [ecx], 0x888791ee
mov dword [ebx - 0x684b73b9], ecx
pushfd
aaa
test ebx, edi
push esp
insd dword es:[edi], dx
add eax, 0x7d1469ae
int 0x7c
xchg esi, eax
je 0x5cb25b
sub ecx, dword [esp + esi + 0x15f8aa98]
xchg esp, eax
cmc
sbb ecx, dword [ebp - 0x3b]
lds esi, [ebp - 0x3b]
xchg dword [eax], ebx
invalid