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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov edi, ecx
mov esi, dword [esp + 0xec]
movzx eax, word [edi + 0x1c]
and word [esi + 0x700], 0
cmp eax, dword [esp + 0xe4]
jne 0x6145fb
mov eax, edx
mov ebp, eax
inc bp
jne 0x61460a
xor ebx, ebx
mov eax, ebx
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [edi + 4]
mov ebx, dword [edi + 8]
cmp dword [edi], 0
mov ecx, esi
mov edx, ebx
je 0x61463b
push eax
call fcn.0060e42c
pop ecx
test eax, eax
mov dword [esp], edx
je 0x6145fb
mov edx, ebx
mov ecx, esi
push ebp
call fcn.0060e42c
pop ecx
test eax, eax
je 0x6145fb
mov ebp, dword [esp]
jmp 0x614666
push eax
call fcn.006132ea
pop ecx
test ax, ax
je 0x6145fb
mov word [esp], dx
mov edx, ebx
mov ecx, esi
push ebp
call fcn.006132ea
pop ecx
test ax, ax
je 0x6145fb
movzx ebp, word [esp]
movzx edx, dx
add edx, edx
add ebp, ebp
mov esi, edx
mov bl, 1
sub esi, ebp
je 0x6145fd
setb al
cmp edx, dword [edi + 0x18]
seta cl
add ebp, dword [edi + 0x14]
xor ebx, ebx
or cl, al
test cl, cl
cmovne ebp, ebx
jne 0x6145fd
lea ecx, [esp + 0xb4]
mov dword [esp], ebp
mov dword [ecx], ebp
mov dword [ecx + 4], esi
and dword [ecx + 8], 0
call fcn.0060e3bf
test ax, ax
je 0x6145fb
lea ecx, [esp + 0xb4]
mov ebx, edx
call fcn.0060e3bf
test ax, ax
je 0x6145fb
mov ebp, ebx
and ebp, 0xfff
lea eax, [ebp - 1]
cmp ax, 0x1f
ja 0x6145fb
movzx eax, dx
cmp esi, eax
jb 0x6145fb
mov ecx, dword [esp]
test bx, bx
mov dword [esp + 0x90], ecx
mov cl, 3
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], eax
jns 0x614738
lea esi, [esp + 0x60]
lea edx, [esp + 0x90]
mov ecx, esi
call fcn.0061578c
mov cl, byte [esi + 0xb]
cmp cl, 4
je 0x6145fb
mov eax, dword [esp + 0x67]
movsd xmm0, qword [esp + 0x60]
mov dword [esp + 0xa3], eax
movsd qword [esp + 0x9c], xmm0
movzx eax, word [esp + 0xe8]
add ax, 4
jb 0x6145fb
movsd xmm0, qword [esp + 0xb4]
mov word [esp + 0x12], ax
lea edx, [esp + 0xc0]
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], ebp
mov byte [esp + 7], cl
movsd qword [edx], xmm0
movsd xmm0, qword [esp + 0x90]
mov dword [edx + 8], eax
lea eax, [esp + 0x78]
mov dword [esp + 0xc], esi
mov dword [eax + 8], esi
mov esi, dword [esp + 0xe4]
movsd qword [eax], xmm0
mov eax, dword [edi + 0xc]
mov dword [esp + 0x88], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x8c], eax
movzx eax, si
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], eax
cmp word [esp + 0x38], bp
lea edi, [esp + 0xc0]
setae bl
jae 0x6145fd
mov ecx, edi
call fcn.0060e3bf
test ax, ax
mov word [esp + 0x1e], dx
je 0x6145fd
mov ecx, edi
call fcn.0060e3bf
test ax, ax
je 0x6145fd
test dx, dx
mov dword [esp + 0x14], edx
js 0x614865
mov eax, edx
and eax, 0xfff
mul si
jo 0x6145fb
mov ecx, eax
add cx, si
jb 0x6145fb
movzx edx, ax
movzx eax, cx
xor ebx, ebx
add eax, eax
add edx, edx
mov ecx, eax
mov dword [esp], edx
sub ecx, edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x14]
jb 0x6145fd
cmp eax, dword [esp + 0x8c]
ja 0x6145fd
mov eax, dword [esp]
add eax, dword [esp + 0x88]
mov dword [esp], eax
jmp 0x614883
mov edx, dword [esp + 0x50]
mov ecx, edi
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp], eax
je 0x6145fb
mov ecx, dword [esp + 0x14]
xor esi, esi
bt ecx, 0xe
mov dword [esp + 0x48], str.dest_is_out_of_bounds
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], str.dest_is_out_of_bounds
mov dword [esp + 0x3c], 0
jae 0x6148e6
mov ecx, edi
mov ebx, edi
mov edi, dword [esp + 0xe4]
mov edx, edi
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
je 0x6145fb
mov ecx, ebx
mov edx, edi
call fcn.0060e3db
test eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
je 0x6145fb
movss xmm0, dword [0x646138]
inc dword [esp + 0x38]
movss dword [esp + 8], xmm0
mov eax, esi
movzx esi, ax
mov dword [esp + 0x84], esi
cmp esi, dword [esp + 0x50]
movzx edi, word [esp + 0x1e]
mov dword [esp + 0x18], edi
jae 0x614a38
cmp esi, dword [esp + 0xe4]
jae 0x614c65
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp]
movzx ebp, word [eax + esi*2]
push esi
call fcn.006132ea
pop ecx
test ax, ax
je 0x6145fb
mov ebx, edx
test dx, dx
je 0x6149a4
cmp bp, bx
je 0x6149a4
bt dword [esp + 0x14], 0xe
jae 0x6149e8
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push esi
call fcn.006132ea
pop ecx
test ax, ax
je 0x6145fb
mov edi, edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
push esi
call fcn.006132ea
pop ecx
test ax, ax
je 0x6145fb
cmp bx, di
jl 0x6149a4
cmp dx, bx
jl 0x6149a4
test di, di
jns 0x6149aa
test dx, dx
jle 0x6149aa
inc esi
jmp 0x614904
cmp bp, di
jl 0x614a46
cmp dx, bp
jl 0x614a46
lea eax, [esi + 1]
cmp bp, bx
jge 0x6149cf
cmp bx, di
je 0x6148fa
jmp 0x614a32
cmp dx, bx
je 0x6148fa
mov eax, edx
sub edx, ebx
sub eax, ebp
cwde
cvtsi2ss xmm0, eax
movsx eax, dx
jmp 0x614a14
test bx, bx
mov ecx, 0
mov eax, 0
cmovs ecx, ebx
cmovg eax, ebx
test bp, bp
je 0x614a46
cmp bp, cx
jl 0x614a46
cmp bp, ax
jg 0x614a46
movsx eax, bp
cvtsi2ss xmm0, eax
movsx eax, bx
cvtsi2ss xmm1, eax
inc esi
divss xmm0, xmm1
movss xmm1, dword [esp + 8]
mulss xmm1, xmm0
movss dword [esp + 8], xmm1
jmp 0x6148f8
sub ebp, edi
sub ebx, edi
jmp 0x614a0a
movss xmm1, dword [esp + 8]
xorps xmm0, xmm0
ucomiss xmm1, xmm0
ja 0x614a5e
mov eax, dword [esp + 0x18]
add dword [esp + 0xc], eax
mov esi, dword [esp + 0xe4]
mov ebp, dword [esp + 0x34]
jmp 0x6147ca
mov eax, dword [esp + 0xc]
bt dword [esp + 0x14], 0xd
mov dword [esp + 0x80], eax
jb 0x614a98
cmp byte [esp + 7], 3
je 0x614acb
mov eax, dword [esp + 0xa3]
mov bl, byte [esp + 7]
movsd xmm0, qword [esp + 0x9c]
mov dword [esp + 0x5b], eax
movsd qword [esp + 0x54], xmm0
jmp 0x614adb
lea ecx, [esp + 0x60]
lea edx, [esp + 0x78]
call fcn.0061578c
mov bl, byte [esp + 0x6b]
cmp bl, 4
je 0x6145fb
mov eax, dword [esp + 0x67]
movsd xmm0, qword [esp + 0x60]
cmp bl, 3
mov dword [esp + 0x5b], eax
movsd qword [esp + 0x54], xmm0
jne 0x614adb
movzx ecx, word [esp + 0x12]
mov al, 1
mov bl, 3
mov dword [esp], eax
mov edi, ecx
jmp 0x614b1b
mov eax, dword [esp + 0x5b]
movsd xmm0, qword [esp + 0x54]
xor edi, edi
lea esi, [esp + 0x60]
dec edi
mov dword [esp + 0x67], eax
movsd qword [esp + 0x60], xmm0
mov byte [esp + 0x6b], bl
mov ecx, esi
call fcn.006135cf
inc edi
cmp ax, 1
je 0x614afa
cmp edi, 0xffff
ja 0x6145fb
mov dword [esp], 0
mov eax, dword [esp + 0x80]
mov ecx, eax
sub ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x18]
ja 0x6145fb
mov edx, dword [esp + 0x18]
sub edx, ecx
mov ecx, edx
add ecx, eax
mov dword [esp + 0xc], ecx
jb 0x6145fb
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x7c]
ja 0x6145fb
add eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
movss xmm0, dword [esp + 8]
mov esi, edx
mov edx, edi
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x60]
push esi
push eax
call fcn.0061557c
pop eax
pop ecx
cmp byte [esp], 0
mov al, 3
jne 0x614bd0
mov eax, dword [esp + 0x5b]
movsd xmm0, qword [esp + 0x54]
lea ecx, [esp + 0x20]
mov dword [esp + 0x27], eax
movsd qword [esp + 0x20], xmm0
mov byte [esp + 0x2b], bl
call fcn.006135cf
test ax, ax
mov eax, 0
movsd xmm0, qword [esp + 0x20]
cmove edx, eax
mov eax, dword [esp + 0x27]
mov dword [esp + 0x2c], edx
movsd qword [esp + 0xa8], xmm0
mov dword [esp + 0xaf], eax
mov al, byte [esp + 0x2b]
mov ecx, dword [esp + 0xaf]
movsd xmm0, qword [esp + 0xa8]
mov dword [esp + 0x27], ecx
mov ecx, dword [esp + 0x30]
movsd qword [esp + 0x20], xmm0
cmp cx, 0x20
movzx ecx, cx
jae 0x614c85
mov esi, dword [esp + 0xec]
movsd xmm0, qword [esp + 0x20]
mov edx, dword [esp + 0x27]
imul ecx, ecx, 0x38
movsd xmm1, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x60]
and dword [esi + ecx], 0
movsd qword [esi + ecx + 0x10], xmm0
mov dword [esi + ecx + 0x17], edx
mov byte [esi + ecx + 0x1b], al
mov eax, dword [esp + 0x2c]
mov word [esi + ecx + 0x1c], ax
movsd qword [esi + ecx + 0x28], xmm1
movsd xmm1, qword [esp + 0x70]
movsd qword [esi + ecx + 0x20], xmm2
movsd qword [esi + ecx + 0x30], xmm1
mov eax, dword [esi + 0x700]
inc eax
mov dword [esp + 0x30], eax
mov word [esi + 0x700], ax
jmp 0x614a4e
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x84]
cmp edx, ecx
cmova ecx, edx
push 0xa14850
call fcn.0063cc20
pop eax
ud2
push 0x20
pop edx
push 0xa14830
jmp 0x614c7d