Function at 0x4910b8
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff4c8
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
test edi, edi
jne 0x4910d6
or eax, 0xffffffff
jmp 0x491803
mov eax, dword [0x4d5a00]
test eax, eax
jne 0x4910e7
or eax, 0xffffffff
jmp 0x491803
push str.SymSetOptions
push eax
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
je 0x491110
mov edx, 2
cmp dword [0x4d6eb0], 0
jne 0x491107
add edx, 0xfffffffe
or edx, 0x1210
push edx
call eax
cmp dword [0x4d5a78], 0
jne 0x491179
push str.SymInitialize
mov ecx, dword [0x4d5a00]
push ecx
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
jne 0x491136
or eax, 0xffffffff
jmp 0x491803
cmp dword [0x4d36d8], 2
jne 0x49114d
mov edx, dword [0x4d5a68]
mov dword [0x4d5a78], edx
jmp 0x491159
mov ecx, dword [0x4d5a70]
mov dword [0x4d5a78], ecx
push 0
mov edx, dword [0x4d5a78]
push 0
push edx
call eax
test eax, eax
jne 0x491179
xor eax, eax
mov dword [0x4d5a78], eax
or eax, 0xffffffff
jmp 0x491803
push str.SymLoadModule
mov edx, dword [0x4d5a00]
push edx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x18], eax
push str.SymGetModuleInfo
mov ecx, dword [0x4d5a00]
push ecx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], 0
je 0x4911ad
cmp dword [ebp - 0x1c], 0
jne 0x4911b5
or eax, 0xffffffff
jmp 0x491803
lea edx, [ebp - 0x738]
lea ecx, [ebp - 0x838]
push edx
push ecx
lea eax, [ebp - 0x638]
lea edx, [ebp - 7]
push eax
push edx
push ebx
call fcn.004a51bc
add esp, 0x14
push str.SymSetSearchPath
mov ecx, dword [0x4d5a00]
push ecx
call sub.KERNEL32.DLL_GetProcAddress
mov esi, eax
test esi, esi
je 0x49121c
push 0
push 0
lea eax, [ebp - 0x638]
push eax
lea edx, [ebp - 7]
push edx
lea ecx, [ebp - 0x128]
push ecx
call fcn.004a5198
add esp, 0x14
lea eax, [ebp - 0x128]
push eax
mov edx, dword [0x4d5a78]
push edx
call esi
push 0
push 0x80
push 3
push 0
push 1
push 0
push ebx
call sub.KERNEL32.DLL_CreateFileA
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x491240
or eax, 0xffffffff
jmp 0x491803
lea edx, [ebp - 0x10]
push edx
push 0
push 0
push ebx
call sub.KERNEL32.DLL_GetFileTime
push ebx
call sub.KERNEL32.DLL_CloseHandle
push 8
lea ecx, [edi + 0x48]
push ecx
lea eax, [ebp - 0x858]
push eax
call fcn.004a3530
add esp, 0xc
mov byte [ebp - 0x850], 0
push str.FindDebugInfoFileEx
mov edx, dword [0x4d5a00]
push edx
call sub.KERNEL32.DLL_GetProcAddress
mov ebx, eax
xor esi, esi
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x4914ba
push 0
push 0
lea eax, [ebp - 0x638]
push eax
lea edx, [ebp - 7]
push edx
lea ecx, [ebp - 0x434]
push ecx
call fcn.004a5198
add esp, 0x14
push 0x4c8ce6
lea eax, [ebp - 0x434]
push eax
call fcn.004a3644
add esp, 8
push 0x4e2990
lea edx, [ebp - 0x434]
push edx
call fcn.004a3644
add esp, 8
push 0x4c8ce6
lea ecx, [ebp - 0x434]
push ecx
call fcn.004a3644
add esp, 8
push 0x4d3868
lea eax, [ebp - 0x434]
push eax
call fcn.004a3644
add esp, 8
lea edx, [ebp - 0x10]
lea ecx, [ebp - 0x128]
lea eax, [ebp - 0x434]
push edx
push fcn.0049103c
push ecx
push eax
lea edx, [ebp - 0x838]
push edx
call ebx
mov esi, eax
xor ebx, ebx
jmp 0x4914ad
cmp ebx, 6
je 0x4914ac
mov eax, ebx
mov ecx, 3
cdq
idiv ecx
mov ecx, eax
test ecx, ecx
jne 0x491370
push edi
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4e2990
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x128]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
jmp 0x4913bd
dec ecx
jne 0x491393
push 0
push 0
lea eax, [ebp - 0x638]
push eax
lea edx, [ebp - 7]
push edx
lea ecx, [ebp - 0x128]
push ecx
call fcn.004a5198
add esp, 0x14
jmp 0x4913bd
push edi
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4d3868
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea esi, [ebp - 0x128]
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
lea eax, [ebp - 0x128]
push eax
call fcn.004a36d4
pop ecx
mov esi, eax
test esi, esi
jle 0x4913e7
xor eax, eax
mov al, byte [ebp + esi - 0x129]
cmp eax, 0x5c
je 0x4913e7
mov byte [ebp + esi - 0x128], 0x5c
inc esi
mov eax, ebx
mov ecx, 3
cdq
idiv ecx
mov ecx, edx
test ecx, ecx
jne 0x491416
lea eax, [ebp - 0x128]
add esi, eax
push esi
push edi
mov edi, esi
mov esi, str.symbols_sym_
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x49143a
dec ecx
jne 0x491432
lea edx, [ebp - 0x128]
add esi, edx
push esi
push edi
mov edi, esi
mov esi, 0x4c8cf0
mov eax, edi
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x49143a
mov byte [ebp + esi - 0x128], 0
lea edx, [ebp - 0x838]
push edx
lea ecx, [ebp - 0x128]
push ecx
call fcn.004a3644
add esp, 8
push str..sym
lea eax, [ebp - 0x128]
push eax
call fcn.004a3644
add esp, 8
lea edx, [ebp - 0x128]
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
push edx
call sub.KERNEL32.DLL_CreateFileA
mov esi, eax
cmp esi, 0xffffffff
jne 0x49148b
xor esi, esi
test esi, esi
je 0x4914ac
lea eax, [ebp - 0x10]
lea edx, [ebp - 0x128]
push eax
push edx
push esi
call fcn.0049103c
test eax, eax
jne 0x4914ac
push esi
call sub.KERNEL32.DLL_CloseHandle
xor esi, esi
inc ebx
test esi, esi
jne 0x4914ba
cmp ebx, 9
jl 0x49132b
mov dword [ebp - 0xab8], 0x23c
lea eax, [ebp - 0x738]
push eax
lea edx, [ebp - 0x838]
push edx
push 0
push 0
lea ecx, [ebp - 0x538]
push ecx
call fcn.004a5198
add esp, 0x14
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x858]
push eax
mov edx, dword [edi]
lea eax, [ebp - 0x538]
push edx
push ecx
push eax
push esi
mov edx, dword [0x4d5a78]
push edx
call dword [ebp - 0x18]
test eax, eax
je 0x4917f6
lea ecx, [ebp - 0xab8]
mov edx, dword [0x4d5a78]
push ecx
mov eax, dword [edi]
push eax
push edx
call dword [ebp - 0x1c]
test eax, eax
je 0x491537
cmp dword [ebp - 0xaa0], 0
je 0x491537
cmp dword [ebp - 0xaa0], 4
jne 0x491565
push str.SymUnloadModule
mov ecx, dword [0x4d5a00]
push ecx
call sub.KERNEL32.DLL_GetProcAddress
test eax, eax
je 0x491558
mov edx, dword [edi]
mov ecx, dword [0x4d5a78]
push edx
push ecx
call eax
xor eax, eax
mov dword [edi + 0x3fd], eax
jmp 0x4917f6
mov dword [edi + 0x3fd], 1
mov eax, dword [0x4d54d8]
push eax
call sub.USER32.DLL_SetCursor
mov dword [ebp - 0x14], eax
push str.SymEnumSymbols
mov edx, dword [0x4d5a00]
push edx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x20], eax
push str.SymSetContext
mov ecx, dword [0x4d5a00]
push ecx
call sub.KERNEL32.DLL_GetProcAddress
mov dword [ebp - 0x24], eax
push str.SymEnumSourceFiles
mov eax, dword [0x4d5a00]
push eax
call sub.KERNEL32.DLL_GetProcAddress
mov ebx, eax
push str.SymEnumerateSymbols
mov eax, dword [0x4d5a00]
push eax
call sub.KERNEL32.DLL_GetProcAddress
xor edx, edx
cmp dword [ebp - 0x20], 0
mov dword [0x4ee978], edx
je 0x49175e
cmp dword [ebp - 0x24], 0
je 0x49175e
test ebx, ebx
je 0x49175e
push edi
push 0x491d68
push 0
xor edx, edx
mov eax, dword [edi]
push edx
push eax
mov ecx, dword [0x4d5a78]
push ecx
call ebx
xor eax, eax
mov ebx, 0x400
mov dword [0x4ee984], eax
mov dword [0x4ee980], ebx
shl ebx, 4
push ebx
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [0x4ee97c], eax
push edi
push 0x491ea0
push 0
mov eax, dword [edi]
xor edx, edx
push edx
push eax
mov ecx, dword [0x4d5a78]
push ecx
call dword [ebp - 0x20]
cmp dword [0x4ee97c], 0
je 0x491774
push 0x80
push 0
lea eax, [ebp - 0xb38]
push eax
call fcn.004a35a0
add esp, 0xc
xor ebx, ebx
jmp 0x49173c
mov edi, ebx
mov eax, dword [0x4ee97c]
shl edi, 4
mov ecx, dword [0x4ee97c]
mov edx, dword [eax + edi]
mov dword [ebp - 0x87c], edx
mov edx, ebx
mov eax, dword [ecx + edi + 4]
mov ecx, dword [0x4ee97c]
shl edx, 4
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], 0x205
mov eax, dword [ecx + edx]
mov edx, dword [0x4ee97c]
mov ecx, dword [0x4ee97c]
add eax, dword [edx + edi + 8]
mov dword [ebp - 0x870], eax
xor edx, edx
mov eax, dword [ecx + edi + 0xc]
lea ecx, [ebp - 0x87c]
mov dword [ebp - 0x86c], eax
mov dword [ebp - 0x868], edx
push ecx
push 2
call fcn.0048f8e8
mov eax, dword [0x4ee97c]
xor edx, edx
add esp, 8
mov eax, dword [eax + edi]
mov edi, ebx
mov dword [ebp - 0xb38], eax
shl edi, 4
mov eax, dword [0x4ee97c]
mov dword [ebp - 0xb34], edx
cmp dword [eax + edi + 8], 0
je 0x491733
push 0
lea edx, [ebp - 0xb38]
push edx
mov ecx, dword [0x4d5a78]
push ecx
call dword [ebp - 0x24]
test eax, eax
je 0x491733
add edi, dword [0x4ee97c]
mov eax, dword [0x4d5a78]
push edi
push 0x492134
push 0
push 0
push 0
push eax
call dword [ebp - 0x20]
push 2
call fcn.0048fda4
pop ecx
inc ebx
cmp ebx, dword [0x4ee984]
jl 0x491666
mov edx, dword [0x4ee97c]
push edx
call sub.KERNEL32.DLL_GlobalFree
xor ecx, ecx
mov dword [0x4ee97c], ecx
jmp 0x491774
test eax, eax
je 0x491774
push edi
push 0x492264
mov edx, dword [edi]
mov ecx, dword [0x4d5a78]
push edx
push ecx
call eax
push 0
call fcn.00464580
pop ecx
mov eax, dword [ebp - 0xaa0]
cmp eax, 7
ja case.0x491787.0
jmp dword [eax*4 + 0x49178e]
mov eax, str.COFF
jmp 0x4917d6
mov eax, str.CodeView
jmp 0x4917d6
mov eax, 0x4c8d5c
jmp 0x4917d6
mov eax, 0x4c8d60
jmp 0x4917d6
mov eax, 0x4c8d64
jmp 0x4917d6
mov eax, str.Microsoft
push eax
push str.__Debugging_information___s_format__available
push 0xffffffffffffffff
push 0
call sym.ollydbg.exe__Addtolist
add esp, 0x10
mov edx, dword [ebp - 0x14]
push edx
call sub.USER32.DLL_SetCursor
xor ecx, ecx
mov dword [ebp - 4], ecx
test esi, esi
je 0x491800
push esi
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret