Function at 0x484170
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4f41c9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x598
push ebx
push ebp
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x40], ebx
mov eax, dword [0x50d0e0]
xor ebp, ebp
mov dword [esp + 0x5b0], ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c0]
mov byte [esp + 0x5b0], 1
cmp eax, 1
jne 0x4841db
mov ecx, str.author
test ecx, ecx
jne 0x4841c9
xor eax, eax
push ecx
jmp 0x48421e
push str.author
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.author
jmp 0x48421e
cmp eax, 2
jne 0x484200
mov edx, str.special
test edx, edx
jne 0x4841ee
xor eax, eax
push edx
jmp 0x48421e
push str.special
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.special
jmp 0x48421e
cmp eax, 3
jne 0x484228
mov eax, str.usertype
test eax, eax
je 0x484219
push str.usertype
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.usertype
push eax
lea ecx, [esp + 0x2c]
call fcn.004021f0
lea ecx, [esp + 0x2c]
call fcn.00427790
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x3a0]
push 0x104
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x3a4]
mov byte [esp + 0x5b4], 2
push ecx
push 0x9ceb
call fcn.00432b50
add esp, 0xc
lea ecx, [esp + 0x14]
xor esi, esi
call fcn.00427790
push str.file
lea ecx, [esp + 0x50]
mov word [esp + 0x50], bp
call fcn.00406940
mov edi, dword [esp + 0x5b8]
lea edx, [esp + 0x14]
lea eax, [esp + 0x4c]
push edx
push eax
push str.selectNodes
lea ecx, [edi + 4]
mov byte [esp + 0x5bc], 4
call fcn.004080f0
lea ecx, [esp + 0x4c]
mov dword [edi], eax
push ecx
mov byte [esp + 0x5b4], 3
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [edi]
cmp eax, ebp
mov eax, dword [esp + 0x14]
jl 0x4842dd
cmp eax, ebp
je 0x4842dd
push eax
lea ecx, [esp + 0x30]
call fcn.004080d0
mov eax, dword [esp + 0x14]
mov esi, 1
cmp eax, ebp
mov byte [esp + 0x5b0], 2
je 0x4842ef
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ebp, dword [esp + 0x5c8]
test esi, esi
je 0x484b90
mov eax, dword [ebx + 0x24]
xor edi, edi
test eax, eax
mov dword [esp + 0x34], edi
jne 0x484b90
jmp 0x484315
mov edi, dword [esp + 0x34]
xor esi, esi
mov word [esp + 0x64], si
lea eax, [esp + 0x64]
lea ecx, [esp + 0x2c]
push eax
push str.length
mov byte [esp + 0x5b8], 5
call fcn.00469ae0
test eax, eax
mov dword [esp + 0x28], eax
jl 0x48434b
cmp word [esp + 0x64], 3
jne 0x48434b
mov esi, dword [esp + 0x6c]
lea ecx, [esp + 0x64]
mov byte [esp + 0x5b0], 2
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp edi, esi
jge 0x484b90
lea ecx, [esp + 0x1c]
call fcn.00427790
xor esi, esi
test edi, edi
jl 0x484b6b
lea ecx, [esp + 0x38]
call fcn.00427790
mov word [esp + 0x84], 3
mov dword [esp + 0x8c], edi
lea edx, [esp + 0x38]
lea eax, [esp + 0x84]
push edx
push eax
push str.item
lea ecx, [esp + 0x38]
mov byte [esp + 0x5bc], 8
call fcn.004080f0
lea ecx, [esp + 0x84]
mov dword [esp + 0x28], eax
push ecx
mov byte [esp + 0x5b4], 7
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x28]
test eax, eax
jl 0x4843ef
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4843ef
push eax
lea ecx, [esp + 0x20]
call fcn.004080d0
mov esi, 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x5b0], 6
call fcn.0042ca10
test esi, esi
je 0x484b6b
mov edx, dword [0x50d0e0]
xor edi, edi
mov dword [esp + 0x14], edx
mov word [esp + 0x4c], di
push str.type
lea ecx, [esp + 0x78]
mov word [esp + 0x78], di
call fcn.00406940
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x74]
push eax
push ecx
push str.getAttribute
lea ecx, [esp + 0x28]
mov byte [esp + 0x5bc], 0xb
call fcn.00406990
lea edx, [esp + 0x74]
mov dword [esp + 0x18], eax
push edx
mov byte [esp + 0x5b4], 0xa
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp dword [esp + 0x18], edi
jl 0x4844c9
cmp word [esp + 0x4c], 8
jne 0x4844c9
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x4844c9
push eax
lea ecx, [esp + 0x60]
call fcn.00406b50
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5b4], 0xc
call fcn.00402090
lea ecx, [esp + 0x5c]
mov byte [esp + 0x5b0], 0xa
call fcn.00402160
lea ecx, [esp + 0x14]
call fcn.00407410
lea ecx, [esp + 0x14]
call fcn.00407310
mov eax, dword [esp + 0x14]
push eax
call fcn.004debd7
add esp, 4
mov esi, eax
jmp 0x4844cc
or esi, 0xffffffff
lea ecx, [esp + 0x4c]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x14]
mov byte [esp + 0x5b0], 6
call fcn.00402160
mov eax, dword [esp + 0x5bc]
cmp eax, 5
je 0x4844fc
cmp esi, eax
jne 0x484b6b
mov eax, dword [0x5258fc]
test eax, eax
jne 0x48450e
cmp esi, 4
je 0x484b6b
mov eax, dword [esp + 0x5c0]
cmp eax, 7
je 0x4845c8
cmp eax, 6
je 0x4845c8
cmp eax, 5
je 0x4845c8
cmp eax, 4
je 0x4845c8
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x30]
push edx
push eax
lea ecx, [esp + 0x20]
call fcn.004086e0
mov ecx, dword [esp + 0x5c4]
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.004dec69
add esp, 8
test eax, eax
je 0x48458c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax - 8]
test ecx, ecx
jg 0x484591
mov edx, dword [esp + 0x5c4]
lea ecx, [esp + 0x3a0]
push ecx
push edx
call fcn.004dec69
add esp, 8
test eax, eax
jne 0x484591
mov edi, 1
mov eax, dword [esp + 0x30]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4845c0
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4845c0
mov edx, dword [esp + 0x30]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
test edi, edi
je 0x484b6b
lea eax, [esp + 0x10]
push str.title
push eax
lea ecx, [esp + 0x20]
call fcn.004086e0
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x5b0], 0xd
mov eax, dword [ecx - 8]
test eax, eax
jle 0x4845fc
cmp dword [esp + 0x5bc], 2
je 0x484725
lea edx, [esp + 0x20]
push 0x50e548
push edx
lea ecx, [esp + 0x20]
call fcn.004086e0
mov eax, dword [esp + 0x20]
push 0x5c
push eax
mov byte [esp + 0x5b8], 0xe
call fcn.004dec29
mov ecx, dword [esp + 0x28]
add esp, 8
test eax, eax
jne 0x484633
or esi, 0xffffffff
jmp 0x484639
sub eax, ecx
sar eax, 1
mov esi, eax
push 0x2e
push ecx
call fcn.004dec29
add esp, 8
test eax, eax
jne 0x48464d
or eax, 0xffffffff
jmp 0x484653
sub eax, dword [esp + 0x20]
sar eax, 1
sub eax, esi
lea ecx, [esp + 0x44]
dec eax
inc esi
push eax
push esi
push ecx
lea ecx, [esp + 0x2c]
call fcn.00437060
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov byte [esp + 0x5b0], 0xf
je 0x4846bf
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x48468f
mov edx, dword [0x50d0e4]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x484696
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4846a6
mov edx, dword [eax - 8]
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.004021f0
jmp 0x4846bf
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 eax, dword [esp + 0x44]
mov edx, dword [0x50d0e4]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4846ee
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4846ee
mov edx, dword [esp + 0x44]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov eax, dword [esp + 0x20]
mov edx, dword [0x50d0e4]
mov byte [esp + 0x5b0], 0xd
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x484725
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x484725
mov edx, dword [esp + 0x20]
lea eax, [edx - 0xc]
push eax
call fcn.004de3a6
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp]
mov esi, dword [ebx + 0x88]
push 0xffffffffffffffff
push ecx
push 0
push eax
mov ecx, esi
call fcn.00473300
mov edx, dword [esi + 0x18]
mov ecx, esi
push edx
push eax
call fcn.0048ae60
mov eax, dword [esi + 0x18]
push str.author
inc eax
lea ecx, [esp + 0x1c]
mov dword [esi + 0x18], eax
lea eax, [esp + 0x4c]
push eax
call fcn.004086e0
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov byte [esp + 0x5b0], 0x10
je 0x4847bd
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x48478d
mov edx, dword [0x50d0e4]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x484794
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x4847a4
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004021f0
jmp 0x4847bd
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 eax, dword [esp + 0x48]
mov ecx, dword [0x50d0e4]
mov byte [esp + 0x5b0], 0xd
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x4847f4
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4847f4
mov eax, dword [esp + 0x48]
add eax, 0xfffffff4
push eax
call fcn.004de3a6
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp]
mov esi, dword [ebx + 0x88]
push 0xffffffffffffffff
push ecx
push 1
push eax
mov ecx, esi
call fcn.00473300
mov edx, dword [esi + 0x18]
mov ecx, esi
push edx
push eax
call fcn.0048ae60
mov eax, dword [esi + 0x18]
push str.special
inc eax
lea ecx, [esp + 0x1c]
mov dword [esi + 0x18], eax
lea eax, [esp + 0x64]
push eax
call fcn.004086e0
mov esi, eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
mov byte [esp + 0x5b0], 0x11
je 0x48488c
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x48485c
mov edx, dword [0x50d0e4]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x484863
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x484873
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.004021f0
jmp 0x48488c
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]
lea ecx, [esp + 0x60]
mov byte [esp + 0x5b0], 0xd
call fcn.00402160
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
mov ecx, dword [ebx + 0x88]
push 0xffffffffffffffff
push edx
push 2
push eax
call fcn.00483b50
push 0x519544
lea ecx, [esp + 0x1c]
call fcn.00408910
mov ecx, eax
test ecx, ecx
jl 0x48494f
cmp ecx, 0xe10
mov esi, 0x3c
cdq
jle 0x484926
idiv esi
mov eax, ecx
mov esi, 0xe10
push edx
cdq
idiv esi
mov eax, 0x88888889
mov esi, edx
imul esi
add edx, esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x91a2b3c5
push edx
imul ecx
add edx, ecx
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x1c]
push str._02d:_02d:_02d
push edx
call fcn.004074f0
add esp, 0x14
jmp 0x48494f
idiv esi
mov eax, 0x88888889
push edx
imul ecx
add edx, ecx
lea ecx, [esp + 0x14]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push str._02d:_02d
push ecx
call fcn.004074f0
add esp, 0x10
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
mov ecx, dword [ebx + 0x88]
push 0xffffffffffffffff
push edx
push 3
push eax
call fcn.00483b50
push str.bits
lea ecx, [esp + 0x1c]
call fcn.00408910
test eax, eax
jle 0x4849a4
push eax
lea ecx, [esp + 0x14]
push str._d_Kbps
push ecx
call fcn.004074f0
mov edx, dword [esp + 0x1c]
mov eax, dword [ebp]
mov ecx, dword [ebx + 0x88]
add esp, 0xc
push 0xffffffffffffffff
push edx
push 4
push eax
call fcn.00483b50
push str.size
lea ecx, [esp + 0x1c]
call fcn.00408910
mov edx, eax
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x94]
cmp edx, 0x400
mov dword [esp + 0x14], edx
rep stosd dword es:[edi], eax
jge 0x4849e8
push edx
lea ecx, [esp + 0x98]
push str._d_KB
push ecx
call fcn.004df42f
add esp, 0xc
jmp 0x484a3b
cmp edx, 0x100000
jge 0x484a16
mov eax, edx
cdq
and edx, 0x3ff
add eax, edx
lea edx, [esp + 0x94]
sar eax, 0xa
push eax
push str._d_MB
push edx
call fcn.004df42f
add esp, 0xc
jmp 0x484a3b
fild dword [esp + 0x14]
sub esp, 8
lea eax, [esp + 0x9c]
fmul dword [0x4fc180]
fstp qword [esp]
push str._.2f_GB
push eax
call fcn.004df42f
add esp, 0x10
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x14]
call fcn.00430190
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
mov ecx, dword [ebx + 0x88]
push 0xffffffffffffffff
push edx
push 5
push eax
call fcn.00483b50
push str.type
lea ecx, [esp + 0x1c]
call fcn.00408910
mov edx, eax
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x198]
cmp edx, 1
rep stosd dword es:[edi], eax
jne 0x484a9d
lea ecx, [esp + 0x198]
push 0x104
push ecx
push 0x9ce0
jmp 0x484adc
cmp edx, 2
jne 0x484ab6
lea edx, [esp + 0x198]
push 0x104
push edx
push 0x9ce1
jmp 0x484adc
cmp edx, 3
push 0x104
jne 0x484acf
lea eax, [esp + 0x19c]
push eax
push 0x9ce2
jmp 0x484adc
lea ecx, [esp + 0x19c]
push ecx
push 0x9ce3
call fcn.00432b50
add esp, 0xc
lea edx, [esp + 0x198]
lea ecx, [esp + 0x10]
push edx
call fcn.00406e00
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp]
push 0xffffffffffffffff
push eax
push 6
push ecx
mov ecx, dword [ebx + 0x88]
call fcn.00483b50
lea edx, [esp + 0x3c]
push 0x50e548
push edx
lea ecx, [esp + 0x20]
call fcn.004086e0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x5b4], 0x12
call fcn.00402090
lea ecx, [esp + 0x3c]
mov byte [esp + 0x5b0], 0xd
call fcn.00402160
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp]
push 0xffffffffffffffff
push eax
push 7
push ecx
mov ecx, dword [ebx + 0x88]
call fcn.00483b50
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
inc eax
mov dword [ebp], eax
call fcn.00402160
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5b0], 2
call fcn.0042ca10
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x24]
inc ecx
test eax, eax
mov dword [esp + 0x34], ecx
je 0x484311
mov ecx, dword [esp + 0x5b8]
lea edx, [esp + 0x28]
push edx
push str.files
call fcn.00463bf0
test eax, eax
je 0x484c3d
mov eax, dword [ebx + 0x24]
xor esi, esi
test eax, eax
jne 0x484c3d
mov bl, 0x13
lea ecx, [esp + 0x28]
call fcn.004639e0
cmp esi, eax
jge 0x484c3d
lea ecx, [esp + 0x18]
call fcn.004098a0
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x28]
push eax
push esi
mov byte [esp + 0x5b8], bl
call fcn.00463aa0
test eax, eax
je 0x484c20
push ebp
push ecx
lea edx, [esp + 0x5cc]
mov ecx, esp
mov dword [esp + 0x44], esp
push edx
call fcn.0040bd90
mov eax, dword [esp + 0x5c8]
mov ecx, dword [esp + 0x5c4]
push eax
lea edx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x50]
push edx
call fcn.00484170
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5b0], 2
call fcn.0042ca10
mov eax, dword [esp + 0x40]
inc esi
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x484bbd
lea ecx, [esp + 0x2c]
mov byte [esp + 0x5b0], 1
call fcn.0042ca10
lea ecx, [esp + 0x24]
call fcn.00402160
lea ecx, [esp + 0x5c4]
call fcn.00402160
mov ecx, dword [esp + 0x5a8]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x5a4
ret 0x14