Function at 0x10017b30
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x1012272f
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x1015d2f0]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1015d2f0]
xor eax, esp
push eax
lea eax, [esp + 0x234]
mov dword fs:[0], eax
mov eax, dword [esp + 0x244]
mov ebx, dword [esp + 0x24c]
mov esi, ecx
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], esi
call fcn.10018d10
xor edi, edi
mov dword [esp + 0x23c], edi
cmp dword [esi + 0x18], 0x10
jb 0x10017ba4
mov edx, dword [esi + 4]
lea eax, [esi + 4]
jmp 0x10017ba7
lea edx, [esi + 4]
push 0x40
mov ecx, 0x21
lea esi, [esp + 0x50]
call fcn.10005c30
test eax, eax
jne 0x10017bdc
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0x4c]
lea ecx, [esp + ecx + 0x44]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x10017bd5
or eax, 4
push edi
push eax
call fcn.10001aa0
push 2
lea esi, [esp + 0x48]
call fcn.10018b80
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
mov ecx, dword [esp + eax + 0x4c]
test cl, 6
jne 0x10017c1f
mov ecx, dword [esp + eax + 0x6c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 1
push 1
push edi
lea eax, [esp + 0xe0]
push eax
call edx
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xd4]
jmp 0x10017c2d
mov eax, dword [0x10138188]
xor ecx, ecx
mov dword [esp + 0xe0], edi
lea ebp, [ecx + eax]
cmp ebp, edi
mov dword [esp + 0x2c], ebp
jg 0x10017c97
lea esi, [esp + 0x4c]
call fcn.10005d10
test eax, eax
jne 0x10017c66
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0x4c]
lea ecx, [esp + ecx + 0x44]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x10017c5f
or eax, 4
push edi
push eax
call fcn.10001aa0
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 4
lea ecx, [esp + 0x9c]
mov dword [esp + 0x23c], 0xffffffff
call fcn.10018df0
mov dword [esp + 0x9c], vtable.std::ios_base.0
jmp 0x10018449
push ebp
call fcn.100f2fca
add esp, 4
push ebp
mov edi, eax
push 0
push edi
call fcn.100f8db0
add esp, 0xc
push 0
lea esi, [esp + 0x48]
call fcn.10018b80
push ebp
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.10019110
lea esi, [esp + 0x4c]
call fcn.10005d10
test eax, eax
jne 0x10017cf4
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0x4c]
lea ecx, [esp + ecx + 0x44]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10017cec
or eax, 4
push 0
push eax
call fcn.10001aa0
mov dword [esp + 0x1b8], 0xf
mov dword [esp + 0x1b4], 0
mov byte [esp + 0x1a4], 0
mov byte [esp + 0x23c], 1
lea ecx, [esp + 0x1a0]
test ebp, ebp
ja 0x10017d2f
push 0xffffffffffffffff
push ebp
call fcn.10005880
jmp 0x10017d37
push 0
push ebp
call fcn.100056f0
mov eax, dword [esp + 0x1a4]
mov esi, 0x10
cmp dword [esp + 0x1b8], esi
jae 0x10017d53
lea eax, [esp + 0x1a4]
push ebp
push edi
push eax
call fcn.100f8ff0
add esp, 0xc
push edi
call fcn.100f407a
add esp, 4
lea ecx, [esp + 0x1a0]
lea edx, [esp + 0x1bc]
call fcn.10026720
mov byte [esp + 0x23c], 2
cmp dword [esp + 0x1d0], 0
jne 0x10017e2c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 4
cmp dword [esp + 0x1d4], esi
jb 0x10017db3
mov edx, dword [esp + 0x1c0]
push edx
call fcn.100f4085
add esp, 4
xor ebx, ebx
mov edi, 0xf
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d0], ebx
mov byte [esp + 0x1c0], bl
cmp dword [esp + 0x1b8], esi
jb 0x10017de8
mov eax, dword [esp + 0x1a4]
push eax
call fcn.100f4085
add esp, 4
lea ecx, [esp + 0x9c]
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1b4], ebx
mov byte [esp + 0x1a4], bl
mov dword [esp + 0x23c], 0xffffffff
call fcn.10018df0
lea ecx, [esp + 0x9c]
mov dword [esp + 0x9c], vtable.std::ios_base.0
push ecx
jmp 0x10018451
lea edx, [esp + 0xec]
push edx
call fcn.10004960
mov eax, dword [esp + 0x38]
push str._enc
push eax
lea ecx, [esp + 0x1e0]
push ecx
mov byte [esp + 0x248], 3
call fcn.10008390
add esp, 0xc
mov byte [esp + 0x23c], 4
mov edx, dword [esp + 0x1dc]
cmp dword [esp + 0x1f0], esi
jae 0x10017e7a
lea edx, [esp + 0x1dc]
push 0x40
mov ecx, 0x22
lea esi, [esp + 0xf4]
call fcn.10005c30
test eax, eax
jne 0x10017ebd
mov edx, dword [esp + 0xec]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0xf4]
lea ecx, [esp + ecx + 0xec]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10017eb5
or eax, 4
push 0
push eax
call fcn.10001aa0
push 3
push 0x1013e084
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x214], 0xf
mov dword [esp + 0x210], 0
mov byte [esp + 0x200], 0
call fcn.10004290
mov byte [esp + 0x23c], 5
cmp dword [esp + 0x20c], 0x10
mov eax, dword [esp + 0x1f8]
jae 0x10017f0e
lea eax, [esp + 0x1f8]
push 3
push eax
lea ecx, [esp + 0xf4]
call fcn.10004410
mov edi, 1
push edi
mov dword [esp + 0x38], edi
call sub.WS2_32.dll_htons
movzx eax, ax
push 2
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0xf4]
mov dword [esp + 0x3c], eax
call fcn.10004410
push edi
mov dword [esp + 0x24], edi
call sub.WS2_32.dll_htons
movzx edx, ax
push 2
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xf4]
mov dword [esp + 0x28], edx
call fcn.10004410
mov ecx, dword [esp + 0x248]
push ecx
call sub.WS2_32.dll_htonl
push 4
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0xf4]
mov dword [esp + 0x48], eax
call fcn.10004410
push ebx
lea esi, [esp + 0x188]
call fcn.10032260
add esp, 4
push edi
push 0
lea eax, [esp + 0x1c]
mov byte [esp + 0x244], 6
mov bl, 0x2e
push eax
mov ecx, esi
mov byte [esp + 0x20], bl
call fcn.10008220
mov esi, eax
cmp esi, 0xffffffff
jle 0x100180ba
mov byte [esp + 0x14], bl
lea ebx, [ebx]
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x188]
cmp ecx, 0x10
jb 0x1001826d
mov edi, edx
test edx, edx
je 0x1001801a
mov eax, edx
cmp ecx, 0x10
jae 0x10017ffb
lea eax, [esp + 0x188]
cmp eax, edi
ja 0x1001801a
mov eax, edx
cmp ecx, 0x10
jae 0x1001800d
lea eax, [esp + 0x188]
mov ebx, dword [esp + 0x198]
add eax, ebx
cmp edi, eax
jbe 0x1001802d
call fcn.100f3f6c
mov ecx, dword [esp + 0x19c]
mov edx, dword [esp + 0x188]
lea ebx, [esp + 0x184]
mov eax, ebx
mov dword [esp + 0x178], edi
cmp eax, 0xfffffffc
je 0x10018080
cmp ecx, 0x10
mov ecx, edx
jae 0x10018050
lea ecx, [esp + 0x188]
mov ebp, dword [esp + 0x198]
lea eax, [edi + esi]
add ecx, ebp
cmp eax, ecx
ja 0x10018077
cmp dword [esp + 0x19c], 0x10
mov ecx, edx
jae 0x10018073
lea ecx, [esp + 0x188]
cmp eax, ecx
jae 0x1001807c
call fcn.100f3f6c
mov ebp, dword [esp + 0x2c]
lea eax, [edi + esi]
push eax
push ebx
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x190]
push edx
call fcn.10018a80
push 1
push 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x190]
call fcn.10008220
mov esi, eax
cmp esi, 0xffffffff
jg 0x10017fd0
mov eax, dword [esp + 0x188]
mov ebx, 0x10
cmp dword [esp + 0x19c], ebx
jae 0x100180d6
lea eax, [esp + 0x188]
push eax
call fcn.100f39b6
movzx eax, ax
add esp, 4
push eax
mov dword [esp + 0x28], eax
call sub.WS2_32.dll_htons
movzx ecx, ax
push 2
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ecx
push edx
lea ecx, [esp + 0xf4]
call fcn.10004410
call fcn.10032070
mov byte [esp + 0x1b], al
push 1
lea eax, [esp + 0x1f]
push eax
lea ecx, [esp + 0xf4]
call fcn.10004410
mov eax, dword [esp + 0x1d0]
push eax
mov esi, eax
call sub.WS2_32.dll_htonl
push 4
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0xf4]
mov dword [esp + 0x44], eax
call fcn.10004410
mov eax, dword [esp + 0x1c0]
cmp dword [esp + 0x1d4], ebx
jae 0x1001815f
lea eax, [esp + 0x1c0]
push esi
push eax
lea ecx, [esp + 0xf4]
call fcn.10004410
and ebp, 0x8000000f
jns 0x1001817a
dec ebp
or ebp, 0xfffffff0
inc ebp
movzx eax, bp
push eax
mov dword [esp + 0x2c], eax
call sub.WS2_32.dll_htons
movzx edx, ax
push 2
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0xf4]
mov dword [esp + 0x30], edx
call fcn.10004410
lea ecx, [esp + 0x1bc]
push ecx
lea edx, [esp + 0x214]
push edx
call fcn.10027260
add esp, 8
mov byte [esp + 0x23c], 7
mov eax, dword [esp + 0x224]
push eax
mov dword [esp + 0x34], eax
call sub.WS2_32.dll_htonl
mov dword [esp + 0x30], eax
push 4
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xf4]
call fcn.10004410
mov eax, dword [esp + 0x214]
cmp dword [esp + 0x228], ebx
jae 0x10018200
lea eax, [esp + 0x214]
mov ecx, dword [esp + 0x224]
push ecx
push eax
lea ecx, [esp + 0xf4]
call fcn.10004410
lea ecx, [esp + 0xec]
call fcn.10004510
lea esi, [esp + 0xf0]
call fcn.10005d10
test eax, eax
jne 0x1001825d
mov edx, dword [esp + 0xec]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0xf4]
lea ecx, [esp + ecx + 0xec]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x10018255
or eax, 4
push 0
push eax
call fcn.10001aa0
mov ebp, dword [esp + 0x38]
lea edi, [ebp + 4]
cmp dword [ebp + 0x18], ebx
jb 0x10018279
mov eax, dword [edi]
jmp 0x1001827b
lea edi, [esp + 0x188]
jmp 0x10017fed
mov eax, edi
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call esi
test eax, eax
jne 0x100182ae
mov eax, dword [esp + 0x1c]
mov dword [eax], 4
mov eax, dword [esp + 0x1dc]
cmp dword [esp + 0x1f0], ebx
jae 0x100182a9
lea eax, [esp + 0x1dc]
push eax
call esi
jmp 0x100182da
cmp dword [ebp + 0x18], ebx
jb 0x100182b7
mov eax, dword [edi]
jmp 0x100182b9
mov eax, edi
mov ecx, dword [esp + 0x1dc]
cmp dword [esp + 0x1f0], ebx
jae 0x100182d0
lea ecx, [esp + 0x1dc]
push eax
push ecx
call fcn.100f4a53
add esp, 8
cmp dword [esp + 0x228], ebx
jb 0x100182f3
mov ecx, dword [esp + 0x214]
push ecx
call fcn.100f4085
add esp, 4
xor ebp, ebp
mov edi, 0xf
mov dword [esp + 0x228], edi
mov dword [esp + 0x224], ebp
mov byte [esp + 0x214], 0
cmp dword [esp + 0x19c], ebx
jb 0x10018329
mov edx, dword [esp + 0x188]
push edx
call fcn.100f4085
add esp, 4
mov dword [esp + 0x19c], edi
mov dword [esp + 0x198], ebp
mov byte [esp + 0x188], 0
cmp dword [esp + 0x20c], ebx
jb 0x10018358
mov eax, dword [esp + 0x1f8]
push eax
call fcn.100f4085
add esp, 4
mov dword [esp + 0x20c], edi
mov dword [esp + 0x208], ebp
mov byte [esp + 0x1f8], 0
cmp dword [esp + 0x1f0], ebx
jb 0x10018387
mov ecx, dword [esp + 0x1dc]
push ecx
call fcn.100f4085
add esp, 4
lea ecx, [esp + 0x140]
mov dword [esp + 0x1f0], edi
mov dword [esp + 0x1ec], ebp
mov byte [esp + 0x1dc], 0
mov byte [esp + 0x23c], 2
call fcn.10004a40
lea edx, [esp + 0x140]
mov esi, vtable.std::ios_base.0
push edx
mov dword [esp + 0x144], esi
call fcn.100f2744
add esp, 4
cmp dword [esp + 0x1d4], ebx
jb 0x100183e6
mov eax, dword [esp + 0x1c0]
push eax
call fcn.100f4085
add esp, 4
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d0], ebp
mov byte [esp + 0x1c0], 0
cmp dword [esp + 0x1b8], ebx
jb 0x10018415
mov ecx, dword [esp + 0x1a4]
push ecx
call fcn.100f4085
add esp, 4
lea ecx, [esp + 0x9c]
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1b4], ebp
mov byte [esp + 0x1a4], 0
mov dword [esp + 0x23c], 0xffffffff
call fcn.10018df0
mov dword [esp + 0x9c], esi
lea edx, [esp + 0x9c]
push edx
call fcn.100f2744
add esp, 4
mov ecx, dword [esp + 0x234]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x218]
xor ecx, esp
call fcn.100f30a6
add esp, 0x22c
ret 0xc