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

Disassembly:
sub esp, 0x2a4
mov eax, dword [0x1013567c]
xor eax, esp
mov dword [esp + 0x2a0], eax
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2c0]
mov eax, dword [esp + 0x2b0]
push ebx
mov ebx, dword [esp + 0x2bc]
push ebp
xor ebp, ebp
mov dword [esp + 0x28], ecx
push esi
mov esi, dword [esp + 0x2c0]
mov dword [ecx], ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], ebp
mov dword [edx], ebp
push edi
mov edi, ebp
test esi, esi
je 0x101052f3
cmp word [esi], bp
je 0x101052f3
push ebp
push ebp
mov ebp, dword [esp + 0x2c0]
lea ecx, [esp + 0x3c]
push ecx
push 0x38
lea ecx, [esp + 0x88]
push ecx
push 0xffffffffffffffff
push eax
push dword [esp + 0x2d8]
push ebp
call fcn.100c5ad7
test eax, eax
js 0x101052f5
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x10104d2d
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
and dword [ecx], edi
and dword [eax], edi
xor esi, esi
jmp 0x101052c5
imul edi, eax, 0x14
push edi
call fcn.101174f0
mov dword [esp + 0x14], eax
pop ecx
test eax, eax
jne 0x10104d4b
mov esi, 0xfffffc0d
mov edi, eax
jmp 0x101052c5
push edi
mov edi, eax
push 0
push edi
call fcn.10117460
add esp, 0xc
mov dword [esp + 0x54], esi
lea eax, [esi + ebx*2]
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], eax
mov ebx, edi
xor eax, eax
mov dword [esp + 0x48], ebp
push 0x40
pop ecx
cmp word [esi], cx
mov esi, dword [esp + 0x80]
sete al
mov dword [esp + 0x6c], 0x5c
mov dword [esp + 0x44], eax
mov dword [esp + 0x1c], esi
test eax, eax
je 0x10104df5
lea eax, [esp + 0x48]
push eax
call fcn.10105d05
mov eax, dword [esp + 0x5c]
push 0x40
pop ecx
cmp word [eax], cx
jne 0x101052bc
mov edx, dword [esp + 0x64]
lea esi, [esp + 0x78]
add eax, 2
dec edx
mov dword [ebx], eax
lea eax, [ebx + 0x10]
push eax
sub esp, 0x38
mov dword [ebx + 8], edx
push 0xe
pop ecx
mov edi, esp
push edx
push dword [ebx]
rep movsd dword es:[edi], dword [esi]
push ebp
call fcn.1010551a
test eax, eax
je 0x101052bc
lea eax, [esp + 0x48]
push eax
call fcn.10105d05
cmp eax, 0x3d
jne 0x101052bc
mov esi, dword [esp + 0x1c]
push 0x1000f0d4
lea eax, [esp + 0x4c]
push eax
call fcn.10105b91
cmp eax, 0x102
jne 0x101052bc
mov eax, dword [esp + 0x5c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x64]
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x48]
add ebx, 0x14
push eax
mov dword [esp + 0x3c], ebx
call fcn.10105d05
cmp eax, 0x2c
jne 0x10104e43
dec esi
mov dword [esp + 0x1c], esi
je 0x10104e43
mov eax, dword [esp + 0x44]
jmp 0x10104d90
lea eax, [esp + 0x2c]
push eax
push 0xfa0
call fcn.100c9f00
mov esi, eax
test esi, esi
js 0x101052c1
imul eax, dword [esp + 0x80], 0x108
push eax
mov dword [esp + 0x40], eax
call fcn.101174f0
pop ecx
mov ecx, dword [esp + 0x30]
mov edi, eax
mov dword [ecx], edi
test edi, edi
jne 0x10104e88
mov esi, 0xfffffc0d
jmp 0x101052c1
xor ebx, ebx
push ebx
push Ordinal_2
push dword [esp + 0x84]
mov dword [esp + 0x30], ebx
push ebp
call fcn.1003c7d0
mov esi, eax
test esi, esi
js 0x101052c1
jmp 0x1010526b
dec eax
push ebp
mov dword [esp + 0x84], eax
call fcn.10037d30
push 0
push 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x3c]
push eax
push 0x200
lea eax, [esp + 0xc0]
push eax
push dword [esp + 0x9c]
push dword [esp + 0x94]
push ebp
call fcn.1003cb60
mov esi, eax
test esi, esi
js 0x101052c1
mov eax, dword [esp + 0x34]
and eax, 0xfffffffe
cmp eax, 0x200
jae 0x10105310
xor ecx, ecx
push ecx
push ecx
mov word [esp + eax + 0xb8], cx
lea eax, [esp + 0x3c]
push eax
push 4
lea eax, [esp + 0x24]
push eax
push dword [esp + 0xa4]
push dword [esp + 0x94]
push ebp
call fcn.1003cb60
mov esi, eax
test esi, esi
js 0x101052c1
push 0
push 0
lea eax, [esp + 0x3c]
push eax
push 4
lea eax, [esp + 0x84]
push eax
push dword [esp + 0xb0]
push dword [esp + 0x94]
push ebp
call fcn.1003cb60
mov esi, eax
test esi, esi
js 0x101052c1
push 0
push 1
push dword [esp + 0x84]
push ebp
call fcn.1003c7d0
mov esi, eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x14]
lea eax, [esp + 0xb8]
push dword [esp + 0x4c]
push ebx
push eax
call fcn.10105658
mov ebx, dword [esp + 0x38]
cmp dword [ebx + 0xc], 4
jne 0x10104fc4
push 4
push 0x1000c9bc
push dword [ebx + 4]
call fcn.101157a0
add esp, 0xc
test eax, eax
jne 0x10104fc4
and dword [edi], eax
jmp 0x1010525f
cmp dword [ebx + 0xc], 0
je 0x1010524f
push 7
pop eax
cmp dword [ebx + 0xc], eax
jne 0x10104fef
push eax
push 0x10011da0
push dword [ebx + 4]
call fcn.101157a0
add esp, 0xc
test eax, eax
je 0x1010524f
mov ecx, dword [ebx + 0xc]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov dword [esp + 0x34], ecx
test eax, eax
jne 0x10105013
mov eax, 0x1fe
cmp eax, ecx
sbb eax, eax
and eax, 2
add eax, 0xa
mov dword [esp + 0x14], eax
push eax
call fcn.100cb6e5
cmp al, 8
mov byte [esp + 0x1b], al
push 7
setne cl
pop edx
dec cl
and cl, 8
cmp al, 7
movzx ecx, cl
lea eax, [esp + 0x70]
cmove ecx, edx
movzx ecx, cl
push ecx
push 0
push 0
push eax
push dword [esp + 0x3c]
push dword [ebx + 0xc]
push dword [ebx + 4]
xor ebx, ebx
push ebx
push ebp
call fcn.100d1463
mov esi, eax
test esi, esi
js 0x101052c1
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x74]
push dword [esp + 0x34]
push dword [esp + 0x28]
call fcn.10115fc0
mov esi, eax
test esi, esi
je 0x101050a9
jg 0x10105082
cmp esi, 0xffff8008
jge 0x101050a7
cmp esi, 0xd
jne 0x10105091
push ebx
push ebx
push ebx
push 0xffffdfd1
jmp 0x10105099
push esi
push ebx
push ebx
push 0xffffe06c
push ebx
push ebx
push ebx
push ebp
call fcn.10037780
mov esi, 0xfffff42a
test esi, esi
js 0x101052c1
mov edx, dword [esp + 0x48]
mov ecx, edx
mov bl, byte [esp + 0x1b]
and ecx, 0x7fff
movzx eax, bl
cmp ecx, eax
je 0x10105120
movzx eax, bl
push eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x24]
call fcn.10116b60
mov esi, eax
test esi, esi
je 0x10105116
jg 0x101050e8
cmp esi, 0xffff8008
jge 0x10105114
cmp esi, 0xd
jne 0x101050fc
xor ebx, ebx
push ebx
push ebx
push ebx
push 0xffffdfd1
push ebx
push ebx
push ebx
jmp 0x10105109
push esi
xor eax, eax
push eax
push eax
push 0xffffe06c
push eax
push eax
push eax
push ebp
call fcn.10037780
mov esi, 0xfffff42a
test esi, esi
js 0x101052c1
mov edx, dword [esp + 0x48]
and edx, 0x7fff
cmp edx, 8
je 0x10105138
cmp edx, 0xc
je 0x10105138
xor ecx, ecx
mov dword [esp + 0x28], ecx
jmp 0x101051b2
push dword [esp + 0x54]
call sub.OLEAUT32.dll_SysAllocStringByteLen
mov ebx, eax
mov eax, 0x1fe
cmp ebx, eax
jbe 0x10105193
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
and ecx, 0x7fff
sub ecx, 8
neg ecx
sbb ecx, ecx
add eax, ebx
push eax
mov dword [esp + 0x40], eax
add ecx, 0xc
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], ecx
push dword [eax]
call fcn.10118344
pop ecx
pop ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
test eax, eax
je 0x10104e7e
lea ecx, [eax + ebx]
mov dword [esp + 0x28], ecx
jmp 0x101051ae
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
and eax, 0x7fff
sub eax, 8
neg eax
sbb eax, eax
add eax, 0xa
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x14]
push 4
mov dword [edi], eax
mov eax, dword [esp + 0x18]
pop edx
add edi, edx
cmp eax, 9
je 0x101051f9
cmp eax, 0xa
je 0x101051f9
cmp eax, 0xb
je 0x101051e5
cmp eax, 0x11
je 0x101051e5
cmp eax, 0xc
je 0x101051e5
and dword [esp + 0x20], 0
lea ebx, [esp + 0x20]
jmp 0x10105210
mov eax, dword [esp + 0x20]
mov ebx, edi
mov dword [edi], eax
add edi, edx
mov dword [edi], ecx
add edi, edx
mov eax, dword [esp + 0x14]
jmp 0x10105216
mov eax, dword [esp + 0x20]
mov ebx, edi
mov dword [edi], eax
mov eax, 0x1fe
mov dword [esp + 0x20], eax
add edi, edx
mov eax, dword [esp + 0x14]
mov ecx, edi
mov dword [esp + 0x28], ecx
push ebx
push ecx
push eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x2c]
call fcn.1009743c
cmp dword [esp + 0x14], 0xb
je 0x10105262
cmp dword [esp + 0x14], 0x11
je 0x10105262
cmp dword [esp + 0x14], 0xc
je 0x10105262
mov eax, dword [ebx]
add eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [edi + eax*4]
jmp 0x10105262
test dword [esp + 0x74], 0x100000
je 0x1010529b
mov dword [edi], 0xfd
add edi, 4
mov ebx, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x10104eb0
dec eax
mov dword [esp + 0x80], eax
xor eax, eax
cmp esi, 0xfffff9bd
cmove esi, eax
mov eax, dword [esp + 0x30]
sub edi, dword [eax]
mov eax, dword [esp + 0x40]
mov dword [eax], edi
jmp 0x101052c1
xor eax, eax
push eax
push eax
push eax
push 0xffffdfab
push eax
push eax
lea eax, [esp + 0xc8]
push eax
push ebp
call fcn.10037780
mov esi, 0xfffff3f4
jmp 0x101052c1
mov esi, 0xfffff23e
mov edi, dword [esp + 0x10]
push dword [esp + 0x7c]
push ebp
call fcn.1003bdc0
or dword [esp + 0x7c], 0xffffffff
cmp dword [esp + 0x2c], 0
je 0x101052e4
push dword [esp + 0x2c]
call fcn.100ca159
test edi, edi
je 0x101052ef
push edi
call fcn.1011741a
pop ecx
mov eax, esi
jmp 0x101052f5
xor eax, eax
mov ecx, dword [esp + 0x2b0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011720d
add esp, 0x2a4
ret 0x1c
call fcn.10116ea2
int3