Function at 0x10a33560
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10bd19a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x91c
push ebx
push ebp
mov ebp, dword [esp + reloc.ole32.dll_CoCreateGuid]
push esi
push edi
mov edi, dword [esp + reloc.ole32.dll_CoCreateGuid]
push 0x10ca7780
mov ecx, edi
call fcn.10904640
lea esi, [edi + 0xc]
push 0x10ca77bc
mov ecx, esi
mov dword [esp + reloc.ole32.dll_CoCreateGuid], 0
call fcn.10904640
mov eax, dword [0x10c922ac]
lea ebx, [edi + 0x1c]
push 0x10ca77a4
mov ecx, ebx
mov byte [esp + 0x938], 1
mov dword [edi + 0x18], eax
call fcn.10904640
xor eax, eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], eax
lea ecx, [edi + 0x34]
push 0x10ca77c8
mov byte [esp + 0x938], 3
call fcn.10904640
mov edx, dword [esp + reloc.ole32.dll_CoCreateGuid]
push 0x400
push edx
lea eax, reloc.ole32.dll_CoCreateGuid
lea ecx, reloc.ole32.dll_CoCreateGuid
push eax
mov byte [esp + 0x940], 4
mov dword [edi + 0x40], 1
mov dword [esp + 0x1c], ecx
call dword [sym.imp.MSVCR70.dll_wcsncpy]
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
add esp, 0xc
cmp eax, 2
mov word [esp + 0x92a], 0
jne 0x10a33672
push ebp
mov ecx, edi
call fcn.10904800
lea ecx, [ebp + 0xc]
push ecx
mov ecx, esi
call fcn.10904800
lea edx, [ebp + 0x1c]
push edx
mov ecx, ebx
call fcn.10904800
lea eax, [ebp + 0x34]
push eax
lea ecx, [edi + 0x34]
call fcn.10904800
mov ecx, dword [ebp + 0x18]
mov dword [edi + 0x18], ecx
jmp 0x10a33680
cmp dword [esp + reloc.ole32.dll_CoCreateGuid], 1
jne 0x10a337a3
mov eax, dword [ebp + 0x2c]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x10a337a3
mov ebx, dword [sym.imp.MSVCR70.dll__wcsicmp]
xor esi, esi
jmp 0x10a336a0
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
je 0x10a336b1
mov eax, dword [eax]
jmp 0x10a336b6
mov eax, 0x10c10928
push str.PUSH
push eax
call ebx
add esp, 8
test eax, eax
je 0x10a3378c
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
je 0x10a336da
mov eax, dword [eax]
jmp 0x10a336df
mov eax, 0x10c10928
push 0x10c47864
push eax
call ebx
add esp, 8
test eax, eax
je 0x10a3378c
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
je 0x10a33703
mov eax, dword [eax]
jmp 0x10a33708
mov eax, 0x10c10928
push str.PEER
push eax
call ebx
add esp, 8
test eax, eax
je 0x10a3378c
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
je 0x10a33728
mov eax, dword [eax]
jmp 0x10a3372d
mov eax, 0x10c10928
push str.LOAD
push eax
call ebx
add esp, 8
test eax, eax
je 0x10a3378c
mov eax, dword [ebp + 0x28]
mov ecx, dword [eax + esi + 4]
add eax, esi
test ecx, ecx
je 0x10a3374d
mov eax, dword [eax]
jmp 0x10a33752
mov eax, 0x10c10928
push str.QUIET
push eax
call ebx
add esp, 8
test eax, eax
je 0x10a3378c
push 0xc
lea ebx, [edi + 0x28]
push 1
mov ecx, ebx
call fcn.109044e0
lea edx, [eax + eax*2]
mov eax, dword [ebx]
lea ecx, [eax + edx*4]
test ecx, ecx
je 0x10a33786
mov edx, dword [ebp + 0x28]
add edx, esi
push edx
call fcn.10904640
mov ebx, dword [sym.imp.MSVCR70.dll__wcsicmp]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x2c]
inc eax
add esi, 0xc
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x10a336a0
cmp word [esp + 0x12c], 0x20
mov edi, dword [esp + 0x10]
jne 0x10a337bf
add edi, 2
cmp word [edi], 0x20
je 0x10a337b2
mov dword [esp + 0x10], edi
mov ebx, dword [sym.imp.MSVCR70.dll_wcschr]
push 0x3f
push edi
call ebx
push 0x23
push edi
mov esi, eax
call ebx
add esp, 0x10
test esi, esi
je 0x10a337e4
test eax, eax
je 0x10a337e0
cmp esi, eax
jae 0x10a337e4
mov edi, esi
jmp 0x10a337e6
mov edi, eax
test edi, edi
je 0x10a338fc
mov ax, word [edi]
xor ebp, ebp
mov word [edi], bp
mov word [esp + 0x14], ax
add edi, 2
mov edi, edi
push 0x3f
push edi
call ebx
push 0x23
push edi
mov esi, eax
call ebx
add esp, 0x10
test esi, esi
je 0x10a3381f
test eax, eax
je 0x10a3381b
cmp esi, eax
jae 0x10a3381f
mov ebx, esi
jmp 0x10a33821
mov ebx, eax
test ebx, ebx
je 0x10a33830
mov bp, word [ebx]
mov word [ebx], 0
add ebx, 2
push 0x20
push edi
call dword [sym.imp.MSVCR70.dll_wcschr]
add esp, 8
test eax, eax
jne 0x10a3387c
cmp word [esp + 0x14], 0x3f
jne 0x10a33857
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
push edi
call fcn.10a34440
jmp 0x10a33866
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
add esi, 0x34
call fcn.10904750
test ebx, ebx
mov edi, ebx
mov dword [esp + 0x14], ebp
je 0x10a338fc
mov ebx, dword [sym.imp.MSVCR70.dll_wcschr]
jmp 0x10a33800
lea ecx, [esp + 0x20]
push ecx
xor edi, edi
call fcn.10a33490
mov esi, eax
mov ebx, dword [esp + reloc.ole32.dll_CoCreateGuid]
push esi
mov ecx, ebx
mov byte [esp + 0x938], 5
call fcn.10904800
lea edx, [esi + 0xc]
push edx
lea ecx, [ebx + 0xc]
call fcn.10904800
mov eax, dword [esi + 0x18]
lea ecx, [esi + 0x1c]
push ecx
lea ecx, [ebx + 0x1c]
mov dword [ebx + 0x18], eax
call fcn.10904800
lea edi, [esi + 0x28]
lea eax, [ebx + 0x28]
call fcn.1090c6a0
lea edx, [esi + 0x34]
push edx
lea ecx, [ebx + 0x34]
call fcn.10904800
mov eax, dword [esi + 0x40]
lea ecx, [esp + 0x20]
push ecx
mov dword [ebx + 0x40], eax
mov byte [esp + 0x938], 4
call fcn.109a7d70
mov dword [ebx + 0x40], 0
mov eax, ebx
jmp 0x10a3402a
mov ebx, dword [esp + 0x10]
xor eax, eax
push ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], eax
call dword [sym.imp.MSVCR70.dll_wcslen]
add esp, 4
cmp eax, 2
jle 0x10a33983
cmp word [ebx + 2], 0x3a
jne 0x10a33983
mov ebp, dword [esp + reloc.ole32.dll_CoCreateGuid]
push 0x10ca7780
mov ecx, ebp
call fcn.10904800
lea ecx, [ebp + 0xc]
push 0x10ca77bc
mov dword [esp + 0x1c], ecx
call fcn.10904800
mov edi, ebx
lea esi, [ebp + 0x1c]
call fcn.10904750
push 0x10ca77c8
lea ecx, [ebp + 0x34]
call fcn.10904800
mov esi, dword [esp + 0x18]
mov eax, 1
mov edi, 0x10c922d4
mov dword [esp + 0x10], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
call fcn.10904750
jmp 0x10a33bdc
mov ebp, dword [sym.imp.MSVCR70.dll_wcschr]
push 0x3a
push ebx
call ebp
add esp, 8
test eax, eax
je 0x10a339e7
push 0x3a
push ebx
call ebp
lea edx, [ebx + 2]
add esp, 8
cmp eax, edx
jbe 0x10a339e7
push 0x2e
push ebx
call ebp
add esp, 8
test eax, eax
je 0x10a339c3
push 0x2e
push ebx
call ebp
push 0x3a
push ebx
mov esi, eax
call ebp
add esp, 0x10
cmp eax, esi
jae 0x10a339e7
push 0x3a
push ebx
mov edi, ebx
call ebp
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov ebx, eax
mov word [ebx], 0
add ebx, 2
add esp, 8
mov dword [esp + 0x10], ebx
call fcn.10904750
cmp word [ebx], 0x2f
jne 0x10a33a5b
mov ax, word [ebx + 2]
add ebx, 2
add ebx, 2
cmp ax, 0x2f
mov dword [esp + 0x10], ebx
je 0x10a33a3f
lea ecx, [esp + 0x20]
push ecx
xor edi, edi
call fcn.10a33490
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov ebx, eax
mov byte [esp + 0x934], 6
call fcn.109e97d0
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x938], 4
call fcn.109a7d70
mov dword [esi + 0x40], edi
mov eax, esi
jmp 0x10a3402a
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov edi, 0x10c922d8
add esi, 0xc
mov dword [esp + 0x1c], 1
call fcn.10904750
push 0x2e
push ebx
call ebp
mov edi, eax
add esp, 8
test edi, edi
je 0x10a33bdc
sub eax, ebx
test eax, 0xfffffffe
jle 0x10a33bdc
mov eax, dword [0x10ca77d8]
test eax, eax
je 0x10a33a8d
lea ecx, [eax - 1]
mov eax, dword [0x10ca77d4]
jmp 0x10a33a94
xor ecx, ecx
mov eax, 0x10c10928
push ecx
push eax
lea esi, [edi + 2]
push esi
call dword [sym.imp.MSVCR70.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10a33ae6
mov eax, dword [0x10ca77d8]
test eax, eax
je 0x10a33ab3
dec eax
jmp 0x10a33ab5
xor eax, eax
mov ax, word [edi + eax*2 + 2]
cmp ax, 0x61
jb 0x10a33ac6
cmp ax, 0x7a
jbe 0x10a33ae6
cmp ax, 0x41
jb 0x10a33ad2
cmp ax, 0x5a
jbe 0x10a33ae6
cmp ax, 0x30
jb 0x10a33bdc
cmp ax, 0x39
ja 0x10a33bdc
mov eax, dword [0x10ca77e4]
test eax, eax
je 0x10a33af9
lea ecx, [eax - 1]
mov eax, dword [0x10ca77e0]
jmp 0x10a33b00
xor ecx, ecx
mov eax, 0x10c10928
push ecx
push eax
push esi
call dword [sym.imp.MSVCR70.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x10a33b30
mov eax, dword [0x10ca77e4]
test eax, eax
je 0x10a33b1c
dec eax
jmp 0x10a33b1e
xor eax, eax
mov ax, word [edi + eax*2 + 2]
call fcn.1090c9d0
test eax, eax
je 0x10a33bdc
push 0x2f
push ebx
mov edi, ebx
call ebp
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x10a33b4e
mov word [eax], 0
add eax, 2
mov dword [esp + 0x10], eax
push 0x3a
push edi
call ebp
add esp, 8
test eax, eax
je 0x10a33b76
mov word [eax], 0
add eax, 2
push eax
call dword [sym.imp.MSVCR70.dll__wtoi]
mov ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
add esp, 4
mov dword [ecx + 0x18], eax
mov ebx, dword [esp + reloc.ole32.dll_CoCreateGuid]
lea esi, [ebx + 0xc]
call fcn.10904750
mov eax, dword [0x10ca7784]
test eax, eax
mov ecx, dword [0x10ca7780]
jne 0x10a33b99
mov ecx, 0x10c10928
mov eax, dword [ebx + 4]
test eax, eax
je 0x10a33ba4
mov eax, dword [ebx]
jmp 0x10a33ba9
mov eax, 0x10c10928
push ecx
push eax
call dword [sym.imp.MSVCR70.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x10a33bc7
push 0x10ca77a4
lea ecx, [ebx + 0x1c]
call fcn.10904800
jmp 0x10a33bd4
mov edi, 0x10c922dc
lea esi, [ebx + 0x1c]
call fcn.10904750
mov dword [esp + 0x1c], 1
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x10a33e67
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
test eax, eax
je 0x10a33e67
mov eax, dword [esp + reloc.ole32.dll_CoCreateGuid]
call fcn.10a343a0
test eax, eax
je 0x10a33e67
mov edx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [edx + 0x2c]
test eax, eax
mov dword [esp + 0x18], 0
jle 0x10a33e67
mov ebp, dword [sym.imp.MSVCR70.dll__wcsnicmp]
xor edi, edi
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33c48
mov eax, dword [eax]
jmp 0x10a33c4d
mov eax, 0x10c10928
push 5
push 0x10c47890
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33c73
mov eax, dword [eax]
jmp 0x10a33c78
mov eax, 0x10c10928
push 5
push 0x10c4789c
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33c9e
mov eax, dword [eax]
jmp 0x10a33ca3
mov eax, 0x10c10928
push 6
push 0x10c478a8
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33cc9
mov eax, dword [eax]
jmp 0x10a33cce
mov eax, 0x10c10928
push 5
push 0x10c478b8
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33cf4
mov eax, dword [eax]
jmp 0x10a33cf9
mov eax, 0x10c10928
push 5
push str.Face
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33d1b
mov eax, dword [eax]
jmp 0x10a33d20
mov eax, 0x10c10928
push 6
push str.Voice
push eax
call ebp
add esp, 0xc
test eax, eax
je 0x10a33d63
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33d42
mov eax, dword [eax]
jmp 0x10a33d47
mov eax, 0x10c10928
push 0xe
push str.OverrideClass
push eax
call ebp
add esp, 0xc
test eax, eax
jne 0x10a33e49
mov esi, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33d74
mov eax, dword [eax]
jmp 0x10a33d79
mov eax, 0x10c10928
push 0x3d
push eax
call dword [sym.imp.MSVCR70.dll_wcschr]
add esp, 8
test eax, eax
je 0x10a33dcf
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx + edi + 4]
add ecx, edi
test edx, edx
je 0x10a33d9a
mov edx, dword [ecx]
jmp 0x10a33d9f
mov edx, 0x10c10928
mov esi, dword [ecx + 4]
test esi, esi
je 0x10a33daa
mov ecx, dword [ecx]
jmp 0x10a33daf
mov ecx, 0x10c10928
sub eax, edx
sar eax, 1
inc eax
mov esi, eax
push esi
push ecx
lea edx, [esp + 0x6c]
push edx
call dword [sym.imp.MSVCR70.dll_wcsncpy]
add esp, 0xc
mov word [esp + esi*2 + 0x62], 0
jmp 0x10a33df4
mov eax, dword [esi + 0x28]
mov ecx, dword [eax + edi + 4]
add eax, edi
test ecx, ecx
je 0x10a33de0
mov eax, dword [eax]
jmp 0x10a33de5
mov eax, 0x10c10928
push eax
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.MSVCR70.dll_wcscpy]
add esp, 8
mov ebx, dword [esp + reloc.ole32.dll_CoCreateGuid]
push 0x10c922e4
lea ecx, [esp + 0x68]
push ecx
call fcn.10a345b0
push 0x10c922e0
push eax
call dword [sym.imp.MSVCR70.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x10a33e49
push 0xc
lea esi, [ebx + 0x28]
push 1
mov ecx, esi
call fcn.109044e0
lea edx, [eax + eax*2]
mov eax, dword [esi]
lea ecx, [eax + edx*4]
test ecx, ecx
je 0x10a33e49
mov edx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [edx + 0x28]
add eax, edi
push eax
call fcn.10904640
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov edx, dword [ecx + 0x2c]
inc eax
add edi, 0xc
cmp eax, edx
mov dword [esp + 0x18], eax
jl 0x10a33c30
mov esi, dword [esp + 0x10]
test esi, esi
je 0x10a33f33
cmp word [esi], 0
je 0x10a33f33
mov eax, dword [0x10ca7784]
test eax, eax
mov ecx, dword [0x10ca7780]
jne 0x10a33e91
mov ecx, 0x10c10928
mov ebp, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [ebp + 4]
test eax, eax
je 0x10a33ea4
mov eax, dword [ebp]
jmp 0x10a33ea9
mov eax, 0x10c10928
push ecx
push eax
call dword [sym.imp.MSVCR70.dll__wcsicmp]
mov ebx, dword [sym.imp.MSVCR70.dll_wcschr]
add esp, 8
test eax, eax
jne 0x10a33f25
push 0x2f
push esi
mov dword [esp + 0x1c], 1
call ebx
mov edi, eax
add esp, 8
test edi, edi
je 0x10a33f25
mov word [edi], 0
add edi, 2
push 0x2f
push edi
call ebx
add esp, 8
test eax, eax
je 0x10a33f1d
mov word [eax], 0
add eax, 2
cmp word [eax], 0
je 0x10a33f1d
lea edx, [esp + 0x20]
push edx
xor edi, edi
call fcn.10a33490
mov ebx, eax
mov esi, ebp
mov byte [esp + 0x934], 7
call fcn.109e97d0
lea eax, [esp + 0x20]
push eax
jmp 0x10a34014
lea esi, [ebp + 0x34]
call fcn.10904750
mov edi, dword [esp + 0x10]
lea esi, [ebp + 0x1c]
call fcn.10904750
jmp 0x10a33f40
mov ebx, dword [sym.imp.MSVCR70.dll_wcschr]
mov ebp, dword [esp + reloc.ole32.dll_CoCreateGuid]
mov eax, dword [ebp + 4]
test eax, eax
je 0x10a33f4c
mov eax, dword [ebp]
jmp 0x10a33f51
mov eax, 0x10c10928
push 0x20
push eax
call ebx
add esp, 8
test eax, eax
jne 0x10a33fb6
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10a33f69
mov eax, dword [ebp + 0xc]
jmp 0x10a33f6e
mov eax, 0x10c10928
push 0x20
push eax
call ebx
add esp, 8
test eax, eax
jne 0x10a33fb6
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x10a33f86
mov eax, dword [ebp + 0x34]
jmp 0x10a33f8b
mov eax, 0x10c10928
push 0x20
push eax
call ebx
add esp, 8
test eax, eax
jne 0x10a33fb6
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x10a34028
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x10a34028
mov eax, dword [ebp + 0x2c]
test eax, eax
jne 0x10a34028
lea ecx, [esp + 0x20]
push ecx
xor edi, edi
call fcn.10a33490
mov esi, eax
push esi
mov ecx, ebp
mov byte [esp + 0x938], 8
call fcn.10904800
lea edx, [esi + 0xc]
push edx
lea ecx, [ebp + 0xc]
call fcn.10904800
mov eax, dword [esi + 0x18]
lea ecx, [esi + 0x1c]
push ecx
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x18], eax
call fcn.10904800
lea edi, [esi + 0x28]
lea eax, [ebp + 0x28]
call fcn.1090c6a0
lea edx, [esi + 0x34]
push edx
lea ecx, [ebp + 0x34]
call fcn.10904800
mov eax, dword [esi + 0x40]
lea ecx, [esp + 0x20]
mov dword [ebp + 0x40], eax
push ecx
mov byte [esp + 0x938], 4
call fcn.109a7d70
mov dword [ebp + 0x40], 0
mov eax, ebp
mov ecx, dword [esp + reloc.ole32.dll_CoCreateGuid]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x928
ret 0x10