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

Disassembly:
sub esp, 0x38
movsd xmm0, qword [esp + 0x44]
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
mov esi, dword [esp + 0x48]
push edi
mov edi, dword [esp + 0x50]
push ecx
push ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x4c], esi
movsd qword [esp], xmm0
call fcn.10014d88
mov ebp, eax
or eax, edx
pop ecx
pop ecx
mov dword [esp + 0x24], ebp
jne 0x1001458e
xor ecx, ecx
mov eax, edi
test ebx, ebx
setne cl
sub eax, esi
add ecx, 5
add ecx, ebx
cmp eax, ecx
jge 0x1001455c
mov edx, 0x84
mov eax, edi
jmp 0x10014b50
mov byte [esi], 0x30
inc esi
test ebx, ebx
je 0x10014576
push ebx
mov byte [esi], 0x2e
inc esi
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add esi, ebx
push 4
push str.e00
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 4]
jmp 0x10014b4e
mov ecx, edx
mov dword [esp + 0x28], 9
and ecx, 0xfffff
shr edx, 0x14
mov dword [esp + 0x20], ecx
test edx, edx
jne 0x100145c8
inc ebx
mov eax, 0xfffffbce
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
mov ebp, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], ecx
jmp 0x10014811
lea eax, [edx - 0x433]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x4c], eax
or ecx, 0x100000
mov edi, dword [esp + 0x4c]
inc ebx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
xor ecx, ecx
cmp dword [esp + 0x4c], 0xffffffcc
mov eax, ecx
mov dword [esp + 0x24], edi
mov edx, ecx
mov edi, dword [esp + 0x30]
mov ebp, ecx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
jl 0x100147bc
mov eax, dword [esp + 0x4c]
test eax, eax
jns 0x10014632
push 0x78
inc edx
mov dword [esp + 0x3c], ecx
pop eax
mov dword [esp + 0x28], edx
jmp 0x10014685
lea edx, [eax + 0xf]
shr edx, 4
mov eax, edx
mov dword [esp + 0x38], edx
shl eax, 4
add eax, 0x78
mov dword [esp + 0x3c], eax
imul eax, edx, 0x134410
xor edx, edx
shr eax, 0x12
add eax, 0x19
div dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
sub edx, 1
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
js 0x100147b6
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
sub eax, ecx
mov ebp, dword [esp + 0x30]
add eax, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
mov edi, eax
mov dword [esp + 0x4c], ebp
shld dword [esp + 0x4c], edi, 8
mov dword [esp + 0x1c], ecx
shl edi, 8
mov dword [esp + 0x2c], edi
imul edi, edx, 9
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
push dword [esp + 0x3c]
movzx eax, word [eax*2 + 0x100365d0]
add eax, edx
imul eax, eax, 0x18
add eax, 0x10093350
push eax
push dword [esp + 0x54]
push dword [esp + 0x38]
call fcn.100156a6
mov edx, dword [esp + 0x28]
add esp, 0x10
mov dword [esp + 0x10], eax
test edx, edx
je 0x10014727
lea ebp, [edx + 9]
push 9
cmp ebp, ebx
ja 0x100147a7
mov ecx, edi
sub ecx, esi
pop edx
cmp ecx, edx
jl 0x10014550
push esi
push eax
call fcn.1000b92f
pop ecx
pop ecx
push 9
pop eax
add esi, eax
xor ecx, ecx
jmp 0x10014782
xor ecx, ecx
mov ebp, ecx
test eax, eax
je 0x1001478e
push eax
call fcn.10014c74
mov ebp, eax
mov eax, dword [esp + 0x34]
dec eax
add eax, ebp
mov dword [esp + 0x18], eax
pop ecx
cmp ebp, ebx
ja 0x100147ae
cmp dword [esp + 0x34], 0
jbe 0x1001476f
mov ecx, edi
lea eax, [ebp + 1]
sub ecx, esi
cmp ecx, eax
jl 0x10014550
push esi
push dword [esp + 0x14]
push ebp
call fcn.100136bd
add esp, 0xc
add esi, ebp
jmp 0x1001477f
cmp esi, edi
je 0x10014550
mov al, byte [esp + 0x10]
add al, 0x30
mov byte [esi], al
xor ecx, ecx
inc esi
mov eax, dword [esp + 0x10]
mov edx, ebp
mov ebp, ecx
mov dword [esp + 0x18], edx
dec dword [esp + 0x28]
sub dword [esp + 0x30], 9
cmp dword [esp + 0x28], 0
jl 0x100147bc
mov edx, dword [esp + 0x28]
jmp 0x100146c4
pop ecx
mov ebp, ecx
xor ecx, ecx
jmp 0x100147bc
mov edx, dword [esp + 0x18]
xor ecx, ecx
jmp 0x100147b8
mov edx, ecx
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x4c], ebp
jge 0x10014960
mov edi, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov edx, ebp
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x20], eax
test edx, edx
jne 0x10014960
mov eax, dword [esp + 0x1c]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
neg eax
mov dword [esp + 0x2c], eax
movzx edx, byte [eax + 0x100366e0]
mov dword [esp + 0x4c], edx
cmp edx, 0xc8
jae 0x10014960
imul edx, edx, 9
mov dword [esp + 0x30], edx
movzx edx, word [eax*2 + 0x10036650]
movzx eax, byte [eax + 0x100366e0]
sub edx, eax
mov eax, dword [esp + 0x2c]
add edx, dword [esp + 0x4c]
movzx eax, word [eax*2 + 0x10036652]
cmp edx, eax
jae 0x10014896
mov ecx, dword [esp + 0x24]
push 8
pop eax
sub eax, dword [esp + 0x2c]
shl eax, 4
sub eax, dword [esp + 0x1c]
push eax
imul eax, edx, 0x18
add eax, 0x1009a610
push eax
mov eax, dword [esp + 0x28]
shld eax, ecx, 8
shl ecx, 8
push eax
push ecx
call fcn.100156a6
add esp, 0x10
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
test eax, eax
je 0x100148f9
add eax, 9
mov dword [esp + 0x3c], eax
push 9
cmp eax, ebx
ja 0x1001495d
mov eax, edi
sub eax, esi
pop edx
cmp eax, edx
jl 0x10014550
push esi
push ecx
call fcn.1000b92f
pop ecx
pop ecx
push 9
pop eax
add esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
xor ecx, ecx
mov eax, dword [esp + 0x30]
inc dword [esp + 0x4c]
push 9
pop edx
add eax, edx
mov dword [esp + 0x30], eax
cmp eax, 0x708
jge 0x10014960
mov eax, dword [esp + 0x2c]
jmp 0x1001483e
test ecx, ecx
je 0x100148d6
push ecx
call fcn.10014c74
pop ecx
mov ebp, eax
sub eax, dword [esp + 0x30]
push 0xa
pop ecx
sub eax, ecx
mov dword [esp + 0x14], eax
cmp ebp, ebx
ja 0x10014960
cmp dword [esp + 0x34], 0
jbe 0x1001493f
mov ecx, edi
lea eax, [ebp + 1]
sub ecx, esi
cmp ecx, eax
jl 0x10014550
push esi
push dword [esp + 0x14]
push ebp
call fcn.100136bd
add esp, 0xc
add esi, ebp
jmp 0x1001494f
cmp esi, edi
je 0x10014550
mov al, byte [esp + 0x10]
add al, 0x30
mov byte [esi], al
xor ecx, ecx
mov dword [esp + 0x18], ebp
mov ebp, ecx
inc esi
jmp 0x100148d8
pop eax
mov ebp, eax
mov ecx, ebx
xor edx, edx
sub ecx, dword [esp + 0x18]
test ebp, ebp
push 5
cmovne edx, dword [esp + 0x14]
and dword [esp + 0x3c], 0
mov eax, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x40], edx
pop eax
cmp ebp, ecx
jbe 0x10014a1b
sub ebp, ecx
je 0x10014a1f
push 0xa
mov eax, edx
pop ecx
xor edx, edx
div ecx
mov edi, edx
mov dword [esp + 0x38], edi
sub ebp, 1
jne 0x1001499a
mov ecx, dword [esp + 0x28]
push 5
mov dword [esp + 0x50], eax
pop eax
cmp edi, eax
mov edi, dword [esp + 0x50]
jne 0x10014a1b
sub ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
add eax, ebx
neg eax
test eax, eax
jle 0x100149eb
cmp eax, 0x3c
jge 0x100149e7
push eax
push ebp
push dword [esp + 0x2c]
call fcn.10015881
add esp, 0xc
test al, al
jne 0x100149eb
xor al, al
jmp 0x100149ed
mov al, 1
test ebx, ebx
jns 0x10014a0d
test al, al
je 0x10014a0b
push ebp
push dword [esp + 0x28]
call fcn.10015912
neg ebx
pop ecx
pop ecx
cmp eax, ebx
jb 0x10014a0b
mov al, 1
jmp 0x10014a0d
xor al, al
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
movzx ebp, al
inc ebp
jmp 0x10014a27
mov edx, dword [esp + 0x4c]
cmp eax, dword [esp + 0x38]
sbb ebp, ebp
neg ebp
cmp dword [esp + 0x18], 0
je 0x10014a5a
mov eax, edi
sub eax, esi
cmp eax, ecx
jl 0x10014550
test edx, edx
jne 0x10014a49
push ecx
push 0x30
push esi
call sub.VCRUNTIME140.dll_memset
jmp 0x10014a51
push esi
push edx
push ecx
call fcn.1000b7d9
add esp, 0xc
add esi, dword [esp + 0x28]
jmp 0x10014a92
cmp dword [esp + 0x34], 0
jbe 0x10014a84
mov ebx, dword [esp + 0x28]
mov ecx, edi
sub ecx, esi
lea eax, [ebx + 1]
cmp ecx, eax
jl 0x10014550
push esi
push edx
push ebx
call fcn.100136bd
inc esi
add esp, 0xc
add esi, ebx
jmp 0x10014a92
cmp esi, edi
je 0x10014550
add dl, 0x30
mov byte [esi], dl
inc esi
test ebp, ebp
je 0x10014ad3
mov edx, dword [esp + 0x44]
mov eax, esi
cmp esi, edx
je 0x10014ab7
dec eax
mov cl, byte [eax]
cmp cl, 0x2e
je 0x10014ab3
cmp cl, 0x39
jne 0x10014ac5
xor ebp, ebp
mov byte [eax], 0x30
inc ebp
cmp eax, edx
jne 0x10014aa0
mov byte [eax], 0x31
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
jmp 0x10014ad7
cmp ebp, 1
je 0x10014acf
test cl, 1
je 0x10014ad3
inc cl
mov byte [eax], cl
mov eax, dword [esp + 0x14]
cdq
mov ecx, edi
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, 0x64
setge dl
sub ecx, esi
add edx, 4
cmp ecx, edx
jl 0x10014550
cmp dword [esp + 0x14], 0
mov byte [esi], 0x65
setl cl
lea ecx, [ecx*2 + 0x2b]
mov byte [esi + 1], cl
add esi, 2
cmp eax, 0x64
jl 0x10014b36
push 0xa
pop ecx
cdq
idiv ecx
push 2
mov ebx, edx
lea eax, [eax*2 + 0x10036508]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add bl, 0x30
add esp, 0xc
mov byte [esi + 2], bl
add esi, 3
jmp 0x10014b4c
push 2
lea eax, [eax*2 + 0x10036508]
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, 2
mov eax, esi
xor edx, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret