Function at 0x10050819
Capabilities:
Enumerate gui resources
Resolve function by parsing pe exports
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2d8
mov eax, dword [0x102a1e64]
xor eax, esp
mov dword [esp + 0x2d4], eax
cmp byte [0x102a4780], 0
push esi
push edi
jne 0x10050e15
xor eax, eax
mov byte [0x102a4780], 1
lea edi, [esp + 0x20]
stosd dword es:[edi], eax
push 1
push ecx
lea ecx, [esp + 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
call fcn.1006a2c8
xor eax, eax
mov dword [esp + 0x18], eax
call fcn.1007d200
mov esi, eax
xor eax, eax
push eax
call fcn.1007e460
push eax
push esi
call fcn.1007cbd0
add esp, 0xc
lea ecx, [esp + 0x20]
cmp dword [esp + 0x34], 0x10
cmovae ecx, dword [esp + 0x20]
push dword [esp + 0x30]
push ecx
push esi
call fcn.1007cc10
add esp, 0xc
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x294]
push eax
push esi
call fcn.1007caa0
add esp, 0xc
push esi
call fcn.1007d170
pop ecx
lea ecx, [esp + 0x20]
call fcn.10051944
xor eax, eax
lea edi, [esp + 0x38]
stosd dword es:[edi], eax
push ecx
push 0x1000
lea ecx, [esp + 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 7
mov word [esp + 0x40], ax
call fcn.10052000
xor eax, eax
push eax
push fcn.10050730
call fcn.10079da0
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x10050972
push edi
call fcn.10079a30
pop ecx
mov esi, eax
xor eax, eax
push eax
push 3
push esi
call fcn.10079480
add esp, 0xc
push esi
call fcn.10078a70
fld dword [0x1029a808]
fstp dword [esp]
push esi
call fcn.10078d80
fld dword [0x1029a824]
fstp dword [esp + 4]
fld dword [0x1029a808]
fstp dword [esp]
push esi
call fcn.10078c20
add esp, 0xc
push 0x102963a8
push esi
call fcn.10078df0
push esi
call fcn.10078b50
add esp, 0xc
push edi
call fcn.10079bb0
pop ecx
cmp dword [esp + 0x4c], 8
lea eax, [esp + 0x38]
push 0x1000
cmovae eax, dword [esp + 0x3c]
push eax
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x50]
fld1
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
xor eax, eax
xor esi, esi
fstp qword [esp + 0x50]
fld qword [0x1029a7a8]
inc esi
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
fstp qword [esp + 0x1c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
call fcn.10050e39
fld qword [0x1029a7b0]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
fstp qword [esp + 0x1c]
call fcn.10050e39
fld qword [0x1029a7c0]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
fstp qword [esp + 0x1c]
call fcn.10050e39
fld qword [0x1029a7c8]
lea eax, [esp + 0x290]
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
xor eax, eax
mov dword [esp + 0x28], esi
fstp qword [esp + 0x290]
fld qword [0x1029a7d0]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
fstp qword [esp + 0x1c]
mov dword [esp + 0x30], esi
call fcn.10050e39
fld qword [0x1029a7d8]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
fstp qword [esp + 0x1c]
call fcn.10050e39
fld qword [0x1029a7e0]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
fstp qword [esp + 0x1c]
call fcn.10050e39
lea eax, [esp + 0x80]
fld1
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x20]
xor eax, eax
mov dword [esp + 0x28], esi
fstp qword [esp + 0x80]
fld qword [0x1029a7a8]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x18]
push eax
fstp qword [esp + 0x1c]
mov dword [esp + 0x30], esi
call fcn.10050e39
fld qword [0x1029a7a8]
lea ecx, [esp + 0x18]
push ecx
fstp qword [esp + 0x1c]
mov ecx, eax
call fcn.10050e39
fld qword [0x1029a7b0]
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
fstp qword [esp + 0x1c]
call fcn.10050e39
push 2
lea eax, [esp + 0xc4]
fldz
pop ecx
fst qword [eax]
fst qword [eax + 8]
add eax, 0x10
sub ecx, 1
jne 0x10050ace
xor eax, eax
lea ecx, [esp + 0xa0]
mov word [esp + 0xe0], ax
or edi, 0xffffffff
mov byte [esp + 0x180], al
fstp st(0)
mov word [esp + 0x194], ax
lea eax, [esp + 0x80]
push esi
push eax
mov dword [esp + 0x1a0], edi
call fcn.1006bb30
cmp dword [esp + 0x4c], 8
lea edx, [esp + 0x38]
mov esi, dword [esp + 0x48]
cmovae edx, dword [esp + 0x38]
test esi, esi
je 0x10050b4f
lea eax, [esi - 1]
mov ecx, edi
cmp eax, edi
push 0x5c
cmovb ecx, eax
pop eax
lea ecx, [edx + ecx*2]
jmp 0x10050b44
cmp ecx, edx
je 0x10050b4f
sub ecx, 2
cmp word [ecx], ax
jne 0x10050b3d
sub ecx, edx
sar ecx, 1
jmp 0x10050b51
mov ecx, edi
xor eax, eax
lea edi, [esp + 0x50]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
cmp esi, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
lea eax, [esp + 0x38]
cmovb ecx, esi
cmp dword [esp + 0x4c], 8
push ecx
cmovae eax, dword [esp + 0x3c]
lea ecx, [esp + 0x54]
push eax
call fcn.1006a24e
lea ecx, [esp + 0x38]
call fcn.10051fd5
push 6
pop ecx
lea esi, [esp + 0x50]
lea edi, [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x4c], 8
lea eax, [esp + 0x38]
cmovae eax, dword [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x10050c1c
push 0x102963a4
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov byte [esp + 0x34], al
mov dword [esp + 0x38], eax
call fcn.1005273c
xor eax, eax
push eax
push ecx
push 3
push 0x102963ac
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xb4]
call fcn.10069ee5
mov al, byte [esp + 0x100]
test al, al
je 0x10050c58
lea ecx, [esp + 0xa0]
call fcn.1004c59c
cmp byte [esp + 0x30], 0
jne 0x10050c1c
push dword [esp + 0x34]
call fcn.101a967c
pop ecx
push str.Video.DirectShow.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
xor eax, eax
lea edi, [esp + 0x74]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov esi, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
mov eax, 0x7ffffffe
sub eax, dword [esp + 0x48]
mov dword [esp + 0x74], esi
cmp eax, 1
jb 0x10050e29
jmp 0x10050c90
xor ecx, ecx
mov byte [esp + 0x103], cl
test al, al
jne 0x10050bff
test cl, cl
jne 0x10050bfb
call fcn.1004b98a
push 0xffffffffffffffff
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov al, byte [esp + 0x100]
test al, al
jne 0x10050bff
mov cl, byte [esp + 0x103]
jmp 0x10050c65
cmp dword [esp + 0x4c], 8
lea eax, [esp + 0x38]
push 1
cmovae eax, dword [esp + 0x3c]
push ecx
push dword [esp + 0x50]
push eax
push ecx
push dword [esp + 0x2c]
lea ecx, [esp + 0x68]
call fcn.1006b5e7
push ecx
lea edx, [esp + 0x54]
lea ecx, [esp + 0x84]
call fcn.10069f60
pop ecx
lea ecx, [esp + 0x50]
call fcn.10051fd5
cmp dword [esp + 0x94], 8
lea edx, [esp + 0x80]
lea edi, [esp + 0x50]
cmovae edx, dword [esp + 0x80]
xor eax, eax
stosd dword es:[edi], eax
mov ecx, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x60], eax
lea edi, [ecx + 2]
mov dword [esp + 0x64], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x14]
jne 0x10050cff
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x58]
call fcn.1006a24e
push ecx
push ecx
lea edx, [esp + 0x58]
lea ecx, [esp + 0x28]
call fcn.1005075e
mov edi, eax
lea eax, [esp + 0x7c]
pop ecx
pop ecx
cmp eax, edi
je 0x10050d50
mov ecx, eax
call fcn.100519c2
mov eax, dword [edi + 8]
mov esi, dword [edi]
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
lea ecx, [esp + 0x20]
call fcn.100519c2
mov edx, dword [esp + 0x64]
cmp edx, 8
jb 0x10050d72
mov ecx, dword [esp + 0x50]
lea edx, [edx*2 + 2]
call fcn.1006a454
push str.TransformEffect.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push 0x24de
lea edi, [eax + 0x1000]
xor eax, eax
push eax
push edi
call fcn.101ab280
add esp, 0xc
xor eax, eax
mov dword [esp + 0x14], eax
lea edx, [eax + esi]
movzx eax, al
imul ecx, eax, 0x49
mov eax, dword [esp + 0x14]
movzx eax, al
sub cl, 0x46
movzx ecx, cl
imul ecx, eax
mov eax, dword [esp + 0x14]
sub cl, 0x57
add byte [edx], cl
inc eax
mov ecx, 0x24de
mov dword [esp + 0x14], eax
cmp eax, ecx
jb 0x10050d9a
push ecx
push esi
push edi
call fcn.101ab3e0
add esp, 0xc
xor eax, eax
push eax
push edi
call dword [sym.imp.USER32.dll_EnumWindows]
lea ecx, [esp + 0x80]
call fcn.10051fd5
test esi, esi
je 0x10050dfc
mov edx, dword [esp + 0x18]
mov ecx, esi
sub edx, esi
call fcn.1006a454
mov edx, dword [esp + 0x4c]
cmp edx, 8
jb 0x10050e15
mov ecx, dword [esp + 0x38]
lea edx, [edx*2 + 2]
call fcn.1006a454
mov ecx, dword [esp + 0x2dc]
pop edi
pop esi
xor ecx, esp
call fcn.101a966e
mov esp, ebp
pop ebp
ret
call fcn.1004b4e9
int3