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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b7400
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
push ebx
push esi
push edi
mov eax, dword [0x61ac94]
xor eax, esp
push eax
lea eax, [esp + 0xc0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x1c], edi
mov esi, dword [ebp + 8]
push esi
call fcn.00540ad0
lea eax, [esp + 0x14]
push eax
call fcn.0056d350
add esp, 4
mov eax, dword [eax]
xor ebx, ebx
mov dword [esp + 0xc8], ebx
cmp eax, ebx
je 0x56e831
mov eax, dword [eax]
jmp 0x56e833
xor eax, eax
lea ecx, [edi + 0x84]
push ecx
push eax
push esi
call fcn.005294d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0xc8], 0xffffffff
cmp eax, ebx
je 0x56e891
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x56e891
cmp esi, ebx
je 0x56e891
mov eax, dword [esi]
cmp eax, ebx
je 0x56e878
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x56e888
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
lea edx, [esp + 0x14]
push edx
call fcn.0056d3b0
add esp, 4
mov eax, dword [eax]
mov dword [esp + 0xc8], 1
cmp eax, ebx
je 0x56e8b3
mov eax, dword [eax]
jmp 0x56e8b5
xor eax, eax
lea ecx, [edi + 0x8c]
push ecx
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.005294d0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0xc8], 0xffffffff
cmp eax, ebx
je 0x56e916
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x56e916
cmp esi, ebx
je 0x56e916
mov eax, dword [esi]
cmp eax, ebx
je 0x56e8fd
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x56e90d
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
mov ecx, edi
call fcn.00540900
test eax, eax
je 0x56e93f
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call fcn.00540900
mov ecx, eax
add ecx, 4
call fcn.00548c40
push eax
mov ecx, edi
call fcn.00540940
push 0x5e95a9
lea ecx, [esp + 0x14]
call fcn.00439ab0
push 4
mov dword [esp + 0xcc], 2
call fcn.004a3ce6
add esp, 4
cmp eax, ebx
je 0x56e96e
lea edx, [esp + 0x64]
mov dword [eax], edx
jmp 0x56e970
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x20]
push eax
push ecx
mov byte [esp + 0xd0], 3
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.005297b0
add esp, 8
cmp eax, ebx
je 0x56ee5c
xor edi, edi
mov dword [esp + 0x28], edi
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x28]
push edx
mov byte [esp + 0xd0], 4
call eax
lea ecx, [esp + 0x2c]
push ecx
call fcn.0056d370
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp ecx, eax
jne 0x56e9ef
xor eax, eax
jmp 0x56ea37
cmp ecx, edi
jne 0x56ea11
cmp eax, edi
je 0x56ea08
mov eax, dword [eax]
cmp eax, edi
je 0x56ea08
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, edi
jne 0x56ea0c
xor eax, eax
jmp 0x56ea37
or eax, 0xffffffff
jmp 0x56ea37
cmp eax, edi
jne 0x56ea31
mov ecx, dword [ecx]
cmp ecx, edi
je 0x56ea26
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, edi
jne 0x56ea2a
xor eax, eax
jmp 0x56ea37
mov eax, 1
jmp 0x56ea37
push eax
call fcn.004394d0
cmp eax, edi
mov eax, dword [esp + 0x2c]
sete bl
cmp eax, edi
je 0x56ea82
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, edi
jne 0x56ea7e
cmp esi, edi
je 0x56ea7e
mov eax, dword [esi]
cmp eax, edi
je 0x56ea65
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, edi
je 0x56ea75
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
mov dword [esp + 0x2c], edi
test bl, bl
je 0x56edef
push 0x5e8ee8
lea ecx, [esp + 0x14]
call fcn.0051c480
lea edx, [esp + 0x30]
push edx
call fcn.0056d390
add esp, 4
mov eax, dword [eax]
mov byte [esp + 0xc8], 5
cmp eax, edi
je 0x56eab7
mov eax, dword [eax]
jmp 0x56eab9
xor eax, eax
lea ecx, [esp + 0x10]
push ecx
push eax
lea edx, [esp + 0x28]
push edx
call fcn.005294d0
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov byte [esp + 0xc8], 4
cmp eax, edi
je 0x56eb1a
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, edi
jne 0x56eb16
cmp esi, edi
je 0x56eb16
mov eax, dword [esi]
cmp eax, edi
je 0x56eafd
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, edi
je 0x56eb0d
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x56edfd
mov ecx, dword [eax]
xor edi, edi
cmp ecx, edi
je 0x56ebac
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, edi
jbe 0x56eba8
lea ecx, [esp + 0x64]
call fcn.005423b0
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
call fcn.005297b0
add esp, 8
cmp eax, edi
je 0x56eb9b
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x34]
push edx
mov ecx, esi
call fcn.0056c440
mov dword [esp + 0x18], eax
cmp eax, edi
je 0x56eb8a
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x68]
call fcn.00544a70
lea ecx, [esp + 0x34]
push ecx
call fcn.005297d0
add esp, 4
cmp eax, edi
jne 0x56eb68
lea edx, [esp + 0x34]
push edx
call fcn.00529810
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, edi
je 0x56edfd
mov eax, dword [eax]
test eax, eax
je 0x56edfd
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x56edfd
push 4
call fcn.004a3ce6
xor esi, esi
add esp, 4
cmp eax, esi
je 0x56ebe5
lea ecx, [esp + 0x44]
mov dword [eax], ecx
jmp 0x56ebe7
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x10]
mov byte [esp + 0xc8], 6
cmp eax, esi
je 0x56ec0f
mov eax, dword [eax]
jmp 0x56ec11
xor eax, eax
lea edx, [esp + 0x44]
push edx
push 0x5bd498
push eax
call fcn.00551060
mov ecx, dword [esp + 0x6c]
add esp, 0xc
mov dword [esp + 0x18], esi
cmp ecx, esi
jbe 0x56edc7
mov eax, dword [esp + 0x5c]
add ecx, eax
mov esi, eax
cmp eax, ecx
jbe 0x56ec45
call fcn.004e73ca
mov eax, dword [esp + 0x44]
mov edi, eax
mov ebx, edi
mov dword [esp + 0xac], esi
test eax, eax
jne 0x56ec79
call fcn.004e73ca
xor eax, eax
xor ecx, ecx
mov ecx, dword [ecx + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, dword [eax + 0x18]
add esi, edx
cmp esi, ecx
ja 0x56ec86
test edi, edi
je 0x56ec7f
mov edi, dword [edi]
jmp 0x56ec81
mov eax, dword [eax]
mov ecx, eax
jmp 0x56ec61
xor edi, edi
cmp esi, dword [edi + 0x18]
jae 0x56ec8b
call fcn.004e73ca
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
call fcn.005505a0
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x18]
call fcn.0051ab80
mov esi, dword [esp + 0x14]
mov dword [esp + 0x84], esi
test esi, esi
je 0x56ecc1
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x8c]
mov byte [esp + 0xcc], 8
call fcn.0056df90
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0xb4]
push edx
add ecx, 0x64
mov byte [esp + 0xd0], 9
call fcn.0056e690
lea ecx, [esp + 0x88]
call fcn.005423b0
mov eax, dword [esp + 0x88]
push eax
call fcn.004a3d15
mov eax, dword [esp + 0x88]
add esp, 4
test eax, eax
je 0x56ed6a
mov edi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x56ed5f
test edi, edi
je 0x56ed5f
mov eax, dword [edi]
test eax, eax
je 0x56ed46
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
test eax, eax
je 0x56ed56
push eax
call fcn.004a3d2b
add esp, 4
push edi
call fcn.004a3d15
add esp, 4
mov dword [esp + 0x84], 0
mov byte [esp + 0xc8], 6
test esi, esi
je 0x56edb2
lea ecx, [esi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x56edaa
mov eax, dword [esi]
test eax, eax
je 0x56ed91
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x56eda1
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x60]
inc eax
mov dword [esp + 0x18], eax
cmp eax, ecx
jb 0x56ec34
lea ecx, [esp + 0x44]
mov byte [esp + 0xc8], 0xa
call fcn.004213d0
mov edx, dword [esp + 0x44]
push edx
mov byte [esp + 0xcc], 4
call fcn.004a3d15
add esp, 4
jmp 0x56edfd
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
call fcn.0056c440
lea ecx, [esp + 0x20]
push ecx
call fcn.005297d0
mov esi, dword [esp + 0x2c]
add esp, 4
mov edi, eax
mov byte [esp + 0xc8], 3
test esi, esi
je 0x56ee54
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x56ee54
test esi, esi
je 0x56ee54
mov eax, dword [esi]
test eax, eax
je 0x56ee3b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x56ee4b
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
test edi, edi
jne 0x56e9b0
lea eax, [esp + 0x20]
push eax
call fcn.00529810
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x8c]
lea esi, [edi + 0x8c]
add esp, 4
test eax, eax
je 0x56ee96
mov eax, dword [eax]
test eax, eax
je 0x56ee96
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x56ee96
push esi
mov ecx, edi
call fcn.0056d610
lea ecx, [esp + 0x64]
call fcn.005423b0
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004a3d15
mov esi, dword [esp + 0x14]
add esp, 4
test esi, esi
je 0x56eeec
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x56eeec
test esi, esi
je 0x56eeec
mov eax, dword [esi]
test eax, eax
je 0x56eed3
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x56eee3
push eax
call fcn.004a3d2b
add esp, 4
push esi
call fcn.004a3d15
add esp, 4
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4