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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov edi, ecx
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esp + 0xc8], eax
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], 0xffffffff
lea ecx, [esp + 0x64]
push dword [edi]
call fcn.101565f0
mov dword [esp + 0x60], 0
lea esi, [edi + 0xd0]
push esi
call dword [sym.imp.kernel32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1014b2b6
mov dword [esp + 0x28], edi
lea eax, [edi + 0xe4]
lea ecx, [esp + 0x60]
push eax
call fcn.10145e50
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
cmp dword [esp + 0x60], 0
je 0x1014b19c
lea eax, [esp + 0x58]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x64]
push 0x615ededa
call fcn.101567f0
test eax, eax
je 0x1014ab0b
mov edi, eax
jmp 0x1014a9f8
lea ecx, [esp + 0x64]
push 0x615ededa
call fcn.101567f0
mov edi, eax
test eax, eax
je 0x1014ab0b
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push 1
push 0x615ededa
push edi
call fcn.10156b90
test eax, eax
je 0x1014a9e0
mov esi, eax
mov ecx, dword [eax]
test ecx, ecx
je 0x1014a9e0
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esi]
cmp ecx, eax
jne 0x1014a9e0
xor edx, dword [ebp + 8]
xor ebx, dword [ebp + 0xc]
or ebx, edx
jne 0x1014a9e0
mov eax, dword [esp + 0xc]
cmp eax, dword [ebp + 0x10]
mov eax, dword [esp + 8]
sbb eax, dword [ebp + 0x14]
jge 0x1014a9e0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
push edi
call fcn.10156880
lea edi, [esp + 0x80]
mov ecx, edi
mov edx, esi
push eax
call fcn.10149910
add esp, 4
mov ecx, edi
call fcn.10149a10
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x8c]
cmp edx, eax
jne 0x1014ac11
lea ecx, [esp + 0x80]
call fcn.10149a10
cmp dword [esp + 0x94], 0
jne 0x1014aaf4
mov ecx, dword [esp + 0x58]
call fcn.1014b680
mov dword [esp + 0x5c], 0
lea eax, [esp + 0x58]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x80], 0x10259058
mov ecx, dword [esp + 0x8c]
call fcn.1003ee60
mov dword [esp + 0x68], 0x30
mov dword [esp + 0x6c], 0
push 0x10
call fcn.1020d865
add esp, 4
mov dword [eax], 0x636f7270
mov dword [eax + 4], 0x2d737365
mov dword [eax + 8], 0x73616870
mov dword [esp + 0x10], eax
mov word [eax + 0xc], 0x65
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x1014b160
lea esi, [esp + 0x58]
jmp 0x1014ab8b
cmp ebx, 0xd
movzx eax, byte [esp + 0xc]
mov ecx, 0xffffffff
cmovb eax, ecx
mov ecx, eax
shr ecx, 0x1f
test eax, eax
mov esi, edi
mov edx, dword [esp + 8]
cmovs esi, edx
mov ecx, dword [edi + ecx*4]
test ecx, ecx
je 0x1014b0fc
mov edi, ecx
movzx ebx, byte [ecx + 0x1b]
test bl, bl
mov dword [esp + 8], esi
js 0x1014abb0
cmp bl, 0xd
seta al
mov dword [esp + 0xc], eax
lea eax, [edi + 0x10]
mov ecx, 0xd
cmovb ecx, ebx
jmp 0x1014abd4
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
cmp ecx, 0xd
jbe 0x1014abca
mov edx, 0xd
mov bl, 1
mov dword [esp + 0xc], ebx
mov ebx, ecx
jmp 0x1014abda
mov dword [esp + 0xc], 0
mov ebx, ecx
mov edx, ecx
test ecx, ecx
je 0x1014ab60
push edx
push dword [esp + 0x14]
push eax
call fcn.1020d865
add esp, 0xc
test eax, eax
jne 0x1014ab70
jmp 0x1014ab60
mov edx, eax
lea ecx, [esp + 0x8c]
cmp eax, ecx
je 0x1014aabd
mov dword [esp + 0xc0], 0xffffffff
mov dword [esp + 0xc3], 0xffffffff
mov word [esp + 0xb8], 0
mov byte [esp + 0xba], 0
mov eax, dword [edx + 0x28]
movzx eax, word [eax]
mov ch, byte [edx + 0x20]
mov cl, ch
add cl, 0xff
cmp cl, 7
mov dword [esp + 0x2c], edx
mov byte [esp + 0x1b], ch
ja case.default.0x1014ac5b
movzx ecx, cl
jmp dword [ecx*4 + 0x10263b8c]
movzx ebx, ax
mov eax, dword [edx + 0x24]
cmp bx, 0xb
jae 0x1014ad39
mov byte [esp + 0x7b], bl
lea esi, [esp + 0x70]
test ebx, ebx
jne 0x1014ad64
jmp 0x1014ad6f
mov eax, dword [edx + 0x24]
mov esi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov ecx, 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x1c], 0
xor eax, eax
jmp 0x1014adbb
mov eax, dword [edx + 0x24]
mov al, byte [eax]
movsx ecx, al
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0x24], eax
jmp 0x1014acf6
mov eax, dword [edx + 0x24]
movq xmm0, qword [eax]
movd ecx, xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esp + 0x24], xmm0
mov dword [esp + 0x14], 0
jmp 0x1014ad20
mov ecx, 0xffffffff
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x1c], 0
xor eax, eax
xor esi, esi
mov dword [esp + 0x20], 0
jmp 0x1014adbb
lea edi, [ebx + 0x10]
and edi, 0xfffffff0
push edi
mov dword [esp + 0xc], eax
call fcn.1020d865
add esp, 4
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x70], esi
or edi, 0x80000000
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
push ebx
push eax
push esi
call fcn.10208400
add esp, 0xc
mov byte [esi + ebx], 0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x78]
movzx eax, word [ecx]
mov word [esp + 0xb8], ax
mov al, byte [ecx + 2]
mov byte [esp + 0xba], al
mov al, byte [esp + 0x7b]
mov ecx, 0xffffffff
xor esi, esi
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x2c]
mov ebx, dword [edx + 0x1c]
cmp ebx, 0xfffffff0
jae 0x1014b2c2
mov dword [esp + 0x30], esi
mov edx, dword [edx + 0x18]
cmp ebx, 0xb
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ecx
jae 0x1014adf0
mov byte [esp + 0x7b], bl
lea esi, [esp + 0x70]
test ebx, ebx
jne 0x1014ae17
jmp 0x1014ae22
lea edi, [ebx + 0x10]
and edi, 0xfffffff0
push edi
mov esi, edx
call fcn.1020d865
mov edx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x70], eax
or edi, 0x80000000
mov dword [esp + 0x78], edi
mov dword [esp + 0x74], ebx
push ebx
push edx
push esi
call fcn.10208400
add esp, 0xc
mov byte [esi + ebx], 0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x1014af60
movzx eax, byte [esp + 0x7b]
test al, al
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
cmovs eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x70]
cmovns ecx, eax
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x3c], eax
jmp 0x1014ae82
mov eax, dword [esi]
mov edi, esi
test eax, eax
je 0x1014af70
mov dword [esp + 0x3c], edi
mov esi, eax
movzx ebx, byte [esi + 0x1b]
test bl, bl
mov eax, dword [esi + 0x14]
mov edi, ebx
mov dword [esp + 0xc], eax
cmovs edi, eax
mov ecx, dword [esp + 0x48]
cmp edi, ecx
cmovb ecx, edi
mov edx, dword [esp + 0x4c]
cmp edi, edx
mov eax, edx
cmovb eax, edi
test dl, dl
cmovs eax, ecx
lea ecx, [esi + 0x10]
mov dword [esp + 8], ecx
mov edx, dword [esi + 0x10]
test eax, eax
je 0x1014aef0
test bl, bl
mov ecx, dword [esp + 8]
cmovs ecx, edx
push eax
push ecx
push dword [esp + 0x40]
mov dword [esp + 0x5c], esi
mov esi, edx
call fcn.1020d865
mov edx, esi
mov esi, dword [esp + 0x5c]
add esp, 0xc
test eax, eax
je 0x1014aef0
js 0x1014ae70
jmp 0x1014aefa
cmp dword [esp + 0x10], edi
jb 0x1014ae70
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
cmp ecx, edx
cmovb edx, ecx
cmp ecx, ebx
mov eax, ebx
cmovb eax, ecx
test bl, bl
cmovs eax, edx
test eax, eax
je 0x1014af40
test bl, bl
mov ecx, dword [esp + 8]
cmovs ecx, dword [esp + 0x44]
push eax
push dword [esp + 0x3c]
push ecx
call fcn.1020d865
add esp, 0xc
test eax, eax
je 0x1014af40
js 0x1014af46
jmp 0x1014af80
cmp edi, dword [esp + 0x10]
jae 0x1014af80
lea edi, [esi + 4]
mov eax, dword [esi + 4]
test eax, eax
jne 0x1014ae7c
jmp 0x1014af84
lea eax, [esp + 0x58]
mov esi, eax
mov edi, eax
jmp 0x1014af84
mov edi, esi
jmp 0x1014af84
mov edi, dword [esp + 0x3c]
cmp dword [edi], 0
mov ebx, dword [esp + 0x2c]
je 0x1014afc0
cmp byte [esp + 0x7b], 0
js 0x1014b0d4
cmp byte [esp + 0x34], 0
js 0x1014b0eb
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x1014b050
nop
nop
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1014afb0
jmp 0x1014ac00
push 0x48
call fcn.1020d865
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x78]
mov dword [ebx + 0x18], eax
movq xmm0, qword [esp + 0x70]
movq qword [ebx + 0x10], xmm0
mov al, byte [esp + 0x1b]
mov byte [ebx + 0x20], al
mov eax, dword [esp + 0xc0]
mov dword [ebx + 0x21], eax
mov eax, dword [esp + 0xc3]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov ecx, dword [esp + 0x34]
test cl, cl
js 0x1014b071
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x34], eax
movzx eax, word [esp + 0xb8]
mov word [ebx + 0x38], ax
mov al, byte [esp + 0xba]
mov byte [ebx + 0x3a], al
mov byte [ebx + 0x3b], cl
jmp 0x1014b083
mov eax, dword [ebx + 8]
cmp dword [eax], ebx
je 0x1014ac00
add ebx, 8
nop
nop
mov ecx, dword [ebx]
lea ebx, [ecx + 8]
mov eax, dword [ecx + 8]
cmp dword [eax], ecx
jne 0x1014b060
jmp 0x1014ac00
mov ecx, ebx
add ecx, 0x30
push dword [esp + 0x1c]
push dword [esp + 0x18]
call fcn.10140cd4
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x3c], eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], esi
mov dword [edi], ebx
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
test eax, eax
je 0x1014b0b3
mov dword [esp + 0x54], eax
mov ebx, dword [edi]
push ebx
push dword [esp + 0x5c]
call fcn.100306aa
add esp, 8
add dword [esp + 0x5c], 1
mov ebx, dword [esp + 0x2c]
cmp byte [esp + 0x7b], 0
jns 0x1014af98
push dword [esp + 0x70]
call fcn.10205096
add esp, 4
cmp byte [esp + 0x34], 0
jns 0x1014afa3
push dword [esp + 0x14]
call fcn.10205096
add esp, 4
jmp 0x1014afa3
lea ecx, [esp + 0x58]
cmp esi, ecx
je 0x1014b160
test eax, eax
cmovs edi, edx
movzx eax, byte [edi + 0x1b]
mov ebx, eax
test al, al
jns 0x1014b116
mov ebx, dword [edi + 0x14]
cmp ebx, 0xd
mov ecx, 0xd
cmovb ecx, ebx
test ecx, ecx
je 0x1014b15b
add edi, 0x10
test al, al
jns 0x1014b12e
mov edi, dword [edi]
push ecx
push edi
push dword [esp + 0x18]
call fcn.1020d865
add esp, 0xc
test eax, eax
je 0x1014b15b
js 0x1014b160
push dword [esp + 0x10]
call fcn.10205096
add esp, 4
lea eax, [esp + 0x58]
cmp esi, eax
je 0x1014b16c
mov eax, dword [esi + 0x28]
jmp 0x1014b16e
cmp ebx, 0xd
jbe 0x1014b142
push dword [esp + 0x10]
call fcn.10205096
add esp, 4
xor eax, eax
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x54]
push edx
push edi
push eax
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ecx
call dword [ecx + 4]
add esp, 0x24
mov ecx, dword [esp + 0x58]
call fcn.1014b680
mov dword [esp + 0x80], 0xffffffff
lea eax, [esp + 0x80]
lea ecx, [esp + 0x64]
push eax
call fcn.10156610
test eax, eax
je 0x1014b295
mov ebx, eax
jmp 0x1014b1eb
lea ecx, [esp + 0x64]
lea eax, [esp + 0x80]
push eax
call fcn.10156610
mov ebx, eax
test eax, eax
je 0x1014b295
mov eax, dword [esp + 0x80]
cmp eax, 0x615eddd9
jg 0x1014b210
cmp eax, 0x5db5f42
je 0x1014b21e
cmp eax, 0x5d7381b3
je 0x1014b21e
jmp 0x1014b1d0
cmp eax, 0x615ededa
je 0x1014b21e
cmp eax, 0x615eddda
jne 0x1014b1d0
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
push 1
push eax
push ebx
call fcn.10156b90
test eax, eax
je 0x1014b1d0
mov edx, dword [eax]
test edx, edx
je 0x1014b1d0
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 8], ecx
mov eax, dword [eax]
cmp edx, eax
jne 0x1014b1d0
xor esi, dword [ebp + 8]
xor edi, dword [ebp + 0xc]
or edi, esi
jne 0x1014b1d0
mov eax, dword [esp + 8]
cmp eax, dword [ebp + 0x10]
mov eax, dword [esp + 0xc]
sbb eax, dword [ebp + 0x14]
jge 0x1014b1d0
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [esp + 0x80]
push 1
push eax
not eax
push eax
push ebx
call fcn.10156c00
jmp 0x1014b1d0
lea ecx, [esp + 0x60]
call fcn.10145de0
mov ecx, dword [esp + 0xc8]
xor ecx, ebp
call fcn.10205d16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov ecx, esi
call fcn.1016d1b0
jmp 0x1014a97f
lea ecx, [esp + 0x70]
call fcn.101407c4
int3