Function at 0x47e610
Capabilities:
Enumerate files on windows
Enumerate files recursively
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f3b0c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3e4
mov eax, dword [0x50d0e0]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x48]
push 0x50e548
xor ebp, ebp
push ecx
mov ecx, dword [esp + 0x40c]
mov dword [esp + 0x404], ebp
call fcn.004086e0
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov byte [esp + 0x3fc], 1
je 0x47e6b3
cmp dword [ecx - 0xc], ebp
jge 0x47e681
mov edx, dword [0x50d0e4]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x47e686
cmp dword [eax - 0xc], ebp
jge 0x47e696
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.004021f0
jmp 0x47e6af
lea ecx, [esp + 0x10]
call fcn.00402350
mov esi, dword [esi]
mov dword [esp + 0x10], esi
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov esi, dword [0x50d0e4]
mov byte [esp + 0x3fc], 0
lea edx, [eax - 0xc]
cmp edx, esi
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
je 0x47e6f0
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47e6ec
mov eax, dword [esp + 0x48]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
cmp eax, 5
jge 0x47e72d
mov eax, dword [0x50d0e4]
lea edx, [ecx - 0xc]
cmp edx, eax
je 0x47eb90
add ecx, 0xfffffff4
push ecx
call esi
test eax, eax
jg 0x47eb90
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
xor eax, eax
jmp 0x47f8e5
mov esi, dword [str..qmv_.m4v_.f4v_.tim_.swf_.csf_.scm_.ts_.tp_.mkv_.dat_.vob_.qt_.ram_.wav_.wmv_.asf_.rm_.rmvb_.mov_.avi_.mpg_.mpeg_.mpe_.3gp_.mp2_.mp4_.flv_._mv_.wm_.rp_.rpm_.rt_.rsc_.3gp2_.3gpp_.acc_.aif_.aifc_.aiff_.asx_.bik_.flc_.roq_.d2v_.dsa_.dss_.dsv_.m1v_.m2p_.m2v_.m4b_.mkv_.mod_.ogm_.pmp_.pm2_.pss_.m4p_.mv_.m2ts_.evo_.3g2_.wmp_.wm_.ivf_.rmm_.mjp_.pva_.rat_.dvd_.smk_.tpr_.vg2_.vid_.vp6_.vp7_.amv_.fli_.pmp2_.mts_.drc]
mov ecx, dword [0x50d0e0]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp esi, ebp
mov dword [esp + 0x40], ecx
je 0x47e78e
mov edx, esi
shr edx, 0x10
jne 0x47e760
and esi, 0xffff
lea ecx, [esp + 0x40]
push esi
call fcn.00407b60
jmp 0x47e78e
push esi
call ebx
mov edi, eax
cmp edi, ebp
je 0x47e78e
push edi
lea ecx, [esp + 0x44]
call fcn.00402190
test eax, eax
je 0x47e78e
mov edx, dword [esp + 0x40]
lea eax, [edi + edi]
push eax
lea ecx, [edi + edi + 2]
push esi
push ecx
push edx
call fcn.00402060
add esp, 0x10
mov esi, dword [str..smv_.spx_.au_.flac_.ra_.amr_.m4a_.mpga_.mp5_.dsm_.mpa_.mac_.dts_.mpga_.wma_.mp3_.midi_.ac3_.aac_.ogg_.mid_.ape_.cda_.rmi_.tta_.tta]
mov eax, dword [0x50d0e0]
cmp esi, ebp
mov byte [esp + 0x3fc], 2
mov dword [esp + 0x34], eax
je 0x47e7f0
mov ecx, esi
shr ecx, 0x10
jne 0x47e7c2
and esi, 0xffff
lea ecx, [esp + 0x34]
push esi
call fcn.00407b60
jmp 0x47e7f0
push esi
call ebx
mov edi, eax
cmp edi, ebp
je 0x47e7f0
push edi
lea ecx, [esp + 0x38]
call fcn.00402190
test eax, eax
je 0x47e7f0
mov ecx, dword [esp + 0x34]
lea edx, [edi + edi]
push edx
lea eax, [edi + edi + 2]
push esi
push eax
push ecx
call fcn.00402060
add esp, 0x10
mov esi, dword [str..bmp_.gif_.jpg_.tif_.jpeg_.jpe_.pcd_.bnm_.qti.qtf_.qtif_.tif_.tiff_.tiff]
mov edx, dword [0x50d0e0]
cmp esi, ebp
mov byte [esp + 0x3fc], 3
mov dword [esp + 0x30], edx
je 0x47e853
mov eax, esi
shr eax, 0x10
jne 0x47e825
and esi, 0xffff
lea ecx, [esp + 0x30]
push esi
call fcn.00407b60
jmp 0x47e853
push esi
call ebx
mov edi, eax
cmp edi, ebp
je 0x47e853
push edi
lea ecx, [esp + 0x34]
call fcn.00402190
test eax, eax
je 0x47e853
mov eax, dword [esp + 0x30]
lea ecx, [edi + edi]
push ecx
lea edx, [edi + edi + 2]
push esi
push edx
push eax
call fcn.00402060
add esp, 0x10
lea ecx, [esp + 0x58]
call fcn.00427790
lea ecx, [esp + 0x7c]
call fcn.00427790
lea ecx, [esp + 0x24]
xor esi, esi
call fcn.00427790
push str.files
lea ecx, [esp + 0x84]
mov word [esp + 0x84], bp
call fcn.00406940
mov edi, dword [esp + 0x404]
lea ecx, [esp + 0x24]
lea edx, [esp + 0x80]
push ecx
lea ebx, [edi + 4]
push edx
push str.selectNodes
mov ecx, ebx
mov byte [esp + 0x408], 8
call fcn.004080f0
mov dword [edi], eax
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x80]
mov byte [esp + 0x3fc], 7
push eax
call edi
mov ecx, dword [esp + 0x404]
cmp dword [ecx], ebp
jl 0x47e8f0
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x47e8f0
push eax
lea ecx, [esp + 0x5c]
call fcn.004080d0
mov esi, 1
lea ecx, [esp + 0x24]
mov byte [esp + 0x3fc], 6
call fcn.0042ca10
cmp esi, ebp
jne 0x47e90e
mov dword [esp + 0x90], ebp
jmp 0x47e959
xor esi, esi
mov word [esp + 0x60], bp
lea edx, [esp + 0x60]
lea ecx, [esp + 0x58]
push edx
push str.length
mov byte [esp + 0x404], 9
call fcn.00469ae0
cmp eax, ebp
mov dword [esp + 0x54], eax
jl 0x47e944
cmp word [esp + 0x60], 3
jne 0x47e944
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x60]
push eax
call edi
xor ecx, ecx
cmp esi, ebp
setg cl
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x24]
xor esi, esi
call fcn.00427790
push str.file
lea ecx, [esp + 0x84]
mov word [esp + 0x84], bp
call fcn.00406940
lea edx, [esp + 0x24]
lea eax, [esp + 0x80]
push edx
push eax
push str.selectNodes
mov ecx, ebx
mov byte [esp + 0x408], 0xb
call fcn.004080f0
mov ebx, dword [esp + 0x404]
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0x400], 0xa
mov dword [ebx], eax
call edi
cmp dword [ebx], ebp
jl 0x47e9d7
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x47e9d7
push eax
lea ecx, [esp + 0x80]
call fcn.004080d0
mov esi, 1
lea ecx, [esp + 0x24]
mov byte [esp + 0x3fc], 6
call fcn.0042ca10
cmp esi, ebp
jne 0x47e9f5
mov dword [esp + 0xa0], ebp
jmp 0x47ea48
xor esi, esi
mov word [esp + 0x60], bp
lea edx, [esp + 0x60]
lea ecx, [esp + 0x7c]
push edx
push str.length
mov byte [esp + 0x404], 0xc
call fcn.00469ae0
cmp eax, ebp
mov dword [esp + 0x78], eax
jl 0x47ea2b
cmp word [esp + 0x60], 3
jne 0x47ea2b
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x60]
mov byte [esp + 0x3fc], 6
push eax
call edi
xor ecx, ecx
cmp esi, ebp
setg cl
mov dword [esp + 0xa0], ecx
lea edx, [esp + 0x10]
push 0x516a38
lea eax, [esp + 0x60]
push edx
push eax
call fcn.00402910
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x1a4]
push ecx
push edx
mov byte [esp + 0x404], 0xd
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0xb0], esi
jne 0x47eb97
mov eax, dword [esp + 0x5c]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47eabc
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47eac2
mov edx, dword [esp + 0x5c]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
jmp 0x47eac2
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea ecx, [esp + 0x7c]
mov byte [esp + 0x3fc], 5
call fcn.0042ca10
lea ecx, [esp + 0x58]
mov byte [esp + 0x3fc], 4
call fcn.0042ca10
mov eax, dword [esp + 0x30]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47eb0f
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47eb0f
mov edx, dword [esp + 0x30]
add edx, 0xfffffff4
push edx
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47eb3a
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47eb3a
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47eb65
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47eb65
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47eb90
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47eb90
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.004de3a6
add esp, 4
xor eax, eax
jmp 0x47f8e5
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x24], ebp
jne 0x47f88a
mov ecx, dword [0x50d0e0]
lea edx, [esp + 0x1d0]
test edx, edx
mov dword [esp + 0x14], ecx
je 0x47ec1d
lea eax, [esp + 0x1d0]
shr eax, 0x10
jne 0x47ebdd
xor eax, eax
lea ecx, [esp + 0x1d0]
mov ax, cx
lea ecx, [esp + 0x14]
push eax
call fcn.00407b60
jmp 0x47ec1d
lea edx, [esp + 0x1d0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
cmp esi, ebp
je 0x47ec1d
push esi
lea ecx, [esp + 0x18]
call fcn.00402190
test eax, eax
je 0x47ec1d
lea eax, [esi + esi]
lea ecx, [esp + 0x1d0]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esi + esi + 2]
push ecx
push edx
push eax
call fcn.00402060
add esp, 0x10
mov ecx, dword [esp + 0x14]
push 0x510318
push ecx
mov byte [esp + 0x404], 0xe
call fcn.004dec69
add esp, 8
test eax, eax
je 0x47f82c
mov edx, dword [esp + 0x14]
push 0x510310
push edx
call fcn.004dec69
add esp, 8
test eax, eax
je 0x47f82c
mov al, byte [esp + 0x1a4]
test al, 6
jne 0x47f803
test al, 0x10
je 0x47f1cd
lea ecx, [esp + 0x3c]
call fcn.00427790
cmp dword [esp + 0x90], ebp
je 0x47ee49
mov eax, dword [esp + 0x28]
xor ebx, ebx
cmp dword [eax + 0x24], ebp
jne 0x47ee49
xor esi, esi
mov word [esp + 0x80], bp
lea ecx, [esp + 0x80]
mov byte [esp + 0x3fc], 0x10
push ecx
push str.length
lea ecx, [esp + 0x60]
call fcn.00469ae0
cmp eax, ebp
mov dword [esp + 0x54], eax
jl 0x47ecd7
cmp word [esp + 0x80], 3
jne 0x47ecd7
mov esi, dword [esp + 0x88]
lea edx, [esp + 0x80]
push edx
call edi
cmp ebx, esi
jge 0x47ee49
xor esi, esi
cmp ebx, ebp
jl 0x47ee3b
lea ecx, [esp + 0x74]
call fcn.00427790
mov word [esp + 0x134], 3
mov dword [esp + 0x13c], ebx
lea eax, [esp + 0x74]
lea ecx, [esp + 0x134]
push eax
push ecx
push str.item
lea ecx, [esp + 0x64]
mov byte [esp + 0x408], 0x12
call fcn.004080f0
lea edx, [esp + 0x134]
mov dword [esp + 0x54], eax
push edx
mov byte [esp + 0x400], 0x11
call edi
cmp dword [esp + 0x54], ebp
jl 0x47ed63
mov eax, dword [esp + 0x74]
cmp eax, ebp
je 0x47ed63
push eax
lea ecx, [esp + 0x40]
call fcn.004080d0
mov esi, 1
lea ecx, [esp + 0x74]
mov byte [esp + 0x3fc], 0xf
call fcn.0042ca10
cmp esi, ebp
je 0x47ee3b
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.0040d460
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x44]
push eax
push 1
mov byte [esp + 0x404], 0x13
mov dword [esp + 0x54], 0x5c
call fcn.00407f00
lea ecx, [esp + 0x50]
push 0x50e548
push ecx
lea ecx, [esp + 0x40]
call fcn.004086e0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
push edx
push eax
call fcn.004dec69
mov edx, dword [0x50d0e4]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x50]
lea ecx, [eax - 0xc]
je 0x47f170
cmp ecx, edx
je 0x47ee0c
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47ee0c
mov edx, dword [esp + 0x50]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x44]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47ee3b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47ee3b
mov edx, dword [esp + 0x44]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x28]
inc ebx
cmp dword [eax + 0x24], ebp
je 0x47ec95
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x70]
mov esi, dword [eax + 0x9c]
call fcn.00427790
push str.files
lea ecx, [esp + 0x100]
mov word [esp + 0x100], bp
call fcn.00406940
lea ecx, [esp + 0x70]
lea edx, [esp + 0xfc]
push ecx
push edx
push str.createElement
lea ecx, [esi + 4]
mov byte [esp + 0x408], 0x15
call fcn.004080f0
mov dword [esi + 8], eax
lea eax, [esp + 0xfc]
push eax
mov byte [esp + 0x400], 0x14
call edi
cmp dword [esi + 8], ebp
jl 0x47eec3
mov eax, dword [esp + 0x70]
cmp eax, ebp
je 0x47eec3
push eax
lea ecx, [esp + 0x40]
call fcn.004080d0
lea ecx, [esp + 0x70]
mov byte [esp + 0x3fc], 0xf
call fcn.0042ca10
mov ecx, dword [0x50d0e0]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x2c]
push str._s_s_
push ecx
mov byte [esp + 0x40c], 0x16
call fcn.004074f0
mov edx, dword [esp + 0x34]
add esp, 0x10
lea ecx, [esp + 0xdc]
mov word [esp + 0xdc], bp
push edx
call fcn.00406940
push 0x50e548
lea ecx, [esp + 0x128]
mov word [esp + 0x128], bp
call fcn.00406940
lea eax, [esp + 0xdc]
push ebp
lea ecx, [esp + 0x128]
push eax
push ecx
push str.setAttribute
lea ecx, [esp + 0x4c]
mov byte [esp + 0x40c], 0x18
call fcn.00406a10
lea edx, [esp + 0x124]
mov dword [esp + 0x38], eax
push edx
call edi
lea eax, [esp + 0xdc]
push eax
call edi
mov word [esp + 0x164], 3
mov dword [esp + 0x16c], ebp
push str.type
lea ecx, [esp + 0x148]
mov word [esp + 0x148], bp
call fcn.00406940
lea ecx, [esp + 0x164]
push ebp
lea edx, [esp + 0x148]
push ecx
push edx
push str.setAttribute
lea ecx, [esp + 0x4c]
mov byte [esp + 0x40c], 0x1a
call fcn.00406a10
mov dword [esp + 0x38], eax
lea eax, [esp + 0x144]
push eax
call edi
lea ecx, [esp + 0x164]
push ecx
call edi
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xec]
push edx
mov word [esp + 0xf0], bp
call fcn.00406940
push str.title
lea ecx, [esp + 0x158]
mov word [esp + 0x158], bp
call fcn.00406940
mov byte [esp + 0x3fc], 0x1c
push ebp
lea eax, [esp + 0xf0]
lea ecx, [esp + 0x158]
push eax
push ecx
push str.setAttribute
lea ecx, [esp + 0x4c]
call fcn.00406a10
lea edx, [esp + 0x154]
mov dword [esp + 0x38], eax
push edx
call edi
lea eax, [esp + 0xec]
push eax
call edi
mov word [esp + 0x60], bp
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0x3fc], 0x1d
push ecx
lea ecx, [esp + 0x178]
call fcn.0046d400
mov esi, dword [esp + 0x404]
lea edx, [esp + 0x60]
push edx
push eax
push str.appendChild
lea ecx, [esi + 4]
mov byte [esp + 0x408], 0x1e
call fcn.00406990
mov dword [esi], eax
lea eax, [esp + 0x174]
push eax
mov byte [esp + 0x400], 0x1d
call edi
cmp dword [esi], ebp
jl 0x47f0cf
cmp word [esp + 0x60], 9
jne 0x47f0cf
cmp dword [esp + 0x68], ebp
je 0x47f0cf
mov eax, dword [esp + 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x68]
push eax
mov edx, dword [eax]
call dword [edx + 4]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x60]
push ecx
call edi
mov eax, dword [esp + 0x24]
mov ecx, dword [0x50d0e4]
mov byte [esp + 0x3fc], 0xf
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x47f10d
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47f10d
mov eax, dword [esp + 0x24]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0047e610
test eax, eax
jne 0x47f15a
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x184]
push edx
call fcn.0046d400
mov esi, dword [esp + 0x404]
push ebp
push eax
push str.removeChild
lea ecx, [esi + 4]
mov byte [esp + 0x408], 0x1f
call fcn.00406990
mov dword [esi], eax
lea eax, [esp + 0x184]
push eax
call edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3fc], 0xe
call fcn.0042ca10
jmp 0x47f7c9
cmp ecx, edx
je 0x47f192
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47f192
mov edx, dword [esp + 0x50]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x44]
mov edx, dword [0x50d0e4]
mov byte [esp + 0x3fc], 0xf
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47f10d
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47f10d
mov edx, dword [esp + 0x44]
lea eax, [edx - 0xc]
jmp 0x47f104
mov eax, dword [esp + 0x1c0]
mov ebp, dword [esp + 0x1c4]
xor ebx, ebx
xor ecx, ecx
push 1
push ebx
push ecx
push eax
call fcn.004df990
mov esi, eax
lea ecx, [esp + 0x1d0]
mov edi, edx
add esi, ebp
push ecx
lea ecx, [esp + 0x24]
adc edi, ebx
call fcn.00406b50
lea ecx, [esp + 0x20]
mov byte [esp + 0x3fc], 0x20
call fcn.00408c00
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.USER32.dll_CharLowerW]
push 0x2e
lea ecx, [esp + 0x24]
call fcn.0044ca20
mov ebp, eax
cmp ebp, 0xffffffff
je 0x47f7df
push ebx
push str.._mv
lea ecx, [esp + 0x28]
call fcn.00414af0
test eax, eax
jg 0x47f7df
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xbc]
mov eax, dword [eax - 8]
sub eax, ebp
dec eax
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.004071a0
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x400], 0x21
call fcn.00402090
lea ecx, [esp + 0xbc]
call fcn.00402160
mov edx, dword [esp + 0x20]
push ebx
push edx
lea ecx, [esp + 0x48]
call fcn.00414af0
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x20]
push ebx
push eax
lea ecx, [esp + 0x3c]
call fcn.00414af0
mov ecx, dword [esp + 0x20]
push ebx
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0xbc], eax
call fcn.00414af0
lea ecx, [esp + 0x18]
mov dword [esp + 0xac], eax
mov dword [esp + 0x4c], ebx
call fcn.004098a0
mov eax, dword [esp + 0xa0]
mov byte [esp + 0x3fc], 0x22
test eax, eax
je 0x47f41f
mov edx, dword [esp + 0x28]
mov dword [esp + 0x9c], ebx
mov eax, dword [edx + 0x24]
test eax, eax
jne 0x47f41f
lea ecx, [esp + 0x78]
call fcn.004639e0
cmp ebx, eax
jge 0x47f413
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x78]
push eax
push ebx
call fcn.00463aa0
test eax, eax
je 0x47f3fc
lea ecx, [esp + 0x98]
push 0x50e548
push ecx
lea ecx, [esp + 0x20]
call fcn.004086e0
lea edx, [esp + 0x1d0]
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0xa8]
push eax
push ecx
mov byte [esp + 0x408], 0x23
call fcn.00402910
lea edx, [esp + 0x94]
push str.size
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x404], 0x24
call fcn.004086e0
mov eax, dword [esp + 0x94]
push eax
call fcn.004dec00
mov ecx, dword [esp + 0xa8]
mov ebx, edx
mov edx, dword [esp + 0x9c]
push ecx
push edx
mov ebp, eax
call fcn.004dec69
add esp, 0xc
test eax, eax
jne 0x47f3c9
push eax
push 0x400
push edi
push esi
call fcn.004dfa90
cmp eax, ebp
jne 0x47f3c9
cmp edx, ebx
jne 0x47f3c9
mov dword [esp + 0x4c], 1
lea ecx, [esp + 0x94]
call fcn.00402160
lea ecx, [esp + 0xa4]
call fcn.00402160
lea ecx, [esp + 0x98]
mov byte [esp + 0x3fc], 0x22
call fcn.00402160
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x9c], ebx
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x47f301
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x47f7a7
lea ecx, [esp + 0x11c]
call fcn.004098a0
lea ecx, [esp + 0xc0]
mov byte [esp + 0x3fc], 0x25
call fcn.0047f900
mov ecx, dword [0x50d0e0]
mov dword [esp + 0x2c], ecx
push 0
push 0x400
push edi
push esi
mov byte [esp + 0x40c], 0x27
call fcn.004dfa90
mov ebp, eax
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x18]
mov ecx, dword [eax + 0x9c]
push edx
push str.file
call fcn.0046a450
lea ecx, [esp + 0x1d0]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0xbc]
push edx
push eax
call fcn.00402910
mov eax, dword [eax]
lea ecx, [esp + 0x18]
push eax
push 0x50e548
mov byte [esp + 0x404], 0x28
call fcn.00408380
lea ecx, [esp + 0xb8]
mov byte [esp + 0x3fc], 0x27
call fcn.00402160
push 0x24
call fcn.004de48f
add esp, 4
mov dword [esp + 0x4c], eax
test eax, eax
mov byte [esp + 0x3fc], 0x29
je 0x47f4e6
mov ecx, eax
call fcn.004c3850
mov esi, eax
jmp 0x47f4e8
xor esi, esi
push ecx
lea edx, [esp + 0x1d4]
mov ecx, esp
mov dword [esp + 0x50], esp
lea eax, [esp + 0x14]
push edx
push eax
push ecx
mov byte [esp + 0x40c], 0x27
call fcn.00402910
mov ecx, esi
call fcn.004c3980
test eax, eax
je 0x47f5b9
lea ecx, [esp + 0xc0]
push ecx
mov ecx, esi
call fcn.004c4250
mov edx, dword [esp + 0xd4]
lea ecx, [esp + 0x18]
push edx
push str.type
call fcn.00408550
mov eax, dword [esp + 0xc0]
lea ecx, [esp + 0x18]
push eax
push str.title
call fcn.00408380
mov ecx, dword [esp + 0xc4]
push ecx
push str.author
lea ecx, [esp + 0x20]
call fcn.00408380
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0x18]
push edx
push str.special
call fcn.00408380
mov eax, dword [esp + 0xd0]
lea ecx, [esp + 0x18]
push eax
push str.bits
call fcn.00408550
mov ecx, dword [esp + 0xcc]
push ecx
push 0x519544
lea ecx, [esp + 0x20]
call fcn.00408550
mov edx, dword [esp + 0xd8]
push edx
jmp 0x47f659
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
push str.title
mov edi, 4
call fcn.00408380
mov eax, dword [esp + 0xa8]
or ebx, 0xffffffff
cmp eax, ebx
jle 0x47f5e6
mov edi, 1
jmp 0x47f604
cmp dword [esp + 0xb4], ebx
jle 0x47f5f6
mov edi, 2
jmp 0x47f604
cmp dword [esp + 0xac], ebx
jle 0x47f604
mov edi, 3
push edi
push str.type
lea ecx, [esp + 0x20]
call fcn.00408550
mov ecx, dword [esp + 0x2c]
push ecx
push str.author
lea ecx, [esp + 0x20]
call fcn.00408380
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push edx
push str.special
call fcn.00408380
push ebx
push str.bits
lea ecx, [esp + 0x20]
call fcn.00408550
push ebx
push 0x519544
lea ecx, [esp + 0x20]
call fcn.00408550
push 0x17
push str.format
lea ecx, [esp + 0x20]
call fcn.00408550
push ebp
push str.size
lea ecx, [esp + 0x20]
call fcn.00409d50
lea eax, [esp + 0x194]
lea ecx, [esp + 0x1b8]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea edx, [esp + 0x10c]
lea eax, [esp + 0x194]
push edx
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
mov ecx, dword [0x50d0e0]
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x112]
mov eax, dword [esp + 0x10e]
mov ecx, dword [esp + 0x10c]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
lea edx, [esp + 0x54]
push str._d__02d__02d
push edx
mov byte [esp + 0x410], 0x2a
call fcn.004074f0
mov eax, dword [esp + 0x5c]
add esp, 0x14
lea ecx, [esp + 0x18]
push eax
push str.datetime
call fcn.00408380
mov ecx, dword [esp + 0x2c]
push ecx
push str.usertype
lea ecx, [esp + 0x20]
call fcn.00408380
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push edx
push 0x51728c
call fcn.00408380
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
push str.language
call fcn.00408380
mov ecx, dword [esp + 0x2c]
push ecx
push str.remark
lea ecx, [esp + 0x20]
call fcn.00408380
mov ecx, dword [esp + 0x404]
lea edx, [esp + 0x18]
push edx
call fcn.00409c30
test esi, esi
je 0x47f76d
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
lea ecx, [esp + 0x48]
call fcn.00402160
lea ecx, [esp + 0x2c]
call fcn.00402160
lea ecx, [esp + 0xc0]
mov byte [esp + 0x3fc], 0x25
call fcn.00463e10
lea ecx, [esp + 0x120]
mov byte [esp + 0x3fc], 0x22
call fcn.0042ca10
lea ecx, [esp + 0x1c]
mov byte [esp + 0x3fc], 0x20
call fcn.0042ca10
lea ecx, [esp + 0x20]
call fcn.00402160
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ebp, ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0x3fc], 0xd
call fcn.00402160
jmp 0x47f863
lea ecx, [esp + 0x20]
call fcn.00402160
lea ecx, [esp + 0x14]
mov byte [esp + 0x3fc], 0xd
call fcn.00402160
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor ebp, ebp
jmp 0x47f863
mov eax, dword [esp + 0x14]
mov edx, dword [0x50d0e4]
mov byte [esp + 0x3fc], 0xd
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47f863
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47f863
jmp 0x47f853
mov eax, dword [esp + 0x14]
mov edx, dword [0x50d0e4]
mov byte [esp + 0x3fc], 0xd
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47f863
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x47f863
mov edx, dword [esp + 0x14]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov esi, dword [esp + 0xb0]
lea eax, [esp + 0x1a4]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x47f88a
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x24], ebp
je 0x47eba4
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [esp + 0x5c]
call fcn.00402160
lea ecx, [esp + 0x7c]
mov byte [esp + 0x3fc], 5
call fcn.0042ca10
lea ecx, [esp + 0x58]
mov byte [esp + 0x3fc], 4
call fcn.0042ca10
lea ecx, [esp + 0x30]
call fcn.00402160
lea ecx, [esp + 0x34]
call fcn.00402160
lea ecx, [esp + 0x40]
call fcn.00402160
lea ecx, [esp + 0x10]
call fcn.00402160
mov eax, 1
mov ecx, dword [esp + 0x3f4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x3f0
ret 4