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

Disassembly:
sub esp, 0x3c
push ebx
imul ebx, dword [esp + 0x4c], 0x30
push ebp
mov ebp, dword [esp + 0x4c]
push esi
push edi
push 0
mov esi, dword [ebp]
add ebx, dword [ebp + 0x14]
push 0x1a0
mov dword [esp + 0x2c], esi
mov eax, dword [esi]
mov ecx, dword [ebx]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ebx
mov eax, dword [eax]
push eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x48], ecx
call fcn.10141c12
mov edi, eax
add esp, 0xc
mov dword [esp + 0x34], edi
mov dword [ebx + 0x18], edi
test edi, edi
je 0x10129683
or word [ebx + 0xa], 0x10
lea eax, [edi + 0x18]
push 0x180
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push esi
push edi
call fcn.10164ae3
push 0x2b
push dword [esp + 0x54]
push edi
call fcn.10166d08
mov esi, dword [edi + 0xc]
add esp, 0x20
sub esi, 1
js 0x101291c3
mov ebp, dword [esp + 0x50]
push esi
push edi
push ebp
call fcn.101287b0
add esp, 0xc
sub esi, 1
jns 0x101291af
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x51], 0
jne 0x10129683
mov esi, dword [edi + 0xc]
or eax, 0xffffffff
mov ecx, eax
mov dword [esp + 0x14], eax
mov edx, eax
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x14]
sub esi, 1
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
js 0x10129425
mov ebx, eax
mov eax, ecx
or eax, edx
je 0x10129421
movzx eax, word [ebx + 0xc]
test eax, 0x1ff
jne 0x10129372
push 0
push 0x198
push dword [esp + 0x30]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
call fcn.10141b1e
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10129351
or word [ebx + 0xa], 0x20
mov eax, 0x400
push 0x180
mov word [ebx + 0xc], ax
xorps xmm0, xmm0
lea eax, [esi + 0x18]
movlpd qword [esp + 0x1c], xmm0
push 0
push eax
mov dword [ebx + 0x18], esi
call sub.VCRUNTIME140.dll_memset
push dword [ebp]
push esi
call fcn.10164ae3
push 0x2c
push dword [ebx]
push esi
call fcn.10166d08
mov ebp, dword [esi + 0xc]
add esp, 0x20
sub ebp, 1
js 0x101292a0
mov edi, dword [esp + 0x50]
push ebp
push esi
push edi
call fcn.101287b0
add esp, 0xc
sub ebp, 1
jns 0x1012928c
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x51], 0
jne 0x1012931c
mov ecx, dword [esi + 0xc]
mov ebp, dword [esi + 0x14]
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x1012931c
mov edx, dword [esp + 0x18]
mov edi, edx
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp]
movzx eax, byte [eax]
push eax
call fcn.1011fb62
add esp, 4
test eax, eax
jne 0x101292e9
push 0x40
pop eax
cmp word [ebp + 0xc], ax
jne 0x10129302
push dword [ebp + 0x14]
lea eax, [ebx + 0x1e8]
push eax
call fcn.10166c90
pop ecx
pop ecx
mov ecx, dword [esp + 0x14]
or edi, eax
or esi, edx
add ebp, 0x30
sub ecx, 1
mov dword [esp + 0x14], ecx
jne 0x101292cd
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x34]
jmp 0x10129320
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
and ecx, edx
mov edx, dword [esp + 0x10]
and edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
jmp 0x10129409
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jmp 0x1012940d
movzx eax, word [ebx + 0xa]
test al, 8
jne 0x1012940d
mov eax, dword [esp + 0x24]
push dword [ebx + 0x14]
add eax, 0x1e8
push eax
call fcn.10166c90
pop ecx
pop ecx
movzx ecx, word [ebx + 0xa]
mov ebp, eax
mov eax, edx
mov dword [esp + 0x30], eax
test cl, 2
je 0x101293cb
imul esi, dword [ebx + 0x10], 0x30
mov ecx, dword [edi + 0x14]
mov eax, dword [esp + 0x24]
add eax, 0x1e8
push dword [esi + ecx + 0x14]
push eax
call fcn.10166c90
mov esi, dword [esp + 0x34]
or ebp, eax
mov eax, dword [esp + 0x38]
pop ecx
pop ecx
or eax, edx
mov ecx, dword [esp + 0x20]
movzx edx, word [ebx + 0xc]
and ecx, ebp
and dword [esp + 0x10], eax
test dl, 2
mov edx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
jne 0x10129401
xorps xmm0, xmm0
movlpd qword [esp + 0x44], xmm0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jmp 0x10129409
and dword [esp + 0x14], ebp
and dword [esp + 0x18], eax
mov ebp, dword [esp + 0x54]
dec esi
add ebx, 0x30
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
test esi, esi
jns 0x10129201
mov ebx, dword [esp + 0x40]
mov dword [edi + 0x198], ecx
mov eax, 0x200
or ecx, edx
mov dword [edi + 0x19c], edx
mov word [ebx + 0xc], ax
je 0x101294a1
mov byte [ebp + 9], 1
cmp dword [edi + 0xc], 2
jne 0x101294a1
xor ebx, ebx
push ebx
jmp 0x10129491
mov ecx, dword [edi + 0x14]
xor ebp, ebp
add ecx, 0x30
inc ebx
push ebp
push ecx
mov dword [esp + 0x48], ebx
call fcn.10171623
pop ecx
pop ecx
test eax, eax
je 0x10129490
mov ebx, dword [esp + 0x54]
push eax
push esi
push ebx
push dword [esp + 0x5c]
inc ebp
call fcn.1016f3c3
mov eax, dword [edi + 0x14]
add eax, 0x30
push ebp
push eax
call fcn.10171623
add esp, 0x18
test eax, eax
jne 0x1012946b
mov ebx, dword [esp + 0x40]
push ebx
push dword [edi + 0x14]
call fcn.10171623
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x1012944d
mov eax, dword [esp + 0x14]
or eax, dword [esp + 0x18]
je 0x10129683
or ecx, 0xffffffff
xor ebp, ebp
and dword [esp + 0x2c], ebp
mov eax, 0xffbf
mov dword [esp + 0x30], ecx
test ebp, ebp
jne 0x101295da
mov esi, dword [edi + 0x14]
mov ebx, dword [edi + 0xc]
jmp 0x10129506
and word [esi + 0xa], ax
cmp dword [esi + 0x14], ecx
je 0x10129503
mov eax, dword [esp + 0x24]
push dword [esi + 0x14]
add eax, 0x1e8
push eax
call fcn.10166c90
and eax, dword [esp + 0x1c]
and edx, dword [esp + 0x20]
or eax, edx
pop ecx
pop ecx
jne 0x10129510
mov ecx, dword [esp + 0x30]
mov eax, 0xffbf
add esi, 0x30
sub ebx, 1
jns 0x101294d1
jmp 0x10129683
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], eax
test ebx, ebx
js 0x10129683
mov edi, dword [esp + 0x40]
xor ebp, ebp
inc ebp
add esi, 0xa
test ebp, ebp
je 0x101295b7
cmp dword [esi + 0xa], ecx
je 0x1012954c
mov eax, 0xffbf
and word [esi], ax
jmp 0x101295a7
cmp dword [esi + 0xe], edi
jne 0x101295a5
cmp edi, 0xfffffffe
jne 0x1012956f
push 0xffffffffffffffff
push eax
mov eax, dword [esi - 0xa]
push dword [eax + 0xc]
push dword [esp + 0x44]
call fcn.10145583
add esp, 0x10
test eax, eax
jne 0x101295a5
mov eax, dword [esi - 0xa]
push dword [eax + 0x10]
call fcn.1014366e
movsx eax, al
mov dword [esp + 0x44], eax
mov eax, dword [esi - 0xa]
push dword [eax + 0xc]
call fcn.1014366e
pop ecx
pop ecx
movsx ecx, al
mov eax, dword [esp + 0x40]
test eax, eax
je 0x1012959d
cmp eax, ecx
jne 0x101295a5
push 0x40
pop eax
or word [esi], ax
jmp 0x101295a7
xor ebp, ebp
mov ecx, dword [esp + 0x30]
add esi, 0x30
sub ebx, 1
mov eax, dword [esp + 0x20]
jns 0x10129539
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, 2
mov eax, 0xffbf
jl 0x101294c1
test ebp, ebp
je 0x10129683
mov ebx, dword [edi + 0x14]
xor esi, esi
mov edi, dword [edi + 0xc]
xor eax, eax
jmp 0x10129616
test byte [ebx + 0xa], 0x40
je 0x10129613
mov eax, dword [ebx]
push 0
push dword [eax + 0x10]
push dword [esp + 0x30]
call fcn.101458f3
push eax
mov eax, dword [esp + 0x34]
push esi
push dword [eax]
call fcn.101462ca
mov ecx, dword [ebx]
mov esi, eax
add esp, 0x18
mov eax, dword [ecx + 0xc]
add ebx, 0x30
sub edi, 1
jns 0x101295e6
mov ebx, dword [esp + 0x28]
push 0
push eax
push ebx
call fcn.101458f3
push 0
push eax
push 0x31
push dword [esp + 0x50]
call fcn.1014ecdb
mov edi, eax
add esp, 0x1c
test edi, edi
je 0x10129676
push dword [esp + 0x3c]
push edi
call fcn.1016990f
mov ebx, dword [esp + 0x5c]
push 3
push edi
push ebx
mov dword [edi + 0x14], esi
call fcn.1016f2ba
mov esi, eax
push esi
push ebx
push dword [esp + 0x6c]
call fcn.101287b0
push dword [esp + 0x78]
push esi
push ebx
call fcn.1012fb6a
add esp, 0x2c
jmp 0x10129683
test esi, esi
je 0x10129683
push esi
push ebx
call fcn.1012a078
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret