Function at 0x44f480
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5755ec
mov eax, dword fs:[0]
push eax
sub esp, 0x198
mov eax, dword [0x5e1da0]
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 ebx, dword [ebp + 0x10]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
push 0
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x16c], ebx
call fcn.0045921f
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x44f4e5
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x184], eax
push 0x58a320
lea ecx, [ebp - 0x188]
mov dword [ebp - 4], 0
call fcn.00401100
push 0x58a320
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 4], 1
call fcn.00401100
mov byte [ebp - 4], 2
call fcn.0045b519
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x190]
push ecx
mov ecx, eax
call fcn.00420550
mov edx, dword [esi + 4]
mov eax, dword [ebp - 0x190]
add esi, 4
push edx
push eax
lea ecx, [ebp - 0x184]
push 0x590630
push ecx
mov byte [ebp - 4], 3
mov dword [ebp - 0x160], esi
call fcn.004026d0
mov esi, dword [ebp - 0x184]
add esp, 0x10
cmp dword [esi - 0xc], 0
jge 0x44f57e
push 0x80070057
call fcn.00401000
mov ecx, dword [ebp + 8]
movsx edx, byte [esi]
add ecx, 0x41
mov dword [ebp - 0x180], ecx
cmp edx, ecx
jne 0x44fd88
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
call fcn.004014c0
push 0
push 0x58a320
lea ecx, [ebp - 0x1a0]
call fcn.004014c0
lea eax, [ebp - 0x150]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x17c], eax
cmp eax, 0xffffffff
je 0x44fd88
push 0x58a320
lea ecx, [ebp - 0x154]
call fcn.00401100
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 4
call fcn.004014c0
lea esp, [esp]
test byte [ebp - 0x150], 0x10
jne 0x44f612
push 0
push 0x58a320
jmp 0x44f631
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
jmp 0x44f620
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44f620
sub eax, edx
push eax
lea ecx, [ebp - 0x124]
push ecx
lea ecx, [ebp - 0x154]
call fcn.004014c0
mov esi, dword [ebp - 0x154]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x44f729
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x44f729
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x44f729
inc eax
cmp eax, 8
jl 0x44f650
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x160]
mov eax, dword [edx]
push ecx
push eax
lea ecx, [ebp - 0x15c]
push 0x590628
push ecx
mov byte [ebp - 4], 0xa
call fcn.004026d0
mov ecx, dword [ebp - 0x15c]
mov esi, dword [ecx - 0xc]
add esp, 0x10
test esi, esi
js 0x44f574
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, esi
or eax, edx
jge 0x44f705
push esi
lea ecx, [ebp - 0x15c]
call fcn.00401560
mov ecx, dword [ebp - 0x15c]
lea edx, [esi + 1]
push edx
push ecx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx eax, byte [eax + 0x451ad8]
jmp dword [eax*4 + 0x451ac8]
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x160]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x190]
push eax
push ecx
lea edx, [ebp - 0x178]
push 0x59061c
push edx
mov byte [ebp - 4], 5
call fcn.004026d0
mov ecx, dword [ebp - 0x178]
add esp, 0x14
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x170], eax
cmp eax, 0xffffffff
je 0x44fba5
push 0x58a320
lea ecx, [ebp - 0x158]
call fcn.00401100
mov byte [ebp - 4], 6
test byte [ebp - 0x150], 0x10
jne 0x44f7c7
push 0
push 0x58a320
jmp 0x44f7e1
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44f7d0
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x158]
call fcn.004014c0
mov eax, dword [ebp - 0x158]
push 0x58e49c
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44fb56
mov ecx, dword [ebp - 0x158]
push 0x590618
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44fb56
mov esi, dword [ebp - 0x158]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x44f8f2
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x44f8f2
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x44f8f2
inc eax
cmp eax, 8
jl 0x44f842
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x154]
cmp dword [ecx - 0xc], 0
mov byte [ebp - 4], 7
push 3
je 0x44f917
lea edx, [ebp - 0x198]
push edx
lea ecx, [ebp - 0x190]
call fcn.004284e0
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x160]
push ecx
mov ecx, dword [edx]
mov edx, dword [eax]
push ecx
push edx
lea eax, [ebp - 0x164]
push 0x58e380
push eax
mov byte [ebp - 4], 8
call fcn.004026d0
mov eax, dword [ebp - 0x198]
add esp, 0x14
jmp 0x44f953
push 0
push 0x58a320
lea ecx, [ebp - 0x158]
call fcn.004014c0
mov edx, dword [ebp - 0x170]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x44fb64
lea ecx, [ebp - 0x194]
push ecx
lea ecx, [ebp - 0x190]
call fcn.004284e0
mov edx, dword [ebp - 0x160]
mov ecx, dword [edx]
mov edx, dword [eax]
push ecx
push edx
lea eax, [ebp - 0x164]
push 0x590628
push eax
mov byte [ebp - 4], 9
call fcn.004026d0
mov eax, dword [ebp - 0x194]
add esp, 0x10
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 7
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44f973
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x164]
mov esi, dword [edx - 0xc]
test esi, esi
js 0x44f574
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x44f9a7
push esi
lea ecx, [ebp - 0x164]
call fcn.00401560
mov edx, dword [ebp - 0x164]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx edx, byte [eax + 0x451b3c]
jmp dword [edx*4 + 0x451b2c]
mov eax, dword [ebp - 0x164]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov eax, dword [ebp - 0x164]
mov byte [esi + eax], 0
mov edx, dword [ebp - 0x158]
mov esi, dword [edx - 0xc]
test esi, esi
js 0x44f574
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x44fa1b
push esi
lea ecx, [ebp - 0x158]
call fcn.00401560
mov edx, dword [ebp - 0x158]
lea ecx, [esi + 1]
push ecx
push edx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx edx, byte [eax + 0x451ba0]
jmp dword [edx*4 + 0x451b90]
mov eax, dword [ebp - 0x158]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov eax, dword [ebp - 0x158]
mov byte [esi + eax], 0
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x44faf8
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x164]
mov eax, dword [ebx + 4]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x44faec
mov ecx, dword [ebp - 0x168]
cmp edi, dword [ecx + 8]
jge case.0x450927.1
mov edx, ecx
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x158]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44fb20
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x44fa68
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x158]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x164]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x164]
add eax, 0xfffffff0
mov byte [ebp - 4], 6
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44fb46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x170]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x44fb64
mov ecx, dword [ebp - 0x170]
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x44f7b5
mov edx, dword [ebp - 0x170]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x158]
add eax, 0xfffffff0
mov byte [ebp - 4], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fba5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x178]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x44fd33
mov eax, dword [ebp - 0x15c]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov ecx, dword [ebp - 0x15c]
mov byte [esi + ecx], 0
mov edx, dword [ebp - 0x154]
mov esi, dword [edx - 0xc]
test esi, esi
js 0x44f574
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x44fc14
push esi
lea ecx, [ebp - 0x154]
call fcn.00401560
mov edx, dword [ebp - 0x154]
lea eax, [esi + 1]
push eax
push edx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx ecx, byte [eax + 0x451c04]
jmp dword [ecx*4 + 0x451bf4]
mov eax, dword [ebp - 0x154]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov edx, dword [ebp - 0x154]
mov byte [esi + edx], 0
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x44fcf1
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebx + 4]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x44fce5
mov eax, dword [ebp - 0x168]
cmp edi, dword [eax + 8]
jge case.0x450927.1
mov ecx, eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x154]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x44fd19
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x44fc61
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x154]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x15c]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x15c]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44fd3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x17c]
lea ecx, [ebp - 0x150]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x44f600
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x154]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x44fd88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x160]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x180]
push edx
push eax
lea ecx, [ebp - 0x184]
push str._c:_s
push ecx
call fcn.004026d0
add esp, 0x10
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
call fcn.004014c0
push 0
push 0x58a320
lea ecx, [ebp - 0x1a0]
call fcn.004014c0
mov eax, dword [ebp - 0x184]
lea edx, [ebp - 0x150]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x17c], eax
cmp eax, 0xffffffff
je 0x4505df
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x44fe17
push 0x80004005
call fcn.00401000
call fcn.004584db
call fcn.00458513
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x158], eax
mov eax, 0x58a320
shr eax, 0x10
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x18c], eax
test eax, eax
jne 0x44fe60
mov ecx, 0x58a320
movzx esi, cx
push esi
call fcn.0045869c
test eax, eax
je 0x44fe72
push esi
push eax
lea ecx, [ebp - 0x158]
call fcn.004012b0
jmp 0x44fe72
push 0
push 0x58a320
lea ecx, [ebp - 0x158]
call fcn.004014c0
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0xc
call fcn.004014c0
jmp 0x44fe90
test byte [ebp - 0x150], 0x10
jne 0x44fea2
push 0
push 0x58a320
jmp 0x44fec1
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
jmp 0x44feb0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x44feb0
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x158]
call fcn.004014c0
mov eax, dword [ebp - 0x158]
push 0x58e49c
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450590
mov ecx, dword [ebp - 0x158]
push 0x590618
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450590
mov esi, dword [ebp - 0x158]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x44ff9f
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x44ff9f
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x44ff9f
inc eax
cmp eax, 8
jl 0x44ff22
mov edi, dword [ebp - 0x160]
mov eax, dword [edi]
mov esi, dword [eax - 0xc]
test esi, esi
js 0x44f574
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, esi
or eax, ecx
jge 0x44ff79
push esi
mov ecx, edi
call fcn.00401560
mov eax, dword [edi]
lea ecx, [esi + 1]
push ecx
push eax
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx edx, byte [eax + 0x451c68]
jmp dword [edx*4 + 0x451c58]
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x160]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x180]
push eax
push ecx
lea edx, [ebp - 0x170]
push str._c:_s_s
push edx
mov byte [ebp - 4], 0xd
call fcn.004026d0
mov ecx, dword [ebp - 0x170]
add esp, 0x14
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4503ea
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x18c], 0
mov byte [ebp - 4], 0xe
jne 0x450067
mov ecx, 0x58a320
movzx esi, cx
push esi
call fcn.0045869c
test eax, eax
je 0x450079
push esi
push eax
lea ecx, [ebp - 0x154]
call fcn.004012b0
jmp 0x450079
push 0
push 0x58a320
lea ecx, [ebp - 0x154]
call fcn.004014c0
mov byte [ebp - 4], 0xf
lea ecx, [ecx]
test byte [ebp - 0x150], 0x10
jne 0x450092
push 0
push 0x58a320
jmp 0x4500b1
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
jmp 0x4500a0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4500a0
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x154]
call fcn.004014c0
mov eax, dword [ebp - 0x154]
push 0x58e49c
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4503a7
mov ecx, dword [ebp - 0x154]
push 0x590618
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4503a7
mov esi, dword [ebp - 0x154]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x4501eb
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x4501eb
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x4501eb
inc eax
cmp eax, 8
jl 0x450112
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x160]
mov eax, dword [edx]
push ecx
push eax
lea ecx, [ebp - 0x15c]
push 0x590628
push ecx
mov byte [ebp - 4], 0x10
call fcn.004026d0
mov ecx, dword [ebp - 0x15c]
mov esi, dword [ecx - 0xc]
add esp, 0x10
test esi, esi
js 0x44f574
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, esi
or eax, edx
jge 0x4501c7
push esi
lea ecx, [ebp - 0x15c]
call fcn.00401560
mov ecx, dword [ebp - 0x15c]
lea edx, [esi + 1]
push edx
push ecx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx eax, byte [eax + 0x451ccc]
jmp dword [eax*4 + 0x451cbc]
push 0
push 0x58a320
lea ecx, [ebp - 0x154]
call fcn.004014c0
lea ecx, [ebp - 0x150]
push ecx
jmp 0x4503ae
mov eax, dword [ebp - 0x15c]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov ecx, dword [ebp - 0x15c]
mov byte [ecx + esi], 0
mov edx, dword [ebp - 0x154]
mov esi, dword [edx - 0xc]
test esi, esi
js 0x44f574
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x450259
push esi
lea ecx, [ebp - 0x154]
call fcn.00401560
mov edx, dword [ebp - 0x154]
lea eax, [esi + 1]
push eax
push edx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx ecx, byte [eax + 0x451d30]
jmp dword [ecx*4 + 0x451d20]
mov eax, dword [ebp - 0x154]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x16c]
mov byte [esi + edx], 0
mov eax, dword [eax + 8]
xor edi, edi
test eax, eax
jle 0x45034c
lea esp, [esp]
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x15c]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x45033a
mov edx, dword [ebp - 0x168]
cmp edi, dword [edx + 8]
jge case.0x450927.1
mov ecx, dword [ebp - 0x154]
mov eax, edx
mov eax, dword [eax + 4]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450378
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ecx + 8]
inc edi
cmp edi, eax
jl 0x4502b0
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x154]
push edx
push eax
call fcn.004595ce
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x15c]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebp - 0x15c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45039e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x150]
push ecx
jmp 0x4503ae
lea edx, [ebp - 0x150]
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x450080
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x154]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4503ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x170]
add eax, 0xfffffff0
mov byte [ebp - 4], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450580
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x17c]
lea edx, [ebp - 0x150]
push edx
push eax
jmp 0x45059e
mov eax, dword [edi]
cmp esi, dword [eax - 8]
jg 0x44f574
mov dword [eax - 0xc], esi
mov eax, dword [edi]
mov byte [esi + eax], 0
mov ecx, dword [ebp - 0x158]
mov esi, dword [ecx - 0xc]
test esi, esi
js 0x44f574
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
sub eax, esi
or eax, edx
jge 0x45046f
push esi
lea ecx, [ebp - 0x158]
call fcn.00401560
mov ecx, dword [ebp - 0x158]
lea edx, [esi + 1]
push edx
push ecx
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx eax, byte [eax + 0x451d94]
jmp dword [eax*4 + 0x451d84]
mov eax, dword [ebp - 0x158]
cmp esi, dword [eax - 8]
jg 0x44f574
mov ebx, dword [ebp - 0x16c]
mov dword [eax - 0xc], esi
mov ecx, dword [ebp - 0x158]
mov byte [esi + ecx], 0
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x450558
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x160]
mov ecx, dword [edx]
mov eax, dword [ebx + 4]
xor edx, edx
test ecx, ecx
setne dl
lea esi, [edi*4]
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x45054c
mov eax, dword [ebp - 0x168]
cmp edi, dword [eax + 8]
jge case.0x450927.1
mov ecx, dword [ebp - 0x158]
mov eax, dword [eax + 4]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450580
mov ebx, dword [ebp - 0x16c]
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x4504c2
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x158]
push edx
push eax
call fcn.004595ce
mov ecx, dword [ebp - 0x160]
mov eax, dword [ebx + 8]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x17c]
lea edx, [ebp - 0x150]
push edx
push eax
jmp 0x45059e
mov edx, dword [ebp - 0x17c]
lea ecx, [ebp - 0x150]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x44fe90
mov eax, dword [ebp - 0x17c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x158]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4505df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x180]
push ecx
lea edx, [ebp - 0x184]
push str._c:
push edx
call fcn.004026d0
add esp, 0xc
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x450614
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x198], eax
mov byte [ebp - 4], 0x11
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x450644
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x194], eax
mov edx, dword [ebp - 0x184]
lea ecx, [ebp - 0x150]
push ecx
push edx
mov byte [ebp - 4], 0x12
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
mov dword [ebp - 0x17c], edi
cmp edi, 0xffffffff
je 0x450f4b
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x450699
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x15c], eax
mov ebx, 0x58a320
shr ebx, 0x10
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x18c], ebx
test ebx, ebx
jne 0x4506e2
mov ecx, 0x58a320
movzx esi, cx
push esi
call fcn.0045869c
test eax, eax
je 0x4506f4
push esi
push eax
lea ecx, [ebp - 0x15c]
call fcn.004012b0
jmp 0x4506f4
push 0
push 0x58a320
lea ecx, [ebp - 0x15c]
call fcn.004014c0
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x14
call fcn.004014c0
lea ebx, [ebx]
test byte [ebp - 0x150], 0x10
je 0x450f02
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450726
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x15c]
call fcn.004014c0
mov esi, dword [ebp - 0x15c]
push 0x58e49c
push esi
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450fbf
push 0x590618
push esi
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450fbf
mov eax, dword [ebp - 0x180]
push esi
push eax
lea ecx, [ebp - 0x198]
push str._c:_s
push ecx
call fcn.004026d0
mov eax, dword [ebp - 0x198]
add esp, 0x10
lea edx, [ebp - 0x150]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x158], eax
cmp eax, 0xffffffff
je 0x450f02
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x154], eax
mov byte [ebp - 4], 0x15
test ebx, ebx
jne 0x45080c
mov ecx, 0x58a320
movzx esi, cx
push esi
call fcn.0045869c
test eax, eax
je 0x45081e
push esi
push eax
lea ecx, [ebp - 0x154]
call fcn.004012b0
jmp 0x45081e
push 0
push 0x58a320
lea ecx, [ebp - 0x154]
call fcn.004014c0
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x16
call fcn.004014c0
jmp 0x450840
test byte [ebp - 0x150], 0x10
je 0x450eab
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450856
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x154]
call fcn.004014c0
mov esi, dword [ebp - 0x154]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
cmp dword [esi - 4], 0
lea ecx, [esi - 4]
jl 0x45089e
cmp eax, dword [esi - 0x10]
jne 0x45089e
lea edi, [esi - 0x10]
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x4508cf
mov ecx, dword [esi - 0xc]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x450fd2
mov eax, dword [esi - 0xc]
mov dword [edi + 4], eax
mov eax, dword [esi - 0xc]
inc eax
push eax
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00552451
add esp, 0x10
add edi, 0x10
mov dword [ebp - 0x178], edi
mov esi, dword [edi - 0xc]
mov byte [ebp - 4], 0x17
test esi, esi
js 0x44f574
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x45090a
push esi
lea ecx, [ebp - 0x178]
call fcn.00401560
mov edi, dword [ebp - 0x178]
lea edx, [esi + 1]
push edx
push edi
call fcn.00552cd1
add esp, 8
cmp eax, 0x50
ja case.0x450927.1
movzx eax, byte [eax + 0x451df8]
jmp dword [eax*4 + 0x451de8]
cmp esi, dword [edi - 8]
jg 0x44f574
mov dword [edi - 0xc], esi
mov byte [esi + edi], 0
mov ecx, dword [ebp - 0x154]
push 0x58e49c
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450f80
mov edx, dword [ebp - 0x154]
push 0x590618
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450f80
push 0x590600
push edi
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450f80
push str.DATA
push edi
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450f80
mov edx, dword [ebp - 0x154]
mov esi, dword [edx - 0xc]
mov ebx, 1
cmp esi, 8
jne 0x450be2
xor eax, eax
nop
test eax, eax
js 0x44f574
cmp eax, esi
jg 0x44f574
mov cl, byte [eax + edx]
cmp cl, 0x30
jl 0x450be2
cmp eax, esi
jg 0x44f574
cmp cl, 0x39
jg 0x450be2
inc eax
cmp eax, 8
jl 0x4509d0
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x15c]
push ecx
lea edx, [ebp - 0x174]
push 0x58a764
push edx
mov byte [ebp - 4], 0x18
call fcn.004026d0
add esp, 0xc
lea ecx, [ebp - 0x174]
call fcn.00402580
lea ecx, [ebp - 0x154]
call fcn.00402580
mov edi, dword [ebp - 0x16c]
mov eax, dword [edi + 8]
xor esi, esi
test eax, eax
jle 0x450b13
test esi, esi
js case.0x450927.1
cmp esi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x16c]
mov eax, dword [eax + 4]
xor ecx, ecx
test edx, edx
setne cl
lea edi, [esi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + edi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x450afb
mov ecx, dword [ebp - 0x168]
cmp esi, dword [ecx + 8]
jge case.0x450927.1
mov edx, ecx
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x154]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + edi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450b3b
mov eax, dword [ebp - 0x16c]
mov eax, dword [eax + 8]
inc esi
cmp esi, eax
jl 0x450a71
mov edi, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x154]
push edx
push eax
call fcn.004595ce
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x174]
push ecx
push eax
mov ecx, edi
call fcn.004595ce
mov eax, dword [ebp - 0x174]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x17
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x450b61
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x15c]
push edx
mov edx, dword [ebp - 0x180]
push ecx
push edx
lea eax, [ebp - 0x194]
push str._c:_s_s
push eax
call fcn.004026d0
mov edx, dword [ebp - 0x194]
add esp, 0x14
lea ecx, [ebp - 0x150]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x170], eax
cmp eax, 0xffffffff
je 0x450e85
test ebx, ebx
jne 0x450e85
push 0x58a320
lea ecx, [ebp - 0x160]
call fcn.00401100
mov byte [ebp - 4], 0x19
lea esp, [esp]
test byte [ebp - 0x150], 0x10
jne 0x450be6
push 0
push 0x58a320
jmp 0x450c01
xor ebx, ebx
jmp 0x450b67
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x450bf0
sub eax, edx
push eax
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x160]
call fcn.004014c0
mov ecx, dword [ebp - 0x160]
push 0x58e49c
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450e36
mov edx, dword [ebp - 0x160]
push 0x590618
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450e36
mov esi, dword [ebp - 0x160]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x450ce1
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x450ce1
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x450ce1
inc eax
cmp eax, 8
jl 0x450c62
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x154]
cmp dword [eax - 0xc], 0
mov byte [ebp - 4], 0x1a
je 0x450d06
mov ecx, dword [ebp - 0x15c]
push eax
push ecx
lea edx, [ebp - 0x164]
push 0x590628
push edx
call fcn.004026d0
add esp, 0x10
jmp 0x450d21
push 0
push 0x58a320
lea ecx, [ebp - 0x160]
call fcn.004014c0
mov edx, dword [ebp - 0x170]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x450e44
mov eax, dword [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x164]
push 0x58a764
push ecx
call fcn.004026d0
add esp, 0xc
lea ecx, [ebp - 0x164]
call fcn.00402580
lea ecx, [ebp - 0x160]
call fcn.00402580
mov ebx, dword [ebp - 0x16c]
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x450dd8
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x164]
mov eax, dword [ebx + 4]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x450dcc
mov eax, dword [ebp - 0x168]
cmp edi, dword [eax + 8]
jge case.0x450927.1
mov ecx, dword [ebp - 0x160]
mov eax, dword [eax + 4]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x450e00
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x450d4a
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x160]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x164]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x164]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x19
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x450e26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x170]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x450e44
mov ecx, dword [ebp - 0x170]
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x450bd0
mov edx, dword [ebp - 0x170]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x160]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x17
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450e85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x178]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x16
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450eab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x158]
lea ecx, [ebp - 0x150]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov esi, eax
test esi, esi
jne 0x450840
mov eax, dword [ebp - 0x158]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x154]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x14
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450efc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x17c]
lea edx, [ebp - 0x150]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov ebx, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x15c]
test eax, eax
jne 0x450710
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450f4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x180]
push ecx
lea edx, [ebp - 0x184]
push str._c:
push edx
call fcn.004026d0
add esp, 0xc
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x450fd7
push 0x80004005
call fcn.00401000
mov edx, dword [ebp - 0x158]
lea ecx, [ebp - 0x150]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov esi, eax
lea eax, [edi - 0x10]
mov byte [ebp - 4], 0x16
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x450ec1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x450ec1
lea ecx, [ebp - 0x150]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
jmp 0x450f1c
call fcn.004015e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x19c], eax
mov byte [ebp - 4], 0x1b
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x451007
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x170], eax
mov byte [ebp - 4], 0x1c
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x451037
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0x184]
lea ecx, [ebp - 0x150]
push ecx
push edx
mov byte [ebp - 4], 0x1d
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x17c], eax
cmp eax, 0xffffffff
je 0x45192f
push 0x58a320
lea ecx, [ebp - 0x158]
call fcn.00401100
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x1e
call fcn.004014c0
mov ebx, dword [ebp - 0x16c]
lea esp, [esp]
test byte [ebp - 0x150], 0x10
je 0x4518e6
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4510b6
sub eax, edx
push eax
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x158]
call fcn.004014c0
mov ecx, dword [ebp - 0x158]
push 0x58e49c
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451ab9
mov edx, dword [ebp - 0x158]
push 0x590618
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451ab9
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x180]
push eax
push ecx
lea edx, [ebp - 0x19c]
push str._c:_s
push edx
call fcn.004026d0
mov ecx, dword [ebp - 0x19c]
add esp, 0x10
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x1a4], eax
cmp eax, 0xffffffff
je 0x4518e6
push 0x58a320
lea ecx, [ebp - 0x154]
call fcn.00401100
push 0
push 0x58a320
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 0x1f
call fcn.004014c0
nop
test byte [ebp - 0x150], 0x10
je 0x451897
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x451196
sub eax, edx
push eax
lea edx, [ebp - 0x124]
push edx
lea ecx, [ebp - 0x154]
call fcn.004014c0
mov eax, dword [ebp - 0x154]
push 0x58e49c
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451aa6
mov ecx, dword [ebp - 0x154]
push 0x590618
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451aa6
lea ecx, [ebp - 0x154]
call fcn.00402580
mov edx, dword [ebp - 0x154]
push str.DATA
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x45123d
mov eax, dword [ebp - 0x154]
push str.ARCHIVEDATA
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x451897
mov eax, dword [ebp - 0x154]
cmp dword [eax - 0xc], 0
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x180]
je 0x45126e
push eax
push ecx
push edx
lea eax, [ebp - 0x170]
push str._c:_s_s
push eax
call fcn.004026d0
add esp, 0x14
jmp 0x451284
push ecx
push edx
lea eax, [ebp - 0x170]
push str._c:_s
push eax
call fcn.004026d0
add esp, 0x10
mov edx, dword [ebp - 0x170]
lea ecx, [ebp - 0x150]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x16c], eax
cmp eax, 0xffffffff
je 0x451897
push 0x58a320
lea ecx, [ebp - 0x164]
call fcn.00401100
mov byte [ebp - 4], 0x20
jmp 0x4512c0
test byte [ebp - 0x150], 0x10
jne 0x4512d2
push 0
push 0x58a320
jmp 0x4512f1
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
jmp 0x4512e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4512e0
sub eax, edx
push eax
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x164]
call fcn.004014c0
mov ecx, dword [ebp - 0x164]
push 0x58e49c
push ecx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451848
mov edx, dword [ebp - 0x164]
push 0x590618
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451848
mov esi, dword [ebp - 0x164]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x4513d8
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x4513d8
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x4513d8
inc eax
cmp eax, 8
jl 0x451352
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x154]
cmp dword [eax - 0xc], 0
mov byte [ebp - 4], 0x23
je 0x45171c
mov ecx, dword [ebp - 0x158]
push eax
push ecx
lea edx, [ebp - 0x174]
push 0x590628
push edx
call fcn.004026d0
add esp, 0x10
jmp 0x451737
test edx, edx
je 0x451408
mov eax, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x158]
mov edx, dword [ebp - 0x180]
push esi
push eax
push ecx
push edx
lea eax, [ebp - 0x178]
push str._c:_s_s_s
push eax
call fcn.004026d0
add esp, 0x18
jmp 0x451431
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x180]
push ecx
push edx
push eax
lea ecx, [ebp - 0x178]
push str._c:_s_s
push ecx
call fcn.004026d0
add esp, 0x14
mov eax, dword [ebp - 0x178]
lea edx, [ebp - 0x150]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x18c], eax
cmp eax, 0xffffffff
je 0x451838
push 0x58a320
lea ecx, [ebp - 0x160]
call fcn.00401100
mov byte [ebp - 4], 0x21
jmp 0x451470
test byte [ebp - 0x150], 0x10
jne 0x451482
push 0
push 0x58a320
jmp 0x4514a1
lea eax, [ebp - 0x124]
lea edx, [eax + 1]
jmp 0x451490
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x451490
sub eax, edx
push eax
lea ecx, [ebp - 0x124]
push ecx
lea ecx, [ebp - 0x160]
call fcn.004014c0
mov edx, dword [ebp - 0x160]
push 0x58e49c
push edx
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4516d4
mov eax, dword [ebp - 0x160]
push 0x590618
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x4516d4
mov esi, dword [ebp - 0x160]
mov edx, dword [esi - 0xc]
cmp edx, 8
jne 0x451588
xor eax, eax
test eax, eax
js 0x44f574
cmp eax, edx
jg 0x44f574
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x451588
cmp eax, edx
jg 0x44f574
cmp cl, 0x39
jg 0x451588
inc eax
cmp eax, 8
jl 0x451502
call fcn.004587ad
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x44f4db
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x164]
cmp dword [eax - 0xc], 0
mov ecx, dword [ebp - 0x154]
mov edx, dword [ebp - 0x158]
mov byte [ebp - 4], 0x22
je 0x4515ad
push eax
push ecx
push edx
lea eax, [ebp - 0x15c]
push 0x58e380
push eax
call fcn.004026d0
add esp, 0x14
jmp 0x4515c3
push 0
push 0x58a320
lea ecx, [ebp - 0x160]
call fcn.004014c0
mov edx, dword [ebp - 0x18c]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x4516e2
push ecx
push edx
lea eax, [ebp - 0x15c]
push 0x590628
push eax
call fcn.004026d0
add esp, 0x10
lea ecx, [ebp - 0x15c]
call fcn.00402580
lea ecx, [ebp - 0x160]
call fcn.00402580
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x451676
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebx + 4]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x45166a
mov ecx, dword [ebp - 0x168]
cmp edi, dword [ecx + 8]
jge case.0x450927.1
mov edx, ecx
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x160]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x45169e
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x4515e6
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x160]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x15c]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x15c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x21
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4516c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x18c]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x4516e2
mov ecx, dword [ebp - 0x18c]
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x451470
mov edx, dword [ebp - 0x18c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x160]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x20
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x45182c
mov eax, dword [ebp - 0x158]
push eax
lea ecx, [ebp - 0x174]
push 0x590628
push ecx
call fcn.004026d0
add esp, 0xc
lea ecx, [ebp - 0x174]
call fcn.00402580
lea ecx, [ebp - 0x164]
call fcn.00402580
mov eax, dword [ebx + 8]
xor edi, edi
test eax, eax
jle 0x4517ea
test edi, edi
js case.0x450927.1
cmp edi, eax
jge case.0x450927.1
mov edx, dword [ebp - 0x174]
mov eax, dword [ebx + 4]
xor ecx, ecx
test edx, edx
setne cl
lea esi, [edi*4]
test ecx, ecx
je 0x44f4db
mov eax, dword [eax + esi]
push edx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
je 0x4517de
mov edx, dword [ebp - 0x168]
cmp edi, dword [edx + 8]
jge case.0x450927.1
mov ecx, dword [ebp - 0x164]
mov eax, edx
mov eax, dword [eax + 4]
xor edx, edx
test ecx, ecx
setne dl
test edx, edx
je 0x44f4db
mov eax, dword [eax + esi]
push ecx
push eax
call fcn.00552f28
add esp, 8
test eax, eax
sete al
test al, al
jne 0x451812
mov eax, dword [ebx + 8]
inc edi
cmp edi, eax
jl 0x45175a
mov ecx, dword [ebp - 0x168]
mov eax, dword [ecx + 8]
lea edx, [ebp - 0x164]
push edx
push eax
call fcn.004595ce
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x174]
push ecx
push eax
mov ecx, ebx
call fcn.004595ce
mov eax, dword [ebp - 0x174]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x20
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x451838
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x16c]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x451856
mov ecx, dword [ebp - 0x16c]
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4512c0
mov edx, dword [ebp - 0x16c]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x164]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x1f
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451897
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x1a4]
lea eax, [ebp - 0x150]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x451180
mov edx, dword [ebp - 0x1a4]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x154]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x1e
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4518e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edx, [ebp - 0x150]
push edx
mov esi, dword [ebp - 0x17c]
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4510a0
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x158]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x1d
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45192f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x178]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x1c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451955
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x170]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x1b
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45197b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x19c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x12
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4519a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x194]
add eax, 0xfffffff0
mov byte [ebp - 4], 0x11
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4519c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x198]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4519ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x190]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451a13
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1a0]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451a39
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x188]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451a5f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x184]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x451a88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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.005520da
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp - 0x1a4]
lea ecx, [ebp - 0x150]
push ecx
push edx
jmp 0x4518a5
lea ecx, [ebp - 0x150]
push ecx
jmp 0x4518ed