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

Disassembly:
sub esp, 0x20
mov ecx, dword [esp + 0x24]
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
mov esi, dword [esp + 0x44]
push edi
mov edi, dword [esp + 0x44]
lea eax, [ecx + edi]
mov dword [esp + 0x1c], eax
mov al, byte [eax]
mov byte [esp + 0x44], al
cmp al, 0x7f
jae 0x10014d4d
movzx eax, al
movsx ebx, byte [eax + 0x1008e378]
test bl, 1
je 0x10014d3e
push 1
push edi
push dword [esp + 0x40]
push ecx
call fcn.10017630
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [esp + 0x20], 1
mov word [esp + 0x22], di
mov word [esp + 0x24], ax
test esi, esi
je 0x10014c66
movzx eax, byte [esi]
mov ecx, esi
cmp eax, 4
mov dword [esp + 0x10], eax
mov ebp, eax
mov eax, 4
cmovbe ebp, eax
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
movzx eax, word [esi + 0xa]
cmp ebp, 4
je 0x10014c5d
mov cx, word [esi + 8]
inc cx
add cx, ax
xor edx, edx
jmp 0x10014c97
movzx edx, word [esi + 6]
mov cx, ax
jmp 0x10014c97
mov ecx, ebp
mov eax, 4
cmp ecx, 4
mov dword [esp + 0x10], ecx
cmovle ebp, eax
xor eax, eax
mov word [esp + 0x18], ax
cmp ebp, 4
je 0x10014c88
mov eax, 1
xor ecx, ecx
mov word [esp + 0x2a], ax
xor edx, edx
cmp ebp, 4
setne cl
cmp dword [esp + 0x10], 1
mov word [esp + 0x2a], cx
je 0x10014cb5
cmp ebp, 4
jne 0x10014cb5
xor eax, eax
cmp dword [esp + 0x10], 2
sete al
inc eax
add edx, eax
add edx, dword [esp + 0x14]
movzx ebp, cx
lea eax, [edx + 1]
movzx edx, dx
sar eax, 1
movzx eax, ax
add ebp, eax
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x10], edx
mov word [esp + 0x26], dx
imul edx, eax, 0x54
add edx, dword [esp + 0x40]
movzx ecx, word [edx + 0xa]
movzx eax, word [edx + 8]
add ecx, eax
cmp byte [edx], 0
je 0x10014d21
cmp ecx, ebp
ja 0x10014d21
jne 0x10014d3a
mov eax, dword [esp + 0x10]
movzx ebp, word [edx + 6]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10014d1d
mov ecx, dword [esp + 0x10]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x10014d3a
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx], xmm0
mov dword [edx + 8], eax
mov eax, dword [esp + 0x18]
mov word [edx + 0xc], ax
mov ebp, dword [esp + 0x3c]
test ebx, ebx
je 0x10014d4f
test bl, 8
je 0x10014dcb
jmp 0x10014d4f
xor ebx, ebx
lea eax, [esp + 0x20]
push eax
push esi
push ebp
mov eax, ebx
and eax, 0xfffffffe
push eax
push 1
push edi
push 1
push dword [esp + 0x5c]
call fcn.10017260
imul edx, edi, 0x54
add esp, 0x20
mov ebp, eax
add edx, dword [esp + 0x40]
cmp byte [edx + 0x54], 0
je 0x10014db0
movzx ecx, word [edx + 0x5e]
movzx eax, word [edx + 0x5c]
add ecx, eax
cmp ecx, ebp
jg 0x10014db0
jne 0x10014dcb
movzx ebp, word [edx + 0x5a]
movzx ecx, word [esp + 0x26]
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10014dac
movzx eax, word [esp + 0x26]
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x10014dcb
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x54], xmm0
mov dword [edx + 0x5c], eax
mov ax, word [esp + 0x2c]
mov word [edx + 0x60], ax
test bl, 2
je 0x10014f16
push 2
push edi
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.10017630
add esp, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x20], 2
mov word [esp + 0x22], di
mov word [esp + 0x24], ax
test esi, esi
je 0x10014e49
movzx ebp, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, 4
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, word [esi + 0xa]
mov dword [esp + 0x10], eax
cmp ebp, 4
mov eax, ebp
cmovbe eax, ecx
cmp eax, ecx
je 0x10014e40
mov cx, word [esi + 8]
inc dx
add cx, dx
xor edx, edx
jmp 0x10014e7a
mov cx, dx
movzx edx, word [esi + 6]
jmp 0x10014e7a
mov ebp, dword [esp + 0x3c]
mov ecx, 4
mov eax, ebp
cmp eax, 4
cmovle eax, ecx
xor ecx, ecx
mov word [esp + 0x10], cx
cmp eax, 4
je 0x10014e6b
mov ecx, 1
mov word [esp + 0x2a], cx
xor edx, edx
xor ecx, ecx
cmp eax, 4
setne cl
mov word [esp + 0x2a], cx
cmp ebp, 2
je 0x10014e8f
xor eax, eax
cmp ebp, 4
sete al
inc eax
add edx, eax
add edx, dword [esp + 0x18]
movzx ebp, cx
lea eax, [edx + 1]
movzx edx, dx
sar eax, 1
movzx eax, ax
add ebp, eax
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esp + 0x14], edx
mov word [esp + 0x26], dx
imul edx, eax, 0x54
add edx, dword [esp + 0x40]
movzx ecx, word [edx + 0x16]
movzx eax, word [edx + 0x18]
add ecx, eax
cmp byte [edx + 0xe], 0
je 0x10014efc
cmp ecx, ebp
ja 0x10014efc
jne 0x10014f16
mov eax, dword [esp + 0x14]
movzx ebp, word [edx + 0x14]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10014ef8
mov ecx, dword [esp + 0x14]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x10014f16
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0xe], xmm0
mov dword [edx + 0x16], eax
mov eax, dword [esp + 0x10]
mov word [edx + 0x1a], ax
test ebx, ebx
je 0x10014f23
test bl, 9
je 0x1001507e
mov eax, ebx
mov byte [esp + 0x20], 2
and eax, 0xfffffffd
mov word [esp + 0x22], di
mov dword [esp + 0x18], eax
mov edx, 1
mov word [esp + 0x24], dx
test esi, esi
je 0x10014f8f
movzx ebp, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
movzx ecx, word [esi + 0xa]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, 4
mov dword [esp + 0x14], eax
mov edx, 4
mov eax, ebp
cmovbe eax, edx
cmp eax, edx
je 0x10014f86
mov dx, word [esi + 8]
inc cx
add dx, cx
xor ecx, ecx
jmp 0x10014fc2
mov dx, cx
movzx ecx, word [esi + 6]
jmp 0x10014fc2
mov ebp, dword [esp + 0x3c]
mov ecx, 4
mov eax, ebp
cmp eax, 4
cmovle eax, ecx
xor ecx, ecx
mov word [esp + 0x14], cx
cmp eax, 4
jne 0x10014fb3
mov word [esp + 0x2a], cx
jmp 0x10014fb8
mov word [esp + 0x2a], dx
xor edx, edx
xor ecx, ecx
cmp eax, 4
setne dl
cmp dword [esp + 0x18], 0
mov eax, ecx
mov word [esp + 0x2a], dx
je 0x10014fe5
cmp ebp, 2
je 0x10014fe0
xor eax, eax
cmp ebp, 4
sete al
inc eax
add ecx, eax
add ecx, 2
jmp 0x10015001
test cl, 1
lea ecx, [eax + 1]
cmove ecx, eax
cmp ebp, 2
je 0x10014ffe
xor eax, eax
cmp ebp, 4
sete al
inc eax
add ecx, eax
add ecx, 4
movzx ebp, dx
lea eax, [ecx + 1]
imul edx, edi, 0x54
sar eax, 1
movzx ecx, cx
movzx eax, ax
mov dword [esp + 0x18], ecx
add ebp, eax
add edx, dword [esp + 0x40]
mov word [esp + 0x26], cx
mov word [esp + 0x28], ax
movzx ecx, word [edx + 0x6c]
movzx eax, word [edx + 0x6a]
add ecx, eax
cmp byte [edx + 0x62], 0
je 0x10015064
cmp ecx, ebp
ja 0x10015064
jne 0x1001507e
mov eax, dword [esp + 0x18]
movzx ebp, word [edx + 0x68]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10015060
mov ecx, dword [esp + 0x18]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x1001507e
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x62], xmm0
mov dword [edx + 0x6a], eax
mov eax, dword [esp + 0x14]
mov word [edx + 0x6e], ax
test bl, 4
je 0x100151fd
push 4
push edi
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.10017630
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0x20], 3
mov word [esp + 0x22], di
mov word [esp + 0x24], ax
test esi, esi
je 0x100150fc
movzx ebp, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
mov ecx, 4
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, word [esi + 0xa]
mov dword [esp + 0x14], eax
cmp ebp, 4
mov eax, ebp
cmovbe eax, ecx
cmp eax, ecx
je 0x100150f3
mov cx, word [esi + 8]
inc dx
add cx, dx
xor edx, edx
jmp 0x1001512d
mov cx, dx
movzx edx, word [esi + 6]
jmp 0x1001512d
mov ebp, dword [esp + 0x3c]
mov ecx, 4
mov eax, ebp
cmp eax, 4
cmovle eax, ecx
xor ecx, ecx
mov word [esp + 0x14], cx
cmp eax, 4
je 0x1001511e
mov ecx, 1
mov word [esp + 0x2a], cx
xor edx, edx
xor ecx, ecx
cmp eax, 4
setne cl
mov word [esp + 0x2a], cx
cmp ebp, 3
je 0x10015142
xor eax, eax
cmp ebp, 4
sete al
inc eax
add edx, eax
add edx, dword [esp + 0x10]
movzx ebp, cx
lea eax, [edx + 1]
movzx edx, dx
sar eax, 1
movzx eax, ax
add ebp, eax
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x10]
add eax, edi
mov dword [esp + 0x18], edx
mov word [esp + 0x26], dx
imul edx, eax, 0x54
add edx, dword [esp + 0x40]
movzx ecx, word [edx + 0x24]
movzx eax, word [edx + 0x26]
add ecx, eax
cmp byte [edx + 0x1c], 0
je 0x100151af
cmp ecx, ebp
ja 0x100151af
jne 0x100151c9
mov eax, dword [esp + 0x18]
movzx ebp, word [edx + 0x22]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x100151ab
mov ecx, dword [esp + 0x18]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x100151c9
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x1c], xmm0
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x14]
mov word [edx + 0x28], ax
cmp dword [esp + 0x10], 1
jle 0x100151fd
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 1]
sub al, 0x30
cmp al, 9
ja 0x100151fd
push esi
push dword [esp + 0x40]
push 4
push 1
push edi
push 3
push dword [esp + 0x58]
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.10014ab0
add esp, 0x24
test ebx, ebx
je 0x1001520a
test bl, 8
je 0x100154b2
mov eax, ebx
mov byte [esp + 0x20], 3
and eax, 0xfffffffb
mov word [esp + 0x22], di
mov dword [esp + 0x1c], eax
mov edx, 1
mov word [esp + 0x24], dx
test esi, esi
je 0x10015276
movzx ebp, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
movzx ecx, word [esi + 0xa]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, 4
mov dword [esp + 0x14], eax
mov edx, 4
mov eax, ebp
cmovbe eax, edx
cmp eax, edx
je 0x1001526d
mov dx, word [esi + 8]
inc cx
add dx, cx
xor ecx, ecx
jmp 0x100152a9
mov dx, cx
movzx ecx, word [esi + 6]
jmp 0x100152a9
mov ebp, dword [esp + 0x3c]
mov ecx, 4
mov eax, ebp
cmp eax, 4
cmovle eax, ecx
xor ecx, ecx
mov word [esp + 0x14], cx
cmp eax, 4
jne 0x1001529a
mov word [esp + 0x2a], cx
jmp 0x1001529f
mov word [esp + 0x2a], dx
xor edx, edx
xor ecx, ecx
cmp eax, 4
setne dl
cmp dword [esp + 0x1c], 0
mov eax, ecx
mov word [esp + 0x2a], dx
je 0x100152cc
cmp ebp, 3
je 0x100152c7
xor eax, eax
cmp ebp, 4
sete al
inc eax
add ecx, eax
add ecx, 2
jmp 0x100152e8
test cl, 1
lea ecx, [eax + 1]
cmove ecx, eax
cmp ebp, 3
je 0x100152e5
xor eax, eax
cmp ebp, 4
sete al
inc eax
add ecx, eax
add ecx, 4
movzx ebp, dx
lea eax, [ecx + 1]
imul edx, edi, 0x54
sar eax, 1
movzx ecx, cx
movzx eax, ax
mov dword [esp + 0x18], ecx
add ebp, eax
add edx, dword [esp + 0x40]
mov word [esp + 0x26], cx
mov word [esp + 0x28], ax
movzx ecx, word [edx + 0x78]
movzx eax, word [edx + 0x7a]
add ecx, eax
cmp byte [edx + 0x70], 0
je 0x1001534b
cmp ecx, ebp
ja 0x1001534b
jne 0x10015365
mov eax, dword [esp + 0x18]
movzx ebp, word [edx + 0x76]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10015347
mov ecx, dword [esp + 0x18]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x10015365
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x70], xmm0
mov dword [edx + 0x78], eax
mov eax, dword [esp + 0x14]
mov word [edx + 0x7c], ax
test bl, 8
je 0x100154b2
push 8
push edi
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.10017630
add esp, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x20], 4
mov word [esp + 0x22], di
mov word [esp + 0x24], ax
test esi, esi
je 0x100153e3
movzx ebp, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
add edx, ecx
movzx ecx, word [esi + 0xa]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, 4
mov dword [esp + 0x10], eax
mov edx, 4
mov eax, ebp
cmovbe eax, edx
cmp eax, edx
je 0x100153da
mov dx, word [esi + 8]
inc cx
add dx, cx
xor ecx, ecx
jmp 0x10015414
mov dx, cx
movzx ecx, word [esi + 6]
jmp 0x10015414
mov ebp, dword [esp + 0x3c]
mov ecx, 4
mov eax, ebp
cmp eax, 4
cmovle eax, ecx
xor ecx, ecx
mov word [esp + 0x10], cx
cmp eax, 4
je 0x10015405
mov ecx, 1
mov word [esp + 0x2a], cx
xor edx, edx
xor ecx, ecx
cmp eax, 4
setne dl
mov word [esp + 0x2a], dx
cmp ebp, 4
je 0x10015429
xor eax, eax
cmp ebp, 3
setne al
inc eax
add ecx, eax
add ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
movzx ecx, cx
sar eax, 1
movzx eax, ax
mov ebp, eax
mov word [esp + 0x28], ax
movzx eax, dx
add ebp, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x18]
add eax, edi
mov word [esp + 0x26], cx
imul edx, eax, 0x54
add edx, dword [esp + 0x40]
movzx ecx, word [edx + 0x32]
movzx eax, word [edx + 0x34]
add ecx, eax
cmp byte [edx + 0x2a], 0
je 0x10015498
cmp ecx, ebp
ja 0x10015498
jne 0x100154b2
mov eax, dword [esp + 0x14]
movzx ebp, word [edx + 0x30]
movzx ecx, ax
mov eax, ebp
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x10015494
mov ecx, dword [esp + 0x14]
movzx eax, cx
cmp ebp, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x100154b2
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x2a], xmm0
mov dword [edx + 0x32], eax
mov eax, dword [esp + 0x10]
mov word [edx + 0x36], ax
test ebx, ebx
jne 0x10015600
mov byte [esp + 0x20], 4
mov ecx, 1
mov word [esp + 0x22], di
mov word [esp + 0x24], cx
test esi, esi
je 0x1001552e
movzx ebx, byte [esi]
mov ecx, esi
sub ecx, dword [esp + 0x40]
mov eax, 0x92492493
imul ecx
mov eax, ebx
add edx, ecx
movzx ecx, word [esi + 0xa]
sar edx, 3
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
cmp ebx, 4
mov edx, 4
cmovbe eax, edx
cmp eax, edx
je 0x10015510
mov ax, word [esi + 8]
inc cx
add ax, cx
xor ecx, ecx
jmp 0x10015517
mov ax, cx
movzx ecx, word [esi + 6]
movzx edx, ax
mov word [esp + 0x2a], dx
test cl, 1
je 0x10015565
add ecx, 3
mov word [esp + 0x2a], dx
jmp 0x10015575
mov ebx, dword [esp + 0x3c]
mov eax, 4
mov edx, ebx
cmp edx, 4
cmovle edx, eax
xor ebp, ebp
cmp edx, eax
jne 0x1001554e
xor eax, eax
mov word [esp + 0x2a], ax
jmp 0x10015553
mov word [esp + 0x2a], cx
xor eax, eax
xor ecx, ecx
cmp edx, 4
setne al
mov dx, ax
mov word [esp + 0x2a], dx
cmp ebx, 4
je 0x10015575
xor eax, eax
cmp ebx, 3
setne al
inc eax
add ecx, eax
add ecx, 4
movzx ebx, dx
imul edx, edi, 0x54
lea eax, [ecx + 1]
movzx ecx, cx
shr eax, 1
add edx, dword [esp + 0x40]
movzx eax, ax
mov dword [esp + 0x18], ecx
add ebx, eax
mov word [esp + 0x26], cx
movzx ecx, word [edx + 0x88]
mov word [esp + 0x28], ax
movzx eax, word [edx + 0x86]
add ecx, eax
cmp byte [edx + 0x7e], 0
je 0x100155e4
cmp ecx, ebx
ja 0x100155e4
jne 0x10015600
mov eax, dword [esp + 0x18]
movzx ebx, word [edx + 0x84]
movzx ecx, ax
mov eax, ebx
and ecx, 1
and eax, 1
cmp eax, ecx
jne 0x100155e0
mov ecx, dword [esp + 0x18]
movzx eax, cx
cmp ebx, eax
sbb ecx, ecx
neg ecx
test ecx, ecx
je 0x10015600
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
movq qword [edx + 0x7e], xmm0
mov dword [edx + 0x86], eax
mov word [edx + 0x8a], bp
mov al, byte [esp + 0x44]
mov ebp, dword [esp + 0x38]
sub al, 0x30
mov ebx, dword [esp + 0x34]
cmp al, 9
ja 0x10015636
push 0xffffffffffffffff
push edi
push ebp
push ebx
call fcn.1003ea60
mov ecx, dword [esp + 0x4c]
push esi
push ecx
push 0
push eax
push edi
push 6
push dword [esp + 0x68]
push ebp
push ebx
call fcn.10014ab0
add esp, 0x34
push esi
push dword [esp + 0x40]
push 0
push 1
push edi
push 5
push dword [esp + 0x58]
push ebp
push ebx
call fcn.10014ab0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret