Function at 0x487320
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c57a0
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x62c7a8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x178], esi
mov eax, dword [esi + 0x234]
mov byte [eax + esi + 0x1ac], 0
cmp dword [esi + 0x188], 0xffffffff
jle 0x4874d0
mov ecx, dword [esi + 0x14f74]
add ecx, 8
call fcn.0044e020
mov edi, eax
test edi, edi
je 0x4874d0
nop dword [eax]
mov ecx, dword [esi + 0x14f74]
push edi
add ecx, 8
call fcn.0044e210
cmp dword [edi + 0x118], 0
jne 0x4873b2
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
jmp 0x4873c9
imul ecx, dword [esi + 0x188], 0x980
push edi
mov ecx, dword [ecx + esi + 0x2d8]
call fcn.0050da90
mov ecx, dword [esi + 0x14f74]
add ecx, 8
call fcn.0044e020
mov edi, eax
test edi, edi
jne 0x487390
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov ecx, dword [esi + 0x180]
mov dword [ebp - 4], eax
mov eax, ecx
sar eax, 8
mov byte [ebp - 0x157], al
mov eax, ecx
sar eax, 0x10
mov byte [ebp - 0x158], cl
mov byte [ebp - 0x156], al
lea eax, [ebp - 0x158]
sar ecx, 0x18
push eax
mov byte [ebp - 0x155], cl
lea ecx, [ebp - 0x174]
push edi
mov byte [ebp - 0x154], 0
call fcn.0043ec40
mov eax, dword [0x630ad0]
lea edx, [ebp - 0x174]
mov word [ebp - 0x15c], 0x42
push edx
push edi
mov ecx, dword [eax + 0x34]
lea edx, [ebp - 0x15c]
push edx
push 2
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x174]
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x4874d0
mov ecx, dword [ebp - 0x16c]
mov eax, 0x66666667
sub ecx, edi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, edi
cmp ecx, 0x1000
jb 0x4874a8
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x487cd5
push ecx
push edi
call fcn.005596dc
add esp, 8
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
lea eax, [esi + 0x18c]
xor ecx, ecx
cmp byte [eax], 0x20
jne 0x4874e9
nop dword [eax]
lea eax, [eax + 1]
inc ecx
cmp byte [eax], 0x20
je 0x4874e0
add ecx, 0x18c
mov byte [ebp - 0x15f], 0
add ecx, esi
push ecx
mov dword [ebp - 0x158], ecx
mov al, byte [ecx]
mov byte [ebp - 0x160], al
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x50]
push str.users_s_s.use
push eax
call fcn.0043d380
mov cl, byte [ebp - 0x50]
add esp, 0x10
test cl, cl
je 0x487540
lea eax, [ebp - 0x50]
nop dword [eax]
cmp cl, 0x20
jne 0x487538
mov byte [eax], 0x2d
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x487530
lea eax, [ebp - 0x50]
push 0x5d2cf8
push eax
call fcn.00569402
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x487c25
lea eax, [esi + 0x1ac]
xor edi, edi
cmp byte [eax], 0x20
jne 0x487571
lea eax, [eax + 1]
inc edi
cmp byte [eax], 0x20
je 0x487568
movsd xmm0, qword [0x5d2d78]
sub esp, 8
movsd qword [esp], xmm0
push 0x5d52c0
push ebx
call fcn.0043d350
lea eax, [esi + 0x1ac]
add eax, edi
push eax
push dword [ebp - 0x158]
push str._s_n_s_n
push ebx
call fcn.0043d350
push dword [esi + 0x14f48]
push dword [esi + 0x14f44]
push dword [esi + 0x23c]
push dword [esi + 0x238]
push dword [esi + 0x14f34]
push str._d__lu__ld__d__d_n
push ebx
call fcn.0043d350
push dword [esi + 0x14fb0]
push dword [esi + 0x14fac]
push str._d__d_n
push ebx
call fcn.0043d350
movzx eax, word [esi + 0x14f92]
add esp, 0x4c
push eax
movzx eax, word [esi + 0x14f90]
push eax
movzx eax, word [esi + 0x14f8e]
push eax
movzx eax, word [esi + 0x14f8c]
push eax
movzx eax, word [esi + 0x14f88]
push eax
movzx eax, word [esi + 0x14f8a]
push eax
movzx eax, word [esi + 0x14f86]
push eax
movzx eax, word [esi + 0x14f84]
push eax
push str._d__d__d__d__d__d__d__d_n
push ebx
call fcn.0043d350
movzx eax, word [esi + 0x14fa2]
push eax
movzx eax, word [esi + 0x14fa0]
push eax
movzx eax, word [esi + 0x14f9e]
push eax
movzx eax, word [esi + 0x14f9c]
push eax
movzx eax, word [esi + 0x14f98]
push eax
movzx eax, word [esi + 0x14f9a]
push eax
movzx eax, word [esi + 0x14f96]
push eax
movzx eax, word [esi + 0x14f94]
push eax
push str._d__d__d__d__d__d__d__d_n
push ebx
call fcn.0043d350
add esp, 0x50
push dword [esi + 0x14fa4]
push 0x5d543c
push ebx
call fcn.0043d350
lea edi, [esi + 0x2d1]
mov dword [ebp - 0x164], 0
add esp, 0xc
mov dword [ebp - 0x168], edi
nop dword [eax]
movzx eax, byte [edi]
push eax
movzx eax, byte [edi - 1]
push eax
movzx eax, byte [edi - 2]
push eax
push dword [edi - 0xd]
lea eax, [edi - 0x31]
push eax
push str._s_n_d__d__d__d_n
push ebx
call fcn.0043d350
movzx eax, byte [edi + 3]
push eax
movzx eax, byte [edi + 2]
push eax
movzx eax, byte [edi + 1]
push eax
push dword [edi - 9]
push str._d__d__d__d_n
push ebx
call fcn.0043d350
movzx eax, byte [edi - 3]
push eax
movzx eax, byte [edi - 4]
push eax
movzx eax, byte [edi - 5]
push eax
push dword [edi - 0x11]
push str._d__d__d__d_n
push ebx
call fcn.0043d350
movss xmm0, dword [edi + 0x2f]
add esp, 0x4c
cvtps2pd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push 0x5d52c0
push ebx
call fcn.0043d350
push dword [edi + 0x27]
push dword [edi + 0x2b]
push str._ld__ld_n
push ebx
call fcn.0043d350
push dword [edi + 0x23]
push dword [edi + 0x1f]
push dword [edi + 0x1b]
push dword [edi + 0x17]
push str._ld__ld__ld__ld_n
push ebx
call fcn.0043d350
push dword [edi + 0x43]
push dword [edi + 0x3f]
push dword [edi + 0x3b]
push dword [edi + 0x37]
push str._d__d__d__d_n
push ebx
call fcn.0043d350
movzx eax, word [edi + 0x47]
add esp, 0x50
push dword [edi + 0x8ff]
push dword [edi + 0x4b]
push eax
push str._ld__ld__d_n
push ebx
call fcn.0043d350
mov ecx, dword [ebp - 0x164]
lea eax, [edi + 0x53]
add esp, 0x14
mov dword [ebp - 0x158], eax
cmp ecx, dword [esi + 0x188]
jne 0x4877a6
mov ecx, eax
call fcn.00515400
jmp 0x4877ac
mov dword [ebp - 0x158], eax
movzx eax, word [edi + 0x61]
push eax
movzx eax, word [edi + 0x5f]
push eax
movzx eax, word [edi + 0x5d]
push eax
movzx eax, word [edi + 0x5b]
push eax
movzx eax, word [edi + 0x57]
push eax
movzx eax, word [edi + 0x59]
push eax
movzx eax, word [edi + 0x55]
push eax
mov eax, dword [ebp - 0x158]
movzx eax, word [eax]
push eax
push str._d__d__d__d__d__d__d__d_n
push ebx
call fcn.0043d350
lea esi, [edi + 0x83]
add esp, 0x28
mov edi, 2
lea eax, [esi - 0x20]
push eax
push 0x5d1658
push ebx
call fcn.0043d350
movss xmm0, dword [esi]
add esp, 4
movzx eax, byte [esi - 7]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
movzx eax, byte [esi - 8]
push eax
push dword [esi - 0xc]
movzx eax, byte [esi - 0xd]
push eax
movzx eax, byte [esi - 0xe]
push eax
movzx eax, byte [esi - 0xf]
push eax
movzx eax, byte [esi - 0x10]
push eax
push str._d__d__d__d__ld__d__d__f_n
push ebx
call fcn.0043d350
add esp, 0x2c
lea esi, [esi + 0x34]
sub edi, 1
jne 0x4877f2
mov esi, dword [ebp - 0x178]
mov eax, dword [ebp - 0x164]
mov edi, dword [ebp - 0x168]
cmp eax, dword [esi + 0x188]
jne 0x487cb3
cmp dword [esi + 0x14f70], 0
je 0x487a58
mov ecx, esi
call fcn.0046fde0
cmp eax, 9
jle 0x487a58
mov eax, dword [esi + 0x14f70]
add eax, 0x184
cmp byte [eax], 0
jle 0x4878a3
push eax
push 0x5d1658
push ebx
call fcn.0043d350
add esp, 0xc
jmp 0x4878b1
push str.NO_NAME_n
push ebx
call fcn.0043d350
add esp, 8
mov edx, dword [esi + 0x14f70]
sub esp, 8
movss xmm0, dword [edx + 0x1a8]
movzx eax, byte [edx + 0x1a7]
cvtps2pd xmm0, xmm0
mov ecx, dword [edx + 0x1b0]
movsd qword [esp], xmm0
movss xmm0, dword [edx + 0x1f4]
push eax
movzx eax, byte [edx + 0x1a6]
push eax
movzx eax, byte [edx + 0x1a5]
push eax
movzx eax, byte [edx + 0x1a4]
push eax
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [edx + 0x234]
push dword [edx + 0x1b8]
push dword [edx + 0x1bc]
push dword [edx + 0x1b4]
push ecx
push ecx
push dword [edx + 0x224]
push dword [edx + 0x220]
push str._d__d__ld__ld__ld__ld__ld__d__f__d__d__d__d__f_n
push ebx
call fcn.0043d350
mov eax, dword [esi + 0x14f70]
push 0x20
movzx eax, byte [eax + 0x1a7]
mov byte [edi + 0x926], al
mov eax, dword [esi + 0x14f70]
movzx eax, byte [eax + 0x1a6]
mov byte [edi + 0x925], al
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1b4]
mov dword [edi + 0x943], eax
mov eax, dword [esi + 0x14f70]
movzx eax, byte [eax + 0x1a5]
mov byte [edi + 0x924], al
mov eax, dword [esi + 0x14f70]
movzx eax, byte [eax + 0x1a4]
mov byte [edi + 0x923], al
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1a8]
mov dword [edi + 0x927], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x220]
mov dword [edi + 0x92f], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x224]
mov dword [edi + 0x933], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1ac]
mov dword [edi + 0x93b], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1b0]
mov dword [edi + 0x93f], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1bc]
mov dword [edi + 0x94b], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1b8]
mov dword [edi + 0x947], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x234]
mov dword [edi + 0x937], eax
mov eax, dword [esi + 0x14f70]
mov eax, dword [eax + 0x1f4]
mov dword [edi + 0x92b], eax
lea eax, [edi + 0x903]
push eax
mov eax, dword [esi + 0x14f70]
add eax, 0x184
push 0x20
push eax
call fcn.0044cdd0
add esp, 0x58
jmp 0x487b30
cmp dword [esi + 0x14f34], 0
jne 0x487a8b
mov ecx, esi
call fcn.0046fde0
cmp eax, 0xa
jge 0x487a8b
push str.NO_MONSTER_n
push ebx
call fcn.0043d350
push str.0_0_0_0_0_0_0_0_0.0_0_0_0_0_0.0_n
push ebx
call fcn.0043d350
add esp, 0x10
jmp 0x487b30
cmp byte [edi + 0x903], 0
lea eax, [edi + 0x903]
jg 0x487cc1
push str.NO_NAME_n
push ebx
call fcn.0043d350
add esp, 8
movss xmm0, dword [edi + 0x927]
sub esp, 8
movzx eax, byte [edi + 0x926]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
movss xmm0, dword [edi + 0x92b]
push eax
movzx eax, byte [edi + 0x925]
push eax
movzx eax, byte [edi + 0x924]
push eax
movzx eax, byte [edi + 0x923]
push eax
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push dword [edi + 0x937]
push dword [edi + 0x947]
push dword [edi + 0x94b]
push dword [edi + 0x943]
push dword [edi + 0x93b]
push dword [edi + 0x93f]
push dword [edi + 0x933]
push dword [edi + 0x92f]
push str._d__d__ld__ld__ld__ld__ld__d__f__d__d__d__d__f_n
push ebx
call fcn.0043d350
add esp, 0x48
lea esi, [edi + 0xcb]
mov dword [ebp - 0x158], 4
mov edi, 5
push dword [esi + 0x50]
push dword [esi]
push str.__d__d
push ebx
call fcn.0043d350
add esp, 0x10
add esi, 4
sub edi, 1
jne 0x487b45
sub dword [ebp - 0x158], 1
jne 0x487b40
push 0x5d3c78
push ebx
call fcn.0043d350
mov esi, dword [ebp - 0x168]
add esp, 8
add esi, 0x16b
mov edi, 6
push ebx
mov ecx, esi
call fcn.005248c0
add esi, 0x138
sub edi, 1
jne 0x487b88
mov edi, dword [ebp - 0x168]
lea eax, [edi + 0x8bf]
push eax
push dword [edi + 0x8bb]
push str._d_n_s_n
push ebx
call fcn.0043d350
mov ecx, dword [edi + 7]
add esp, 0x10
push ebx
call fcn.0050e8b0
mov ecx, dword [edi + 0xb]
push ebx
call fcn.0050e8b0
mov ecx, dword [edi + 0xf]
push ebx
call fcn.0050e8b0
mov ecx, dword [edi + 0x13]
push ebx
call fcn.0050e8b0
mov eax, dword [ebp - 0x164]
add edi, 0x980
mov esi, dword [ebp - 0x178]
inc eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x168], edi
cmp eax, 8
jl 0x4876b0
mov ecx, dword [esi + 0x14f78]
push ebx
call fcn.0050e8b0
push ebx
mov ecx, esi
call fcn.00487ce0
push ebx
call fcn.00569114
add esp, 4
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x150]
push str._s.crc
push eax
call fcn.0043d380
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00449e80
mov edi, dword [ebp - 0x17c]
lea eax, [ebp - 0x150]
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 0x14
push 0
push eax
call ebx
lea eax, [ebp - 0x150]
push 0x5d2cf8
push eax
call fcn.00569402
push edi
mov esi, eax
push 0x5d2cf4
push esi
call fcn.0043d350
push esi
call fcn.00569114
add esp, 0x18
lea eax, [ebp - 0x150]
push 2
push eax
call ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005596ea
mov esp, ebp
pop ebp
ret
lea eax, [edi + 0x903]
test eax, eax
je 0x487a9e
push eax
push 0x5d1658
push ebx
call fcn.0043d350
add esp, 0xc
jmp 0x487aac
call fcn.00590d60
int3