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

Disassembly:
sub esp, 0x5c
mov ecx, dword [esp + 0x60]
push ebx
push ebp
push esi
mov eax, dword [ecx]
mov ebp, dword [ecx + 0xd8]
mov ecx, dword [esp + 0x70]
push edi
mov ebx, dword [eax + 0x1c]
mov eax, dword [esp + 0x7c]
mov edx, eax
movzx edi, al
and edx, 0x1600
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], edx
test eax, 0x610
je 0x1014a28f
xorps xmm0, xmm0
mov dword [esp + 0x68], 0
lea esi, [esp + 0x50]
movq qword [esp + 0x60], xmm0
mov dword [esp + 0x10], esi
movups xmmword [esp + 0x50], xmm0
jmp 0x1014a295
mov esi, ecx
mov dword [esp + 0x10], ecx
test eax, 0x200
je 0x1014a2a2
mov dword [ecx], 0
mov eax, dword [ebp + 0x50]
mov dword [esp + 0x2c], fcn.101420f0
test al, 1
je 0x1014a2d8
or edx, 6
lea eax, [ebp + 0x14]
push edx
push esi
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.10103960
add esp, 0x10
test eax, eax
jne 0x1014a59f
and dword [ebp + 0x50], 0xfffffffe
jmp 0x1014a60d
and eax, 0xfffffffe
mov dword [ebp + 0x50], eax
mov eax, dword [ebp]
lea edi, [ebp + 0x14]
mov ecx, 6
cmp byte [eax], 0
mov eax, 0x11
cmovne ecx, eax
mov eax, dword [ebp + 0xc]
or ecx, edx
push ecx
push esi
push edi
push dword [eax]
call fcn.10103960
mov esi, eax
add esp, 0x10
cmp esi, 0xffff86e9
jne 0x1014a337
mov eax, dword [ebp + 0x1c]
add eax, eax
push edi
push eax
push ebx
mov dword [ebp + 0x1c], eax
call fcn.100dc870
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1014a58c
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
jmp 0x1014a2de
test esi, esi
jne 0x1014a59d
mov edi, 1
cmp dword [ebp + 0x4c], edi
jbe 0x1014a37d
nop dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x1014a36d
push eax
call fcn.10102280
mov esi, eax
add esp, 4
test esi, esi
jne 0x1014a59d
mov eax, dword [ebp + 8]
mov dword [eax + edi*4], 0
inc edi
cmp edi, dword [ebp + 0x4c]
jb 0x1014a350
mov eax, dword [ebp + 4]
cmp dword [eax + 4], 0
mov eax, dword [ebp]
sete cl
mov byte [eax], cl
mov ecx, 1
mov dword [esp + 0x1c], ecx
cmp dword [ebp + 0x4c], ecx
jbe 0x1014a601
mov eax, dword [ebp + 0xc]
lea esi, [ebp + 0x14]
cmp dword [eax + ecx*4], 0
lea eax, [eax + ecx*4]
jne 0x1014a3d0
push 0x17
push eax
mov eax, dword [ebp + 4]
push dword [eax + ecx*4]
call fcn.101038b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1014a59d
mov ecx, dword [esp + 0x1c]
lea esi, [ebp + 0x14]
nop
mov eax, dword [ebp + 0xc]
mov ebx, ecx
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp]
mov dword [esp + 0x24], edx
mov edi, dword [edx]
movzx eax, byte [eax + ecx]
mov ecx, dword [edi + 0x10]
test ecx, ecx
cmove ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
sub eax, 0
je 0x1014a476
sub eax, 1
je 0x1014a516
mov esi, 0x16
lea edi, [ebp + 0x14]
cmp esi, 0xffff86f4
jne 0x1014a563
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp]
sub ecx, 1
mov dword [esp + 0x1c], ecx
mov byte [ecx + eax], 1
mov eax, dword [ebp + 0xc]
je 0x1014a664
cmp dword [eax + ebx*4], 0
lea esi, [ebp + 0x14]
je 0x1014a3d0
lea edi, [ebx*4]
push dword [edi + eax]
call fcn.10102280
mov esi, eax
add esp, 4
test esi, esi
jne 0x1014a59d
mov eax, dword [ebp]
mov byte [ebx + eax], 0
mov eax, dword [ebp + 8]
mov ecx, dword [edi + eax]
mov eax, dword [ebp + 0xc]
add eax, edi
test ecx, ecx
jne 0x1014a537
mov dword [eax], ecx
jmp 0x1014a549
mov eax, dword [esp + 0x18]
xorps xmm0, xmm0
or eax, 6
movlpd qword [esp + 0x34], xmm0
push eax
lea eax, [esp + 0x38]
movlpd qword [esp + 0x40], xmm0
push eax
push esi
push edx
movlpd qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0x10
call fcn.10103960
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1014a406
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x34]
push eax
push esi
push edi
call dword [esp + 0x3c]
add esp, 0xc
test eax, eax
jne 0x1014a501
lea eax, [esi + 4]
push eax
push esi
push dword [esp + 0x40]
push dword [esp + 0x40]
push esi
push dword [edi + 0x1c]
call fcn.10142360
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x1014a406
push dword [esp + 0x34]
push dword [edi + 0x1c]
call fcn.100dc940
add esp, 8
jmp 0x1014a5ab
push dword [esp + 0x34]
push dword [edi + 0x1c]
call fcn.100dc940
mov edx, dword [esp + 0x2c]
add esp, 8
jmp 0x1014a51a
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
lea edi, [ebp + 0x14]
or eax, 9
push eax
push esi
push edi
push edx
call fcn.10103960
add esp, 0x10
mov esi, eax
jmp 0x1014a409
push 0x17
push eax
push ecx
call fcn.101038b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1014a59d
mov eax, dword [ebp + 0xc]
inc ebx
cmp dword [eax + ebx*4], 0
lea edi, [ebx*4]
jne 0x1014a440
jmp 0x1014a3c8
cmp esi, 0xffff86e9
jne 0x1014a5a7
mov eax, dword [ebp + 0x1c]
mov ebx, dword [esp + 0x20]
add eax, eax
push edi
push eax
push ebx
mov dword [ebp + 0x1c], eax
call fcn.100dc870
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1014a3c8
push dword [ebp + 0x1c]
push str.Allocation_failed_for_join_key__len___lu
push ebx
call fcn.100d0920
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
test esi, esi
jne 0x1014a59d
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [ebp]
lea edi, [ebx + 1]
cmp edi, dword [ebp + 0x4c]
cmovne ecx, ebx
sete al
mov byte [edx + ecx], al
mov eax, dword [ebp + 4]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
je 0x1014a5f2
mov eax, dword [ebp + 8]
cmp dword [eax + ebx*4], 0
lea eax, [eax + ebx*4]
jne 0x1014a5f2
push 0x17
push eax
push dword [esp + 0x2c]
call fcn.101038b0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1014a59d
mov ecx, edi
mov dword [esp + 0x1c], edi
cmp ecx, dword [ebp + 0x4c]
jb 0x1014a39e
test esi, esi
jne 0x1014a59d
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
test dword [eax + 0x18], 0x610
je 0x1014a63a
push 0
push 0
push dword [esi + 4]
push dword [esi]
push eax
push dword [esp + 0x34]
call fcn.10142360
mov ecx, eax
add esp, 0x18
test ecx, ecx
jne 0x1014a869
cmp edi, 0xc
je 0x1014a8e7
mov eax, dword [esp + 0x78]
test dword [eax + 0x18], 0x690
jne 0x1014a71a
mov dword [esp + 0x1c], 1
lea eax, [ebp + 0x30]
jmp 0x1014a722
mov eax, dword [eax + 4]
mov edi, 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
test eax, eax
je 0x1014a2de
push eax
call fcn.10102280
mov esi, eax
add esp, 4
test esi, esi
jne 0x1014a59d
mov edx, dword [ebp + 4]
mov eax, dword [edx]
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
je 0x1014a6d7
lea ecx, [edi*4]
mov eax, dword [ecx + edx]
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
je 0x1014a6d7
mov eax, dword [ebp + 8]
mov edx, dword [ecx + eax]
test edx, edx
je 0x1014a6d7
mov eax, dword [ebp + 0xc]
push 0x17
add eax, ecx
push eax
push edx
call fcn.101038b0
add esp, 0xc
test eax, eax
jne 0x1014a605
jmp 0x1014a6e1
mov eax, dword [ebp + 0xc]
mov dword [eax + edi*4], 0
mov eax, dword [ebp]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov byte [edi + eax], 0
inc edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x1014a2de
push eax
call fcn.10102280
mov esi, eax
add esp, 4
test esi, esi
je 0x1014a693
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
mov dword [esp + 0x1c], 0
mov ebx, dword [ebp + 0x10]
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 4]
push ecx
mov eax, dword [eax]
push dword [eax + 0x84]
mov edi, dword [eax + 0x10]
mov eax, dword [esp + 0x78]
push 0
push 0
push dword [ebx + 0x20]
push edi
push dword [eax + 0xc]
push ebx
call fcn.10100cd0
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x1014a81c
mov ecx, dword [esp + 0x18]
mov edx, ecx
and edx, 0x1000
test ecx, 0x200
jne 0x1014a782
test edi, edi
je 0x1014a790
test dword [edi + 0x80], 0x400
je 0x1014a790
mov eax, dword [esp + 0x14]
or dword [eax + 0x13c], 0x1000
test ecx, 0x400
jne 0x1014a7a8
test edi, edi
je 0x1014a7b6
test dword [edi + 0x80], 0x200
je 0x1014a7b6
mov eax, dword [esp + 0x14]
or dword [eax + 0x13c], 0x800
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 0x8c]
or edx, 0x1b
push edx
push dword [esp + 0x28]
or dword [eax + 0x13c], 0x8000
mov eax, dword [esp + 0x1c]
push dword [esp + 0x18]
mov dword [eax + 0x20], ecx
lea ecx, [ebx + 0xa8]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x24], ecx
lea ecx, [ebx + 0xc4]
mov eax, dword [esp + 0x20]
mov dword [eax + 0x28], ecx
push dword [esp + 0x20]
call fcn.10103960
push dword [esp + 0x24]
mov esi, eax
call fcn.10102280
add esp, 0x14
test eax, eax
je 0x1014a81c
test esi, esi
jne 0x1014a81c
mov esi, eax
mov edx, esi
jmp 0x1014a826
mov edx, esi
test esi, esi
je 0x1014a8c3
cmp esi, 0xffff86f4
jne 0x1014a8bf
test dword [esp + 0x7c], 0x200
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jne 0x1014a2de
mov eax, dword [ebp + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1014a877
test dword [eax + 0x80], 0x400
je 0x1014a877
jmp 0x1014a2de
or dword [ebp + 0x50], 1
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
mov ebx, dword [ebp + 0x10]
mov edi, 0x10282d89
mov ecx, edi
mov edx, str.unnamed
mov esi, dword [ebx + 0x30]
test esi, esi
mov eax, dword [ebx + 0x2c]
cmovne ecx, esi
test eax, eax
push ecx
cmovne edx, eax
mov eax, 0x102632c4
test esi, esi
cmovne edi, eax
push edi
push edx
push str._s_s_s
push 0xffff8703
push dword [ebx + 0x1c]
call fcn.100d0600
add esp, 0x18
mov edx, 0xffff8703
jmp 0x1014a8c3
or dword [ebp + 0x50], 1
cmp dword [esp + 0x1c], 0
je 0x1014a8dd
test edx, edx
jne 0x1014a8dd
mov eax, dword [esp + 0x78]
mov ecx, dword [ebp + 0x30]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x34]
mov dword [eax + 4], ecx
pop edi
pop esi
pop ebp
mov eax, edx
pop ebx
add esp, 0x5c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5c
ret