Function at 0x4fcedf
Capabilities:
Link many functions at runtime

Disassembly:
push 0x8d0
mov eax, 0x78f6f1
call fcn.00700ca1
mov edi, dword [ebp + 8]
mov dword [ebp - 0x89c], edi
mov dword [ebp - 0x8c0], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x894], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0x8bc], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.dbghelp.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [ebp - 0x8c0], esi
test esi, esi
je 0x4fd697
push str.SymSetOptions
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymGetOptions
push esi
mov dword [ebp - 0x888], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymInitialize
push esi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymCleanup
push esi
mov dword [ebp - 0x88c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.StackWalk64
push esi
mov dword [ebp - 0x898], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymFunctionTableAccess64
push esi
mov dword [ebp - 0x890], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymGetModuleBase64
push esi
mov dword [ebp - 0x8b8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SymSrvGetFileIndexInfo
push esi
mov dword [ebp - 0x8a0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp dword [ebp - 0x888], 0
mov dword [ebp - 0x8c4], eax
je 0x4fd690
test ebx, ebx
je 0x4fd690
cmp dword [ebp - 0x88c], 0
je 0x4fd690
cmp dword [ebp - 0x898], 0
je 0x4fd690
cmp dword [ebp - 0x890], 0
je 0x4fd690
cmp dword [ebp - 0x8b8], 0
je 0x4fd690
cmp dword [ebp - 0x8a0], 0
je 0x4fd690
test eax, eax
je 0x4fd690
mov ecx, ebx
call dword [0x7f07dc]
call ebx
mov ebx, dword [ebp - 0x888]
or eax, 0x14
push eax
mov ecx, ebx
call dword [0x7f07dc]
call ebx
mov ecx, dword [ebp - 0x88c]
xor ebx, ebx
push 1
push ebx
push dword [ebp - 0x894]
call dword [0x7f07dc]
call dword [ebp - 0x88c]
test eax, eax
je 0x4fd699
push 0x2c8
lea eax, [ebp - 0x43c]
push ebx
push eax
call fcn.00719250
add esp, 0xc
mov dword [ebp - 0x440], 0x10007
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
push 0x100
lea eax, [ebp - 0x540]
push ebx
push eax
call fcn.00719250
mov eax, dword [ebp - 0x388]
mov dword [ebp - 0x548], eax
mov eax, dword [ebp - 0x38c]
push 3
pop ecx
mov dword [ebp - 0x528], eax
mov eax, dword [ebp - 0x37c]
mov dword [ebp - 0x544], ebx
mov dword [ebp - 0x53c], ecx
mov dword [ebp - 0x524], ebx
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x514], ebx
mov dword [ebp - 0x50c], ecx
mov dword [ebp - 0x8b4], ebx
mov dword [ebp - 0x8b0], ebx
mov dword [ebp - 0x8ac], ebx
lea eax, [ebp - 0x8a8]
mov dword [ebp - 4], ebx
push eax
mov dword [ebp - 0x8a8], ebx
mov dword [ebp - 0x8a4], ebx
call fcn.004bfd28
add esp, 0x10
mov dword [ebp - 0x8a8], eax
mov ecx, dword [ebp - 0x890]
lea eax, [ebp - 0x440]
push ebx
push dword [ebp - 0x8a0]
mov byte [ebp - 4], 1
push dword [ebp - 0x8b8]
push ebx
push eax
lea eax, [ebp - 0x548]
push eax
push dword [ebp - 0x8bc]
push dword [ebp - 0x894]
push 0x14c
call dword [0x7f07dc]
call dword [ebp - 0x890]
test eax, eax
je 0x4fd5d5
mov esi, dword [ebp - 0x8a0]
mov edi, ebx
mov eax, dword [ebp - 0x528]
or eax, dword [ebp - 0x524]
je 0x4fd5c9
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x130], 0xf
mov byte [ebp - 0x144], bl
push dword [ebp - 0x544]
mov ecx, esi
mov byte [ebp - 4], 2
push dword [ebp - 0x548]
push dword [ebp - 0x894]
call dword [0x7f07dc]
call esi
mov esi, eax
lea eax, [ebp - 0x114]
push 0x104
push ebx
push eax
mov dword [ebp - 0x888], esi
call fcn.00719250
add esp, 0xc
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], bl
mov byte [ebp - 4], 3
test esi, esi
je 0x4fd42b
push 0x104
lea eax, [ebp - 0x114]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4fd42b
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4fd226
sub ecx, edx
lea eax, [ebp - 0x114]
push ecx
push eax
lea ecx, [ebp - 0x12c]
call fcn.00439710
lea eax, [ebp - 0x12c]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.004f80eb
cmp eax, dword [ebp - 0x8a8]
jne 0x4fd381
push 0x338
lea eax, [ebp - 0x880]
push ebx
push eax
call fcn.00719250
mov esi, dword [ebp - 0x8c4]
lea eax, [ebp - 0x884]
add esp, 0xc
mov dword [ebp - 0x884], 0x33c
mov ecx, esi
push ebx
push eax
lea eax, [ebp - 0x114]
push eax
call dword [0x7f07dc]
call esi
test eax, eax
je 0x4fd3ab
push dword [ebp - 0x54c]
movzx eax, byte [ebp - 0x551]
push eax
movzx eax, byte [ebp - 0x552]
push eax
movzx eax, byte [ebp - 0x553]
push eax
movzx eax, byte [ebp - 0x554]
push eax
movzx eax, byte [ebp - 0x555]
push eax
movzx eax, byte [ebp - 0x556]
push eax
movzx eax, byte [ebp - 0x557]
push eax
movzx eax, byte [ebp - 0x558]
push eax
movzx eax, word [ebp - 0x55a]
push eax
movzx eax, word [ebp - 0x55c]
push eax
push dword [ebp - 0x560]
lea eax, [ebp - 0x174]
push str._08x_04x_04x_02x_02x_02x_02x_02x_02x_02x_02x_01x
push eax
call fcn.004fa8c3
lea ecx, [ebp - 0x144]
add esp, 0x38
cmp ecx, eax
je 0x4fd332
mov byte [ebp - 0x8c8], bl
push dword [ebp - 0x8c8]
push eax
call fcn.00448b30
lea ecx, [ebp - 0x174]
call fcn.00438e20
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x8d4]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.004fc3ab
mov ecx, dword [eax]
lea eax, [ebp - 0x144]
add ecx, 0x28
cmp ecx, eax
je 0x4fd3ab
cmp dword [ebp - 0x130], 0x10
push dword [ebp - 0x134]
cmovae eax, dword [ebp - 0x144]
push eax
call fcn.00439710
jmp 0x4fd3ab
lea eax, [ebp - 0x12c]
push eax
lea eax, [ebp - 0x8dc]
push eax
lea ecx, [ebp - 0x8a8]
call fcn.004fc3ab
lea ecx, [ebp - 0x144]
mov eax, dword [eax]
add eax, 0x28
push eax
call fcn.00448610
cmp dword [ebp - 0x118], 0x10
lea edx, [ebp - 0x12c]
mov eax, dword [ebp - 0x11c]
cmovae edx, dword [ebp - 0x12c]
test eax, eax
je 0x4fd3e4
dec eax
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
add ecx, edx
jmp 0x4fd3db
cmp ecx, edx
je 0x4fd3e4
dec ecx
cmp byte [ecx], 0x5c
jne 0x4fd3d6
sub ecx, edx
jmp 0x4fd3e7
or ecx, 0xffffffff
cmp ecx, 0xffffffff
je 0x4fd42b
lea eax, [ecx + 1]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x12c]
call fcn.004fc272
lea ecx, [ebp - 0x12c]
cmp ecx, eax
je 0x4fd420
mov byte [ebp - 0x8cc], bl
push dword [ebp - 0x8cc]
push eax
call fcn.00448b30
lea ecx, [ebp - 0x174]
call fcn.00438e20
cmp dword [ebp - 0x130], 0x10
lea esi, [ebp - 0x144]
mov ecx, dword [ebp - 0x548]
lea edx, [ebp - 0x12c]
cmovae esi, dword [ebp - 0x144]
cmp dword [ebp - 0x118], 0x10
mov eax, dword [ebp - 0x544]
cmovae edx, dword [ebp - 0x12c]
sub ecx, dword [ebp - 0x888]
sbb eax, ebx
push eax
push ecx
push esi
push edx
lea eax, [ebp - 0x15c]
push str._s__s0x_x
push eax
call fcn.004fa8c3
add esp, 0x18
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 4
push eax
cmp edi, dword [ebp - 0x8ac]
je 0x4fd4ac
mov ecx, edi
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
call fcn.00439960
push 0x18
pop eax
add edi, eax
mov dword [ebp - 0x8b0], edi
jmp 0x4fd4be
push edi
lea ecx, [ebp - 0x8b4]
call fcn.00440290
mov edi, dword [ebp - 0x8b0]
lea ecx, [ebp - 0x15c]
call fcn.00438e20
mov eax, dword [ebp - 0x118]
cmp eax, 0x10
jb 0x4fd518
mov ecx, dword [ebp - 0x12c]
inc eax
mov dword [ebp - 0x88c], eax
mov dword [ebp - 0x888], ecx
cmp eax, 0x1000
jb 0x4fd50f
lea eax, [ebp - 0x88c]
push eax
lea eax, [ebp - 0x888]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x88c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x888]
push eax
push ecx
call fcn.007009b8
pop ecx
pop ecx
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], bl
mov byte [ebp - 4], 1
cmp eax, 0x10
jb 0x4fd581
mov ecx, dword [ebp - 0x144]
inc eax
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x88c], ecx
cmp eax, 0x1000
jb 0x4fd578
lea eax, [ebp - 0x888]
push eax
lea eax, [ebp - 0x88c]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x888]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x88c]
push eax
push ecx
call fcn.007009b8
pop ecx
pop ecx
mov esi, dword [ebp - 0x8a0]
lea eax, [ebp - 0x440]
mov ecx, dword [ebp - 0x890]
push ebx
push esi
push dword [ebp - 0x8b8]
push ebx
push eax
lea eax, [ebp - 0x548]
push eax
push dword [ebp - 0x8bc]
push dword [ebp - 0x894]
push 0x14c
call dword [0x7f07dc]
call dword [ebp - 0x890]
test eax, eax
jne 0x4fd17b
mov edi, dword [ebp - 0x89c]
mov esi, dword [ebp - 0x8c0]
push dword [ebp - 0x894]
mov ebx, dword [ebp - 0x898]
mov ecx, ebx
call dword [0x7f07dc]
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x8b4]
mov ecx, edi
push eax
call fcn.00438d10
lea eax, [ebp - 0x8a8]
push eax
mov ecx, eax
call fcn.004f8096
mov esi, dword [ebp - 0x8b4]
test esi, esi
je 0x4fd6a1
mov ebx, esi
cmp ebx, dword [ebp - 0x8b0]
je 0x4fd640
push 0x18
pop edi
mov ecx, ebx
call fcn.00438e20
add ebx, edi
cmp ebx, dword [ebp - 0x8b0]
jne 0x4fd629
mov edi, dword [ebp - 0x89c]
mov eax, dword [ebp - 0x8ac]
sub eax, esi
mov dword [ebp - 0x898], esi
push 0x18
cdq
pop ecx
idiv ecx
imul eax, eax, 0x18
mov dword [ebp - 0x89c], eax
cmp eax, 0x1000
jb 0x4fd685
lea eax, [ebp - 0x89c]
push eax
lea eax, [ebp - 0x898]
push eax
call fcn.004343f0
mov eax, dword [ebp - 0x89c]
mov esi, dword [ebp - 0x898]
pop ecx
pop ecx
push eax
push esi
call fcn.007009b8
pop ecx
pop ecx
jmp 0x4fd6a1
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
mov dword [edi + 8], ebx
mov dword [edi + 4], ebx
mov dword [edi], ebx
mov eax, edi
call fcn.00700c4b
ret