Function at 0x42ab50
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48bbb8
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push esi
push edi
mov eax, dword [0x4b47a8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 8]
push edi
call fcn.00429a30
test eax, eax
jne 0x42b189
call fcn.0044d630
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x42aba8
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], esi
call fcn.0044d630
xor ecx, ecx
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x42abd4
push 0x80004005
call fcn.00401db0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
mov eax, dword [edi + 0x1c]
push eax
lea ecx, [ebp - 0x1c]
push 0x49a408
push ecx
call fcn.004067e0
add esp, 0xc
cmp dword [edi + 0x1c], esi
jle 0x42ac44
test esi, esi
jl 0x42ac84
cmp esi, dword [edi + 0x1c]
jge 0x42ac84
mov edx, dword [edi + 0x18]
lea eax, [edx + esi*4]
mov eax, dword [eax]
push eax
lea ebx, [esi + 1]
push ebx
lea ecx, [ebp - 0x20]
push 0x49a444
push ecx
call fcn.004067e0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx - 0xc]
add esp, 0x10
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0040a140
cmp esi, 0xa
jg 0x42ac44
mov esi, ebx
cmp esi, dword [edi + 0x1c]
jl 0x42ac01
push 0x46
push 0x49a450
lea ecx, [ebp - 0x1c]
call fcn.0040a140
mov esi, dword [ebp - 0x1c]
xor ebx, ebx
push ebx
push 4
push esi
call fcn.0044f968
cmp eax, 6
jne 0x42b143
call fcn.0044d630
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x42ac89
push 0x80004005
call fcn.00401db0
call fcn.0044d52a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 2
push 0xa
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x68], vtable.CJiaMiDataList.0
call fcn.004511ec
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x48], ebx
call fcn.00451114
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], ebx
cmp ebx, dword [edi + 0x1c]
jge 0x42b09f
test ebx, ebx
jl 0x42ac84
cmp ebx, dword [edi + 0x1c]
jge 0x42ac84
mov eax, dword [edi + 0x18]
lea ecx, [ebx*4]
add eax, ecx
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
jge 0x42acf3
push 0x80070057
call fcn.00401db0
mov cl, byte [eax]
mov byte [ebp - 0x28], cl
mov edx, dword [ebp - 0x28]
push 0
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.004146b0
push str.mi.dat
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov byte [ebp - 4], 5
call fcn.00406070
add esp, 0x18
mov byte [ebp - 4], 6
mov ecx, dword [eax]
mov esi, dword [ebp - 0x18]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x42ad7c
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x42ad6c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42ad6c
push eax
call fcn.00406990
mov dword [ebp - 0x24], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42ad61
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x24]
add ecx, 0x10
mov dword [ebp - 0x18], ecx
jmp 0x42ad79
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x18]
call fcn.004068a0
mov ebx, dword [ebp - 0x14]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42ad9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42adc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x68]
push edx
call fcn.0040a7d0
cmp ebx, dword [edi + 0x44]
jge 0x42ac84
cmp ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x40]
mov ecx, dword [eax + ebx*4]
jge 0x42ac84
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x18]
add edx, edx
add edx, edx
add eax, edx
push ecx
push eax
lea ebx, [ebp - 0x68]
call fcn.0040acb0
test eax, eax
je 0x42ae16
push 1
lea ecx, [ebp - 0x18]
push ecx
mov ecx, ebx
call fcn.0040a570
mov esi, dword [ebp - 0x14]
jmp 0x42aefd
push str.mi.dat
lea edx, [ebp - 0x34]
push 0x4b9130
push edx
call fcn.00406070
add esp, 0xc
mov byte [ebp - 4], 7
mov ecx, dword [eax]
mov esi, dword [ebp - 0x18]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x42ae88
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x42ae7b
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x42ae7b
push eax
call fcn.00406990
mov dword [ebp - 0x24], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x42ae70
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x24]
add ecx, 0x10
mov dword [ebp - 0x18], ecx
jmp 0x42ae88
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x18]
call fcn.004068a0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42aeab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x68]
push edx
call fcn.0040a7d0
mov eax, dword [ebp - 0x14]
cmp eax, dword [edi + 0x44]
jge 0x42ac84
cmp eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x40]
mov ecx, dword [ecx + eax*4]
jge 0x42ac84
mov esi, dword [ebp - 0x14]
mov eax, dword [edi + 0x18]
lea edx, [esi*4]
add eax, edx
push ecx
push eax
lea ebx, [ebp - 0x68]
call fcn.0040acb0
test eax, eax
je 0x42aefd
push 1
lea edx, [ebp - 0x18]
push edx
mov ecx, ebx
call fcn.0040a570
mov byte [ebp - 4], 8
cmp esi, dword [edi + 0x1c]
mov dword [ebp - 0x24], 0xffffffff
jge 0x42ac84
mov eax, dword [edi + 0x18]
lea ecx, [esi*4]
add eax, ecx
push str..hjm
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00406070
add esp, 0xc
mov byte [ebp - 4], 9
mov ebx, dword [eax]
push ebx
call fcn.0044d603
xor edx, edx
mov dword [ebp - 0x38], eax
div dword [0x4b61b4]
mov eax, dword [0x4b61b0]
test eax, eax
je 0x42af90
mov esi, dword [eax + edx*4]
test esi, esi
je 0x42af90
mov ecx, dword [ebp - 0x38]
cmp dword [esi + 0xc], ecx
jne 0x42af8b
xor eax, eax
test ebx, ebx
setne al
test eax, eax
jne 0x42af73
push 0x80004005
call fcn.00401db0
mov eax, dword [esi]
push ebx
push eax
call fcn.00469714
add esp, 8
test eax, eax
sete al
movzx eax, al
test eax, eax
jne 0x42af94
mov esi, dword [esi + 8]
jmp 0x42af52
xor esi, esi
jmp 0x42af9f
mov edx, dword [esi + 4]
mov dword [ebp - 0x24], edx
mov esi, 1
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42afc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test esi, esi
je 0x42b02c
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.0046b8f1
mov eax, dword [ebp - 0x14]
add esp, 4
test eax, eax
jl 0x42ac84
cmp eax, dword [edi + 0x1c]
jge 0x42ac84
mov edx, dword [edi + 0x18]
lea eax, [edx + eax*4]
push str..hjm
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00406070
add esp, 0xc
mov byte [ebp - 4], 0xa
mov ebx, dword [eax]
call fcn.0042cef0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b02c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 4
jmp 0x42b03e
mov esi, dword [ebp - 0x14]
test esi, esi
jl 0x42ac84
cmp esi, dword [edi + 0x1c]
jge 0x42ac84
mov ecx, dword [edi + 0x18]
push str..hjm
lea edx, [ecx + esi*4]
push edx
lea eax, [ebp - 0x44]
push eax
call fcn.00406070
mov ecx, dword [eax]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b092
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 1
mov dword [ebp - 0x14], esi
mov ebx, esi
jmp 0x42acc3
mov dword [ebp - 0x68], vtable.CJiaMiDataList.0
lea ebx, [ebp - 0x68]
mov byte [ebp - 4], 0xc
call fcn.0040abd0
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 2
call fcn.0045120f
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b0e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b104
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b12a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b163
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42b189
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4