Function at 0x55b320
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b016f
mov eax, dword fs:[0]
push eax
sub esp, 0x54c
mov eax, dword [0x616040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x53c], eax
mov eax, 0x621ed0
push ebx
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x540], 2
mov dword [ebp - 4], 0
call fcn.00557660
test al, al
je 0x55b3fe
mov ecx, dword [0x621f28]
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, 0x1048
jne 0x55b3fe
mov ecx, dword [0x621f00]
mov eax, 0x92492493
sub ecx, dword [0x621efc]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x55b3fe
cmp byte [0x621f40], 0
jne 0x55b3fe
mov ecx, 0x621ed8
call fcn.00404190
mov ecx, dword [0x621ee0]
mov eax, 0x92492493
sub ecx, dword [0x621ed8]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x80
jae 0x55b3fe
push 0x80
mov ecx, 0x621ed8
call fcn.00404750
cmp dword [ebp + 0x14], 0
mov eax, dword [ebp + 0xc]
jle 0x55b612
cmp eax, 0xcea
je 0x55b619
mov ecx, dword [0x621f28]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov edx, eax
lea ecx, [ebp - 0x550]
call fcn.0058bba0
mov byte [ebp - 4], 1
mov eax, 0x92492493
mov ecx, dword [0x621edc]
sub ecx, dword [0x621ed8]
imul ecx
mov ebx, dword [ebp + 0x14]
mov eax, 0x92492493
add edx, ecx
mov ecx, dword [0x621ee0]
sub ecx, dword [0x621ed8]
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
add edi, ebx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jae 0x55b496
cmp edi, 0x9249249
jbe 0x55b48b
push str.vector_T__too_long
call fcn.00546d3a
push edi
mov ecx, 0x621ed8
call fcn.00404750
xor edi, edi
cmp edi, ebx
jge 0x55b5e8
mov eax, dword [0x621f28]
mov ecx, dword [0x621f28]
mov eax, dword [eax]
call dword [eax + 0x14]
push eax
lea ecx, [ebp - 0x54c]
call fcn.00402f60
mov byte [ebp - 4], 2
call fcn.0041505f
mov ecx, eax
xor eax, eax
test ecx, ecx
setne al
test eax, eax
jne 0x55b4dc
push 0x80004005
call fcn.00402740
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x538], eax
mov byte [ebp - 4], 3
mov eax, dword [0x621f28]
mov ecx, dword [0x621f28]
mov esi, dword [ebp - 0x550]
mov ebx, dword [ebp - 0x54c]
mov eax, dword [eax]
call dword [eax + 0x28]
push esi
add eax, edi
push eax
push 4
push ebx
lea eax, [ebp - 0x538]
push str._s__0d_s
push eax
call fcn.00402d50
mov esi, dword [ebp - 0x538]
add esp, 0x18
add esi, 0xfffffff0
push esi
call fcn.00403660
add eax, 0x10
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], eax
add esp, 4
mov eax, 0x128e
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov word [ebp - 0x18], ax
mov byte [ebp - 0x16], 0
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 4
push eax
mov ecx, 0x621ed8
call fcn.00404050
mov byte [ebp - 4], 3
or ecx, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b5a0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b5bb
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
or ecx, 0xffffffff
mov edx, dword [ebp - 0x54c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b5df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp + 0x14]
inc edi
jmp 0x55b498
mov byte [ebp - 4], 0
or ecx, 0xffffffff
mov edx, dword [ebp - 0x550]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b60c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
cmp eax, 0xcea
jne 0x55b620
mov edx, 2
jmp 0x55b630
cmp eax, 0x1faf
jne 0x55b62e
mov edx, 1
jmp 0x55b630
xor edx, edx
mov eax, 0x621ed0
cmp byte [eax + 0x71], 0
je 0x55b8c1
mov al, byte [eax + 0x70]
mov dword [ebp - 0x538], 3
mov byte [ebp - 0x531], al
cmp al, 0xa
je 0x55b743
mov eax, 0x621ed0
mov ecx, dword [eax + 0xc]
lea ebx, [eax + 8]
sub ecx, dword [ebx]
lea edi, [eax + 0x14]
mov esi, dword [edi + 4]
mov eax, 0x92492493
sub esi, dword [edi]
imul ecx
sar esi, 2
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
je 0x55b743
mov al, byte [ebp - 0x531]
cmp al, 0x1b
je 0x55b743
cmp al, 0x1c
je 0x55b743
mov ecx, dword [ebp - 0x53c]
mov edx, 0x98b00
call fcn.00547e70
cmp eax, 2
jne 0x55b743
mov esi, dword [edi]
mov eax, 0x621ed0
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp esi, dword [eax + 0x18]
je 0x55b6e4
mov edi, edi
push dword [esi]
call edi
add esi, 4
cmp esi, dword [0x621ee8]
jne 0x55b6d0
mov eax, 0x621ed0
lea ecx, [eax + 0x14]
call fcn.00404360
mov esi, dword [ebx]
mov eax, 0x621ed0
cmp esi, dword [eax + 0xc]
je 0x55b707
push dword [esi]
call edi
add esi, 0x1c
cmp esi, dword [0x621edc]
jne 0x55b6f8
mov ecx, ebx
call fcn.00404190
mov ecx, dword [ebx + 8]
mov eax, 0x92492493
sub ecx, dword [ebx]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x80
jae 0x55b739
push 0x80
mov ecx, ebx
call fcn.00404750
mov dword [ebp - 0x538], 4
mov ecx, 0x621ed0
add ecx, 0x20
mov eax, dword [ecx + 8]
sub eax, dword [ecx]
sar eax, 2
cmp eax, 0x80
jae 0x55b764
push 0x80
call fcn.00404b90
mov eax, 0x621ed0
xor ebx, ebx
cmp byte [eax + 0x70], bl
je 0x55b799
mov ebx, dword [eax + 0x18]
mov ecx, dword [eax + 0xc]
sub ebx, dword [eax + 0x14]
sub ecx, dword [eax + 8]
mov eax, 0x92492493
imul ecx
sar ebx, 2
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x621ed0
xor esi, esi
jmp 0x55b7a0
cmp esi, ebx
jge 0x55b7d3
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
sub eax, ecx
sar eax, 2
cmp eax, esi
ja 0x55b7bd
push str.invalid_vector_T__subscript
call fcn.00546d68
lea eax, [ecx + esi*4]
mov ecx, 0x621ef0
push eax
call fcn.00404290
inc esi
mov eax, 0x621ed0
jmp 0x55b7a0
xor edi, edi
mov ecx, dword [eax + 0xc]
lea esi, [eax + 8]
sub ecx, dword [esi]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x55b915
mov eax, dword [0x621ee8]
sub eax, dword [0x621ee4]
sar eax, 2
cmp edi, eax
jb 0x55b915
mov ecx, 0x621ed0
mov ebx, dword [ecx + 0x18]
mov edi, dword [ecx + 0x14]
cmp edi, ebx
je 0x55b848
lea ecx, [ecx]
mov edx, dword [edi]
or ecx, 0xffffffff
sub edx, 0x10
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b83c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 4
cmp edi, ebx
jne 0x55b820
mov ecx, 0x621ed0
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x18], eax
mov byte [ecx + 0x71], 0
mov ebx, dword [esi + 4]
mov edi, dword [esi]
cmp edi, ebx
je 0x55b883
jmp 0x55b860
mov edx, dword [edi]
or ecx, 0xffffffff
sub edx, 0x10
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55b87c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0x1c
cmp edi, ebx
jne 0x55b860
mov eax, dword [esi]
mov dword [esi + 4], eax
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x80
jae 0x55b8b3
push 0x80
mov ecx, esi
call fcn.00404750
mov edx, dword [ebp - 0x538]
mov eax, 0x621ed0
mov ebx, dword [ebp + 0x10]
mov al, byte [eax + 0x70]
cmp al, 0xa
je 0x55b8d4
cmp al, 0xc
je 0x55b8d4
cmp al, 0x1b
je 0x55b8d4
cmp al, 0x1c
jne 0x55b8d9
mov edx, 4
xor eax, eax
mov dword [ebp - 0x544], 0
mov dword [ebp - 0x548], 8
cmp ebx, 0x9fbf1
jne 0x55b8fc
mov eax, 1
mov ecx, dword [0x621a14]
test ecx, ecx
jne 0x55b9e1
mov dword [ebp - 0x544], ecx
jmp 0x55bb3d
mov eax, dword [0x621ee8]
lea ecx, [edi + ebx]
sub eax, dword [0x621ee4]
sar eax, 2
cmp ecx, eax
jae 0x55b956
mov eax, 0x621ed0
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
sub eax, edx
sar eax, 2
cmp eax, ecx
ja 0x55b948
push str.invalid_vector_T__subscript
call fcn.00546d68
lea eax, [edx + ecx*4]
mov ecx, 0x621ef0
push eax
call fcn.00404290
mov ecx, dword [esi + 4]
mov eax, 0x92492493
sub ecx, dword [esi]
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x55b9d6
mov ecx, dword [esi + 4]
mov eax, 0x92492493
sub ecx, dword [esi]
imul ecx
mov eax, 0x92492493
add edx, ecx
mov ecx, dword [0x621edc]
sub ecx, dword [0x621ed8]
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
imul ecx
sub esi, edi
add edx, ecx
dec esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
ja 0x55b9ba
push str.invalid_vector_T__subscript
call fcn.00546d68
mov eax, dword [0x621ed8]
lea ecx, [esi*8]
sub ecx, esi
lea eax, [eax + ecx*4]
mov ecx, 0x621ef0
push eax
call fcn.00404290
inc edi
mov eax, 0x621ed0
jmp 0x55b7d5
push edx
lea edx, [ebp - 0x548]
push edx
push dword [eax*4 + 0x621ebc]
call ecx
mov eax, dword [ebp - 0x544]
cmp eax, 2
je 0x55ba10
cmp eax, 3
je 0x55ba10
cmp eax, 4
je 0x55ba10
cmp eax, 5
jne 0x55bb3d
mov ebx, 0x621ed0
mov edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x14]
cmp esi, edi
je 0x55ba43
nop
mov edx, dword [esi]
or ecx, 0xffffffff
sub edx, 0x10
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55ba3c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 4
cmp esi, edi
jne 0x55ba20
mov eax, dword [ebx + 0x14]
mov edi, 0x621ed0
mov dword [ebx + 0x18], eax
mov eax, 0x92492493
mov ecx, dword [edi + 0xc]
sub ecx, dword [edi + 8]
imul ecx
mov eax, dword [ebx + 0x1c]
sub eax, dword [ebx + 0x14]
add edx, ecx
sar edx, 4
mov ecx, edx
sar eax, 2
shr ecx, 0x1f
add ecx, edx
add ecx, ecx
cmp eax, ecx
jae 0x55ba91
cmp ecx, 0x3fffffff
jbe 0x55ba88
push str.vector_T__too_long
call fcn.00546d3a
push ecx
lea ecx, [ebx + 0x14]
call fcn.00404b90
mov esi, dword [edi + 8]
cmp esi, dword [edi + 0xc]
je 0x55baa9
push esi
mov ecx, 0x621ee4
call fcn.00404290
add esi, 0x1c
jmp 0x55ba94
mov byte [edi + 0x71], 1
mov ebx, dword [edi + 0xc]
mov esi, dword [edi + 8]
cmp esi, ebx
je 0x55bada
mov edx, dword [esi]
or ecx, 0xffffffff
sub edx, 0x10
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x55bad3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0x1c
cmp esi, ebx
jne 0x55bab7
mov eax, dword [edi + 8]
mov dword [edi + 0xc], eax
mov ecx, dword [edi + 0x10]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x80
jae 0x55bb0c
push 0x80
lea ecx, [edi + 8]
call fcn.00404750
mov eax, 0x621ed0
mov al, byte [eax + 0x70]
cmp al, 0xa
je 0x55bb30
cmp al, 0xb
je 0x55bb30
cmp al, 0xc
je 0x55bb30
cmp al, 0xd
je 0x55bb30
cmp al, 0x1b
je 0x55bb30
cmp al, 0x1c
je 0x55bb30
cmp al, 0x94
jne 0x55bb3a
mov dword [ebp - 0x544], 0
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x544]
inc eax
cmp eax, 6
ja case.0x55bb49.0
jmp dword [eax*4 + 0x55bdf4]
mov ebx, 2
jmp 0x55bdd2
mov ecx, dword [ebp - 0x53c]
call fcn.00549300
mov ebx, eax
jmp 0x55bdd2
push dword [ebp - 0x53c]
lea ecx, [ebp - 0x530]
call fcn.00555e80
xor eax, eax
mov byte [ebp - 4], 5
mov dword [ebp - 0x430], ebx
cmp ebx, 0x9fbf1
jne 0x55bb96
mov eax, 1
mov ecx, dword [0x621a6c]
test ecx, ecx
jne 0x55bba4
xor eax, eax
jmp 0x55bbb8
push 0x10002
push dword [eax*4 + 0x621ebc]
call ecx
mov ebx, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], 0x1fa8
cmp ebx, 0x9fbf1
jne 0x55bbd7
mov ecx, 1
mov eax, dword [0x621a3c]
test eax, eax
je 0x55bbf3
push 0x1fa8
push 0x10002
push dword [ecx*4 + 0x621ebc]
call eax
lea ecx, [ebp - 0x530]
mov dword [ebp - 0x37c], 0x23b3
call fcn.005559d0
mov ebx, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x530]
mov dword [ebp - 0x540], ebx
call fcn.00555b20
jmp 0x55bdd2
push dword [ebp - 0x53c]
lea ecx, [ebp - 0x530]
call fcn.00555e80
xor eax, eax
mov byte [ebp - 4], 6
mov dword [ebp - 0x430], ebx
cmp ebx, 0x9fbf1
jne 0x55bc4e
mov eax, 1
mov ecx, dword [0x621a6c]
test ecx, ecx
jne 0x55bc5c
xor eax, eax
jmp 0x55bc70
push 0x10002
push dword [eax*4 + 0x621ebc]
call ecx
mov ebx, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], 0x1fa9
cmp ebx, 0x9fbf1
jne 0x55bc8f
mov ecx, 1
mov eax, dword [0x621a3c]
test eax, eax
je 0x55bbf3
push 0x1fa9
jmp 0x55bbe5
push dword [ebp - 0x53c]
lea ecx, [ebp - 0x530]
call fcn.00555e80
xor eax, eax
mov byte [ebp - 4], 7
mov dword [ebp - 0x430], ebx
cmp ebx, 0x9fbf1
jne 0x55bcd0
mov eax, 1
mov ecx, dword [0x621a6c]
test ecx, ecx
jne 0x55bcde
xor eax, eax
jmp 0x55bcf2
push 0x10002
push dword [eax*4 + 0x621ebc]
call ecx
mov ebx, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], 0x1fa6
cmp ebx, 0x9fbf1
jne 0x55bd11
mov ecx, 1
mov eax, dword [0x621a3c]
test eax, eax
je 0x55bbf3
push 0x1fa6
jmp 0x55bbe5
push dword [ebp - 0x53c]
lea ecx, [ebp - 0x530]
call fcn.00555e80
xor eax, eax
mov byte [ebp - 4], 8
mov dword [ebp - 0x430], ebx
cmp ebx, 0x9fbf1
jne 0x55bd52
mov eax, 1
mov ecx, dword [0x621a6c]
test ecx, ecx
jne 0x55bd60
xor eax, eax
jmp 0x55bd74
push 0x10002
push dword [eax*4 + 0x621ebc]
call ecx
mov ebx, dword [ebp - 0x430]
xor ecx, ecx
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x420], 0x1fa7
cmp ebx, 0x9fbf1
jne 0x55bd93
mov ecx, 1
mov eax, dword [0x621a3c]
test eax, eax
je 0x55bbf3
push 0x1fa7
jmp 0x55bbe5
mov ebx, 1
jmp 0x55bdd2
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00527e5c
mov esp, ebp
pop ebp
ret 0x10